洞见 | 阿剑:从链下治理到理想治理模式

Ajian   |     |   3099 次阅读

编者注:2019 年 1 月 3 日,EthFans 在杭州主办了“洞见”第三期活动,主题为“公链的治理问题”。大家都知道治理非常关键,但直面这一问题的思考并不多见,因此,我们举办了这场活动。本文为阿剑的演讲稿。有人说,分类是认识的基础,阅读本文,应可以看出阿剑试图在分门别类中贯彻清晰方法的诚意。

从链下治理到理想治理模式

一. 公链治理的目标与技术特点

要讨论公链治理,我们得先看看公链是什么。

(一)公链及治理的定义

有人认为公链创造了一种资产,但是从经济学的角度来看,没有哪种资产能脱离于施加其上的产权规则而存在。物理上性质相近的事物,如果由不同的法律来管辖、交易或使用的可能性不同,则它们可以彻底被视为两种不同的资产。公链的共识规则即此中的产权规则;所谓公链治理,从效果的意义上看是对共识规则的改变、从过程上看即是改变共识规则的过程。

那么我们再从资产四权的角度来确定一下密码学货币的属性。

A. 所有权;所有权记录在账本上,由全节点来保证其一致性;

B. 使用权、转让权;当前的数字世界中密码学货币无法用于合成它物,因此其使用权和转让权是一体的,皆由矿工来保证;

C. 收益权;收益权有两种维护方式,一种是在链下由法律系统来保障,此时,密码学货币扮演的角色是特定法律体系下的一种资产;另一种是在链上由智能合约来加以规定和保护,比如常见的去中心化借贷项目和去中心化交易所。

由此,我们可以反推出治理对这个系统的影响(也即共识规则变更的不同类型):

  1. 增强 or 削弱财产的功能,即影响其用益权的实现,例如 ERC20/223
  2. 影响全节点的负担
  3. 影响矿工参与度,即影响网络对外部攻击的抗性。

有些治理上的决策可能同时影响多者,但这几者在种类上是可以区别开来的,此外,影响的程度如何是另一回事。

(二)公链治理中的关键问题

毫无疑问我们需要公链治理,因为没有什么规则可以一蹴而就,完美到完全不需要改进。但是,比当前规则更好的规则并不是现成摆在那里的,而往往是需要时间来发现和验证的。比如说,到底是大区块好还是小区块好,答案并不是明摆在那里的。如果答案真的如此明确,大体而言也就不需要治理,只需要开发了,但我们总会遇上那些跟我们密切相关但又没有现成答案的问题,这才是我们需要治理的原因。因此,治理并不是直接朝向更好的规则,而是通过一定的安排使得人们有意愿和能力去发现和实行这些规则、废除次优的规则。

正如我们的政治制度,我们并不总是能知道善的秩序是什么样的,如果总能知道,那就只剩下行政学问题了。因此,政治哲学研究制度、研究政府的形式,不仅是归纳善的秩序的特征,更重要的是探讨什么样的制度能够产生出这样的秩序、并且在外在的事物变动时,能有效地维护秩序并自我更新。

也正因此,讨论治理问题不等同于讨论经济模型问题。正如讨论何为善政与讨论什么样的政府形式才能实现善政并不相同。经济模型问题比较像货币理论问题,如何发行才是更好的;而治理问题则是政治哲学问题,研究什么样的参与形式可以让人们的参与得到更好的结果,即发展出更好的共识规则。

综上,公链治理中的关键问题是治理所采取的模式。模式决定了什么样的人会进入生态,以及什么样的决策会被采用。

(三)治理的技术特点

要讨论治理问题还必须注意到系统本身具备的一些特点,这些特点构成了治理的边界,边界之内才是治理能够改变的东西。在现实世界中,这样的条件包括物理规律,以及肉体对暴力的承受是有上限的,等等。而在分布式系统中,条件之一就是公开账本。

由于账本在一定程度上是公开的,因此保存了账本的团体可以仅承认部分历史,从而产生一个新的平行账本,这就是所谓的“分叉”。

分叉在不同的治理模式中会呈现出迥异的面貌,但因为这是系统本身的特点,治理既无法取消掉这种特点,也不可能对此无动于衷。

二. 链上治理与链下治理

(一)简介

链下治理即我们常见的比较松散的治理模式,没有严格的程序,没有谁拥有最终决定权,整个过程都是完全开放的,人们会有各种方式表达自己的一项,至于沟通效率如何就不可保证了。

比特币、以太坊以及不少 PoW 公链都是这样的治理模式,虽然各自有不同的治理哲学。这些公链会有一个名义上讨论升级提案的地方(在 GitHub 上有个 ethereum 代码库,人们就是在那里讨论升级提案),但绝大部分意见的交流都是在别的地方发生的。

