共识比较:Tendermint与EOS的dPoS

2018-03-20 最热共识机制盘点:DPoS v.s Tendermint | 作者: Baron Gong

当然,我们今天要讨论的重点并不是DPoS机制本身涉及的经济利益问题,而是来看看DPoS和另外一个也有代表机制的大热共识机制-Tendermint(见笔者前序文章)之间的差异。

验证流程的差异
  • 首先,在实现拜占庭容错BFT上,Tendermint假设区块链上的部分网络同步就能实现容错,而EOS只在完全同步的网络里才发挥容错特性。
  • 其次,Tendermint上的代表(验证者)只要大于4个且没有上限,而EOS上面的代表(主节点)是固定的21个。

在投票权方面,

  • EOS使用其代币投票来实现去中心化,拥有越多代币的人具有更大的投票权。
  • 而在Tendermint上为了成为验证者并具有一定的投票权,参与者必须锁定预设数量的代币,可以是自筹资金购买代币,也可以是其他代币拥有者授权委托。
解决无利害关系问题(nothing at stake)的思路差异

Tendermint通过“冻结”名为“债券保证金”的安全抵押物来解决无利害关系问题。为解锁债券保证金,必须在一段时间里慢慢解锁(一般是两到三个月),这被称之为解锁债券阶段

这允许所有轻节点用户—移动手机和那些没办法以恒定速率来与区块链同步的用户——能够有时间获得验证者名单的改变情况。没有解锁债券阶段,就容易被先前在验证者名单里但目前已经不在名单里的验证者所攻击。

在DPoS协议中不存在这样的经济惩罚。而是委托人在失责的情况下将失去声誉来作为“抵押物”;破坏者几乎没有经济激励的动机。DPoS假设失去委托授权加上参选的付出的沉没成本要大于执行双花攻击获益的行为。但是值得特别关注的是,缺乏明确在协议中规定的处罚让EOS网络变得脆弱,尤其是无利害关系仍然得不到很好的解决

CAP定理下的DPoS vs Tendermint

CAP定理指的是在一个分布式系统中,Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可得兼。

  • 当DDOS攻击发生时,Tendermint会直接停止共识服务。EOS则是继续运行,并在运行的过程产生很多的分叉,这种不一致的状态可能被攻击者利用。
  • 从这个角度来看,Tendermint将选择了C(一致性)优先于A(可用性),DPoS则相反

总得来说,

无论是DPoS还是Tendermint,都还没有在大规模经济利益和人群体的现实环境中经受过考验,寡头问题或者是激励偏差问题都是两个机制未来不得不面对的挑战,具体效果如何让我们拭目以待!


2017-11-19 互联链 共识算法的比较:Casper vs Tendermint
作者:Chjango Unchained | 翻译:许莉 | 校对:郭光华,Harriet

权益证明的陷阱
无利害关系
远程攻击
卡特尔形式

2017-11-08 互联链 共识比较:Tendermint 与 EOS dPoS 共识机制的比较
作者:Chjango Unchained | 翻译:茶猫 审阅:胖哥,Harriet

共识比较:Tendermint与EOS的dPoS_第1张图片
image.png

本文比较了EOS和Tendermint在各自底层技术中支持的不同共识系统,以及他们独特处理权益证明(POS)的方式。

由单一组织运营的分布式系统需要足够的弹性来应对各种各样的故障类型。另一方面,区块链由分布式的网络节点运行,需要更高级别的容错能力,被称之为拜占庭容错(BFT)。「拜占庭容错」假设存在敌对的情况:有一定比例的蓄意破坏者参与在网络里,拜占庭容错系统必须可靠地抵御预定数量的破坏者。

以比特币举例,在假设同步的网络里,比特币的拜占庭容错高达其全网算力的50%。在类似Tendermint 的异步的权益证明(POS)系统里,容错的临界值较低,为33%。然而,当考虑到比特币最大的采矿主会遵循卡特尔垄断理论自私地采矿,实际上比特币只能承受25%的破坏者。

Tendermint

