一文了解波卡民主模块

公投议院是链上治理的三个机构之一,在波卡和 Kusama 中都是如此。另外两个机构是理事会和技术委员会。

公投(Public Referenda )可以由系统中的任何代币持有人提出和投票,只要他们绑定(代币)。在一个议案被提出后,其他人可以通过 “附议(second)“ 并拿出和原绑定金额相同的代币来赞成该议案。在每个提案启动阶段,附议最多的提案都会被移交到公投上进行投票表决。选民如果愿意将代币锁上更长的时间,也可以这样做,从而加大他们的投票权重。有关治理机制的更多详细信息,请参阅此处[1]。

本指南将指导代币持有人如何使用 Kusama 上的民主模块(Democracry Module),就公投进行提案和投票。

重要参数

使用民主模块投票时需要注意的重要参数如下:

  • 启动期:多久进行启动一次新公投。

  • 投票期:多久进行一次全民投票。

  • 紧急投票期:针对一个需要快速跟进的紧急公投的最短投票期。

  • 最低存款额:公投议案保证金的最低金额。

  • 执行期:锁定资金的最短期限,和议案从被批准到颁布之间的时间。

  • 冷却期:提案被否决后不能重新提交的时间。

提出议案

提出议案首先需要你绑定一些代币。为了确保你有足够的代币进行最小的存款,你可以检查链状态下的参数。

在 Polkadot Apps 上,你可以使用 “民主(Democracy)” 这一栏来提出新的提案。为了提交提案,你需要提交所谓的原像哈希(preimage hash)。原像哈希只是要颁布的提案的哈希值。获取原像哈希的最简单方法是单击 “Submit preimage” 按钮并配置你提案建议的操作。

例如,如果你想提议帐户“Dave”的余额为 10 个代币,那么你的提议可能类似于下图所示。原像哈希为0xa50af1fadfca818feea213762d14cd198404d5496bca691294ec724be9d2a4c0你可以复制此原像哈希并将其保存到下一步。此时不需要单击 Submit Preimage,尽管可以这样做。我们将在下一节讨论这个问题。

现在,你将单击“SubmitProposal”按钮,在名为“preimage hash”的输入中输入原像哈希,并在“locked balance”字段中输入最低存款额。点击蓝色的“Submit proposal”按钮并确认交易。现在你应该会看到你的提议出现在页面的“议案”列中。

现在,任何访问该链的人都可以看到你的议案,其他人可以对其进行附议或提交 preimage。然而,很难说这个提议到底做了什么,因为它显示的是议案的哈希。其他持有者将无法判断他们是否支持它,直到有人提交了这项议案的实际 preimage。在下一步中,你将提交 preimage。

提交 Preimage

因为提交一个大的 preimage 的存储成本可能相当昂贵,所以提出一个议案的过程与提交该议案的 preimage 是分开的。允许 preimage 提交作为一个单独的交易处理,意味着如果你没有足够的资金,另一个帐户可以为你提交 preimage。这也意味着你不必马上支付超出范围的那么多资金,因为你可以证明 preimage hash。

然而,在提案通过之前,你需要提交 preimage,否则提案将无法实施。我们现在将向你演示如何执行此操作。

单击蓝色的 “submit preimage” 按钮并将其配置为与之前获取 preimage hash 一样的操作。这一次,你不需要将哈希复制到另一个选项卡,而是继续执行并单击 “submit preimage” 并确认交易。

一旦交易完成,你应该看到用户界面更新了你已经提交的议案的信息。

赞成一项议案

赞成一项议案意味着你同意该议案,并以与最初锁定的相同金额的押金作为后盾。通过支持一项议案,你会把它提升到比较靠前的议案。最受支持的议案,按照价值而非支持者数量统计,将成为公投议案,在每个启动期进行投票。

要对一个议案进行支持,请导航到要进行支持的议案,然后单击“Second”按钮。

系统将提示你议案的完整详细信息(如果 preimage 已提交!)然后通过点击蓝色的“Second”按钮来广播交易。

一旦成功,你将看到你的赞成票出现在议案详细信息的下拉列表中。

对一项议案进行投票

在每个启动期结束时,支持率最高的提案将转为公投。在此期间,你可以投赞成票或反对票。你也可以把你的代币锁上更长的时间,来增加你投票的权重。在你的代币锁定期间,你无法转移它们,但是它们仍然可以用于进一步的投票。代币的锁定 是层层叠加的,所以如果你一周后再次投票,8 周的锁定不会变成 15 周,而是另加一个 8 周的锁定期。

要对公投进行投票,请导航到 Polkadot App 的“民主[2]”栏。任何积极的公民投票都会在“公民投票 referenda”一栏中显示出来。点击蓝色按钮“投票”,为公投投票。

如果你想对提案投赞成票,请选择“Aye, I approve”选项。如果你想在公投中投反对票,你将选择“Nay, I do not approve”选项。