链上治理则有一个明确的治理流程,什么情况下可以提出提案、如何投票、怎样算通过,都是有明确规定的;因为这些程序为了可信往往直接发生在链上,所以这种模式被称为“链上治理”。

(二)链下治理与分叉

此处及后文的分叉讲的都是主动发起的分叉。关于分叉的不同类型,Vitalik 有一篇很好的文章《软分叉、硬分叉、违约与强制》。(编者注:见文末超链接)

在链下治理中,分叉的作用就变得很微妙。一方面,分叉可以是一种威胁(一种政治手段),给公链的运行造成了不确定性;另一方面,它也可以是一种解决分歧的手段,尤其是那些是可忍孰不可忍让人觉得不可让步的分歧。

有了分叉这个终极武器,公链治理就受到了一定的约束,即如果治理上的“在位者”(我们姑且这么称呼)太昏庸,我们可以分叉出去。此外,分叉还意味着我们可以重用一部分共识规则,保存实践这些共识规则的历史并开始新的的实践。

我之前看过一篇文章,里面讲到,如果区块链的意义不是不可变更性,那会是什么呢?是“非强制性的共识系统”。按照时下流行的说法,分叉不是一个 bug,而是一个 feature。当然啦,天下没有免费的午餐,可以分叉,也就意味着要承担分叉带来的不确定性。

(三)链上治理的案例与 Forklessness

最著名的链上治理的案例是 EOS:(1)用户将代币权重委托给一些出块者,从而票选出 21 名 BP;(2)这 21 个 BP 既有出块权,也拥有其它重要权限,比如 17 个 BP 可以联合提出某个 BP;17 个 BP 可以集体行使超级权限,基本上就是干什么都行;(3)ECAF 是个独立的机构,作出仲裁提议之后,BP 可以选择执行或不执行。

另一个典型是 DASH。DASH 的底层是 PoW 共识;但在 DASH 链上,抵押 1000 个 DASH 便可成为主节点;主节点可以在相关治理决策中投票,每个主节点可投一票。主节点也承担一些别的职能,比如广播隐私交易。

Tezos 因为也是 DPoS,跟 EOS 也是大同小异。

虽然并不绝对,但可以认为,链上治理中,人们是很难分叉的。(我记得 Polkadot 的宣传中还强调了自己使用链上治理,因此是 Forkless,没有分叉的。)有两个方面的原因:

  1. 分叉没有办法达到治理上的目的。首先多数方肯定不会去分叉,而少数方要分叉的时候,分叉之后的链上投票权跟原来链上的投票权是一样的(当然,可以通过选择分叉点来缓解这一点,但肯定无法完全避免),因此,除非少数方敢冒天下之大不韪,把多数方的代币资源冻结乃至剥夺掉,否则多数方分分钟可以攻击分叉链。
  2. 另一方面,因为有了比较正式的治理程序,形式上来说治理意见是可以公开表达的,因此策划和发动分叉等同于直接背叛链上治理,难免为人不齿,毕竟愿意赌你总要服输。发动了分叉的一方,有了这个先例,只怕也很难让人相信他们还会尊重这种治理形式。

(四)反对链上治理

以太坊生态里,Vlad 和 Vitalik 是明确反对链上治理的:Vlad 的理由是链上治理剥夺了全节点的选择权,使整个治理流程失去了制衡;Vitalik 则认为链下治理更少强制,并且链上治理会堕落为财阀统治。

两位都没有提供非常严格的论证。不过,程度不论,我基本同意他们的观点,尤其是认为链下治理更少强制的观点。另一方面,我想提出的另一种论证是:链下治理会为参与者提供一种流动性非常低的激励,也就是声誉。这种低流动性的措施一方面可以屏蔽那些想干一锤子买卖的参与者,筛选出那些有恒心的参与者;另一方面,为已经在社区中享有声誉的人赋予了很强的约束,他的声誉与这个系统的存亡是息息相关的,系统如果走下坡路了,他是没法把声誉变现的,所以他只能与这个系统共存亡,才能凭借声誉获得其它的非货币价值或者货币价值。我认为,这种机制在筛选专业人士上是很有效的做法。

链上治理则不能提供这样的机制。此外,链上治理中,参与治理者的权力没有明确的约束。我认为这是很危险的状态。很多人认为只要根本的投票权掌握在持币者手中就万事大吉,但治理问题不是那么简单的。某种规则是某一时刻全体持币者的意志,并不意味着这就会是一条好规则。高流动性的资产如果具有投票权,资产所有者就有激励接受那些短期内刺激资产价格但长期中弊大于利的决策。所以在股票市场中,有些公司会明确规定高流动性的股权在公司治理上没有投票权。

