民主是治理的一种形式,几个世纪以来,社会以不同的民主形式演练着。它最纯净的形式,是权利的去中心化。权利去中心化最早出现在公元前5世纪,由希腊单词 (δημοκρατία) 意为“人民的治理”由来。26个世纪后由波卡取其形式,民主在波卡中的应用可理解为“质押相关人的规则”。这些规则上演着波卡的治理机制,只允许网络中质押相关人(参与者)同意的改变发生。当网络迫切地希望以去中心化的形式运行时,这也意味着网络如何处理代码升级。当一个新功能被提议时,网络参与者即 DOT 持有人会进行投票。如果通过了民主治理的流程,会自动触发 set_code 功能,该功能会升级网络的 runtime 代码(即 WebAssembly blob,我们将在字母 W 时讲到)。这是波卡如何在处理硬分叉,而其他很多公链需要升级自己的代码。
所以系统是怎样工作的呢?简而言之的流程:提交公投提案 > 进行投票 > 执行,在每一步中间有很多缝隙为简化没有进行填充描述。具体流程请参考 wiki。
提交公投提案
在波卡中,民主的主要表现形式为民主公投。民主公投是一个简单、可参与度高、以质押量为权重的投票机制,通常可以由以下不同方式提交一个公投提案:
- 公共提交的提案;
- 由理事会提交的,大多数或一致同意的;
- 上一个公投需要执行的提案;
- 由技术委员会提交、被理事会批准的紧急提案。
民主公投提案的投票
提案需要绑定一些代币,一旦提案递交,代币会被锁定直至“提上桌面”。即,已经公示了一个投票周期。绑定代币有锁定周期,波卡是28天,Kusama 为8天。
一旦提案进入到被投票的阶段“摆上桌面”,就可对其投票。在现实中,投票率为100%的投票极其少见,所以我们开发了“自适应投票偏见”的统计方法。简单来说,该系统根据出席率,智能调节“aye"或者“nay”的比例来通过或者不通过一个提案。
执行
每一个被通过的提案在生效执行前都要等待一段时间,即等待调用 set_code。我们称这段时间为“延迟执行周期”,在这段时间内,不同意该提案的质押人可以离开,同意的可以锁定自己的 DOT 直到生效。
理事会
任何 DOT 持有人可被选为理事会成员,这是由一组质押相关人组成的轮值投票小组,即理事会的席位由投票一次得出一个。像网络的其他部分,选举使用了“贯序 Phragmén 算法”。波卡目前有13个理事会席位,并打算最终拥有24个,Kusama 有19个席位。理事会候选人为选举绑定 DOT,选中时 DOT 被解锁。排在当选者后面的候选人持续到下一次选举,即锁仓到下一次席位选举开始。波卡的理事会选举周期为7天,Kusama 为1天。他们的职能是控制财库、提交公投、取消危险或无争议公投,以及选举技术委员会。理事会的存在使网络拥有一组可信任的团体代表缺席者,确保民主按意愿在进行。
观看这个直播,带你更深入了解波卡治理。