主页 > imtoken钱包不能安装 > 科普 | 关于共识机制
科普 | 关于共识机制
达成和执行共识是加密货币存在的核心。 那么什么是共识,它是如何实现的呢? 让我们从字典定义开始。
Consensus:名词,指普遍接受的协议。
看起来很简单。 我们可以将共识理解为一种普遍的或全球性的协议。 达成共识就是大家对某件事持有相同的观点,而共识的反义词就是争议或分歧。
线下共识
在计算机科学和加密货币中,代表用户在计算机网络中达成共识。 在我们深入研究计算机如何达成共识之前,让我们先探讨一下现实世界中的共识。
一个共识社会可以让我们的生活更有效率,所有权就是一个重要的例子。 你所在的城市没有人对谁拥有“123 Main Street”以及为什么拥有任何疑问? 因为我们都服从负责将所有权记录在案的地方政府。 这就是中心化,一种非常流行的维持共识的方式。 当有负责记录保存的实体时,争议很容易解决。
这种共识的中心化权威在我们的金融和法律体系中随处可见,比如银行、城市登记处、中介机构、支付处理商等,它们作为权威,帮助解决纠纷。 中心化机构在发达国家运作良好以太坊共识机制pos,但仍有局限性:首先,必须得到公众的认可和信任; 其次,它很容易被操纵。 这些中介机构也有运营成本,因此他们通常选择不处理非常小或有风险的交易。
历史局限
在所有权方面,由于过度依赖权威,共识体系存在两大问题:不透明和不可篡改。 不透明意味着当局不向公众解释他们的内部事务,迫使公众信任他们。 可篡改意味着没有人可以阻止机构篡改这些历史记录。
这类特权系统无法处理所有交易,交易审计难度大,对信任度依赖性强。 这些限制长期以来一直阻止人们通过互联网获取资金。
早期分布式系统
拜占庭容错 (BFT)
一个强大的共识算法必须能够处理行为不端的参与者,无论是恶意的还是由于硬件或软件故障。 1982 年,Leslie Lamport、Robert Shostak 和 Marshall Pease 将这个问题形式化。
他们发表的论文证明,在给定的通信条件下,至少有 2/3 的参与者必须是诚实的,系统才能收敛。 为了更直观地理解这一点,想象一下,如果正好有 1/3 的参与者不诚实,他们可以串通起来,告诉一半诚实的参与者一件事,另一半告诉另一半另一件事。
-拜占庭协议失败的简化视图-
正是这项开创性的工作使共识问题脱颖而出。 处理潜在不诚实参与者的共识也称为拜占庭协议。 要达成共识,必须满足以下条件:
Finalizable:所有进程确定一个值
有效性:所有进程都能够根据进程的输入值确定一个有效值
一致性:所有进程都同意相同的值
分布式系统算法分为同步和异步两大类,具体取决于通信是否即时发生。 在现实世界中,除非所有参与者都位于同一地点,否则通信需要时间来传递信息,这称为异步。 但是,如果通信足够快速和可靠,算法创建者可以基于信息同步传递的假设来简化他们的设计过程。 同步算法的前提是信息即时且100%可靠传递。
所有算法都必须平衡安全性和网络活跃性,这是分布式系统的两个属性。 安全意味着所有的答案都是一致的,没有错误的答案。 网络活动意味着算法会逐渐找到答案,并且必须返回答案。
1985 年,研究人员 Fischer、Lynch 和 Paterson 表明,异步共识算法不可能同时保证安全性和活性,即使过程中只有一个错误。
1988 年,Lamport 提出了具有开创性的共识算法 Paxos。 它后来于 1998 年作为期刊文章发表。Paxos 在安全性方面毫不妥协,其设计使得安全性很难阻碍网络进程。 该算法不保证一致性,但最终在实践中表现出一致性。 仍然有很多系统算法使用Paxos。 Google 在其 Chubby 锁服务中使用 Paxos。
矿业
到目前为止,参与运行共识算法的各方大多是友好的。 算法通常建立在关于参与者是谁的高级假设之上。 数据结构和传播的问题在过去被掩盖了,但现在与加密货币的构建密不可分。
工作量证明 (PoW)
工作证明标志着共识的新时代。 PoW 在称为块的轮次中建立共识。 共识参与者被称为矿工或区块生产者。 创建一个新块需要解决一个计算困难但易于验证的数学难题。 这个数学谜题就像一张不断刷新的彩票,它决定了谁有权向账本中添加一笔款项。 作为回报,工作量证明系统奖励每个产生的有效块。 第一次,维持共识是有偿的。
每个矿工私下工作以扩展区块链以获得区块奖励。 博弈论表明,如果大多数矿工是诚实的,那么最长的区块链将得到延伸,共识将得到推进,而无需参与者相互合作或相互信任。 PoW 不是依靠一直传递信息直到达成共识,而是依靠不间断地朝着共识前进。
在工作证明之前,只能在一组已知的参与者之间达成共识。 允许任何人参与共识系统会使系统容易受到女巫攻击。 女巫攻击是指个人在网络上创建许多身份以淹没系统。 开放网络中的共识算法必须采取一些措施来防止用户使用虚假身份攻击系统。 工作量证明通过要求参与者为物理资源付费来解决这个问题。
优点:非常简单和安全。 阻止 Sybil 攻击和允许公开参与的好方法。
缺点:目前,规模经济导致挖矿中心化。 消耗大量物理资源。
著名的例子:比特币、以太坊(目前)、莱特币、门罗币、ZCash
股权证明(PoS)
基于工作量证明的概念,权益证明旨在更快、更环保、更容易分片(网络子组内的劳动分工)。 为了获得生产区块的权利,而不是解决数学难题,区块生产者使用他们的股份对他们生产的区块进行投票。 在 PoS 中,可以提前安排时间表,提高出块效率。
权益证明系统面临的两个最大挑战是“无风险”问题和相关的远程攻击问题。 在原始版本的 PoS 中,如果矿工看到一个区块链分叉,他们会打算将他们生产的区块添加到两条链上,因为这不仅可以对冲他们的赌注,而且无论哪条分叉链成为主链他们都可以获得奖励. 与消耗能量的 PoW 不同,PoS 没有对所有区块链进行投票的机会成本,这可能会阻止网络走向单一共识。
有应对冷漠的策略。 以太坊正在推行一种称为“惩罚条件”的策略,该策略通过惩罚签署两个相互竞争(即不同)历史版本的矿工来防止恶意链分叉。
远程攻击通过重组区块链的重要区块来改变交易历史。 即使上述无私动机成立,攻击者仍有可能成功篡改很久以前发生的交易。
股权证明的一个明显优势是能够创造真正的终结性。 一组节点(又名验证器)保证历史在这个检查点之前没有被改变。 检查点的创建基于足够多的区块生产者为区块担保(即投入自己在链上的权益),查询和广播验证者对区块的意见。 当超过法定人数声明同意该块已完成时,该块将完成,确认验证器已接受该块已完成。
真正的确定性对于组合分片很重要。 重写历史的复杂性和后果将在不同的分片中被放大。
优点:提供确定性实现分片的可能性,加快出块效率。
缺点:比 PoW 更复杂。 “无利害关系”是一个理论问题。
著名的例子:以太坊(未来)、Decred(混合 PoW 和 PoS)、Dfinity
委托权益证明 (dPoS)
委托权益证明 (dPoS) 是 PoS 的一种特殊形式。 不同的是,dPoS 中的大多数选民都希望将自己的职责委托给代理节点。 通过限制参与人数,解决网络延迟问题,更快达成共识。 如果代理节点的数量很少,则可能需要高级硬件系统。 由少数拥有顶级设备的区块生产者组成的网络可确保网络能够以更高的吞吐量运行。
当吞吐量是一个主要问题并且可以容忍一定程度的中心化时,限制区块生产者或区块验证者的数量并使用 dPoS 可能是可取的。
优点:更快的共识,因为延迟不是问题; 更高的吞吐量。
缺点:去中心化程度减弱。
著名的例子:EOS、BitShares、Tron
采矿的替代品
实用拜占庭容错 (pBFT)
当网络中的各方相互了解并相互合作时,他们可以放弃 PoW 或 PoS 模型以太坊共识机制pos,选择使用传统的共识算法。 一种这样的传统共识算法称为实用拜占庭容错 (pBFT),是原始拜占庭容错算法系列的一个分支。 1999 年,麻省理工学院的两位研究人员提出了 pBFT。 由于 pBFT 需要参与者之间的大量通信开销,因此它仅适用于小团体。
该算法适用于一组彼此熟悉的参与者,因为必须知道彼此的身份才能防止 Sybil 攻击。 由于参与者知道彼此的身份,pBFT 不是开放的、无需许可的加入,而是一个基于许可的系统。
优点:在彼此熟悉的各方之间达成可靠的共识。
缺点:仅支持少量参与者; 不是无需信任的系统,因为用户必须信任区块验证器。
著名的例子:Hyperledger、Ripple、Stellar
有向无环图 (DAG)
要求所有参与者在一定时间内达成共识限制了系统的吞吐量。 有一种新方法不需要定期的全球共识。 这种方法不会将交易批量放入一个大家都同意的区块中,而是将交易单独添加到历史记录中。
添加交易时,区块会引用之前的交易,并且可以确信之前的交易已被接受。 如果有足够多的交易可以链接到一笔交易,那么这笔交易被网络接受的概率就会增加。
还有其他不同的方法可以防止用户创建冲突的历史记录。 Iota 中的每笔交易都包含一个小型 PoW 以防止垃圾交易。 目前尚不清楚这是否会在实践中起作用,因此目前所有 Iota 交易都需要由“协调员”盖章,从而使系统高度中心化。
优点:快速“确认”和高吞吐量
缺点:实际效果和不变性未经证实。
著名的例子:Iota、Byteball、Nano
分叉(又名共识失败)
为了使计算机网络或区块链达成共识,人类参与者必须首先就达成共识的方法(共识机制)达成一致。 早期研究者认为达成共识需要满足终止性、有效性和一致性,关键在于有效性。 协议规则只允许某些结果。
实现有效性的规则通常足以应对社会分歧(但也有例外)。 如果社区中的两个或多个派别在他们不同意其网络上的有效内容时不能期望将网络保持在一起,则网络可能会出现分歧。 由于社会分裂而导致网络分裂的两个众所周知的例子是以太坊经典和比特币现金的出现。
综上所述
为了使用分布式系统创建数字货币,系统必须就谁拥有什么达成一致。 全球共识消除了歧义或伪造的可能性。 共识机制的选择决定了网络的结构、吞吐量和系统的可信度。
共识算法就像保持系统完整和一致的技术粘合剂。 共识算法的创新有望提高速度、增加吞吐量并减少对环境的影响。 但是,开发人员还必须仔细权衡增加复杂性的成本和收益。 在分布式系统中,复杂性与稳健性不一致,加密货币相互竞争网络效应。
免责声明:Jordan Clifford 是 Scalar Capital 的董事总经理,该公司拥有上面列出的部分(但不是全部)资产。 本文不是投资或法律建议。
原文链接:
@jcliff/on-consensus-e47920cd8914