三种共识机制 | 区块链世界幸存记8

区块链的工作量证明是属于底层架构中的“共识层”,共识层是区块链系统中用于证明区块数据的有效性的机制。常见的共识机制有三种:工作量证明、权益证明和股份授权证明。

1.工作量证明(Proof Of Work,简称POW)

工作量证明是通过多个节点共同竞争解答一道难题的方式,让解答速度最快的节点产生新的区块,就是通常说的“挖矿”,比特币就是使用这种共识机制。这种共识机制的好处是通过了工作量证明的筛选,能产生新区块的节点都是算力最强的,所以会驱使所有节点都不断优化自身的算力,从而使区块链整体的算力提升,让“拜占庭将军问题”得到解决。

工作证明机制看似很神秘,其实他的特点就是完成的难度高,耗费时间长,但是验证的速度很快。这种方式在社会中的应用非常广泛,例如,毕业证、学位证等证书,就是工作证明,拥有证书即表明你在过去投入了学习与工作,生活大部分事情都是通过结果来判断的。

工作量证明的设计很巧妙,不过工作量证明太浪费了。比特币网络每秒完成600万亿次SHA256运算,而最终这些计算没有任何实际或科学价值。这些运算存在的唯一目的是用来解决工作量证明问题,而为了使恶意攻击者不能轻易地伪装成几百万个节点和打垮网络,这些问题被故意设置得很难。当然了,这种浪费本质上不坏。假如工作量证明没有任何替代者,相对于允许世界上任何一个人在瞬间就能给其他人几乎没有手续费地转账的去中心化和半匿名的全球货币网络带来的巨大好处,它的浪费也许只算是很小的代价。工作量证明在2009年确实是唯一的选择。但是,在四年之后,我们已经研究出来了一些替代者。

2.权益证明

工作量证明是相当浪费资源的。比特币网络每秒种进行600千亿次运算,最终这些运算并没有任何实际或科学用途。其唯一目的在于解决工作量证明问题,而工作量证明如此之难,是为了阻止攻击者轻易伪装成数以百万计的节点,并控制网络。当然,这种浪费也不是天生的。在没有其它选择的情况下,这种工作量证明的浪费对于获得一种去中心化的,半匿名的而允许所有人都能够几乎免费即时发送现金到其它人的全球货币网络来说,这个代价可能不算大。在2009年,工作量证明确实是唯一的选择。但是在四年之后,我们有了其它选择。

权益证明要求证明人提供一定数量加密货币的所有权即可。中本聪没能做到这一点的原因很简单:在2009年之前,没有任何一种数字财产可与密码协议层面上产生互动。Paypal和信用卡在线支付已经存在十几年了,但这些系统都是中心化的。如此这些中心化的系统也使用权益证明的话,就会给Paypal及信用卡供应商在提供虚假交易上提供可乘之机。IP地址及域名是部分去中心化的,但目前针对这两种方式都无法建立一种所有权证明而且无法验证。实际上,第一种能够实现在线权益证明的数字财产就是比特币本身(及普通的加密货币)。

当权益证明区块生成时,矿工需要构造一个“钱币权益”交易,即把自己的一些钱币和预先设定的奖励(像是一种利率,类似于比特币的区块奖励)发给自己。SHA256 哈希值的计算只同交易输入、一些附加的固定数据以及当前时间(是一个表示自1970年1月1日距离当前时刻的秒数的正数)有关。然后根据工作量证明的要求检查这个哈希值是否正确,除了难度与交易输入的“币龄”成反比外,这个过程与比特币的相关过程很类似。在PPCoin中,币龄被定义为交易输入大小和它存在时间的乘积。因为哈希值只和时间和固定的数据有关,因此没有办法通过多完成工作来快速获取它。每个PPCoin交易的输出都有一定的几率来产生有效的正比于币龄和交易货币数量的工作。这就是PPCoin的工作原理了。从本质上讲,每个PPCoin都可以表现的像是一个“仿造的挖矿设备”,但是它有一个有趣的性质:随着时间的推移它的挖矿能力线性上升但是每当它找到有效的区块时挖矿能力就归为零。

