共识算法的比较:Casper vs Tendermint

当前位置:首页 > 币圈百科 > 共识算法的比较:Casper vs Tendermint

共识算法的比较:Casper vs Tendermint

2022-12-02币圈百科236

漫长的股权证明之路

股权证明的定义可以查看和理解。

1982年,拜占庭将军问题首先由兰波特、肖斯塔克和皮斯提出。Cosmos的Ethan Buchman是这样描述的:“这是一个在折衷的通信网络中实现分布式协议的问题,也就是在不可靠的环境中建立可靠系统的问题”。从1982年到1999年,没有人能够创造出一个能够解决拜占庭将军问题的体系。很长一段时间,拜占庭一般问题与计算无关,因为那个时候,互联网演变成了基于云的集中式计算模式,需要解决的只是容错。

所以容错算法得到普及,比如1998年发明的Paxos算法,2013年发明的Raft算法。然而,1999年发明的实用拜占庭容错(PBFT)在学术界之外尚未被采用。直到2008年,中本聪将网络规模的分布式拜占庭容错(BFT)算法设计到区块链方案中,才使得拜占庭容错得到普及。当这个原型出现时,系统研究领域的人们开始围绕着将学术上的“奇迹”应用到现实世界中去构思各种想法。

2011年,BitcoinTalk论坛组织了一场关于一个叫做权益证明(PoS)的概念的讨论。最初的PoS协议,如“点币”,并没有取得令人满意的结果。第一个真正提出将BFT研究应用于区块链公共环境的人是Jae Kwon,他在2014年创建了Tendermint。

当时的PoS研究做了一个很大的假设:假设系统中的一系列对等节点是长期静态稳定的。这在区块链的环境中是完全不现实的。Jakwon的主要突破是使Tendermint能够通过使用块、哈希链接、动态验证器集和循环领导者选举,将BFT研究应用于复制状态机(区块链)领域。

在Tendermint环境中,出现了大量的共识算法(蜜獾、大毒蛇、Tezos、Casper),这些算法都包含了BTF研究的元素和区块链上其他模块观察到的元素。

所有为权益证明所做的研究都指向一个重要问题:在不耗尽稀缺物质资源的情况下,我们能否达到工作量证明(PoW)的安全水平?这个问题可以翻译为:PoS的投票权以链币计价,而不是以计算能力计价。区块链的PoS共识比可伸缩性讨论得更广泛。运营电力开采的高成本和环境外部性问题刺激了大量资源涌入POS安全研究。

本文主要讨论了加密货币中使用权益证明的三种主要PoS协议的特点:以Vlad Zamfir为首的Casper the Friendly Ghost(CTFG)、以Vitalik Buterin为首的Casper the Friendly Integrity Gadget(CFFG)和以Jae Kwon为首的Tendermint。

权益证明陷阱

无利益

最开始有很多不同的方式来描述一般的权益证明陷阱,后来提出了无利益。Jakwon在2014年5月以“错误选择谬误”这个不幸的名字首次提到了这个问题。2014年7月,Vitalik将比特币开发者描述的确切定义推广为“没有兴趣”。问题呈现了这种情况:验证者可以通过在给定高度投票给多个冲突的块来有效地破坏安全性,而没有任何代价。

简单的PoS实现对于这些攻击非常脆弱。灾难性的是,因为没有激励鼓励所有人永远专注于一个独特的链,而且每个激励都必须同时在冲突的链上重复签名,为了获得更多的块奖励,经济上最优的策略就变成了尽可能多的分支投票。下图显示:

在简单的PoS设计中,竞争链上的期望票数高于单链上的期望票数p1在工作量证明中,对在多个链中挖矿的矿工的“惩罚”是必须将他们的计算能力(非常稀缺的资源)分开。 在现代非退化PoS设计中,这种成本必须嵌入到协议中,以模拟物理功率挖掘的限制。

