传统区块链七宗罪之三:去中心化谎言
文库划重点:和EOS一样,全体持币者的投票只能一币一票,而不能一账号一票。一方面是因为账号的数量是可以低成本无限注册的,一账号一票将会容易被少数人操纵;另一方面,人类社会的股东投票也是一股一票,而不是一股东一票,这是有其合理性的。
区块链的一个基本特征就是“去中心化”。其理念是有了区块链,不再有神仙皇帝了,从此众生平等,真好。
区块链本身相当于一个分布式账本,所有的帐每个人都有。传统区块链以无比低下的效率为代价,实现人人平等,不再需要一个中心化的组织(如银行)或个人(如会计)来记每个人都有什么资产了(想想过去大队记工分时会计有多大权利吧),不需要英明的领导甚至连司法机关都不需要,谁也造不了假,谁也骗不了谁,多美好。
不过,总有人怀疑,所谓“去中心化”只是干掉现有的中心,然后自己再来当新的中心。干掉皇帝然后自己当皇帝,这样的戏码中国人已经看了几千年了,门清。
以比特币、以太坊为代表的传统区块链,记账确实去中心化了,但是这就万事大吉了吗?
显然是远远不够的。
传统区块链仍然是中心化的
传统区块链是以挖矿的激励促使大众都参与,参与人多了就形成去中心化的节点。但以ASIC矿机+边远地区廉价电力+集约化规模为代表的专业矿池的出现,一下拉高了挖矿的门槛,导致普通大众完全无法从挖矿中获益,矿池逐渐中心化,比特币近年来影响力剧增,价格暴涨,但全节点数量不仅没有增加还大幅度下降,这就是一个明证。
中心化的矿池带来一系列的问题,包括但不限于必要时的操纵。这么说吧:各位传统区块链的参与者,你的小命其实捏在几个大佬的手中,别人仁义道德你没事,一旦大佬动了坏心思,你是完全束手无策的。
比矿池中心化更严重的是交易所的中心化。中心化的交易所相当于中心化的银行,拥有中心化的、难以被监管的权力以及各种风险,例如昂贵的上币费、容易被盗的账户(甚至最大的交易所门头沟监守自盗)、想让你爆仓就爆仓、的权力等。传统区块链高举“去中心化”的大旗力图取代中心化的银行,得到的却是交易所这样远不如银行靠谱的中心化机构。银行还有几百年形成的风控机制、各个岗位的专业规范的要求、银监会的严格管理,交易所则是除了用脚投票外没有任何约束和监管的,想怎么胡来就怎么胡来。
如果你认为中心化的矿池和中心化的交易所的问题已经够严重了,那就图样图森破了。传统区块链真正的中心化问题还不在于此。与这个真正的问题相比,矿池的中心化和交易所的中心化都只是毛毛雨的问题。这个问题是什么呢?就是传统区块链缺乏治理结构,导致事实上被少数人操纵。这群人说好听就是区块链的守护神,有他们在就能在危急时刻拯救世界,但如果他们作恶呢?
一个活的系统,总得不断运营、发展、升级、打补丁,谁来做决定,决定怎么执行、错误决定能否纠错、各环节的差错怎么救济、怎么防止滥用权力、不积极履行职责怎么办、遇到天灾人祸怎么办(关键人员死亡、坐牢、断网)等等,一系列的问题,却根本没有建立相应的机制。最直观的问题是:账户被盗是否可以回滚交易、人人都找借口要求回滚怎么办?
再举一个例子:为了打击ASIC挖矿的不公平优势,下一版比特币程序将算法改变了,过去的矿机一夜之间全部作废,这样的升级是否可以?比特大陆能用超过51%的算力制止此类升级吗?如果无法达成一致,是不是就只能靠分叉来解决分歧了?更关键的是:所谓达成一致是谁跟谁达成一致?是比特币的全体持币者达成一致还是大矿池和核心开发人员达成一致?这个问题暴露了区块链的一大秘密:传统区块链存在着隐形的中心化组织,即核心开发人员,例如比特币的Core的维护者。
在code is law的区块链世界,决定code的核心开发人员能够决定所有的法则。他们就是上帝,可以改变一切规则。比特币的核心开发人员小心谨慎地行使权力,没有作恶,但也导致低效,例如区块扩容的问题上就体现了非常低的决策效率。以太坊则有所暴露了该问题,V神一句话,他不承认的交易就作废,这就是非常明显的中心化了。
有人说,区块链项目是开源的,谁都可以贡献代码,coding本身是去中心化的。这话似是而非。编码和贡献代码是不难做成去中心化的,但谁的代码被采纳、合并进主干,这就是中心化的了。更为关键的是,产品的spec是谁定义,这就是核心问题了。
懂互联网运营的人都知道产品定义的重要性(互联网项目的创业团队一般是铁三角:产品、技术和运营),就算是常规软件工程管理也离不开产品需求规格(即spec)。技术人员的编码都是按照spec的要求来做的。例如,spec如果规定了一个区块的容量是2M,那大家就会照此编码,主张一个区块的容量是10M的派别就输了。在传统的软件项目(包括传统区块链项目)中,产品spec都是中心化的方式来决定的,掌握这个权力的人就拥有决定一切的权力。
产品spec是由谁定义的、按照什么规则定义的、如何保证coding严格符合spec、如何保证最终发行的版本是符合spec定义的代码等,这些问题是区块链项目治理结构的核心问题。如果没有治理结构,或者没有去中心化的治理结构方案,那一个区块链项目的所谓“去中心化”,就只能是一个美丽的谎言。
另外,很多区块链项目都有一个基金会在掌管运营,其中不少基金会其实是创始团队掌控的,这就是一个明显的中心化结构。
比特币、以太坊、EOS的治理结构盲区
遗憾的是,比特币、以太坊等传统区块链项目完全缺乏治理结构,它们的“去中心化”就是一个彻底的谎言。我们只能将身家性命都寄托在核心开发人员都道德高尚,或至少是在任何情况下他们的利益都永远与社区的利益完全一致。但是,我们都知道好的政治制度是基于“总统是靠不住的”来设计的,只有将每个人都会作恶作为制度设计的基础,才能实现人人向善。如果连经历了至少一年对祖宗十八代都掘地三尺的竞选选出来的总统都不能信任,我们凭什么对非民选的核心开发人员就能给予无条件的毫无约束力的全部信任呢?
EOS在治理结构方面迈进了一大步,由0发展到了0.1。创始人放弃对社区的主导管理权,有了EOS宪法,选出了21个超级节点。与缺乏治理结构的比特币和以太坊相比,EOS毫无疑问是有治理结构的,只是这个治理结构太弱不禁风了,根本不够用。
仔细阅读EOS宪法,发现其只不过相当于EULA(就是你注册一个网站时的用户协议),完全没有解决上述区块链治理结构的核心问题。21个超级节点能够管点事,但他们能够管多少事(例如是否可以将21个超级节点改成11个超级节点)、按什么程序来决策,全都是稀里糊涂的。
更有甚者,EOS从创始人到社区自治的交接过程没有事先定义规则,以至于到了原定主链上线的日期后大家都懵了,不知道主链该怎么上线、由谁上线,甚至连上线一条主链还是多条主链都没谱。全靠一些EOS社区的自发组织,才最终上线成功。
想象一下,华盛顿将军在打赢独立战争完成建国之后,不等国会组建就宣布退隐,形成权力真空,这是妥当的做法吗?
“去中心化”的治理结构
那一个理想的区块链治理结构应该是怎样的呢?是否存在“去中心化”的完善的治理结构呢?
这是一个挑战性很大的问题,否则不会这么多年来上千亿美元砸进去还没出现一个稍微靠谱的项目。但迄今为止没人解决不等于问题无解,我们可以尝试给出一个解决方案。
矿池中心化的问题是最好解决的。在本系列文章的第一篇《传统区块链七宗罪之一:自残式的挖矿》就已经给出了解决方案。以IPFS/IPRS为代表的用贡献资源方式来挖矿的模式,取代传统区块链的挖矿模式,可以有效避免以除了挖矿外没有任何价值的专用矿机垄断挖矿市场的情形。
交易所中心化的问题也是可以解决的。现在市场上已经出现了去中心化的交易所,只是由于交易性能差从而导致市场占有率低。幸运的是,去中心化的交易性能是有办法提高到满足交易所实时交易的程度的。这个问题的解决方案将另外撰文叙述。
本文重点阐述最难解决的核心问题,即区块链的治理结构问题,并提出一个去中心化的治理结构,也是即将在IPRS项目中采用的治理结构。
法律渊源
首先,我们参照法律学的研究成果,定义IPRS的法律渊源。在人类社会中,集权体制(例如中国的封建皇朝)的法律渊源可以追溯到君主的个人意志,民主体制则是全民投票为大。在IPRS中,作为去中心化的治理结构,法律渊源都可以追溯到全体持币者的投票。
和EOS一样,全体持币者的投票只能一币一票,而不能一账号一票。一方面是因为账号的数量是可以低成本无限注册的,一账号一票将会容易被少数人操纵;另一方面,人类社会的股东投票也是一股一票,而不是一股东一票,这是有其合理性的。
立法会
IPRS实行代议制,由全体持币者投票选举的立法会来制定IPRS的规则。这是因为:
1. 出于效率考虑,因为什么事都全体表决会是缺乏可操作性的。一些搞“假民主”的人往往就是采用将民主变得不可操作来达到其反民主的目的的。当采用大事小事都全民表决的时候,哪怕是区区几十人的旅行团决定中午吃什么都可能会变成一个悲剧:有人提议吃川菜,希望大家表决是否吃川菜,但是否将“吃川菜”列为一个表决项目这件事又是否需要表决呢?甚至在哪个时间点表决是否也需要表决(凭什么趁我们几个四川人)为什么是按照川菜、粤菜等菜系来表决,而不是按照餐馆来表决?川菜是否包含湘菜呢?点的每一个菜是否也需要全民表决?每道菜全民表决是否会导致荤素搭配失常?用餐金额怎么控制?估摸着这样搞下去,到吃晚饭时间还没吃上中午饭。
2. 出于专业性考虑。立法是需要专业性的,且别说法律条款如何定义能达目的这种实体性问题,就算是法律之间、各条款之间保持一致性就不是易事,堵住立法漏洞、实现罪罚相符等都很具有专业性。由具备专业能力的人来立法,这也是一个必然的选择。这就像股东选择具备企业经营决策能力的人组成董事会的道理一样。
IPRS除宪法外,所有的规则都是由立法会来制定的,包括但不限于挖矿的算法(IPRS是以贡献资源的方式来挖矿的,但需要防止作弊,防止提供虚假资源的方式来挖矿。防作弊的算法是可能需要道高一尺魔高一丈地不断升级的,其实严格说比特币的ASIC挖矿就是一种作弊,也应该约束的)、是否回滚、各委员会成员的任命、数字货币总量的增长规模等。
如果立法会制定的规则违背了大多数持币者的利益,那持币者可以将其选下去。只要有一定数量的持币者提议,就可以自动举行全民投票。区块链保证了这种机制可以高效低成本公正地进行,从投票的发起、举行和结果履行都是程序自动执行的,和EOS选举超级节点相似,任何人都难以阻扰,也难以作弊。这种机制就可以保证立法会大体上是符合全体持币者的利益的。之所以是“大体上”,这就是公平和效率之间的妥协,总不能因为偶尔的非关键性的差错而改选立法会。
从规则到代码
下面就是核心内容了,即如何保证立法会制定的规则能够得到完美执行,而不受核心开发人员的操纵。
在IPRS看来,code is law的真正含义是law is implemented by code。我们将从规则到代码的转换过程分为三大环节,并用完善的制度保证每个环节都能正常履行职责。
这三个环节分别是:从规则到产品spec的转换,从spec到code的转换,以及code的发行生效。
IPRS设立代码规格委员会,其职责是将立法会制定的规则转换为产品spec。代码规格委员会的成员由立法会任命,受立法会管制。代码规格委员会制定的spec必须严格遵守立法会制定的规则,除了改bug和性能提升等不破坏规则的改进外,代码规格委员会不能擅自提出新需求。
之所以单独设立代码规格委员会,是因为产品spec的撰写也是具有专业性的,其专业性要求与立法会的专业要求是不一样的。但如果代码规格委员会撰写的spec与规则不一致,立法会有权利撤换其成员。
可能有人要问,既然需求规格为员工的专业能力与立法会成员的专业能力是不同的,是否可能其撰写的spec的问题无法被立法会发现呢?这个担心是多余的,鉴于整个过程是开放透明的(开放透明是区块链的一大特征),一旦这种情况发生,IPRS社区里自然会有人向立法会举报。这种spec和规则的背离如果是有意为之,不管是否造成不良后果都是非常严重的违法行为,违背了其岗位职责、辜负了立法会的信任,立法会自然会严肃处理。万一立法会对此置之不理,则立法会就同样构成了非常严重的违法行为,违背了其岗位职责、辜负了持币者的信任,全体持币者自然会严肃处理。在这种一环扣一环的制度安排下,就可以保证每个人都必须认真履行职责了。
产品spec有了,就该编码了。Coding细分起来还可以分为架构设计、根据架构编码、测试、合并代码等环节。不过这些都遵循开源社区的规范来操作即可,全世界的程序员(甚至无需是IPRS持币者)都可以贡献代码,实现去中心化的编码。有必要的话,也可以组建编码委员会,牵头组织编码过程。与代码规格委员会相似,编码委员会也是由立法会任命,向立法会负责。
最后一个环节是代码的发行生效。这是一个最后把关的环节,必须确认研发出来的代码符合spec而且没有严重的bug才能签字发行。IPRS的机制是所有的节点的最底层是IPRS宪法的客户端程序,该程序的最主要的作用就是对特定签名的程序就自动下载安装。为此,IPRS设立代码颁布委员会,当该委员会的成员投票表决同意颁布某一代码时,该代码就自动被赋予前述特定签名,则所有节点都将被自动更新,从表决通过到全部节点更新的过程都是全自动化执行的。
同样,代码颁布委员会也是立法会任命,向立法会负责的。
代码规格委员会、编码委员会、代码颁布委员会所要求的专业能力有相似之处,之所以分成不同的组织机构,主要是因为兹事体大,需要互相监督、制约均衡。代码规格委员会提交的spec如果与立法会制定的规则不符,不用等立法会采取行动,编码委员会就可以发现问题并提出异议。而如果编码委员会提交的代码不符合spec,则代码颁布委员会就不会批准,也就不会执行生效。反之,如果代码颁布委员会想做点手脚,但因为代码不是其编写的,无法批准发行带有其不轨意图的代码。
君主立宪
“去中心化”意味着“去创始人化”,但一个创始人从无到有好不容易拉扯大的项目,凭什么要其撒手?
EOS是一个创始人自愿撒手的项目,但这个项目的ICO可是融了40亿美元。不是每个项目都能给创始人足够多的利益让其撒手的。
这个问题就有点像集权制到民主制的转换路径。在项目启动时,是由创始人控制的,等项目成熟了就要“去创始人化”,这种转换不那么容易。能够像蒋经国那样手握集权的权力却成功实行民主化转型的领袖实在是太少,何况蒋经国也是在快去世前才启动民主化进程的,寄希望于创始人主动、自愿撒手不是一个特别理想的模式。
更何况,创始人彻底离场对这个项目真的是好事吗?
一般说来,没有任何人比创始人对项目倾注的感情更多,没有任何人比创始人更了解这个项目,没有任何人比创始人更想运营好这个项目。将创始人赶走,显然不是一个好的方案。
一种比较好的方案就是参照人类社会的君主立宪制,给创始人礼仪性的待遇和紧急情况下的有限权利,但正常情况下创始人拥有的权利和普通持币者是相同的。
在这种方案中,创始人将项目上线、选举出第一届立法会之后,就由立法会接管社区,原基金会解散,创始人只担任礼仪性的社区领袖,相当于君主立宪的王室。这种礼仪性的待遇包括在宪法中给一个名分,可以代表社区出去开会发言做报告(但不能替社区决定任何事或承诺任何事)等等。唯一的特殊权利就是在紧急情况下(社区遇到危机时)创始人有权发起全民投票(而其他人发起全民投票是需要达到特定持币量的账户联署的)。总之,创始人可以利用其影响力去号召大家,但无权替社区做任何决定。
还有一个细节需要注意。在社区刚上线时可能创始人持有最大数量的币,此时需要限制创始人的投票权,使得在投票时的权重以挖矿得到的数字货币为主。
总结
通过以上的制度化设计,可以保证IPRS是不断发展完善的项目,所有的权力都归于全体持币者,可以高效专业地制定规则,所有的规则都能确保变成代码执行,任何人犯的错误都有救济纠正措施。这样,可以构建一个彻底去中心化的区块链项目,同时其运营不失专业性和效率。
当然,本文仅限于如何建立“去中心化”的治理结构的探讨,不涉及是否需要“去中心化”的内容。“去中心化”和中心化哪个好,是各有所长有不同的适用场景,还是需要组合使用(例如不可抵赖不可篡改的分布式账本是去中心化的,其余是中心化的),那将是另外的话题。
收录于哈希力量,手机站省略本文固定网址