Vitalik:区块链治理的注意点


我认为“紧耦合”(“tightly coupled”)链上投票被过誉了;由比特币,比特币现金,以太坊,Zcash 及类似系统所实践的“非正式治理”(“informal governance” )现状,没有通常所被认为的那么糟糕;一些人认为,“区块链的目的是彻底抹去模糊的人类直觉和感触,支持彻底的算法治理(强调“彻底”)“,这些人绝对是疯了;通过 Carbonvotes 和类似系统所进行的松耦合投票被低估了;本文同时描述,当思考区块链治理时,应该使用哪一种框架。

也可见《反对链上治理》。

区块链治理领域,更有趣的最近趋势之一是,“将链上持币者投票作为一种多用途决策机制”的复兴。

持币者投票,有时是用于决定谁来运行网络的超级节点(如 DPOS in EOS, NEO, Lisk 等),有时是为了决定协议参数( 如以太坊 gas limit ),有时是为了通过投票直接实现大规模协议升级(如Tezos)。在所有这些情况下,投票是自动的——协议自身包含“改变验证者集合或更新其自身规则”所需的所有逻辑,并自动响应投票结果。

明确的链上治理(Explicit on-chain governance),通常被兜售为有几大优势。首先,与比特币所拥护的高度保守理念不同,它可以迅速演化,接受必要的技术改进;第二,通过创建一个明确的(explicit)去中心化框架,它避免了非正式治理的已察觉缺陷,非正式治理被认为,要么太反复无常而容易导致链分裂,要么容易变得过于事实上的中心化 — 后者在著名的1972年文章“ Tyranny of Structurelessness”中,有过相同讨论。

引用 Tezos 文档

尽管所有区块链都为维护其相应账本共识,提供金融激励,但没有一个区块链拥有稳健的链上机制,来无缝修正协议治理规则,明确资助协议开发。因此,第一代区块链事实上是倾向了将“设计制定”的权力授予了中心化核心开发团队或矿工。

以及

是的,但你为什么要让[少数派链分叉]变得更容易?分叉摧毁网络效应。

用于“选择验证者”的链上治理,还具有这样的好处,即允许网络对验证者施加高计算性能要求,同时,不会引入——出现于公有区块链的经济中心化风险以及其他类型陷阱(如验证者困境the validator’s dilemma)。

总之,链上治理似乎是一笔非常好的交易…那有什么问题呢?

什么是区块链治理?

首先,我们需要更清楚地描述“区块链治理”的过程。

一般而言,有两种非正式治理模式(informal models of governance),我将称之为治理的“决策函数”观(“decision function” view of governance),及治理的“协调”观(the “coordination” view of governance )。

决策函数观,将治理视为一种函数 f(x1, x2 ... xn) -> y,输入是各种合法利益相关者(senators, the president, property owners, shareholders, voters 等)的意愿,输出是决定。

决策函数观,通常,其作为一种近似值,是有用的,但在边缘,其很容易磨损明显( it clearly frays very easily around the edges):人们经常能够及确实违反法律并逃脱处罚,有时规则意义含糊,有时会发生革命 —— 所有这三种可能性,至少有时,是一件好事。而且经常甚至,系统内部的行为,往往由系统外部的行为可能性而产生的激励所塑造(And often even behavior inside the system is shaped by incentives created by the possibility of acting outside the system),而这再一次,至少某些时候,是一件好事。

相反,治理的协调模式,将治理视为层层存在的东西。在现实世界,底层是物理本身的规律the laws of physics themselves(作为一个地缘政治现实主义者会说,枪支和炸弹)。而在区块链领域,我们可以进一步抽象,说每个人(作为一名用户,矿工,持币者,验证者,区块链协议所允许的其他任何种类的代理)都有能力运行他们所能容纳范畴内的任何软件。底层总是最终的决定层;例如,如果所有比特币用户有一天醒来,决定编辑其客户端源码,用一个以太坊客户端(这个客户端收听一个特定ERC20代币合约的余额)代替比特币客户端整个代码,那么,这意味着,该 ERC20 代币 “是” 比特币。底层的最终治理权力无法被停止,但人们对这一底层所采取的行动,可能会受到其上层“影响”。

