区块链共识——你必须知道的/ Blockchain Consensus - What You Should Know
(本人译作。原作者:Katalyse.io。原文链接:点击此处。未经授权,禁止转载。谢谢!)
区块链技术系列(第二部分——共五部分)
让我们从对“共识”一词的基本理解开始。达成共识仅仅意味着就某事达成协议。为了达成共识,通常人们会首先分析他们希望从各个角度达成一致意见的任何事物(无论是物质事物还是意见),测试它并最终得出一个共同的结论。
如果存在歧义,你可以选择进行更多测试以接受或不接受。有时,你也可以要求你信任的人进行激励并为你检查。既然我们是人类,人们可以选择通过说谎或说服别人接受他们的故事来影响共识。
正如你所看到的,“信任”可能存在问题,而这些挑战可能会对共识制定产生负面影响。 区块链使你能够以独立的方式达成协议,从而解决了这个问题。那么,区块链如何达成共识?
图像: rawpixel.com
区块链共识
这里涉及两件事:共识和算法。当你将这两个概念结合起来时,你最终会得到一组规则和一系列步骤,这些步骤将使你能够在一组个人中达成广泛接受的决策。
共识算法不仅是区块链技术的重要组成部分,也是指导所有事件序列的网络规则的配方。 简单地说,该算法列出:当“X”发生时,则会发生“Y”,依此类推。这样,一致性算法验证、鉴别并跟踪区块的交易。交易有很多种。他们包括; 金融交易,例如比特币、访问dapps,交换所有权、交易数据等等。
共识机制在防止 “双花”(双重支出) 问题方面发挥着至关重要的作用。简单来说,双花可以比作以数字方式发送照片。你发送副本并保留原始图片。随后,两个人最终得到了类似的照片。现在想象一下,如果这可能发生在加密领域!人们会分别做同样的交易,变得非常富有,最终整个网络都会被摧毁。共识机制在防止这种欺诈方面很有用。
接下来,我们来看看区块链中的常见共识算法:
工作量证明(PoW)
PoW是最常见的共识评估方法。 关于PoW的特殊之处在于,它不需要所有节点(网络上的各方)提交他们的具体结论以达成共识。
相反,它在数据块(散列函数)中使用加密交易来创建情境(难以解决但很容易验证其正确性的数学方程式),其中只允许网络中的一个参与者分享关于所提交信息的结论(解决数学问题)。网络中的其他参与者仅验证结论。散列函数被编程,以拒绝错误信息。
在使用PoW的比特币中,公开验证正确答案的一方将获得新开采的比特币奖励。查找和验证有效和正确哈希的过程称为比特币挖矿。为比特币矿工提供激励可以增加更广泛的兴趣和参与度。一个庞大的参与成员网络创建了一个强大而安全的区块链,你可以轻松且匿名地进行交易。
然而,PoW的缺点是计算的巨大能源成本。采矿机器消耗大量电力,被认为对环境不利。此外,要成为参与者,你必须在网络中占有一席之地。
权益证明(PoS)
PoS系统使用算法代替散列计算,从而减少能源成本。它们也被认为更环保。它们使用简单的数字签名来验证所有权或股权证明。然后,系统选择参与者来验证数据库中的新交易并创建新块。
选择标准基于参与者持有股份或权益。你获得的权益越多,被选中的机会就越高,反之亦然。PoS还提供激励措施,帮助建立一个庞大的爱好者社区。
这里有一个很好的例子是Peercoin。它使用PoS并使用交易费用奖励成功的验证器,而不是新的“铸造”硬币。”Minting”正在PoS中创建硬币,就像在PoW中挖矿一样。虽然奖励更高权益的参与者会鼓励参与者获得更多权益,但随着富人越来越富裕并拥有更多控制权,这也增加了中心化的风险。
股份授权证明(DPoS) DPoS系统使用所谓的代议制民主。参与者使用他们的硬币权益投票给他们的代表,他们将验证数据库中的交易并接收新铸造的硬币。然后,代表根据投票相对于投票给同一代表的其他选民使用的硬币投票的硬币数量,与选民分享硬币。
DPoS提供多轮投票的灵活性,如果参与者认为他/她有更好的声誉,他们可以改变他们的投票并投票给新的代表。DPoS算法还采用了一种称为随机方程的特征,这使得选择代表的过程有点复杂,降低了系统交易干扰的风险。
DPoS也比PoS或PoW更快地达成共识,因为它有一小部分代表可供选择。然而,这会带来中心化的风险,因为代表性的代表可能会形成联合或秘密勾结。此外,它旨在为持有更多硬币的人提供更多的投票权(就像在PoS中一样),这可以将更多的影响转移给更少的利益相关者,从而增加中心化的风险。
替换选择
还有更多的希望! 新的区块链随处可见,并创造了新的共识算法。有些是通过对现有算法进行调整而生成的,而有些则是全新的。 我们将简要介绍三个。
有向无环图(DAG)
这种共识算法也称为区块链杀手,它不能在区块链上运行,并且由于其超低的交易成本而声称无限可扩展性。目前仍在进行一些项目,如Nano和IOTA已经在使用它。
权威证明 (PoA)
在此算法中,网络管理员验证并批准交易。它高度中心化,但也非常有效。这可以用于私有区块链,其中成员彼此了解并相互信任。
实用的拜占庭容错(PBFT)
拜占庭一般问题本质上发生在所有去中心的系统中,因为它们接受来自网络中所有各方的交易,即使某些方可能没有好处。解决这个问题的一种方法是使用PBFT。
有三个区块链依赖PBFT; Hyperledger、Ripple和stellar。在PBFT下,一个共识决定必须根据给定网络中所有参与者独立且匿名的决定来达成。
结论
共识算法的重要性怎么强调都不过分。它们有助于防止“双花”,建立信任并保持区块链的完整性。
由于匿名且没有中心化,区块链系统有自己的制衡机制来建立和保持共识。PoW、PoS和DPoS已经取得了相当大的成功。它们激励其成员进行交易验证,这可以保证它们的区块链安全。
然而,很明显,前三个共识模型具有其固有的风险,没有一个是完美的。因此,越来越多的模型正在被创建或改进,以保持区块链的去中心化精神。