Vitalik buter in在2014年1月引入的“slasher”概念或协议内的惩罚可以减轻这种攻击。同年,Jakwon进一步计算了这种方法,这是实现Tendermint共识协议的第一次迭代进展。以及允许这种惩罚的苛刻条件,它对所有非退化的BFT协议都是有帮助的,甚至本文中出现的三个共识都被采用。

远程攻击

远程攻击来自用户必须提取安全押金的权利。这就产生了一个基本问题,因为这意味着攻击者可以从任何距离建立一个分支,而不用担心被切断。一旦差额被解除,不从某个高度块进行长距离投票的激励就被取消了。换句话说,当超过2/3的验证者解除绑定时,他们可以恶意创建包含先前验证者集的第二个链,这可能导致任意交易。

这对于权利证明协议来说是相当致命的,因为安全模型必然是“主观的”。当参与网络需要大量的社会信息时,那么这种安全模型就会被称为“主观”。新节点加入网络后,可能会对网络的当前状态得出不同的结论,因为它们的决策是基于主观信息,即社会声誉。相反,工作负载证明的安全模型必须是“客观的”,因为当前的网络状态总是工作负载最大的一个,而新节点对网络状态的结论总是相同的,因为它们的决策是基于客观信息的。

PoS的远程攻击在弱主观性模型下得到修正,需要访问网络中后续的新节点:

必须当前绑定。相信只有具有当前保证金的验证节点必须经历“解冻”期来解除绑定保证金。解除绑定后,令牌需要几周到几个月的“解冻”时间来实现“同步”。前提(即延迟消息)在N个块之前禁止恢复,其中N是保证金的长度。该规则使任何长距离分支无效。PoW chain

p2蓑衣网小编2022Casper(s)和Tendermint中验证者集合的可选存储采用简单的锁定机制(在“Tendermint”中俗称“冻结”)将股权锁定一段时间(几周到几个月之后“解冻”),以防止任何恶意的联合验证者违反安全性。在CFFG算法中,一个分支选择规则永远只能修改最后一个块之后的块,防止了远程攻击。通过使用timestamp,当CFFG中的长距离fork试图修改早于最终块的块时,它将被协议直接忽略。

卡特尔形式

第三,最后一个障碍是,任何面临任意价值的经济形式都会面临真正的寡头垄断问题,即使是本地加密货币也不例外。

“加密货币难以置信的集中,挖掘计算能力也是如此。寡头垄断竞争是许多真实市场的常态。少数相对富裕的核查者之间的协调比大多数相对贫穷的核查者之间的协调容易得多。在我们的案例中,卡特尔形式是完全可以预见的。”——Vlad Zamfir,Casper历史第四章

Tendermint依靠附加协议管理方法来对抗寡头垄断验证者。虽然在审查制度上没有达成一致,但依靠带外社会信息解决卡特尔形成的基本原理是,用户最终必然会注意到卡特尔的形成,社会会到处搬弄是非,然后放弃或投票重组被攻击的区块链。

到目前为止,Vlad的Casper协议是唯一一个明确使用共识内审查激励来打击卡特尔的模式。

概述

公平性证明算法的实现方式有很多种,但公平性证明设计的两个主要原则是基于链的PoS和基于拜占庭容错的PoS(BFT)。Tendermint是基于拜占庭的容错PoS设计,CTFG是基于链式的PoS设计,CFFG是两者的混合。

计算机科学中的CAP理论返回了在分布式数据系统中提供超过2/3保证的不可能性:可用性、一致性、分区容错。基于链的PoS算法倾向于选择高可用性的,而不是高一致性的,因为高可用性意味着可以处理所有的事务,但代价是全网一致的状态复制。相反,BFT的公司倾向于选择高一致性。基于BTF

拜占庭容错共识算法的

权益证明源于30多年的丰蓑衣网小编2022富研究。Tendermint(2014)是Castro和Liskov于1999年推出的第一个实用拜占庭容错(PBFT)算法PoS的改编版本。基于BFT的PoS协议在多轮投票过程中伪随机地安排一个验证者提出一个区块。然而,区块的提交和最终确定取决于提交区块中most ——中所有验证者的2/3的签名。可能需要几轮签名才能最终确定区块(译者注:这种多轮投票类似于现实世界的波尔卡舞,这也是polkadot这个名字的由来)。BFT系统只能容忍1/3的故障,包括故障或恶意攻击。