第二(也是至关重要的)层是协调惯例(coordination institutions)。协调惯例的目的是为了创建焦点(focal points )——这些焦点围绕着“为了更好地协调行为,个人应该如何及何时采取行动”。在区块链治理和现实生活中,都存在很多情况,如果你以某种特定方式独自行事,你很可能毫无进展(或更糟),但如果每个人共同行动,预期结果就可以实现。

一个抽象的协调游戏。如果与每个其他人移动方向一致,你可从中受益匪浅。

在这些情况下,如果其他人都在进行,那么你处于进行中,于你是有利的;如果其他人都停下来,你也停下来,于你是有利的。你可以把协调惯例想象成,在“去”或“停”之上挂上绿旗或红旗,同时伴有一个既定文化——每个人都看着这些旗帜,并(通常)按这些旗帜所代表的含义去做。为什么人们有这样的激励去追随这些旗帜?因为其他人已经在追随这些旗帜,你受激励去做和其他人所正在做的一样的事情。

拜占庭将军号召他的部队前进。这样做的目的,不仅是为了让士兵们感到勇敢和兴奋,也是为了消除其他人的担忧——其他人也都感到勇敢和兴奋,也会冲锋陷阵,所以个别士兵冲锋陷阵并不是自杀。

强调:协调旗帜的概念,涵盖了我们对“治理”的所有理解( this concept of coordination flags encompasses all that we mean by "governance"); 在协调博弈(或更普遍的说,多平衡博弈multi-equilibrium games)不存在的情况下,治理的概念没有意义。

现实世界中,军事命令来自旗帜的一般功能;区块链世​​界中,这种旗帜的最简单例子是这样一种机制——这种机制告诉人们一个硬分叉是否“正在发生”。协调惯例可以是非常正式的,也可以是非正式的,经常提出意义含糊的意见。理想情况下,旗帜不是红色就是绿色,但有时候可能是黄色,或甚至是全部手写的,对某些参与者显示绿色,对其他参与者显示黄色或红色。有时是相互冲突的多个旗帜。

治理的关键问题因此变成:

  • 第一层应该是什么?也就是说,初始协议本身应该建立什么样的特性,这如何影响“制定公式化(即类决策功能)协议变更的能力,以及”不同种类的代理以不同方式行事的权力水平“?(how does this influence the ability to make formulaic (ie. decision-function-like) protocol changes, as well as the level of power of different kinds of agents to act in different ways?)
  • 第二层应该是什么?也就是说,人们应该受鼓励去关心哪些协调惯例(coordination institutions)?

币投票的角色(The Role of Coin Voting )

以太坊也有币投票的历史,其中包括:

DAO 提案投票:https://daostats.github.io/proposals.html
The DAO Carbonvote:http : //v1.carbonvote.com/
The EIP 186/649/669 Carbonvote:http : //carbonvote.com/

这三个都是松耦合币投票的例子,或币投票作为第二层协调机惯例。以太坊没有任何紧耦合币投票(或币投票作为协议特征中的第一层)的例子,尽管确实有一个紧耦合的矿工投票的例子:矿工对gas limit 进行投票的权利。

显然,紧耦合投票和松耦合投票是治理机制领域的竞争者,所以值得剖析:两者各自的优缺点是什么?

假定交易成本为零,如果各自作为唯一的治理机制,两者显然是等同的。如果一个松耦合投票表示应该实施“变更 X” ,那么这将作为“绿色旗帜”,鼓励大家下载更新; 如果少数人想要反抗,他们将不会下载更新。如果紧耦合投票实施“变更 X”,那么变更会自动发生,如果少数人想要反抗,他们可以安装一个硬分叉更新(这个硬分叉更新撤销了该变更)。然而,随着制作一个硬分叉,显然有一个非零交易成本(there clearly are nonzero transaction costs associated with making a hard fork),这导致了一些非常重要的不同。

一个非常简单且重要的区别是,紧耦合投票产生了一个默认值,这个默认值赞成大多数所想要的区块链采用,要求少数派花费很大努力,来协调一个硬分叉,以保存一个区块链的现有属性;而松耦合投票只是一个协调工具,仍然要求用户实际下载和运行执行任何给定分叉的那个软件。但也有很多其他区别。

反对投票

现在,让我们通过一些用以“反对投票”的论据,并解释每个论据如何应用于作为第一层的投票及作为第二层的投票,来继续进行这个话题。

低选民参与度

