操作规则。是指影响大家日常决策的规则,比如 Zcash 的挖矿分配、MakerDAO 的稳定费率、以太坊的 gas 上限等等。在使用区块链功能时,依靠的大多数规则都属于操作规则。
集体选择规则。是指在制定操作规则时使用的规则,比如 Zcash 要改变挖矿分配时,它依靠的规则是什么?MakerDAO 要改变稳定费率时,它依靠的规则是什么?以太坊要改变 gas 上限时,它依靠的规则是什么?当谈论区块链治理时,涉及的大多数规则都属于集体选择规则。
宪法选择规则。它是用来决定谁具有资格来制定影响集体选择规则的规则,区块链在该层次的规则设计上不太健全。比如以太坊用全员投票规则决定 the DAO 事件的处理,Zcash 用社区代表投票规则决定矿工税的实施,但谁有资格制定规则来决定使用什么样的投票规则?不过区块链在该层次上也有独到的一种优势,就是硬分叉,如果无法就规则达成一致时,可以选择分叉。
不同的提案内容,是否由不同的人来表决?比如与路线图相符的技术升级,由核心开发者来投票;与矿工关系密切的,比如 gas 上限的设置,由矿工来投票;与整个社区关系密切的,比如增发比例,由代币持有人来投票……
如何设计投票模型,以保证投票结果能够准确表达投票人的意愿、社区的意愿。
设计这些规则需要考虑诸多元素,因此并不简单。比如代币持有人投票,它看上去是适合社区治理的一种方法,为什么不就采用它?那从理念上讲,代币持有人投票表达的是已经在生态中的人的意愿,而就以太坊来说,它在某种意义上是想为所有人服务的,包括目前还没进入生态的人,那么核心开发者或许更能站在所有人的角度上来思考问题;从技术上讲,这种一人一票的模型存在搭便车问题、贿选问题、投票人本身不一定很好的理解了提案的问题、少数人利益无法被保障的问题等等,但如果改成二阶投票模型,又会带来女巫攻击问题……
而上述治理规则基本上属于「操作规则」,在这些规则之上,还需要设计「集体选择规则」和「宪法选择规则」。
区块链本身的特点带来「code is law」思想和分叉思想,当需要改变操作规则时,它提供的做法是分叉而不是在操作规则之上设计一层集体选择规则,可是集体选择规则和宪法选择规则的缺席会给操作规则的设计带来许多问题,比如没有它们就难以解决操作规则的合法性问题。为区块链系统设计集体选择规则和宪法选择规则,或许是一个重要却被忽视的问题。