如何理解EOS使用的 DPOS 机制

本文由币乎(bihu.com)优质内容计划支持

如何理解EOS使用的 DPOS 机制_第1张图片
image.png

DPOS 相对于 POW 有非常高的效率, 那么DPOS是如何做到这一点的呢? 本文就来和大家一起探讨什么是 DPOS.

授权证明共识

一个强大而灵活的共识协议

授权证明(DPOS)是最快,最有效,最分散,最灵活的共识模式。DPOS利用利益相关方同意投票的权力,以公平和民主的方式解决共识问题。

所有的网络参数,从收费时间表到块间隔和交易规模,都可以通过选定的代表进行调整。块生产者的确定性选择允许平均仅1秒确认交易。也许最重要的是,共识协议旨在保护所有参与者免受不必要的监管干扰。

DPOS 需要解决的问题

任何共识过程必须回答的问题包括但不限于:

  • 谁应该产生下一个更新块来应用于数据库?
  • 下一个块何时应该生产?
  • 什么交易应该包括在该块?
  • 协议的变化如何应用?
  • 竞争的交易历史应该如何解决?

目标是找到这些问题的答案,以确保对希望获得对网络的控制的攻击者的共识过程是强大的。实际上,获得控制意味着获得单方面审查交易的能力。对于希望利用不同计算机上的数据库状态暂时不一致的攻击者,这个过程也应该是健壮的。

被选举的证人生产

“证人”这个词被选中是因为这是一个没有规定的合法中立的词。传统的合同往往有证人签名的地方。对于非常重要的合同, 有时会使用公证人。证人和公证人都不是合同的当事人,但是他们在证明合同是在指定的时间由特定的人签字的非常重要的角色。在比特股中,证人通过将其包含在块中来起到类似的验证签名和时间戳事务的作用。

在DPOS下,利益相关者可以选择任意数量的证人来生成块。块是一组更新数据库状态的事务。每个账户每个证人允许一个投票,这个过程被称为批准投票。通过总审批的前N名证人被选中。证人数量(N)的定义是至少有50%的投票利益相关方认为有足够的权力下放。当利益相关者表达他们想要的证人数量时,他们也必须投票给至少许多证人。利益相关者不能投票支持比实际投票的证人更多的权力下放。

每当目击者产生一个块时,他们都会为他们的服务付费。他们的薪酬由利益相关方通过他们选出的代表来决定(稍后再讨论)。如果证人没有出示任何信息,那么他们就没有报酬,可能会在未来被投票出去。

活动证人的名单在每次维护间隔(1天)内更新一次。然后将目击者洗牌,并且每个目击者轮流以每2秒一个固定的时间表产生一个块。所有目击者转了一圈之后,他们又被洗牌了。如果证人没有在他们的时间段内产生一个块,那么该时间段被跳过,下一个证人产生下一个块。

任何人都可以通过观察证人的参与率来监测网络的健康状况。历史上,比特股保持99%的见证参与。任何时候目击者的参与程度都低于一定水平,网络用户可以允许更多的时间进行交易确认,并对其网络连接性保持警觉。此属性为BitShares提供了独特的优势,即在故障发生后不到1分钟,就可以提醒用户潜在的问题。

通过选定的代表进行参数更改

代表以与证人类似的方式选出。代表成为特殊帐户的共同签名者,该特殊帐户有权提出对网络参数的更改。这个帐户被称为创始帐户。这些参数包括交易费用,块大小,见证薪水和块间隔等。在大多数代表批准了拟议的变更之后,利益相关者被授予2周的审查期,在此期间他们可以对代表投票并使提议的变更无效。

这种设计的选择是为了确保代表在技术上没有直接的权力,网络参数的所有变化最终都得到了利益相关者的认可。这样做是为了保护代表不受可能适用于加密货币的经理或管理员的规定的影响。在DPOS下,我们可以说,行政权力掌握在用户手中,而不是代表或证人。

与证人不同的是,代表们不是有偿职位。但是,这些参数预计不会经常变化。

的成因帐户在技术上可以执行任何其他帐户可以执行任何动作,这意味着它可以发送资金的成因帐户或指定成因帐户作为托管代理。该创世记也可用于发放新的资产。选举代表可以帮助利益相关者执行需要高度信任和责任感的任务,其数量不胜枚举。

改变规则(或者说硬分叉)

有时需要升级网络来添加新的功能。在DPOS下,所有的改变都必须由积极的利益相关者的批准来触发。虽然证人在技术上可能单方面串通和改变他们的软件,但这样做并不符合他们的利益。证人的选择是基于他们对区块链政策保持中立的承诺。保持中立保护证人免受指控他们是网络的管理员/经理/业主/经营者。证人只是利益相关者的雇员。

开发人员可以实施他们认为合适的任何更改,只要这些更改取决于利益相关方的批准。这一政策对开发者的保护就像保护利益相关者一样,并确保没有任何人单方面控制网络的方向。

改变规则的门槛与替换51%的当选证人相同。利益相关者参与选举证人越多,就越难改变规则。

最终,更改规则取决于网络上的每个人升级他们的软件,并且没有区块链协议可以执行规则如何改变。这意味着只要坚持代码普遍预期的行为,就可以在不需要利益相关者投票的情况下推出硬分支“错误修复”。

在实践中,只有安全关键的硬件应该以这种方式来实现。开发商和证人应该等待利益相关者批准即使是最微小的变化。

双重支出攻击

在区块链重组排除之前包括的交易的情况下,双重花费可能发生。这意味着目击者因互联网基础设施的中断而导致通信故障。使用DPOS,通信故障导致双重支出攻击的可能性非常低。

该网络能够监测自己的健康状况,并能立即发现通讯中的任何损失,因为目击者未能及时制造积木。发生这种情况时,用户可能需要等到一半的证人确认交易,这可能是一两分钟。

交易作为证明

网络上的每个事务可以可选地包括最近块的散列。如果这样做,交易的签署人可以确信他们的交易可能不适用于任何不包含该块的区块链。这个过程的一个副作用是,随着时间的推移,所有利益相关者最终直接证明了交易历史的长期完整性。

区块链重组

由于所有的证人都是选举出来的,负有很大的责任,并且有专门的时间段来生产区块,所以很少有可能存在两个相互竞争的连锁的情况。网络延迟不时会阻止一名见证人及时收到前面的信息。如果发生这种情况,下一个证人将通过建立在他们首先接受的任何一个块上来解决问题。有99%的证人参与,交易有一个99%的机会证实一个证人后。

尽管该系统对于自然链重组事件是有力的,但是仍有一些潜在的软件错误,网络中断,或无能或恶意的证人产生比一个或两个块长的多个竞争历史。软件始终选择证人参与率最高的区块链。证人自己经营,每轮只能生产一个块,参与率一般比较低。没有任何证人(或少数证人)能够做出更高参与率的区块链。参与率通过比较产生的块的预期数量与实际产生的块的数量来计算。

最大限度地分散

在DPOS下,每个利益相关者的影响力与其利益成正比,没有利益相关者被排除在影响之外。市场上的其他每一个共识系统都不包括绝大多数利益相关者的参与。有许多不同的方法可以替代利益相关者。一些替代方案使用仅限邀请的系统。其他人通过让参与费用高于他们的收入来排除参与。其他的系统在技术上也允许每个人都参与,但是他们可以被一些产生绝大多数块的大型玩家安全地忽略。只有DPOS确保块生产平均分配给大多数人,每个人都有一个经济上可行的方式来影响这些人是谁。

你可能感兴趣的:(如何理解EOS使用的 DPOS 机制)