天涯书库 > 区块链社会:解码区块链全球应用与投资案例 > 六、区块链的共识机制 >

六、区块链的共识机制

区块链通过数学共识机制是非对称加密算法,即在加密和解密的过程中使用一个“密钥对”,“密钥对”中的两个密钥具有非对称的特点:一是用其中一个密钥加密后,只有另一个密钥才能解开;二是其中一个密钥公开后,根据公开的密钥其他人也无法算出另一个密钥。在区块链的应用场景中,一是加密时的密钥是公开的、所有参与者可见的(公钥),每个参与者都可以用自己的公钥来加密一段信息(真实性),在解密时只有信息的拥有者才能用相应的私钥来解密(保密性),用于接收价值。二是使用私钥对信息签名,公开后通过其对应的公钥来验证签名,确保信息为真正的持有人发出。非对称加密使得任何参与者更容易达成共识,将价值交换中的摩擦边界降到最低,还能实现透明数据后的匿名性,保护个人隐私(如图1.4所示)。

图1.4 私钥、公钥间的关系

资料来源:巴比特、兴业证券研究所

(一)工作量证明机制

所谓工作量证明机制,是指一方(通常为证明者)提交已知难以计算但易于验证的计算结果,而其他任何人都能够通过验证这个答案就确信证明者为了求得结果已经完成了大量的计算工作。

现代最早工作量证明应用是亚当·巴克(Adam Back)于1996年提出的以基于SHA256的工作量证明为反垃圾邮件手段的“Hashcash”(哈希现金)。系统通过要求所有邮件发送时都必须完成大强度的工作量证明,这将使垃圾邮件发送者发大量电子邮件变得很不划算,却仍允许用户们在需要时向其他用户正常发送邮件。现在比特信为了同样的目的使用了一个类似它的系统,而Hashcash的算法也已经被改造为以“挖矿”为形式的比特币安全的核心。

比特币在区块链的生成过程中使用了PoW机制,一个符合要求的Block Hash(区块链散列值)由N个前导零构成,零的个数取决于网络的难度值。要得到合理的Block Hash需要经过大量尝试计算,计算时间取决于机器的哈希运算速度。当某个节点提供出一个合理的Block Hash值,说明该节点确实经过了大量的尝试计算。当然,这并不能得出计算次数的绝对值,因为寻找合理的Hash是一个概率事件。当节点拥有占全网n%的算力时,该节点即有n/100的概率找到Block Hash。

PoW看似很神秘,其实在社会中的应用非常广泛。例如,一个人具有的一些技能,如外语口语、乐器或是运动技巧,通常也是一种工作量证明。不用检查四、六级证书,一个人就能流利地说外语或者演奏乐器,那么他一定在这些技能上投入了足够的工作量,而且这个工作量与技能的熟练程度是呈正相关的。如四、六级证书,一般认为在不能作弊的考试里采用足够多的客观题,也可以做到证明工作量的效果,因为一个人从概率上不可能连续蒙对大量的客观题。因此一般认为文凭也是有说服力的。同样地,飞行员的飞行小时数也说明问题,如果你飞了一万小时还活着,大概就不是靠运气。

在一些其他场合也可以见到PoW的踪影,比如电子游戏里的胜率、K/D比率,在大量的交战中一定的胜率能说明玩家的实力。同样有些游戏里的成就系统、装备体系也是PoW,一般认为成就点数高的玩家在游戏里投入更多,更不容易诈骗,有时候交易点卡要求装备等级或者成就点数也是这个道理。

有些人认为这一方法存在缺陷,即工作量证明浪费资源,截至2016年4月,比特币网络的算力达到1300PHS,即每秒完成13331兆亿次SHA256运算,而最终这些计算没有任何实际意义或科学价值。美国科技网站Vice曾撰文认为这种方式非常不环保,由于多方面原因,比特币网络消耗的能源正日益增长。在最不乐观的情况下,到2020年,比特币网络的耗电量将达到丹麦整个国家的水平。

但是也有观点认为由于需要巨大的投入,促使攻击比特币区块链将会是异常艰难的事情,从而确保了比特币巨大的安全特性,同时也是人类目前构建的最安全的数据库。

