Decred的前世今生之《再论比特币,我们为什么要创造一个新币种?》(二)

yuwen 发布
1036e2c965f32881765ebfa2ed512e08?s=156&d=retro

yuwen

原文:https://blog.companyzero.com/2015/12/iterating-bitcoin/


过去两年多的时间里,我一直在资助并且监督另一种比特币全节点客户端btcsuite的开发工作。很明显,比特币存在着严重的治理问题。我之前写了很多文章从多个角度剖析这些问题,其中最重要的问题包括是治理问题、开发资金和pow机制下的矿工权力太大。

过去1年半里,我跟其他几个开发者一起提出意见解决这些问题、我们写代码,做测试,评估各个改善方案。我们是基于pow+pos这种混合机制作出的改变,比如Iddo Bentov、Charlie Lee、Alex Mizrahi和Meni Rosenfeld提出的 MC2 +PoA混合机制。为了能够实现有效治理,我们成立了一个项目宪章,延展了共识混合概念来更好地适应项目的多层次共识体系。

在这种分层治理机制下,不同的股东团体在不同的层面享有表决权。除了这种混合共识体系,还存在这样一条共识规则:每个区块10%的收益会给予开发基金来保障后续的开发工作和相关活动。这样一来,就避免了比特币社区所面临的多个利益集团冲突的局面,也能够保障项目的长久发展。

POW+POS混合机制

这种混合的概念是后续共识体系的基础,因此在此介绍一下。只使用POW的共识体系存在以下几种问题:通过挖空块或人为制造的小区块开拒绝打包交易;拒绝打包区块内的某些交易;矿工有能力来组织或强迫共识改变。也就是说,POW作为整个共识体系中的确认环节,却是由一小部分人来实现的,并不能代表其他参与者的意见。从本质上而言,虽然这一过程是去中心化的,而现实却是POW挖矿过程越来越中心化,日益演变成类似银行的第三方机构。而在融入了POS机制后,又增添了第二个确认环节,即POS矿工可以投票通过或否定之前POW矿工产生的区块。如果POS矿工否决了之前的区块,那么这些区块产生的奖励会减少或者归零,这就相当于POS对POW矿工起着监督作用。这样一来,POW矿工就会尽量避免社区反对的“存在疑问的行为”。

这种混合机制是基于MC2提出来的,同POA相似,但又独立于这种机制。所有的改善方案都意识到纯POS机制缺少利益相关,因此要结合POS和POW两种机制的优点。同POA机制不同,POS的参与过程类似于买彩票,投票权需要自行购买,相应的币会被锁住。票到手后,这些票可以在区块上进行表决是或否。投票被收入主链后,pos矿工会收到每次投票的相应奖励。把币锁起来会激励社区长期囤币,也就让pos矿工有了利益关联。这相当于比特币社区的“奖励囤币者”机制。

对某一特定的区块进行投票也会影响到之前的POW区块的收益。如果POS矿工否决了之前的区块,那么POW矿工就失去了这些区块的收益。也就是说,只要POS矿工达成共识,就可以一票否决POW矿工打包的区块。POS矿工可以提出他们判定区块合格与否的标准。比如,“上个区块内交易数太少,要否决这个区块。” POS矿工监督POW矿工不去挖可疑的区块,但是又让区块链记录下他们的工作量。如果POS矿工对某些区块出现了强烈的分歧,那么这些区块就不会纳入到链上;但是这种情况十分少见,因为POS矿工也希望当下就能获得区块收益。

  • POS矿工锁定币、买票、等票到手、投票,收到POS奖励整个过程大概需要30天。抽取到谁的票完全是随机的,匿名的,因此有时候收益到手了,被锁定的币还没有被释放。要是POS矿工没有参与投票或者票过期了, 那么可以申请撤销来获得被锁定的币
  • POW矿工也希望POS矿工对他们打包的区块进行投票,因为越多投票,他们的区块奖励也就越高。每个区块最多有5个POS投票,少一票POW矿工奖励就减少20%。大部分情况下,如果一个区块没有5票,那是因为POS矿工没有进行投票。

关于这个POW和POS混合机制,有技术文章会专门阐述相关问题。但这篇文章已经概括了这个系统的核心部分。

分层共识