综上,我反对链上治理。

三. 以太坊的链下治理和改进

(一)以太坊当前的治理

以太坊当前的治理围绕着 EIP 以及核心开发者展开。GitHub 上有一个以太坊代码库,其中 EIP 是专门的的一个库;任何人都可以在其中发表 Issue,对现有的 EIP 进行评论或开启一个新的提案;新提出的提案需要经过几位评审员的初审;初审过关后,这些提议会被合并为库中 EIP 草案,等待进一步的讨论,然后被接受、拒绝或搁置;草案被接受以后,还会被拿到核心开发者视频会议上讨论,决定是否接受以及何时部署。

此外,还有很多交流是发生在非 EIP 环节中的,比如发生在 Ethereum Research 还有 Fellowship of Ethereum Magicians 上,前者会更加侧重讨论技术方案,比如 Plasma 要用什么技术组件、分片要怎么做,之类的;后者会更加宽泛。但流量上来说前者比后者大 5 倍左右,因为后者更年轻。

(二)以太坊链下治理的权力分属

如果我们拿以太坊当前治理的情形类比现实中的法律系统的话,不同的权力属于哪些团体呢?

很久以前,有一位作者 Fred 曾经这样类比过链下治理的权利分属:开发者类似于立法部门,提交新的共识规则;矿工类似于司法部门,可以通过选择是否接受开发者提出的共识规则变更;全节点则与行政部门类似,他们也可以选择运行跟矿工不一样的版本来行使否决权。

我认为 Fred 虽然指出了这里存在着相互制衡的关系,但他对权力分属的划分是有问题的。一方面,他没有指出不同的团体的那些特质跟现实生活中的不同部门有相似之处;另一方面,也是更重要的方面,他忽略了一个计算机系统是由干代码组成的,与现实中的法律系统也就是由湿代码构成的规则系统相比,干代码可以解释的空间要小得多,因此,公链系统中是不存在严格意义上的司法权力的。这就是最大混淆的来源。

在我个人看来,以太坊生态中,矿工应属行政部门,就好像生活中你卖房子要到政府相关部门办产权转移一样,矿工就像登记财产转移的行政部门;发起 EIP 的,无论是开发者还是普通用户,属于立法部门中的下院;而全节点运行者,以及最终审议 EIP 的核心开发者,接近于立法部门中的上院,主要享有否定性权力,因为核心开发者可以集体直接否定 EIP,而全节点运行者可以不升级软件来否定相关的共识规则,因此,他们更像是可以被动表达否定的上院(如果没有新的 EIP,他们也就没有表达否定的机会)。(如果非要说哪个部分比较像司法部门的话,也是这最后一部分)。

唯一一次让我感觉我们在集体参与司法活动的,就是 The DAO 事件,核心议题是我们要不要接受一条在现实生活中极其普遍、但在链上代码中无迹可寻的规则。这条规则就是禁止盗窃、发现盗窃要要物归原主。这条规则在 EIP 中是找不到的。因此更像是司法而不是立法活动,即对链上代码的适用界限在哪里,能不能与现实中普世的伦理规则相冲突。当然这种集体司法活动也没有什么结果,最后就走向了分叉。

(三)改进空间

Vlad 提醒过,不要在你没有完全弄清楚治理是怎么回事前瞎提建议,我觉得说得有道理。但我也在这里提一些设想,大家姑妄听之。

  1. 把上院和下院明确区分开来。即形成一种规范,使得要审议 EIP 者就不可以提出 EIP。当前,很多核心开发者也是 EIP 的提出者,或者至少是观念上的贡献者,这使得部分人同时享有了下院和上院的身份。在我看来,将两者明确区分开来可能会使这个流程更加规范,相互制衡的效果会更好。
  2. 不管公链的前景在哪里,公链天生就带有全球化属性,它不属于任何一个国家,如果属于,那也就失去了革命性意义;但是,语言将参与者限制在了一定的范围内。公链应该着重考虑让自己的消息传播、意见收集突破单一语言的限制。当前,以太坊基金会着重于为开发基础设施的项目提供奖金,但对普及以太坊技术的社区关注度不高。当然可以认为,我这么说是因为我是以太坊爱好者的成员,我有利益相关。但我确实认为,语言是很明显的限制,公链如果想从世界各地的经验中获得智慧,就应该努力拓展不同语言接入以太坊社区的可能性。以太坊的吸引力,一大部分来源于其多元性和理想主义,但如果语言变成了一种障碍,再怎么玩,也还是在一小部分人里玩。

*作者: *阿剑


*附: *

观点 | 硬分叉,软分叉,违约和强制

 
0 人喜欢