Tendermint核心

Tendermint主要包括两个主要技术:区块链共识引擎和通用应用接口。名为Tendermint核心模块的共识引擎确保在每台机器中以相同的顺序记录相同的交易。应用程序接口被称为应用程序块链接接口(ABCI),它允许用任何编程语言编写的程序处理事务。

在核心模块中,Tendermint基于循环投票机制工作,这也是共识协议的原则。一轮分为三个处理步骤:验证者提出区块,发送提交意向,签名后提交新区块。这个机制为原子广播提供了一个安全的状态复制机,增加了一个责任层——。安全失败可以完全归咎于Tendermint。

偿付薄荷共识算法从验证者集合开始。验证者都维护区块链的完整副本,并且可以使用公钥来识别验证者的身份。在每一个新的区块高度,他们轮流提出一个区块。每轮投票中只能有一个验证者提出一个区块,并且要用验证者对应的私钥签名,这样如果出现错误,就可以找到对其负责的验证者。然后剩下的验证者需要对每个提案进行投票,投票需要用自己的私钥签名。这些组成一个回合。但是,由于网络的异步性,可能需要几轮才能提交一个新块。

p3当验证者提蓑衣网小编2022交块时,它可能由于以下几个原因而失败:当前提议可能脱机,或者网络可能遇到了延迟。Tendermint允许跳过验证器(也就是说,当轮到一个验证器阻塞时,但这个验证器不阻塞)。验证者在进入下一轮投票之前等待一小段时间,以接收提议者(此轮区块的验证者)提议的整个区块。这种对超时的依赖使得Tendermint成为一个弱同步协议,而不是异步协议。然而,其余的协议是异步的,只有当收到超过三分之二的验证者集消息时,验证者才会处理事情。正因为如此,Tendermint需要大部分验证器才能100%正常运行。如果1/3或更多的验证器离线或脱机,网络将停止运行。

假设不到1/3的验证器是拜占庭的,Tendermint保证安全永远不会被攻破。3354也就是说,验证者(超过2/3)永远不会在同一高度提交冲突块。因此,基于Temdermint的区块链永远不会发散。

到目前为止,Tendermint的设计决策真的是把安全性和不变性放在了灵活性之前。在现实世界中,系统真的停止运行的可能性很大,协议外的组织更新某种软件后,参与者需要重启系统。

在数字加密货币社区只有少数人了解Casper以及它为什么有价值的时候,Tendermint奠定了Casper研究的基础。 这个洞见是:如果一个链本身是高度容错的,那么你可以依靠这个链来很好地决定谁将产生块,但是如果这个链本身是不可靠的,那么你就陷入了鸡和蛋的问题,这也是之前所有其他共识算法的大灾难。

这种设计决策被认为不如以太坊、比特币等可用性优先协议。比特币中的权衡是:如果其网络被分裂,比特币在各种攻击下将失去安全保障。其实这是一个不变的理论,就是当你的置信区间是100%的时候,那么你就在遵循一个正确的链条。你将使用这个链来选择谁将生产下一个块,但是一旦你移动到一个不安全的链,就没有清晰的路径让你返回到正确的链。

偿付铸币厂的显式属性

可证明的活动安全阈值:1/3的验证者公/私链兼容。立即最终确定:1-3秒,取决于验证者的数量。弱同步网络中的一致性安全性

基于链的公平性证明

基于链的公平性证明模仿了工作量证明一致性算法。在这个公平证明中,基于链的PoS严重依赖于同步网络,并且通常优先考虑可用性而不是一致性。Casper(s)是Tendermint核心理念的改编版,适用于倾向于活跃而非安全的环境。

CFFG

