首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

除了一票30投,Thomas设计的投票规则还有什么需要解读的

版权声明:

前言

许多人联系我,询问我为什么EOSIO软件的默认投票机制设置成赞成投票(Approval Voting)机制,而没有选择其他的投票机制呢?

一、简单解析Approval Voting

在开始 Thomas 的正文之前,我们先来通过一张图了解什么是 Approval Voting,以及在概念上与常用的复数投票的区别在哪里?赞成投票可以简单的理解为:一种在选举中可以进行多选的投票制度。这对于本文后续的内容有很好的帮助。

图由Yvonne制作

二、举例说明你的eos token实际上是怎么投票的

EOSIO软件赋予每个账户可以给30个节点投票的权利。比如,现在有N个候选人被确定具有被投票的资格,而投票者将会从这N个候选人中投出自己喜欢的区块生产者,而每个Token所投的节点候选人上限为30个。则默认系统下(这里需要强调的是,如果有必要系统也可以进行定制)会选出得票最高的21个节点作为最初的活跃固定节点,那么剩下的49个节点作为备用节点,而71名(包含71名)之外的节点则自动会被剔除。

译者注:简而言之,就是你持有一个 EOS 的 Token,就可以同时给30个节点候选人投票,所以这不同于我们日常概念里的一人一票,而是设计成一票30投的权重。

另外,这里 Thomas 也将之前 21+100(备用节点)的结构,改成 21+49(备用节点),这个数量级上变化还是非常大的。具体原因不详。

另外,每个账户的投票权与其所持有的 Token 数量保持一致。比如 Alice 拥有100个 Token,她想为她所钟爱的30个节点进行投票,那么她个人所投每一个节点就获得100分;Bob拥有50个Token,那么同样,他所投的每一个节点就有50分。比如,他们二人同时为名称为“EOSfoo”的候选节点进行投票,那么该节点的所获得分数就为(100+50)分。

三、为什么要采取赞同投票机制呢?

以我个人对投票机制的理解,赞同投票机制也许没有分数投票机制效率高,但二者都优于排序投票机制。