“Tendermint 开源项目诞生于2014年,旨在解决比特币工作量证明共识(POW)算法中存在的速度、可扩展性和环境问题。通过使用和改进 1988年在麻省理工学院开发的经过验证的BFT算法,Tendermint团队率先概念性地证明了某种权益证明(POS)加密货币的安全性,以解决第一代权益证明(POS)加密货币存在的「无利害关系」问题,如NXT和BitShares1.0”——Tendermint

Tendermint Core 是一种拜占庭容错(BFT)共识引擎,具有抵御双花攻击的鲁棒性,并且可以抵御网络中至多三分之一的破坏者的攻击。Tendermint 区块链应用接口(ABCI)平台是一个适用于区块链开发者的工具包。(ABCI)兼容任何编程语言,该工具包允许开发者只需关心和实现保证去中心化应用运行的上层业务逻辑,而无需关心底层的共识细节。诸如Ethermint之类的平台就是建立在Tendermint ABCI平台之上。

Cosmos 网络被设计为「区块链互联网」,是另外一个建立在Tendermint ABCI的项目。Cosmos 设想了一个可互操作的多链网络,基于一个被称为Cosmos hub的枢纽中心,多条被称为"分区"(Zone)的独立区块链能以无需信任的方式实现加密资产的交换。为了让区块链开发者尽可能地轻松方便,Cosmos 还附带了一个名为Cosmos-SDK的工具包,这使得开发人员可以轻松地使用即插即用模块创建自定义区块链。

EOS

EOS定位是服务消费者的,支持企业级分布式应用解决方案的操作系统。

像以太坊一样,EOS是一个支持开源项目和面向消费者的分布式应用的智能合约托管平台。与以太坊相比,EOS通过放弃权衡部分去中心化程度来承诺一个更好,更具扩展性的系统。EOS的共识机制,被称之为授权权益证明机制(dPOS),它是由一组主节点来验证的联盟链,这些主节点是由排名在前(总共21个席位)的委托人组成的。与作为分布式全球超级计算机的Ethereum虚拟机不同,EOS承诺构建出一个“分布式操作系统”。

主要特征一览

区块链完成网络同步,必须解决分布式网络各个节点缺乏全局唯一“当前”时间问题。像所有容错系统一样,Tendermint假设部分网络同步。这是和EOS重大的一个区别,EOS只在完全同步的网络里才发挥容错特性。EOS和Tendermint都是基于授权权益证明机制(DPoS)的不同实现,然而,两者协议定义的“委托”机制完全不同。

. Tendermint共识机制 EOS授权权益证明机制(dPOS)
验证人数 4 21
平均出块时间 3秒 40秒
追责/追溯性 身份和债券抵押物 声誉损失和失去委托权
拜占庭容错率(BTF) 1/3 1/3(据说在99.9999%的情况下可行)
网络模型 异步网络 同步网络
可扩展性 通过分区(Zone)的水平扩展 少量的委托人能够实现高效吞吐量;高并发
可开发性 开发人员可用;可以用任何语言编程,专注在业务逻辑,而不是共识机制上。 对以下几种角色可用:开发者、智能合约编写者、企业家

EOS dPOS(民主权益凭证)

EOS定义民主选择出的“委托者”为区块链网络里的区块验证者,“委托者”这个术语可以与“区块验证者”等同使用。由21位“委托者”作为网络中的主节点。“委托人”的工作内容除新建区块,还有签署和验证交易。这些“委托者”是由EOS代币持有者投票成立的“授权事务所”。Daniel Larimer(EOS创始人)选择在EOS网络中只有21位“委托者”,是因为过多的委托者会分散EOS代币持有者的注意力,造成代币持有者决策力的削弱。

Daniel Larimer表明

“你需要三分之二以上的大多数人来组成可靠的系统。一开始比特股(BitsShares) 是100位委托者。然而对这100位委托者没有足够的群众监督,因为比特股持有者没有过多的注意力去审视这么多的委托人代表。将其降低到21位,能够减低系统运行的成本。网络也必须奖励运行完整节点的每个人”

Vitalik Buterin(以太坊创始人)将EOS描述为一个取消了默克尔树证明的联盟链