CTFG是一个确定的PoS结构,但CFFG是一个覆盖以太坊现有PoW提议机制的PoS——,它结合了PoW和PoS,由Vitalik Buterin领导。

无论是比特币还是以太坊的PoW共识协议都不会做出“最终”决定,区块可能会被重组到一些过去的区块高度。当一个区块没有机会被修改时,就可以称之为“定案”。因为工作量证明不提供这样的修改保证,所以它被认为是一致不安全的。相反,当我们继续拉长链条时,区块的最终确定性概率越来越高。为了给以太坊区块链添加期望的最终确定性和51%的抗攻击性,CFFG实现的逻辑完美地提供了这种效果。

CFFG将通过若干步骤引入,并以保守的方式从邰方的PoW安全模式逐渐过渡到PoS安全模式。Casper的第一次迭代将实现这里讨论的混合PoW/PoS协议,最后一次迭代很可能借鉴CFFG和CTFG,向完整的PoS协议发展。

CFFG是基于连锁的PoS和基于BFT的PoS的混合体,因为它吸收了两者的思想。它的模块化覆盖设计使得更新当前的PoW链更加容易,因为这是将系统升级到完全不同的共识模型的更保守的方式。

Casper的应用逻辑存在于智能合约内部。要成为Casper中的验证者,您必须拥有ETH并在Casper智能契约中存储ETH作为杠杆。在Casper的第一次迭代中,会保留block proposal的机制:仍然使用Nakamoto PoW共识,矿工可以创建block。但是,为了最终确定区块,Casper的PoS覆盖范围具有控制权,并且在PoW miners之后有自己的验证者进行投票。

检查点是Casper的PoS共识中最重要的部分。Casper对50个块增量的最终确定性的评估称为检查点,每50个块段称为epoch。当验证者每个周期发送一个投票消息时,这被触发。处理过程。

在一个周期前最终化检查点需要2个周期才能完成,也就是需要两轮投票。例如,当超过2/3的验证者(也就是大多数)给一个检查点c投票了,那么就说这个检查点已经被”审判”了。下一个周期,当大多数人给检查点c投票了,会发生两件事情:c变成了被审判的并且c已经最终化了。c这个周期也就代表着最后一个最终化的周期(LFE)。

回顾一下,一个区块最终化需要两个条件:

大多数(超过2/3)验证者在周期1的时候给区块1进行了投票,因此审判了区块1大多数(超过2/3)验证者在周期2的时候给区块2进行了投票,区块2是区块1的子区块,因此在周期2的时候最终化了区块1

在理想执行中,一个区块的最终化是按照下面的步骤的:

区块1的2/3投票→审判区块1→2/3投票区块2→最终化区块1

其中区块2是区块1的子区块

p4当一个检查点被最终化之后验证者就会得到报酬。不过,如果有两个最终化的检查点在相同高度上分杈时,那么就破坏了安全性,这个时候就达到了消减的条件,最少1/3的保证金将会被消减掉。当安全性被破坏的时候可以将错误归因的证据当作交易广播给PoW的矿工。然后PoW就将这个证据交易组成一个区块来进行挖矿,提交了这个证据的验证者会得到查找者的费用。当此事发生的时候,签署了在冲突区块的有罪验证者将会在两条链上被消减掉。

现在如果一个矿工进行蛮力攻击,那么会发生什么?现在Casper的最终化区块链可以防止PoW的攻击者,就算是51%或者更多的计算力重写最新检查点之外的历史也会被阻止。因此,Casper协议提供了安全。不像CTFG,因为CFFG就是不同提议机制上的一层覆盖,Casper不能确保活跃性,因为活跃性是取决于提议机制的。

验证者是被激励着集合在权威链上的,因为如果他们持续在不同的链上进行投票将会受到惩罚。slasher 2.0的形成让验证者不仅仅会为双重投票而受罚也要为在不正确的链上进行投票而受到惩罚。不过这也造成了一个“泄气”的窘境,因为验证者担心如果出现一个分杈而自己不确定到底哪个才是权威的,然后投错票之后被消减所以选择退出投票。