迄今为止,针对币投票机制的主要批评之一是,无论在哪个领域尝试,选民参与度很低。The DAO Carbonvote 只有 4.5% 的选民参与率:

另外,财富分配非常不平衡,这两个因素结合在一起的结果,对此的最好描述是, “the DAO分叉”的批评者所创建的以下这张图:

EIP 186 Carbonvote 有大约 270万 ETH 投票。The DAO proposal 的投票也不太好,参与率从未达到 10%。在以太坊之外,事情也不是很乐观;甚至是在比特股系统,其核心社会合约围绕投票设计,在一个提案投票中,顶部代表只获得 17% 的票数,在 Lisk 中,这个数字上升到 30% ,不过我们稍后将会讨论这些系统自身的其他问题。

低选民参与度意味着两件事。首先,投票结果较难达到合法性洞察,因为投票结果只反映了一小部分人的意见。其次,只拥有一小部分币量的攻击者可以左右投票。无论投票是紧耦合还是松耦合,这些问题都存在。

博弈论攻击(Game-Theoretic Attacks)

除了受到大部分媒体关注的“大黑客”事件外,the DAO 还有一些小得多的博弈论漏洞,这篇来自HackingDistributed 的文章做了很好的总结。但这只是冰山一角。

即使一个投票机制的所有细节都得到了正确执行,总的来说,投票机制也有很​​大缺陷:在任何投票中,任何给定选民对投票结果有影响——这种可能性微乎其微;激励“每个选民必须正确投票”,这种个人激励也几乎微不足道,如果单个人持有权益很小,针对他们 “正确投票” 的激励就更微不足道。因此,在参与者身上散布的相对较小的贿赂,可能足以影响这些参与者的决定,这种影响的方式,可能他们自己也会完全集体地不同意。

现在,你可能会说:人们并不是邪恶自私的利益最大化者,以至利益最大化至会接受0.5美元的贿赂来投票给这样一个提案——给 Josh arza 提供 2000万美元,只是因为以上计算表明,个人可对事情施加影响的可能性很小;相反,人们会无私地拒绝做一些邪恶的事情。对这个评论,有两个回应。

首先,有办法做出一个非常貌似合理的“贿赂” ;例如,交易所可以为存款提供利率(或者,更加模糊一点,使用交易所自己的资金来建立一个良好的界面和一些功能),交易所运营者可以使用大量存款,按照交易所的意愿进行投票。交易所获利来自混乱(chaos),所以他们所受激励显然与用户和持币者相差很大。

第二,也更令人沮丧的是,在实践中,似乎,至少作为加密代币持有者的人们,是利润最大化者,似乎没有看到“接受一两个贿赂”的邪恶或自私之处。

作为 “ Exhibit A ” ,我们可以看看 Lisk 的情况,代表池似乎已经被明着贿赂持币者投票给自己(指以下两个政党)的两个主要“政党”成功控制,并且这两个“政党”也要求池中的每个成员投票给所有其他人( also require each member in the pool to vote for all the others)。

这是LiskElite,有55个成员(共101个):

这是LiskGDT,有33个成员:

而作为 “ Exhibit B ” ,一些选民获得以Ark支付的贿赂款项:

在这里,请注意,紧耦合和松耦合投票之间有一个关键区别。

在松耦合投票中,直接或间接投票贿赂也是可能的,但如果社区达成共识——某些给定提案或一组投票构成博弈论攻击,他们可以简单地共同同意去忽略这个提案。事实上,这种情况已经发生过 - Carbonvote 包含一个地址黑名单——与已知交易所地址相对应,不将这些地址的投票计算在内。

在紧耦合投票中,没有办法在协议层面创建这样一个黑名单,因为同意谁是黑名单的一部分,这本身是一个区块链治理决策。但是,由于黑名单是社区创建的投票工具的一部分,投票工具只会间接影响协议变更,因此包含劣质黑名单的投票工具,可能会被社区拒绝( But since the blacklist is part of a community-created voting tool that only indirectly influences protocol changes, voting tools that contain bad blacklists can simply be rejected by the community)。