排序投票机制的问题可以回溯到上世纪五十年代,可以参见“阿罗不可能定律”(“Arrow’s Impossibility Theorem”)(http://ncase.me/ballot/)(译者注:知乎参考链接https://www.zhihu.com/question/29529633)

由于阿罗不可能定理,排序投票机制被排除在外,我们可以参考一下剩余选项的贝叶斯分析法——向下滚动,直到看到如下图形,其位于投票的游戏(Gaming the Voting)的第239页,该书由William Poundstone撰写。

From page 239 of William Poundstone’s book Gaming the Vote. Source:

Electology.org(https://electology.org/tactical-voting-basics)

选项如下:

1.随机选取一位候选人

2.多数票投票机制(目前美国的标准)

3.Borda计数

4.Condorcet投票法

5.积分(范围)投票机制

6.赞成投票机制

显而易见,积分(范围)投票机制胜于赞成投票机制,但赞成投票机制相较于其他投票机制则最为简单。

然而,这项模拟是对于单一候选人选举的所涉及的——如果要选出21个节点的话这方法就难以解决了。值得庆幸的是赞成选举制度兼顾了简易和效率。

这就是我们将赞成投票机制作为系统设定的默认机制的原因。

如果你想让 EOSIO 采用另外的系统,你可以在主网上线之后提交宪法修正案,或者在主网上线之际说服大多数节点和投票者设计不同的默认系统。

译者话:此条简单分析了为什么 EOSIO 要设计成赞成投票的原因,从理论和模拟两方面进行解析,同时也强调这是默认系统机制下的运行方式。如果有不同的想法和意见,可以在主网上线之后通过:①提交宪法修正案修改默认系统 ;②与其他节点进行沟通,获取大多数节点的同意之后修改默认系统。

四、为什么每个账户要设计成三十张选票而不是一张呢?

EOSIO社区的一位合伙人Todor 对基于赞成投票机制的投票行为进行了模拟,他分别模拟了每个账户拥有从1到50张选票时候的投票情况。他的数学模拟表明,比起一人一票,每个账户拥有三十票的时候风险相对则是较小的,尤其是在区块链被少数相互勾结的人控制的时候。

于我而言,每个账户可以拥有多枚选票,过去几年保持了稳定和成功运行 Bitshares和 Steemit,这是很好的,这是一个好迹象。

译者话:一个 Token 有30张选票,既保证了稳定性又保证了系统不在控制之内的运行,看来 Bitshares 和 Steemit 前面的运行经验让Block.One没有太多更好的选择,设计成21个节点其实也是参考之前的经验。

五、为什么要以设计成不同权重的投票机制

在现实世界中,我们都习惯于一人一票的选举,(至少在理论上)。许多 DPOS区块链(包括 BitShares和 Steemit)都使用权重加权投票。有时被称为(有点令人困惑)“一个Token一张票”,但它实际上是每个账户有30张票,每个投票的权力(如上所述)等值于该账户拥有的代币数量。相应的,每个节点的投票总数等于投票给他们的Token代币的数量。

这是不是就会变成寡头、财阀及富人统治一切?

是的,没错。区块链就是只基于财产的,因为区块链没有设立监狱,不能检举人们的罪恶,不能规定和保卫国界,也不能拥有军队。在现实世界里,”一人一票“如此重要是因为这样的制度根本不会出现在以财富为基准的区块链世界里。然而,拥有更多的代表虽然意味拥有更大的权力—,同时也将承受更大的风险。

拥有更多的代币将更容易受到区块链上的负面结果的影响——水能载舟亦能覆舟。

译者话:这里明确的阐明区块链是基于财产的,没有现实世界的强制手段和机制只能设计成“谁代币多谁说了算”的运营机制,但却能最大程度的避免“不作恶”,维持系统的良好运营。这一点也是目前所能选择的最好方式,起码在现实世界当地的制度和法律是无法保证 on-chain 的权益。

六、超越是”财富统治一切”

不过,有许多建议提到 EOSIO软件围绕多重“引力中心”来投票,目前以 Token 为中心的投票模式应通过额外的单独投票方式来进行平衡。

候选人也包含以下方面:

一个强身份的投票者拥有一票(“强身份”符合一些基于人道的标准),将整个人设计成权重更大的投票者;

一个 DApp开发者拥有一票(票权是浮动的,由该 DApp的热度决定);

一个节点拥有一票;

一个链上供应商拥有一票;

等等

在基于 Token 持有量的体系内,这些相关机制都是变化的。以Token持有数作为每票权重的投票者与英国上议院相似,其他的就如同下议院了(或被称为 DApp议员还是什么的)。

总体规划会服务于庞大系统的决定(宪法修正,协议升级等),目的是让大多数或绝大多数选票投向这两个议院。

然而这些建立在多议院上的想法目前还没有在公链上证实的案例,不过我倒是很想见证事情的进展。

在六月份主网上线之际,这些想法也不会在默认的软件设置中加入进去。

所幸的是,EOS社区会得到授权来调整默认宪法。有两种途径: 在主网上线的时候采用其他的宪法;通过流程,在主网上线后修改已经采用的宪法。

译者:对于多数人的建议,以及复杂的设计,对于上述不同权重票数的设计不会再默认系统中上线。当然,依旧可以进行修改,仍然是通过修宪。

七、总结

总之,我们期待基于区块链的 EOSIO 软件采用赞成投票机制。赞成投票在其他DPOS 区块链中有着不俗的记录,并且这一个已经做了调整以回应那些先前实施中的问题。

我们可以期待批准投票结果会产生合理的好结果(并且远胜于大多数其他投票系统)。我们可以期望它具有相当简单的用户体验(最多只能选择30个),具体取决于社区创建的接口(或仅使用命令行工具)。

最重要的是,我们可以期望在token为基准的加权权重的设计之下进行投票,从而产生足够好的区块生产者(BP)。

本文内容不构成本号任何立场

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180504G15NZ200?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券