首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

这是您点的“加密货币共识算法”套餐

图片来源:Chase

学习新的知识

看见世界的可能性

字数:2219 预计阅读时间:6分钟

去中心化加密货币项目最重要的特征之一就是共识算法的使用。共识算法对加密货币的健康运转非常重要,因为它可以解决双重支付问题。双重支付问题在数字货币发展史上曾经一度成为数字货币发展的重要挑战,这一挑战直到近期区块链账本技术的发展和应用之后才得到解决。由于加密货币是由公开的仅追加型分布式账本所支持的,所以开发者必须采用共识算法来验证账本的正确性,并且确保网络不被恶意节点所破坏。

TechTarget对共识算法作出了如下解释:“在计算机科学中,共识算法是在分布式过程或系统中实现单一数据值协议的一种方式。设计共识算法的初衷是在含有多个不可靠节点的网络中实现可靠性。解决共识问题在分布式计算和多代理系统中非常重要。为了适应现实情况,共识算法必须假设某些过程和系统无法使用,并且某些通信会丢失。因此共识算法必须具备容错能力。开发人员通常假设只需要一部分节点作出反应,但最少需要51%。”

图片来源:slow facts

具体到加密货币中,共识算法的设计目标是确保交易的有效性以及在多个参与者中的分布性,从而验证交易的准确性和弹性。然而,交易的有效性和分布性往往是彼此矛盾的,不同的共识算法对此有不同的权衡取舍方式。

在当前的加密货币项目中,共识算法主要有四种实现方式,每种实现方式都有独特的优缺点和权衡方式。这四种方式是:工作量证明(PoW),权益证明(PoS),委托权益证明(DPoS)和拜占庭容错算法(BFT)。需要指出,共识算法的研究是一个正在不断发展的领域,除上面四种之外也有其他的实现方法,而新的实现方法也在不断出现。

工作量证明(PoW)

工作量证明是第一种成功的去中心化区块链共识算法。目前工作量证明仍然被比特币和许多其他加密货币使用,如以太币(虽然以太币计划改换到权益证明),莱特币,ZCash,门罗币等等。

工作量证明要求节点参与者执行计算密集但易于由其他参与者验证的任务。在比特币的情况中,矿工通过竞争向由整个网络维护的区块链中添加所收集到的交易(即区块)。为了做到这一点,矿工必须第一个准确计算出“nonce”,这是一个添加在字符串末尾的数字,用来创建一个开头有特定个数为零的哈希值。

图片来源:hdpwalls

工作量证明最显著的优点是,它在过去的几年里已经由实践证明有效,这一点优于许多其他种类的共识算法。然而工作量证明也不是没有缺点的,例如,它的挖矿过程需要消耗大量的电能,并且交易吞吐量很低。

权益证明(PoS)

对于权益证明,学者们提出了多种实现方法。在所有的实现方法中,权益证明都要求参与者抵押一部分他们在网络中拥有的代币来验证交易。不同于通过完成复杂计算问题“挖矿”来验证交易,权益证明的铸币者(minter)需要通过在交易中锁定代币来进行抵押

铸币者是否可以被选为完成区块链的人通常取决于他们所抵押的代币价值占整个网络代币价值的比例、代币的锁定时长以及一些其他可以保证铸币者与整个网络的长期利益一致的方式。

工作量证明通过消耗成本较高的复杂计算来阻止不良行为,权益证明则将验证调整到网络中的“最大持股人”(这意味着这些人也最期待区块链的顺利完成)身上来阻止不良行为。

图片来源:STEAM

因为铸币者已经将代币抵押到了链上,所以如果他们进行欺诈性交易,那么他们所抵押的代币会被削减。当然,权益证明的具体细节比这里讲的要丰富得多。

权益证明目前被应用于点点币,Decred等加密货币,不久之后也会应用在以太币上(以太坊已经在发展时间线上列出了改换到PoS的计划)。相比于工作量证明,权益证明的优势在于它在电能消耗上更经济,且防攻击的能力可能会更高。但是目前它还没有被实践证明有效,也没有在大项目中实施。

委托权益证明(DPoS)

虽然委托权益证明和权益证明名称类似,但其在实现细节上却有显著不同。在委托权益证明中,不采用权益证明中抵押代币的交易验证方式,而是通过代币持有者投票产生一组节点来充当交易验证者的角色

委托权益证明是去中心化的,因为网络中的所有参与者都能参与投票选取验证交易的节点;但委托权益证明也是中心化的,因为只有一组数量很少的交易验证者进行决策,从而提高了交易和验证的速度。

图片来源:SEA

委托权益证明的实现需要维持良好的信誉,持续的投票过程并引入“洗牌系统”,以保证当选的验证者负责且诚实。委托权益证明的优势在于它是可扩展的,并且可提供快速交易验证;它的缺点在于部分中心化,并且其治理模式还没在大的区块链项目中被证明有效。

委托权益证明目前用于Steemit,EOS和BitShares等项目中。

拜占庭容错算法(BFT)

和其他共识算法一样,拜占庭容错算法本质上也是一个高度技术性的算法。一般来说,加密货币项目所采用的拜占庭容错算法允许各个验证者分别管理各自的链的状态,并在彼此之间共享信息,以确保交易记录的正确性和每个节点的诚实性

拜占庭容错算法主要用于瑞波币(验证节点由瑞波团队预先选出)和恒星币(任何人都可以充当验证节点,信任由社区共识产生)。

拜占庭容错算法的优势在于可扩展性和低廉的交易费用,但它和委托权益证明一样引入了部分中心化。

图片来源:babagra

新兴的共识算法

正如前面所提到的,共识和交易验证的问题非常困难,并且十分微妙。目前也在不断出现采用不同的权衡方式的新共识算法,它们可能会替代当前所使用的共识算法。

目前,有向无环图(DAG)正受到越来越多的关注,它为可扩展性提出了一个有前景的潜在解决方案。Hashgraph,Tangle和Block-lattice是最近受到大量关注的三种实现方式。

结论

目前,共识算法还必须在可扩展性和去中心化程度之间进行一定的取舍。然而,未来的第二层网络可能会使这个平衡的可扩展性一端发生改变。至于究竟哪些共识机制能够刺激大规模参与和稳定治理,以及协议和社区将如何适应技术发展的问题,我们不妨拭目以待。

版权声明:转载请注明来源—公众号块链资本论

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180605G1ATXK00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券