值得注意的是,这一部分并不是这样一个预测——所有紧耦合投票系统,都将会很快屈服于贿赂攻击。完全可能的是,许多都会因为一个简单的原因而幸存下去:所有这些项目都有创始人或基金会,他们拥有大量预挖权益,他们都是大型中心化参与者,他们对平台的成功感兴趣,不容易受贿,并且拥有足够币量,超过大多数贿赂攻击。然而,这种中心化信任模式,尽管在项目早期的某些情景中有用,但显然,在长期,不可持续。

非代表性(Non-Representativeness)

对投票的另一个重要反对意见是,持币者只是一类用户,并可能其利益与其他用户相冲突。在纯粹的加密货币如比特币情况中,价值存储用途(“持有”)和交换媒介用途(“购买咖啡”)天然冲突,因为存储价值用途,远远比更强调实用性的交换媒介用途,更奖励安全性(prizes security)。在以太坊中,这种冲突更加严重,许多人使用以太坊,其原因与 ETH 无关(参见:cryptokitties),或甚至与作为一般价值承载物的数字资产无关(value-bearing digital assets in general)(参见:ENS)。

此外,即使持币者是唯一相关的用户类别(人们可能会想象,这是一个加密货币,其中有一个既定的社会契约,其目的是成为下一个数字黄金,而没有其他),仍然有一个挑战,持币者投票机制给了富有的持币者更多话语权,这也为“持币中心化导致不受妨碍的决策中心化”打开了大门。换句话说...

如果你想看到一个项目评估,似乎同时结合所有这些缺点,请参阅:https://btcgeek.com/bitshares-trying-memorycoin-year-ago-disastrous-ends/

这种批评同时适用于紧耦合和松耦合投票;然而,松耦合投票在妥协(这种妥协减轻其非代表性)上更经得起检验(more amenable to compromises that mitigate its unrepresentativeness),我们将在稍后讨论这一点。

中心化

让我们看看在以太坊紧耦合投票上的现有现场实验,gas limit。以下是过去两年的gas limit 演变:

你可能会注意到,曲线的总体感觉,有点像另一张可能对你来说很熟悉的图表:

基本上,他们都是由坐在一个房间里,相当中心化的一组人,创建和反复谈判出来的神奇数字。第一种情况中,发生了什么?矿工们一般都会追随社区偏好,偏好本身就是通过类似推动硬分叉的社会共识的帮助来衡量(核心开发者支持,Reddit 投票等;在以太坊,gas limit 从来没有引起像币投票一样严重的争议)。

因此,如果选民不具备技术知识,只是简单地服从一个专家集群的优势部落,投票是否将能够提供实际上去中心化的结果,这一点都不甚明朗。这样的批评,再一次可同时适用于紧耦合和松耦合投票。

更新:自写这篇文章以来,以太坊矿工们似乎设法将 gas limit 从670万提高到800万,甚至没有和核心开发者或以太坊基金会讨论过。所以希望存在; 但需要大量艰苦的社区建设和其他艰苦的非技术工作,才能达到这一点。

数字化构造(Digital Constitutions)

一种被认为可减轻糟糕治理算法失控风险的方法是“数字化构造”,它以数学方式指定协议应该具有的所需属性,并且要求任何新代码变更都带有计算机可验证证明——证明它们满足这些属性。起初这看似一个好主意,但我认为,应该辩证地看待。

一般而言,拥有关于协议属性的规范,以及使这些规范服务于协调旗帜之一的功能,这种想法非常好。这使我们能够体现,我们认为非常重要和有价值的协议核心属性,并使其更难以改变。然而,这正是应该在松耦合(即第二层)中强制执行的事情,而不是紧耦合(第一层)形式。

基本上,任何有意义的规范,实际上都很难表达完整,这是价值问题复杂性的一部分。即使是像2100 万币限制那样看起来毫不含糊的东西,也是如此。当然,可以添加一行代码 assert total_supply <= 21000000,并在边上添加评论说:“不惜一切代价也不能删除”,但有很多迂回方式可以做这件事。例如,可以设想一个软分叉,它增加了一个强制交易费用,它与币上次发送之后的币值乘以时间的值成正比,这相当于滞留费(soft fork that adds a mandatory transaction fee this is proportional to coin value * time since the coins were last sent, and this is equivalent to demurrage),也相当于通货紧缩。人们也可以用另一种货币,Bjtcoin,有2100万Bjtcoin,并添加一个功能,如果一个比特币交易被发送,矿工可以拦截并获取比特币,作为替代,给接受者 bjtcoin; 这将会很快迫使比特币和bjtcoins之间可互换,甚至在不绊倒(tripping up)那行代码的情况下,将“总供给”增加到4200万。不干扰应用状态的“更软”规范,更难执行。