第二个选择是为这次投票选择你的意愿程度(conviction)。你愿意锁定代币的时间越长,你的投票权重就越大。不愿意锁定你的代币意味着你的投票仅占你所持代币的 10%,而 256 天的最大锁定时间意味着你可以让你的投票是你所持代币的 600%。

当你对所做的决定感到满意时,单击蓝色的“投票”按钮提交你的交易,并等待它包含在一个区块中。

委托投票

如果你太忙而没有时间继续投票,你可以选择将你的投票权委托给你信任的另一个帐户。当你委托给另一个帐户时,该帐户将获得你代币的附加投票权以及你设置的投票意愿。授权投票意愿的工作原理与常规投票的意愿相同,只是你的代币锁定时间可能比正常情况下更长,因为取消委托投票时锁定会重置。

一旦委派成功后,被委派到的帐户不会执行任何特殊操作。他们可以继续就他们认为合适的公投进行投票。不同的是,现在民主制度计票时,无论被授权人投了什么票,都会附加上被委托的代币。

你可以把你的投票权委托给另一个帐户,甚至可以给这个授权附加一个“意愿”。导航到 Polkadot App 上的“Extrinsics”选项卡,然后选择“democracy 民主”和“delegate 委派”选项。这意味着你正在访问民主模块并选择要发送的委托交易类型。你的授权将计入你委托的任何帐户的投票,直到你明确取消你的投票。

在第一个输入框中,选择你要委派给的帐户,在第二个输入框中选择你的意愿金额。记住,更高的意愿意味着你的投票将被锁定更长的时间。所以要明智地选择!

发送委托交易后,你可以通过导航到“Chain State”选项卡并选择“民主”和“委派”选项来验证它是否通过。你将看到类似于下面的输出框,显示你已将投票权委托给的地址。

取消委托的投票

你可能会在将来的某个时候决定取消对目标账户的委托。在这种情况下,你的代币将根据你在授权开始时设定的意愿最长时间锁定。例如,如果你选择了“2x”委托 4 周锁定时间,你的代币将在发送取消授权交易后锁定 4 周的时间。一旦你的投票被取消授权,你就可以再次控制它来投票了。你可以直接开始投票,或者选择一个不同的账户作为你的代表。

undelegate(取消授权)交易必须从你希望清除其委派权限的帐户发送。如果 Alice 授权给了 Bob,那 Alice 就是那个需要调用 undelegate的交易,来清除她的委派。

最简单的方法是从 Polkadot App 的“Extrinsics”选项卡中进行操作。选择“民主”模块和“取消授权”交易类型。确保你发送的交易是从你想要清除授权的帐户发出的。点击“提交交易”并确认。

治理代理人

治理代理(governance proxy)可用于代表一个 stash 帐户参与治理。治理代理可以执行来自民主、理事会、技术委员会和国库模块的任何交易。与委托不同的是,代理是作为一个长期账户,对不同账户中持有的基金进行所有与治理相关的交易。委派是一种合理的操作,当你信任另一个帐户的判断时会采取这种方式,而代理更像是一种建议的安全做法,以确保你的资金安全,并使用一个有低资金的活跃帐户。

在“代理[3]”页上了解有关代理和其他类型代理的详细信息。

为什么使用代理

治理代理的思想引入了一个安全级别。当与民主、理事会、技术委员会和国库模块进行交易时,治理代理使用从其 stash 账户中发送的低资金。这使得代理可以更安全地执行链上操作,而不是 stash 帐户本身。

增加一个代理

添加代理包括提交单个交易,即代理模块中的交易类型 “addProxy”。

通过导航到“Extrinsics”选项卡并选择代理模块和“addProxy”交易类型,可以从 Polkadot App进行此交易处理。将交易从持有你要投票的资金的“stash”帐户和目标帐户发送到将执行治理操作的代理帐户。选择“治理”作为代理类型。

你还可以选择在代理模块的“匿名”类型下添加治理匿名代理,并选择“治理”作为代理类型。治理匿名代理只能由另一个代理访问,这些代理不附带任何关联的密钥。

在这里阅读更多关于匿名代理[4]的信息。

通过代理投票

代表 stash 账户进行投票需要代理模块中的“代理”交易。当您从“外部”选项卡中选择此交易时,它将允许你从“民主”模块中选择“投票”,并且你将指定正在投票的全民投票的索引、判决(即“赞成”表示赞成或“反对”表示拒绝)和意愿,就像普通投票一样。

移除代理

在某些情况下,你可能希望删除一个代理,使其无法代表一个 stash 帐户投票。这可以通过从 stash 帐户提交一个“removeProxy”交易来实现,目标是代理帐户。你还可以选择“removeProxies”,这将删除从选定的 stash 帐户创建的所有代理。