在以太坊技术中,默克尔树证明以及其他保护手段,让常规用户可以审核系统中运行的任何部分(即所谓的轻节点),除非用户想运行全节点。EOS依赖用户运行全节点去监督审核是否有破坏者或者委托人的疏忽,而没有像默克尔树证明这种内置、面向用户端口的验证机制,是不切实际的,也使得协同问题难以解决。

没有这种内置机制,就必须重度依赖于额外的协议方式,这甚至会成为一个共识问题。

  • EOS dPoS共识机制取决于其代币持有者准确评估委托者的表现,从而对授权或者解除授权作出合理的决定。
  • 另外,重大协议的改变,和Cosmos一样,是通过(选举出的)治理组织进行的。

EOS,使用代币投票来实现去中心化,拥有越多代币的人具有更大的投票权。EOS代币也可以作为企业和商业组织运营分布式应用(dAPP)交易费用的替代品。这种替代费用结构在可用性上存在问题,但是超出了本文讨论的范围。

最新不可逆区块(LIB)

根据 Danie Larimer 发布在 Steemit 上的文章,LIB是由三分之二乃至更多当选区块生产者所确定的区块。没有节点能够自动的切换到非LIB所在的分叉之上。

在一定数量节点失去活跃度的边界情况下,根据LIB的细节,理论上有可能导致网络的瘫痪。

Cosmos 共识机制

Cosmos 也采用委托权益证明的共识机制。但是,“委托”在Cosmos的文本中的语义有所不同。不同于EOS网络中,“验证者”负责验证交易和在链上提交新的区块。Cosmos的验证者通过广播加密签名作为投票来参与共识协议,这些投票用于新建区块。委托人将自己的一些代币(例如在Cosmos 中代币是ATOM)委托给他们所选择的验证者以贡献投票权重,委托人也因此可以获得一部分区块奖励。

为了成为验证者并具有一定的投票权,你必须锁定预设数量的代币,可以是自筹资金购买代币,也可以是其他代币拥有者授权委托与你。委托者将他们的代币(ATOMs)委托给其所选的验证者上,如果验证者不按验证协议的规定行事,他们可能会失去这些代币。

在每轮验证区块的间隙,这组验证者都要签署同意提交下一个含有交易信息的区块。这组验证者席位名单是动态变化的,会有验证者离开和加入这个共识程序。运行在Tendermint的共识协议最少需要4名验证者,没有最多验证者数量限制。Cosmos枢纽有100名验证者,但在预定的时间表里,随着时间的推移,将会有300名的验证者。但这个数量也可能被(投票选出的)管理者所修改。

快速结块

每个结块都是不可能更改的。取决于验证者的数量,结块速度可以达到1秒。一般来说,结块时间大概是3秒。

无利害关系问题

无利害关系问题对PoS共识机制是致命的,不解决这个问题,会让网络中的破坏者不需任何代价即可窃取网络。

Tendermint中有担保的交易

Tendermint通过称之为“债券保证金”的安全抵押物来解决无利害关系问题。为了解锁债券保证金,必须在一段时间里慢慢解锁(一般是两到三个月),这被称之为解锁债券阶段。

这允许所有轻节点用户——移动手机和那些没办法以恒定速率来与区块链同步的用户——能够有时间获得验证者名单的改变情况。没有解锁债券阶段,就容易被先前在验证者名单里,但是目前已经不在名单里的验证者所攻击。

EOS抵押物

在EOS协议中不存在这样的经济惩罚。而是委托人在失责的情况下将失去声誉来作为“抵押物”;破坏者几乎没有经济激励的动机。dPoS假设失去委托授权加上参选的付出的沉没成本要大于执行双花攻击获益的行为。但是值得特别关注的是,缺乏明确在协议中规定的处罚让EOS网络变得脆弱,尤其是无利害关系仍然得不到解决。

分叉追责

在POS协议中,如果有大于三分之一的验证者同意,就有可能出现分叉。为了阻止恶意分叉的风险,必须在协议中有一些保护措施。

Tendermint分叉追责