我们希望能够说,违反这些保证的协议变更,应该被视为非法 - 在此,应该有挥舞小红旗的协调惯例 - 即使得到了投票批准。我们也希望能够说,一个遵循字面规范的协议变更,但是公然违反了它的精神,协议变更仍然应该被视为非法。在第2层 - 在社区人们的头脑中,而不是在协议代码中存在的规范 - 最能达到这个目标。

走向平衡

但是,我也不愿意说,币投票或其他明确的链上投票方案等其他方式,在治理上没有地位。领先的替代方案似乎是核心开发者共识,然而,由“象牙塔知识分子”所控制的系统失败模式,这些知识分子更关心抽象哲学和解决方案,这些解决方案听起来,在技术上令人印象深刻,超过了真实的日常问题如用户体验,我认为,交易费也是一个值得认真对待的威胁。

那么,我们如何解决这个难题呢?首先,我们可以注意传统政治语境的 slatestarcodex 的话

新手的错误是:你看到一些系统的部分是 Moloch [例如,被错位的特殊利益所捕获],所以你说:“好吧,我们将它置于其他系统的控制之下,以修正这个问题。我们将用明亮的红色标记写上'不要成为MOLOCH',以此来控制这个其他系统。“

(“我看到资本主义有时会错位,让我们把它置于政府的控制之下来修正它,我们将通过仅让有道德的人处于高级职位上,来控制政府。”)

我不会声称,有一个很好的替代选择,但偶尔的适当变通是一种新自由主义 - 找到一些优雅的系统,所有这些系统都向着与不同标准的人类幸福大致一致的方向优化,在一个制衡的结构中彼此相对, hope they screw up in different places like in that swiss cheese model,保持足够的个人自由选择,让人们可以退出任何可怕的制度,然后让文化进化完成剩余部分。

在区块链治理中,似乎这是唯一出路。我所倡导的区块链治理方法是“多因素共识”(“multifactorial consensus”),不同的协调标志和不同的机制,不同的组织由投票获得,最终决策由所有这些机制共同决定。这些协调标志可能包括:

  • 路线图(即项目历史上关于项目进展的一系列思路)
  • 占主导地位的核心开发团队达成的共识
  • 持币者投票
  • 用户投票,通过某种防女巫攻击的投票系统
  • 既定规范(例如,不干涉应用non-interference with applications,2100万币上限)

我认为,币投票作为决定是否实施一个给定变更的几个协调惯例之一,非常有用。这是一个未完成时,非代表性的信号,但它是一个抗女巫攻击的信号- 如果你看到一千万个 ETH 投票给一个特定提案,你不能通过简单地说:“哦,这只是通过假的社交媒体帐户雇佣俄罗斯巨魔” 而对其不予考虑。这也是一个与核心开发团队充分脱节的信号,如果需要的话,它可以作为一个检验。但是,如上所述,它不应该是唯一的协调惯例。

支撑这一切的是,使区块链有趣之处在于,其与传统系统的关键区别:支撑整个系统的“第一层”是要求个人用户对任何协议变更,以及他们的自由和可信威胁达成共识,如果有人试图强迫执行他们认为是敌对的变更,他们可以不同意分叉(也可参见:http://vitalik.ca/general/2017/05/08/coordination_problems.html)。

一些有限情况下,紧耦合投票也是可以的 - 例如,尽管存在缺陷,矿工在gas limit上投票的能力,是一个已被证明在多个场合中,非常有利的。矿工尝试滥用权力的风险,可能会比,第一天强制规定任何特定gas limit或区块尺寸限制,最终导致严重问题,这种风险要低,在这种情况下,让矿工对gas limit投票是一件好事。然而,“允许矿工或验证者对需要不时快速改变的几个特定参数进行投票”,与“授予他们对协议规则的任意控制,或允许投票控制验证”相去甚远,那些更广阔的链上治理愿景,在理论和实践上,其潜力都更加昏暗(murkier potential)。

原文:http://vitalik.ca/general/2017/12/17/voting.html
作者:Vitalik Buterin
编译& 校对:stella,东林 & 东林 @ 币未来 biweilai.com