1 民主模块

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

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

重要参数

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

  • 启动期:多久进行启动一次新公投。
  • 投票期:多久进行一次全民投票。
  • 紧急投票期:针对一个需要快速跟进的紧急公投的最短投票期。
  • 最低存款额:公投议案保证金的最低金额。
  • 执行期:锁定资金的最短期限,和议案从被批准到颁布之间的时间。
  • 冷却期:提案被否决后不能重新提交的时间。

提交提案

提出议案首先需要你绑定一些代币。为了确保你有足够的代币进行最小的存款,你可以检查链状态下的参数。绑定的代币只有在提案提交(即进行投票)后才会释放;在公投之前,用户无法“撤销”提案并取回保证金。由于无法准确预测提案何时会被全民公投(假如有),这意味着任何绑定的代币的锁定期都是未知的。

提案人不能撤销提案,即使这些提案永远不会变成公投。重要的是要注意,用于提议或附议提案的 PHA 不会在任何确定的时间范围内进行返还。

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

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

现在,您将单击“Submit Proposal”按钮,在名为“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”按钮来广播交易。

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

提案公投

在每个启动期结束时,支持率最高的提案将转为公投提案。在此期间,您可以投赞成票或反对票。也可以把代币锁上更长的时间,来增加投票权重。在代币锁定期间,代币虽然无法转移,但是仍可以用于进一步的投票。代币的锁定期是层层叠加的(一个周期为7天),也就是说,完成投票后再次投票,锁定期将一共是14天。

要对公投提案进行投票,请导航到 Khala 的“民主”栏。任何积极的公投都会在“referenda(公投)”一栏中显示出来。点击橙色按钮“投票”,为公投投票。

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

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

若赞成提案,单击橙色的“Vote(投票)”按钮提交交易,并等待它被区块打包。

代币解锁

与归属权一样,锁定在 democracy 中的代币将惰性释放。这意味着用户必须调用 Extrinsics 函数来解锁,以确保资金在锁定到期后可再次使用。 解绑(Unbonding)是在 Phala 中经常听到的另一个术语,意思是回收用户在 staking 中使用的 PHA。了解更多信息,请参阅此处

用户可以从 Khala 应用程序中的“帐户(Account)”页面执行此操作,除非使用 Ledger(见下文)。首先打开账号余额详细信息,检查账户是否有“democracy”资金。在下面的例子中,账户有 9 PHA 锁定 democracy 在中。

单击“Clear expired democracy locks(清除过期的民主锁)”,确认交易,交易成功后锁定的代币将解锁。

委托投票

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

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

您可以把您的投票权委托给另一个账户,甚至可以给这个授权附加一个“Conviction(意愿值)”。导航到 Khala 上的“Extrinsics”选项卡,然后选择“Democracy (民主)”和“Delegate(委托)”选项。这意味着您正在访问民主模块并选择要发送的委托交易类型。您的授权将计入您委托的任何账户,直到您取消您的投票。

在第一个输入框中,选择您要委托的账户,在第二个输入框中选择您的意愿值。记住,更高的意愿值意味着您代币将被锁定更长的时间,所以要明智地选择!

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

取消委托投票

您可能会在将来的某个时候决定取消对目标账户的委托。在这种情况下,您的代币将按授权时设定的意愿值的进行锁定。例如,如果你选择了“2x”的意愿值,那您的代币将在发送取消授权交易后锁定16天。一旦您的投票被取消授权,您就可以再次进行投票,既可以直接投票,也可以选择账户进行委托。

Undelegate(取消授权)交易必须从您希望清除其委托权限的账户发送。如果 Alice 授权给了另外一个用户,那 Alice 就需要调用 undelegate 来取消她的委托。

最简单的方法是从 Khala 的“Extrinsics”选项卡中进行操作。选择“Democracy”模块和“Undelegate”交易类型。确保交易是从您想要清除授权的账户发出的。点击“Submit Transaction(提交交易)”并确认。

通过代理投票

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

链上数据说明

以下示例展示了区块浏览器是如何显示投票结果的。

Nay 0.1x => 0 Nay 1x => 1 Nay 2x => 2 Nay 3x => 3 Nay 4x => 4 Nay 5x => 5 Nay 6x => 6 Aye 0.1x => 128 Aye 1x => 129 Aye 2x => 130 Aye 3x => 131 Aye 4x => 132 Aye 5x => 133 Aye 6x => 134

乍一看,可能这是很难解释的投票内容,我们需要在二进制维度上解读“投票数据”。

投票是通过位域数据结构以一个字节的形式存储,并以十进制整数显示在区块浏览器上。位域存储了信念值和 aye/nay 布尔值,其中布尔值使用字节的 MSB 表示。这意味着剩余 7 位的分组用于存储结果判定信念值。