Tendermint的分叉追责是通过确认在链中造成恶意分叉的人员来追究验证者的责任。被认定有责的人将会被罚没债券保证金。当整个网络中三分之一的代币被没收,这将会是一个相当重的罚金。在硬分叉的情况下,发起硬分叉的一方将会失去他们的代币。

将三分之一的恶意破坏者造成的硬分叉恢复,就需要额外的协议。“权益拥有者协调剥离链协议”,可以让权益拥有者发起重组提议,将那些绝大多数验证者都同意的链分叉出去,这个链是由少数破坏者在某个区块高度擅自增加的链。

EOS(TaPos)分叉追责

EOS处理分叉有些不同。它用了一个称之为“交易权益证明”(TaPoS)的概念。它要求每笔交易都有最近区块头的相应哈希值。哈希值有两种作用:它可以防止双重支付,因为假设在伪造的链条上的交易,哈希值便会丢失;并且它向全网发出信号,这个信号来指明特定用户的特定代币在特定的链上。

不幸的是,TaPoS只能应对大段链(long-range)攻击——EOS有能力从这种攻击中恢复。然而,重要的是,它忽略了对小段区块(near-term block)修改的问题。受到区块中的小片段改动的影响,将使网络暴露脆弱性,比如,不是所有的交易记录都能被看到。没有被委托者证明的有效交易,也因此没有相应的哈希值,在这种微小改动区块的情况下变成孤立在链外的交易记录。

CAP定理

也被称之为“布鲁尔定理”,

CAP定理指出,在分布式系统中,不可能同时满足以下三个特性:一致性、可用性和分区容忍性。

当DDOS攻击发生时,Tendermint停止共识服务。EOS则是继续运行,并在运行的过程产生很多的分叉,这种不一致的状态可能被攻击者利用。Tendermint将一致性优先于可用性,EOS则相反。

最后:

由于拜占庭容错是维持开放、无需权限和分布式的系统所必需的,所以保证网络抗审查至关重要。我们希望分布式协议和每条链都足够安全,使相关代理人无法操控数据,即使他们能够短暂性地发起DDos攻击。如果委托人(或破坏者)决定阻止这些开放系统的访问,我们希望有可靠的安全性,而不是未经证明、华而不实的技术。

另外,声称尚未被攻击过,远远不能够代替说明具有防破坏的(数学上的)理论证明。这就是为什么当一个网络系统声称其安全性时,在数学上证明其安全性是如此地重要。由于大量资本流入那些募集资金硬顶非常高的加密货币,专业的攻击者(因利益驱使)探查出和利用在边界情况下网络的脆弱点。在这种情形,甚至0.0001%可能存在(可被攻击)的边界情况都意味着防备攻击证明不完备。

我们通过Jepsen.io这个分布式安全性分析工具来监测。Tendermint通过了检测,结果客观地显示Tedermint符合其安全标准: https://jepsen.io/analyses/tendermint-0-10-2。

最后,随着研究者构建更多的协议来推动WEB3.0的发展,我们发现了POS的一些薄弱点:

POS陷阱

  • 投票者的不关心:依靠代币投票会造成这样的共识问题。历史上,通过去中心化的投票来治理,都只有不到10%的人参与到其中【参见:the DAO carbonvote, the EIP186 carbonvote, the DAO proposal votes, and Bitshares dPoS votes in 2014.】
  • 投票越来越趋向中心化:Buterin(以太坊创始人)用“公共地悲剧”理论(一种涉及个人利益与公共利益对资源分配有所冲突的社会陷阱)来说明:“因为每个投票者只对结果有很小的影响,激励他们去正确地投票要低于理想社会激励水平的几千倍,这意味会出现像大家都把币委托给交易所来投票,并不关心交易所如何投的情况”
  • 激励偏差:持币者和用户是两类人,持币者被利益驱使所激励去提高币价,而常常这些持币人会导致价格涨幅不稳定,这对使用系统的用户来说无益。

感谢:
Tendermint 研究员: Sunny Aggarwal, Adrian Brink 和 Ethan Frey 对本文的技术审阅
币乎社区支持

你可能感兴趣的:(共识比较:Tendermint与EOS的dPoS)