目前尚不清楚像PPCoin那样使用币龄而不是仅仅输出交易货币数量是否绝对必要。这么做的本意是阻止矿工重复使用他们的货币乘以时间,但是PPCoin目前的设计确实不允许矿工有意识地用具体的交易输出生成区块。然而,系统每秒随机地选择一个PPCoin,这也许会给它的主人创造区块的权力。如果不把币龄作为随机性的一个权重因数,这过程大致等价于比特币挖矿,但是没有浪费。可是,存在一个支持币龄存在的更复杂的论证:因为你创造区块失败的时间愈长,则你成功的几率就愈大,所以矿工对创造区块的时间判断越准确,进而削弱了为了降低风险而创立类似于中心化的矿池的动力。

3.股份授权证明

股份授权证明在尝试解决比特币采用的传统工作量证明机制(POW)以及点点币和NXT所采用的股份证明机制(POS)的问题的同时,还能通过实施科技式的民主以抵消中心化所带来的负面效应。

(1)背景介绍

通过引入“受托人”这个角色,DPOS可以降低中心化所带来的负面影响。一共有101位受托人通过网络上的每个人经由每次交易投票产生,他们的工作是签署(生产)区块。通过去中心化的投票过程,DPOS能让网络比别的系统更加民主。与其要让我们完成在网络上信任所有人这个不可能完成的任务,不如让DPOS通过技术保护措施来确保那些代表网络来签署区块的人们(受托人)能够正确地工作。除此之外,在每个区块被签署之前,必须先验证前一个区块已经被受信任节点所签署。像DPOS这样的设计,实际上缩减了必须要等待相当数量的未授信节点进行验证后才能够确认交易的时间成本。

在DPOS系统中,中心化现象仍然存在,但它是受约束的。区别于其他保障加密货币安全的算法,DPOS体系里每个客户端都能够决定谁能够被信任,而不用必须信任拥有最多资源的人。这使得DPOS网络能够获取中心化的一些主要优点,同时又以适当的程度维持了去中心化的本质。系统会通过公平选举的方式进行强化,并让每个人都有机会成为代表大多数用户的受托人。

(2)DPOS背后的基本理

• 给持股人一把可以开启他们所持股份对应的表决权的钥匙,而不是给他们一把能挖矿的铲子。

• 最大化持股人的盈利。 

• 最小化维护网络安全的费用。

• 最大化网络的效能。

• 最小化运行网络的成本 (带宽、CPU等)。

(3)持股人掌控大局

DPOS的基本特点就是持股人永远掌控大局,这样一来系统便是去中心化的。虽然投票的方式不够完美,但当涉及到某事物 (例如公司)的共同经营权时,这便是唯一可行的办法。幸运的是,如果你不喜欢公司的经营者,你可以抛售股份,而市场的反馈将促使持股人比一般群众更理性地进行投票。这样一来每一位持股人都能够选出某人,让他来代替持股人进行区块的签署 (你也可以称他为受托人)。任何能够获得超过1%选票的人都可以成为受托人。这些受托人们便组成了“董事会”,并轮流签署区块。如果其中一位“董事”错过了签署该轮区块,客户端会自动将他的选票移走,因此错过签署区块的“董事们”将会被投出董事会,改由其他人加入。董事会成员会收到一些酬劳,以此作为他们进行竞选、担负风险、保证上线时间的工资。而他们也必须缴纳一小笔保证金,其金额相当于生产一个区块的收入的100倍。要能够达成盈利,一位董事(受托人)必须保证99%以上的在线时间。

    原文作者:守鱼
    原文地址: https://www.jianshu.com/p/21ef68610af9
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