前言:共识算法是区块链项目中最核心的部分。有分布式,就需要达成共识。目前为止,对于区块链项目争议最大的之一也是共识算法,比如EOS的DPoS机制。回到共识机制本身,我们如何来理解背后的本质呢?而不是人云亦云呢?从蓝狐笔记的角度,共识算法是一个不断演进的过程,也是治理机制的一部分,无须一概否定。本文作者Phil Glazer,文章来源于hackernoon.com,由蓝狐笔记社群芥弥翻译。
共识算法的使用是去中心化加密货币最重要的一个特征。共识算法对于加密货币而言至关重要的,因为它可以防止双花问题。从历史上看,双花问题是限制数字货币发展的一个重要挑战,直到最近,采用了分布式账本之后才得以改观。
正因为加密货币是由公开的和不可篡改的分布式账本实现的,因此必须采用共识算法来验证账本是否具有唯一性,以保证整个加密货币网络不被恶意节点所破坏。
正如TechTarget所解释,“在计算机科学中,共识算法是一种用在分布式过程或系统中,实现单一数据值的协议“。共识算法被设计用于涉及多个不可靠节点的网络中,实现可靠性。解决这个问题-即共识问题-在分布式计算和涉及多个代理的系统中非常重要。
为了适应这种现实,共识算法有必要假设一些进程和系统将不可使用,并且某些系统间的通信会丢失。因此,共识算法必须具备容错的能力。例如,通常假设只需要一部分节点作出反应,但最少需要百分五十一的节点反应。
在加密货币方面,共识算法被设计成用来确保交易是有效的,通过采用冗余的方法,引入多个参与者来验证交易准确性。
在当前的多个项目中,有四个主要的实现方式,每个都有其独特的优点和权衡:工作量证明(pow),权益证明(pos),委托权益证明(dpos)和拜占庭容错机制(bft)。值得注意的是,这是一个不断发展的领域,存在其他方法,并且可能会出现新的方法。
工作量证明(pow)
工作量证明是第一个成功的去中心化区块链共识算法。工作量证明被比特币和其他的一些加密货币使用,例如以太坊(以太坊计划迁移到权益证明),莱特币,zcash,门罗和其他一些别的。
工作量证明要求节点参与者执行计算密集型的任务,但是对于其他网络参与者来说易于验证。在比特币的例子中,矿工竞相向由整个网络维护的区块链账本中添加所收集到的交易,即区块。为了做到这一点,矿工必须第一个准确计算出“nonce”,这是一个添加在字符串末尾的数字,用来创建一个满足开头特定个数为零的哈希值。
工作量证明最显著的优点是,它在过去的几年里得到了实践的证明,这个比许多其他共识算法都更值得一提。然而,工作量证明并不是没有缺点,其中包含采矿的大量电力消耗和低交易吞吐量。
权益证明(pos)
对于权益证明,有很多实施提议。在所有的实施方案中,权益证明要求所有的参与者抵押一部分他们所拥有的token来验证交易。不同于通过完成复杂计算问题来验证交易,验证者需要通过锁定token来完成交易验证。
选取交易验证者的方式通常是根据他们所抵押的token占整个网络代币的比例,以及token抵押时长,或者是一些其他的方式以确保交易验证者的利益和整个网络的长期利益是一致的。
工作量证明通过不划算的耗费电力来阻止不良行为,权益证明则通过长期绑定验证者的利益和整个网络的利益来阻止不良行为。因此,我们很乐于见到它的成功。
通过锁定代币,如果验证者存在欺诈性交易,那么他们所抵押的token也会被削减。与工作量证明一样,权益证明的细节比这里呈现的要丰富得多。
权益证明目前被用到点点币,Decred, 以及不久之后会用在以太坊上。权益证明的优势在于它更经济,可能相比于工作量证明更能有效防止攻击,但是目前还没有被有效的证明,也没有在大项目中实施。
委托权益证明(dpos)
虽然委托权益证明和权益证明名字差不多,但实施细节却有显著的不同。在委托权益证明中,不同于权益证明的抵押token来验证交易,而是通过token的持有者投票产生一组交易验证者(超级节点)。
委托权益证明既是去中心化的,因为网络中的所有参与者都能参与投票选取节点来验证交易,但也是中心化的,因为只有一组交易验证者,这样的好处就是提高交易和验证的速度。
委托权益证明的实施中需要维持良好的信誉,持续投票流程以及验证节点的更换,来得以保证选取产生的验证者有良好的责任心和诚实感。
委托权益证明的优势在于良好的可扩展性以及快速的交易验证,但是缺点在于部分中心化,并且治理模式还没在大的区块链项目中被证明行之有效。委托权益证明目前被用于Steemit,EOS和BitShares等项目中。
拜占庭容错机制(bft)
拜占庭容错机制本质上是一个高度技术性的算法(像其他共识算法一样)。一般来说,加密货币项目所采用的拜占庭容错机制是通过允许将军(节点)分别管理一条链,并在彼此之间共享消息用来确保正确的交易记录和每个节点的诚实性。
比较突出的是,拜占庭容错机制被用于瑞波(验证节点由瑞波团队选出)和恒星币(任何人都可以当验证节点,信任节点由社区共识产生)。
拜占庭容错机制的优势在于可扩展性和低廉的转账费用,但是和委托权益证明一样,引入了部分中心化。
新兴的共识算法
正如前面所提到的,共识算法和交易验证的问题非常困难,并且非常微妙。目前有更多新的共识算法提出不同的权衡方案,并且可能会替代当前所使用的共识算法。
目前,dag正受到越来越多的关注,并且为可扩展性提出一个可靠的潜在解决方案,Hashgraph,Tangle和Block-lattice是最近受到关注的三种实现方式(同样,即将推出的更多内容- 并非所有关注都是正面的)。
总结
短时间内,共识算法必须在可扩展性和中心化之间进行权衡(尽管第二层网络可能会打破可扩展性和中心化这个平衡,例如分层网络,以太坊雷电网络,比特币闪电网络)。我们还是很期待能够看到,哪个共识机制能够刺激大规模的参与者参加稳定治理,以及协议和社区如何适应技术发展。