POW+POS在POW和POS矿工中达成了一种分层共识。POW来创建区块搭建区块链,POS矿工来确保POW矿工挖出的区块符合用户的利益。换种说法,POW相当于银行,POS相当于存款人。二者结合才能让银行根据存款人的意愿来运营。在我看来,这恰恰解决了比特币社区面临的问题,那就是用户在共识系统中没有一席之地。

虽然POW+POS,要比单纯的POW或单纯的POS好,但是仅仅只有两层分层还是无法解决某些问题。比如,区块扩容。比特币社区仅存在两个分层,POW矿工和POD开发者。POD代表着不同开发者之间的共识。由于Core的客户端是使用最多的版本,因此Core开发者在不同开发者之间属于领导地位。

目前Core开发者之间的共识让整个开发团队的共识机制变得非常脆弱,因为整个社区的共识都最终依赖Core开发者。有时候,POD开发者希望对软件进行升级,POW矿工并不需要执行这么改变,但他们也会阻止软件升级。即使POD开发者同意改变区块大小,都不见得矿工不会阻止他们达成共识。

同样是扩容,在混合机制下,POS矿工可以迫使POW矿工支持协议改变。在扩容这种重大问题上,POS矿工可以进行投票来打破僵局。如果POW矿工反对新的共识规则那么POS矿工就可以通过投票让区块无效的方式迫使POW矿工妥协。问题分歧虽然解决了,但这些改变是对的吗?项目上线后,我们会同社区合作再增添一个层面让开发者和对社区有贡献者也享有表决权。

项目宪法

要有良好的治理,就自然要为项目创造一种宪法。最初,我们团队内部没有达成共识:项目宪法是要像美联储那样精简,还是像美国宪法那样面面俱到。最后,我们认为还是制定一个宪法文件比较合适,这样一个文件可以更加清楚地阐明参与者的意愿。作为开源项目,一个详细的文件符合透明精神,而这正是一般的组织机构所缺乏的。

宪法包括一系列的共识规则,如何解决分歧,治理模式的总体结构,用户可以在这个项目中获得什么。本文的前几个章节我已经说明了这个想法的前三个部分。在修订草案中会涉及用户可以从项目中获得什么这一部分,也会说明项目所要遵循的规则。同比特币一样,新项目也是总量有限。除了数量限制,还会有添加一些其他规则。通过遵守详细的规则,用户也会很清楚了解他们所在的这个社区。

资助开发

同比特币和其他开源项目一样,单纯依靠社区捐助或没有资金来源无法保障项目的后续开发。当然存在不需要资助就能成功的项目。但是对于一种要重新定义金钱的项目来说,更好的办法是依靠内部资助还不是外部机构。“钱从哪里来”这个问题十分关键,出资者是项目本身,还是Blockstream或者MIT媒体实验室都关乎到开发者和项目之间的利益冲突。

我们不指望外部人士资助项目,而是每个区块10%的收益会交给开发组织,有这个组织统一管理资金、监管开发和其他事宜。同时这个组织就项目的开发及其他工作同开发者和其他小组协调工资。最初C0这个公司默默做了很多工作,我们希望能有更多的开发者加入我们,我们也会支付相应的报酬。

开发组织一年会公开两次财务情况,收集社区的意见请求(RFPs)提交给相关方。个人或组织要提交建议需要先完成一些简单的开发任务,比如解决Github上的一些问题,这样他们就可以熟悉项目的开发实践工作。某些时候,意见请求还会要求提交一些非软件类的开发作品,具体要求可参考意见请求中对开发作品的要求。如果提交了多个作品,最终会有一个作品胜出。挑选标准多样化,其中一个标准就是预算成本。当然,被选中的作品并不是意味着它成本最低。这种机制的目的是让更多的人参与到开发工作中来,并且获得相应的报酬。

总结

我总结了一系列协议改变,我和其他几个开发者认为这些改变会极大改善比特币的现状,因为通过增添基础构架可以应对比特币面临的最大难题。由于这些改变意义重大,而且涉及共识改变,因此很有可能无法在比特币上实现。我们制定这些变化的初衷就是让项目共识和开发能够持久、高效。新的项目将于2015年12月14日公布。同时,我们会空投4%的新币来加大网络效应。空投对任何有志加入社区的人开放,更多的信息将于12月14日公布。