CFFG的明确属性

最终化:超过20分钟最终化。每隔50块(一个周期)就最终化一次区块,防止PoW挖矿暴利攻击共识安全性可证明的活跃性优先可用性

CTFG

CTFG是Vlad Zamfir的正确构造(CBC)共识协议专用于对抗寡头垄断的真实世界的环境。CTFG是工作量证明中GHOS或GHOST协议的PoS改编版,用于其分杈选择规则。CTFG背后的指导设计原则是基于加密经济学的,使用旨在实现评估安全的正规方法。与前面详细说明的CFFG混合协议不同,CTFG是纯粹的权益证明的概念。

“Casper刚刚开始的时候只是简单的‘友好的幽灵’,它对于PoS而言是GHOST的改编,完善的激励让卡特尔‘友善地’变成‘非卡特尔’的验证者。”

——Vlad Zamfir,Casper的历史第5章

与工作量证明类似,CTFG会为一致性和可用性进行权衡。特别,在区块没有被最终化的时候,随着在链中的深度越深的它们就会越安全。CTFG与CFFG有一点相似,链头部的处理总是比区块最终化的处理要快很多。

Casper的PoS提议机制与Tendermint提议机制最大的区别是相比较伪随机选择领导者,前者的验证者可以基于自己见到的块提出块。

Casper提供的一个独特功能是参数化安全阈值。与比特币中使用6个确认来确定一个经济最终状态类似,CTFG中的“评估安全”提供了一个验证者可以有一个与其他验证者不同的安全阈值功能。Casper的设计目标是在网络维持PoS低开销的时候能够允许验证者选择自己的容错阈值。

Casper对Tendermint的核心优势在于网络随时可以容纳一定数量的验证者。因为Tendermint中的区块在创建的时候需要最终化,所以区块的确认时间应该短一点。为了达到短区块时间,Tendermint PoS能够容纳的验证者数量就需要有个限制。由于CTFG和CFFG到在区块创建的时候都不需要安全性,所以以太坊网络相对于cosmos容纳100个验证者来说,可以容纳验证者的数量会更加的多一点。

CTFG的明确属性

可用性。Casper的节点在它们达成共识之前可以块分杈异步安全性生存。Casper的决策可以在部分同步中存活,但是不能在异步中存活卡特尔阻力。Casper的整个前提是建立在抵制寡头垄断攻击者基础之上,因此不会有任何勾结的验证者可以超越协议安全性。取决于每个验证者的评估安全阈值

未来的工作

公链在产品上运行是一个比较新生的技术。在这个范例中到目前为止显示出不会腐败的唯一安全模型就是工作量证明。权益证明的设计空间还非常的大,而且工程学上权衡的理解也远远不够,因为权益证明是一个研究前沿也没有足够的数据。不用多说,要达到一个最佳的PoS共识算法,我们还有很多未来工作需要完成。

Tendermint的一个改进可能是新的提出机制,或者将Tendermint的多轮投票过程压缩成一轮投票。

第二个未来工作的领域可能是利用更高级的加密技术让区块头的签名更小一点。因为我们是通过Cosmos来建立一个“区块链的互联网”,所以将轻客户端证明从一条链上移到另一条链上就是我们的核心工作。从这个观点来看的话,使用更加高级的密码学将区块头的大小减少三十倍或者更多是非常有利的。目前,100验证者,Tendermint的区块头接近4KB,它们都是验证者的签名。我们可以使用高级的加密技术让100个签名从3.2KB减少到64字节。

还有一些优化p2p层的方法,这样我们就可以显著减少点对点需要最终化块的流量。在未来的工作中,不仅仅是压缩区块头中的数据量,还会减少发送到对端的数据量。这样的话,在Cosmos网络初始100个验证者的阈值之上,Tendermint还可以增加更大的验证者集。

翻译作者: 许莉翻译校对:郭光华原文地址:Consensus Compare: Casper vs. Tendermint

共识算法的比较:Casper vs Tendermint | 分享给朋友: