请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册
首页 NEWS 技术 查看内容

LikeCoin 取消委托要等 21 天? 谈谈 Cosmos 的绑定权益证明 BPoS

恋上财经 2020-4-9 11:20

作者:Terence @Forbole

自从 LikeCoin 加入 Cosmos 生态后,不少中文用户开始接触 Cosmos 中的各种新奇事物。对他们来说,一些本来虚无飘渺的区块链知识,开始直接影响自己。近日我留意到有朋友发现LikeCoin 取消委托拿回钱需要 21 天,这是个挺好的契机介绍 Cosmos 的构思。Cosmos 是其中一个集大成的区块链生态,若你能掌握 Cosmos 相关的知识,对了解整个区块链以至去中心化世代都有莫大帮助

要了解这 21 天解除绑定期 (unbonding period) ,可能要先全面了解区块链的基本面。在本篇文章,我希望在不深入讲解技术的情况下,令一般用户大概理解究竟在发生什么事。这样解说,无可避免地要避重就轻,甚至断章取义,还望各位专家们多多包涵。

 

长话短说

 

Cosmos 生态中的区块链绝大多数是采用绑定权益证明 (BPoS) 的制度,它们的的原生通证 (如 atom, likecoin) 的持有者,有权决定是否参与区块链的网络安全及治理等任务以获取奬励。这些任务并不是一般人能胜任,而是需要对网络安全及底层技术有深入了解的技术员来出任,他们还要承担网络基建设备如服务器及云储存及团队等的开支。

若通证持有人不当验证人,但又希望参与上述任务以获取奬励,就可以作为委托人 (delegator),将自己持有的通证委托于验证人,由验证人执行这些任务,这就是抵押挖矿 (staking) 的本质。参与维护区块链能获取奬励,但若犯错或不达标则会受到削减权益的惩罚,这惩罚是有连带关系的,即委托于该犯错验证人的权益都会被削减。

相较比特币的工作量证明 (PoW) 机制,权益证明 (PoS) 机制有两个先天风险,分别是“无利害关系”及“远程攻击”。BPoS 的 21 天解除绑定期,就是为预防这两个风险而设。

简而言之,天下没有免费午餐,抵押挖矿与世间上很多事情都一样,是要承担风险以换取潜在回报,背后的大原则就是看风险与回报,奬善罚恶。通证持有人需要慎重考虑要如何作出委托,以维护区块链的安全,促进生态成长。

 

在去中心化网络中寻求共识

 

比特币被广泛视为区块链的首个应用,或许应该这样说:比特币的面世,令它背后的运作原理 - 区块链 ,被广为人知。区块链实质上是一个去中心化网络,并作为一个公众数据库来记账,它没有一个中央领袖决定应该记录什么和如何记录,而是由公众参与者以既定的共识规则来决定。这能简单分为两个步骤:

1、有人提议要记录什么2、参与者达到共识通过上述提议

但如果大家七嘴八舌提议这提议那,就会很混乱,所以我们要先有机制决定如何去作出提议,工作量证明 (proof-of-work,PoW) 就是这步骤的重要部份。

 

工作量证明 PoW

 

比特币、以太币及不少其他早期的加密货币,都是以 PoW 的机制运作。无论阁下有没有接触区块链,其实对 PoW 是不会陌生的。大家日常最常见的 PoW 例子,就是注册或登入一些系统时 (例如注册新电邮地址) 你被要求解答 "captcha",以证明你不是机器:

图片来源:https://www.atebits.com/tips-on-managing-captcha-in-omegle/

你通过付出一些“工作量”去解答 captcha,以“证明”你不是机器。为何这些系统需要这样做呢? 就是为了预防有人试图通过创建多个帐户身份来攻击网络,这种攻击方式叫女巫攻击 (Sybil Attack)。

区块链是一个公众的数据库用来记账,首先要有人提议要记录甚么,而区块链又是由成千上万台计算机以没有中央领袖的方式链接而成,亦无法辨别个别计算机的身份,若有人使用女巫攻击来提议要记录的内容,就可能令网络崩溃,所以我们亦需要有 PoW 的机制来预防女巫攻击。

这里说的 PoW 是针对计算机而不是人类,上图中的几款 captcha 对有强大运算力的计算机来说太简单了,所以我们要有连计算机都不容易完成的 PoW,所以就有挖矿 (mining) 的出现。我其实很有兴趣讲解挖矿,但这有点离题,所以我简单用个比喻说明好了。大家可以想象我要求你抛硬币,抛到头像时你记下「1」,抛到数字时你记下「0」,现在我要求计算机做同样的事,但要求就多了很多,例如我要计算机一直抛硬币并记下 1 或 0,直至连续 20 个0,这过程是没有快捷方式,唯一能出现连续 20 个0的做法只能是不断抛。人类抛硬币都要给点力气,而计算机就是要耗电来抛。(20 个位对计算机太容易了? 如果是百万个位呢? 如果是亿万个位呢? )

谁又会愿意这样耗电来挖矿? 所以成功挖矿会有奬励,有钱能使鬼推磨,甚至出现了专门设计用来挖矿的硬件设备 (ASICs) 及以工厂规模来运作的矿工 (矿场),大家都是根据风险与回报来行动。

 

竞逐成为区块发起者

 

矿工将网络上有待处理的交易,塞进一个有容量限制的数据报中,这个包就是“区块” (block),矿工们比赛运算速度 (以上述例子即抛硬币),最快得出正确答案的就可以成为区块发起者 (block proposer), 并将这区块记录在区块链这公众数据库上。所以,PoW 并不是共识算法 (这是很多人的误解),而是决定由谁来成为区块发起者 (block proposer) 的制度。

由于矿工用了大量电力及设备来赢取这个发起区块的机会,他们当然会力保这些交易及区块等是符合大家既定的规则来处理 ,因为一旦不符规则,网络上其他参与者 (即节点) 就会反对这区块,那么这名矿工辛苦胜出抛硬币大赛却会失去奬励。

 

权益证明 PoS

 

由于 PoW 的上述特点,它的运作慢,又需要耗用大量电力,矿工需大量投资于运算用的设备,所以 PoW 的竞赛其实都是比钱多,因为设备及电力都是钱,那么不如直接用资本来竞赛,所以就产生权益证明 (proof-of-stake, PoS ) 。

在 PoS 下,矿工不再用 PoW 的方式竞赛,而是按持有该区块链的原生通证/加密货币 (如 Cosmos Hub 上的 atom 或 LikeCoin Chain 上的 likecoin) 的数量来决定谁能当区块发起人,亦由于再没有挖矿这过程,我们一般亦改称矿工做验证人 (validator),以反映他们要做的事情是有点区别的。

在讨论以 PoS 取代 PoW 的初期,有一股声音质疑 PoS 有两个理论上的潜在风险,分别是无利害关系 (nothing at stake) 及远程攻击 (long range attack),要解释这些东西可能可以写一个系列的文章,又会离题。容我我再一次大胆地用简单比喻而非深入技术面来试图解释这两件事情。

 

无利害关系

 

无利害关系指的就是验证人做错事却没有惩罚。在 PoW 中,验证人用了大量电力 (其实就是 $$$) 来竞赛,如果他做错事了就拿不到奬励,白用了电力 ($$$),这就是惩罚,但 PoS 没有 PoW 的耗电过程,即是少了这个间接惩罚的途径。

 

远程攻击

 

远程攻击指的是篡改历史。要说明这点,又要先回头看看区块链的结构。我常跃跃欲试用两个比喻来说明,机会终于来了!

  • 包裹的比喻上文说到区块就是装着一些交易的数据报。大家幻想一下,下一个数据报 (B02),除了装着一些新的事务数据外,又会装着上一个数据报 (B01),然后,再下一个数据报 (B03),除了装着一些新的事务数据外,又会装着数据报 (B02)。一个包包住另一个包,生生不息。若去到 B10,如果你想更改 B01 装着的数据,你要如何做? 你要先打开 B10,再打开 B09,再打开 B08,如此类推。再想象一下,每个包都有一条封条封着,你要打开这个包,就要破坏这封条。再想象一下,这封条只能是经过耗电甚多的运算工序生成,你要再做这封条,就要重新做一次相对应的运算工序。可以说,每多一个包 (即多了一些 PoW),数据就更安全。
  • 族谱的比喻再用另一个比喻,就是族谱。小弟姓林,从小就很喜爱看中国的历史人物故事,但一直有个心结:为何没有多少名将名相是姓林的? 近代似乎有个叫林则徐,有时幻想如果我是林则徐的后人都挺威风,我能不能伪造林则徐的族谱来达到这目的呢? 若我要这样做,首先我要将林则徐家族至今的族谱,一代代地改写,改到去反映出我的出生,大家想象一下这工程有多艰巨。如果只是我自己拿着这族谱,要如何写或许我都有权掌控。但问题是,林则徐原本的代代后人都有族谱,我是要将林则徐的所有子孙的族谱都要改写,而改写完后要他们都承认 (或至少有大部份人会承认)。所以要众目睽睽下篡改历史,谈何容易? (真的有一位天皇巨星改了自己的姓氏,因为他追查到了自己是唐朝一个名相的后人。)
远程攻击中的“远程”,指的不是地点上的距离,而是时间上的距离。以族谱的比喻,若我二百年多前的祖先要部署二百多年后作为子孙的我要篡改历史,就用办法在林则徐的族谱上加插一个妾氏甚么的 ,为二百多年后的我去篡改族谱做准备。(话说回来,妾氏会写在族谱上吗? ) 守护历史为何重要? 如果你本来有十个比特币,却被人修改成为一个,这样的账本,还有没有人相信?

无论是无利害关系或远程攻击,在采用 PoW 的区块链是很难办到的,因为有一层层的 PoW 来守护历史,缺乏 PoW 就是 PoS 的先天不足。(题外话:以上的两个风险是理论上的风险,是否真的会发生,或是否真的符合经济运行规律呢? 有些人提出质疑,例如 PoS 其中一个先驱 Sunny King 在其发明的区块链 V Systems 中采用的 Supernode PoS 的白皮书就对 nothing at stake 有另一番见解,对我有很大启发。)

 

绑定权益证明 BPoS

 

不同的 PoS 区块链的运作方式都有点不一样,绝大部份都有针对无利害关系及远程攻击这两大风险的措施,Cosmos Hub 及其他大部份基于 Cosmos 技术的区块链 (例如 LikeCoin Chain) 所采用的绑定权益证明 ( bonded proof-of-stake 或 BPoS) 就是其中一个代表。

在 BPoS 的制度下,验证人的角色是维护区块链安全,这涉及几大任务:

  1. 营运一个全节点 (full-node)
  2. 遴任成为区块发起人以创建区块并就区块达致共识
  3. 在链上治理议案 (governance proposal) 中投票
可想而之,这些任务并不是一般人能胜任,验证人需要深彻了解区块链,网络安全及底层技术,更要承担营运稳健可靠的全节点所需要的网络基建设备如服务器及云储存以及团队等的开支。再者,因为是 PoS,所以似乎还要有足够的资本 - 要有钱才能买到足够的通证权益来担任验证人。

委托 (delegate)

不过,正因为验证人所需的知识及技术要求很高,通证拥有者并不一定胜任作验证人,亦有一些是根本不愿意当验证人 (例如一些创投纯椊希望做通证的投资者),这产生一个微妙的供求关系:有人有能力当验证人但不够资本, 有人够资本但不想当验证人。所以有了委托 (delegate) 这做法。

若通证持有人不能够或不愿意当验证人,但又希望参与上述任务以获取奬励,就可以作为委托人 (delegator),将自己持有的通证委托于验证人,这就相当于将权益绑定 (bond) ,所有来自委托人的委托权益 ( 包括验证人自己委托给自己的),就成为了该验证人的投票权 (voting power),只有投票权达一定要求的验证人才能成为有效的验证人以参与上述任务,在 Cosmos Hub 上指的就是投票权占比最高的 125 个节点,在 LikeCoin Chain 上就是 10 个节点。

投票权占比

投票权的占比是按委托权益的总数 (而非通证的总数) 来算。例如,假设 Cosmos Hub 上的 atom 总数是 2.5 亿个,当中绑定了的 atom 数目为 1.8 亿个,如果 Forbole   获委托的权益是 200 万个,Forbole 拥有的投票权就是 1.11% (2,000,000 / 180,000,000)。1.11% 的投票权占比的含义就是,长期平均来说,每 10,000 次的区块发起人遴选,Forbole 就会当选 111 次。

绑定 (bonding) 与权益削减 (slashing)

上文提到 PoS 相对于 PoW 有两大风险,包括无利害关系及远程攻击,两者结合起来,说的就是犯错 (试图篡改历史就是其中一个大错) 要如何惩罚。在网络世界,构思惩罚制度时更要特别思考如何能有效地执行惩罚。

在 PoW,犯错时会失去原本以为可以拿到的奬励,所以白耗了电力 ($$$) 。要在 PoS 上产生类似的阻吓效果,就是在权益着手:当犯错时就要削减 (slash) 权益 ($$$)。听起来很直接,若验证人被发现犯错,就当场削减他已绑定的权益就可以了。但在 PoS 上要这样做,又有一些特别的考虑。

解除绑定 (unbonding)

在 PoS 上削减权益,要特别考虑远程攻击,如前述,远程攻击即试图在以前的某一时间布局,以部署日后篡改历史。如果我今天布局,有可能是在 21 天后才会出现篡改历史的事件,如果我在绑定权益后先布局,然后解绑马上远走高飞,到网络发现我的过错时可能已是 21 天后,我已溜了,削不到我的权益了。

所以,Cosmos 的 BPoS 设有 21 天解除绑定期,已绑定权益的人,在执行解除绑定的指示后,要等 21 天过去,相关权益才会正式回复自由身,在这 21 天期间,若涉及的验证人犯了错,这些正在解除绑定期间的权益仍然会被削减。

这又衍生另一个问题:验证人犯错,委托人有没有责任?

变更委托 (re-delegating)

在 Cosmos BPoS 的世界,验证人犯错,除了他自我委托的权益会被削某个百分比 (视乎犯错的严重性),所有委托给他的权益亦会被削同一个百分比。所以作为委托人,是需要认真分析哪个验证人可靠及对网络作出贡献,才作出委托的决定。以现实的比喻,就是投票选代表你的议员时,你都需要慎重考虑。(这只是 Cosmos 的情况,不代表其他 PoS 都是这样考虑,例如 Tezos,在很多情况下委托人并不会受罚)

基于这原则,当你打算从已委托于验证人 A 的权益直接以变更委托 (re-delegating) 的方式改为委托予验证人 B,表面上看起来你的变更委托是立即生效,但你仍然面对 21 天的期间。在这期间结束前,如验证人 A 需要接受削减权益的惩罚,你所涉及的正在处于变更委托期的权益仍然会被削。

通证持有人不一定需要参与保卫区块链的任务

上述 Cosmos Hub 的例子亦是现在大概的情况,绑定了的 atom 数目其实只占总数的约 72%,可见并不是所有的通证持有人都会进行委托。事实上,是否参与维护区块链安全 (作为验证人直接参与或作为委托人间接参与) 是通证持有人的权利而不是义务

参与维护区块链安全的任务能获取来自通胀率及交易费用的回报,但若工作犯错或不达标 (例如重复签名 (double-sign) 或长时间下线) 则会受到惩罚 (权益削减 slash) ,奬善罚恶。

若然认为回报与风险的比例不吸引,通证持有人完全可以不参与,只单纯持有通证,有通胀设定的区块链 (如 Cosmos Hub) 持续有新增的 atom (年化通胀率为 7% 至 20% 之间) 以作为奬励,所以不参与绑定权益的人, 其权益将会被通胀摊薄。所以,通证经济的重要一环就是如何构思这回报与风险的比例,以吸引更多的人选择参与维护区块链。

 

结语

 

参与维护区块链安全是件严肃的事,大家不应该只看回报及验证人收费,要考虑个中的风险及对区块链生态的意义,有责任地选择验证人并作出委托,是你贡献区块链安全的重要一步,亦能支持你的验证人对小区作出更多贡献, 因为他们往往最最熟悉该区块链的专家,最终有助生态成长,令你亦能受惠。

这文章不短却又不深,希望能为初进入 LikeCoin,Cosmos,加密货币及区块链的各位打开一个入口,我未必能全面掌握每一个环节,亦不一定解释好,甚至会有错误,还望大家多多包涵,请留言

@特别声明

免责声明:本文不代表「恋上财经」立场,且不构成投资建议,请谨慎对待;
内容声明:本文内容为作者独立观点,不代表「恋上财经」立场;
版权声明:「恋上财经」充分尊重原创,如有侵权,请联系客服删除。
分享到
投资有风险,入市须谨慎。相关资讯不作为投资理财建议。
推荐阅读