(二)权益证明机制

权益证明机制是一种SHA256的替代方法,从根本上解决了工作量计算浪费的问题,它不要求证明者完成一定数量的计算工作,而是要求证明者对某些数量的钱展示所有权,通过每一笔交易销毁的币天数(coin days)来实现,币天数代表一个特定的币,距离最后一次在网络上交易的时间。在给定的时间点内,只存在有限币天数,它们在那些长期持有大量货币结余的人手中持续增加。所以币天数可被视为在网络中权益的代表(proxy,代理服务器)。每当这些币有交易时,币天数即被销毁,因此不能被重复使用。

简单地说,PoS就是把PoW由算力决定记账权变成由持有币数(以及持有的时间)来决定记账权。在PoW中,是按照算力占有总算力的百分比,从而决定你获得本次记账权的概率。在PoS中,持有币数占系统总币数的百分比(包括你占有币数所持有的时间),决定着获得本次记账权的概率。

这就类似于现实世界中的股票制度,在一个公司中,大家是按照持股比例来获得分红,持有股权相对较多的人获得更多的分红权。这种安全机制的理由在于利益捆绑,即大股东比小股东更加关注系统的安全性,所以发动攻击的话,大股东损失更加惨重。在这个模式下,不持有PoS的人无法对PoS构成威胁。PoS的安全取决于持有者,与其他任何因素无关。

反对者认为PoS会加大整个系统中的贫富差距,持有更多币的人更容易挖到新币,即持有股份更多的人会获得更多的分红,从而导致系统内贫富差距拉大。但是,拥护者认为,区块链没有理由去解决系统内的贫富差距问题,而且股份持有者获得相同比例的分红也是现实世界中的原则,并没有人对此有太多的异议。并且在PoW中,那些拥有矿机更多、算力更大的人,也将获得更多的币,因此,PoW也同样存在这样的问题。

(三)股份授权证明机制

DPoS是一种新的保障区块链网络安全的算法。它在尝试解决比特币采用PoW以及PoS问题的同时,还能通过实施去中心化的民主方式,用以抵消中心化所带来的负面效应。

在系统中,每个币就等于一张选票,持有币的人可以根据自己持有币的数量,来投出自己的若干张选票给自己信任的受托人。这些受托人可以是对系统有贡献的人,也可以是投票者所信赖的人,并且受托人并不一定需要拥有最多的系统资源。投票可以在任意时间进行,而系统会选出获得投票数量最多的101人(也可以是其他数量)作为系统受托人,他们的工作是签署(生产)区块,且在每个区块被签署之前,必须先验证前一个区块已经被受信任节点所签署。

这种共识机制模仿了公司的董事会制度,或者是议会制度。能够让数字货币持有者将维护系统记账和安全的工作交给有能力有时间的人来专职从事该项工作。由于受托人进行记账也能够获得新币的奖励,所以他们会努力拉票,并且维护好与投票者的关系及试图通过参与系统的发展,从而吸引更多人给他投票。

这解决了PoW中的一个主要问题,即在比特币的PoW系统中,持有比特币的人对于系统没有发言权,他们不能参与记账决定权,也不能左右系统的发展,因为系统发言权主要掌握在矿工和开发者手中。而如果矿工或者开发者做出了对比特币持有者不利的决定,比特币持有者除了自己离开系统之外,没有任何可以做的。而在DPoS中,持有者对于记账者拥有足够的选举权,任何试图对系统不利或者作恶的人都随时可能被投票者从受托人的位置直接拉下。

DPoS另外一个巨大优势就是由于记账人数量可控,并且轮流进行记账,能够通过提供更好的软硬件环境来构建效率极高的区块链系统。目前看来,DPoS似乎是效率最高的区块链系统,在理想环境下,能够实现每秒数十万笔的交易数量。

(四)混合证明机制

由于不同共识证明机制有着不同的优劣势,有些系统选择采用多种共识机制的方式来取长补短。较为典型的就是以太坊采用了PoW+PoS的共识机制。