【Chia生态】冰博士提出Chia链上投票标准提案

Chia生态中文区开发者@icerdesign(也是Pawket钱包和Chia Name Service开发者)今天提出CHIP0023改进提案,目标是在Chia链上实现投票的标准化。这对于生态中的DAO组织和社区组织来说,都是一件值得鼓舞的事!

众所周知,任何生态的完善和发展,离不开社区,特别是在WEB3领域,DAO组织已经成为推动生态蓬勃发展的重要力量。而DAO组织最重要的管理方式之一就是投票表决。在以太坊生态中,已经有了很丰富的DAO组织管理工具,包括投票、分配、财务等。

但在Chia生态中,一直缺乏有效的、值得信任的、去中心化透明的社区管理工具,因此各个社区都是散沙一盘,难以有效凝聚共识。CHIP0023无疑给了我们一个非常值得期待的计划,相信以冰博士及其团队的开发能力和效率,在不远的未来我们将用上这个工具。

【提案链接】https://github.com/Chia-Network/chips/pull/90

CHIPs/chip-0023.md

【Chia生态】冰博士提出Chia链上投票标准提案

概述

我们为 DAO 和任何社区主导的倡议提出一个安全、透明且易于实施的链上投票系统。投票系统提供了按比例代表所有 XCH 或 CAT 持有者的投票机制。所提出的系统涉及双重交易方法和临时账户私钥的公开派生,增强安全性并防止投票操纵。灵活的设计考虑使系统能够适应不同的投票场景和代币类型,从而提高鲁棒性和适应性。

动机

投票机制对于社区主导的举措至关重要,尤其是 DAO,它为集体决策提供了渠道。然而,由于中心化和易受操纵,链下投票系统存在固有风险。为了规避这些问题,我们提出了一个简单、安全且可实施的链上投票协议。该提案使投票与 XCH 或 CAT 持有量成比例,进一步实现决策民主化并加强 Chia 社区内部的安全。

向后兼容性

连锁投票不会对Chia造成任何重大改变。

基本原理

设计决策

公私密钥

临时帐户的密钥是有意公开的,并根据表单内容和相关选项派生。这一决定可以防止恶意行为者使用过期的表格或选项来操纵投票过程。它将每张投票与特定选项和形式独特地联系起来,并确保每张投票的完整性。

投票形式的代币类型灵活性

我们没有对用于投票的代币类型施加严格的结构,而是考虑了更大的灵活性。任何给定投票允许的代币类型以及任何附加标准或条件可以在投票表描述中详细说明。这种方法保持了系统的稳健性,同时适应各种投票场景和代币资产。

规范

提议的投票机制由三个组成部分组成:创建投票表格执行链上投票统计投票结果

投票表格设计

投票表单采用 JSON 格式设计,包含提议投票的查询、投票截止日期和潜在响应选项等属性。将利用 JSON 模式来验证表单。为了帮助用户区分一种投票表格和另一种投票表格,每个表格都通过“指纹”进行唯一标识,就像 Chia 的指纹识别功能一样。在这种情况下,“指纹”指的是一个独特的标识符,强调每种形式的独特性。表单的 JSON 表示可以与 Chia NFT 的元数据融合,后者也是 JSON 格式。

以下是 JSON 格式的简化示例投票表单的说明。

{ "title": "Blockchain Upgrade Proposal", "description": "Seeking community consensus on a proposed upgrade of the blockchain.", "deadline": "4500000", "options": [ "Agree", "Disagree", "Abstain" ]}

  • title”:是要投票的问题或议题。
  • description”:提供有关投票的附加信息或上下文。
  • deadline”是接受投票的最后一个区块高度。
  • options”是一个数组,其中每个值代表一个可能的响应。

JSON架构:

{ "$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": { "title": { "type": "string" }, "description": { "type": "string" }, "deadline": { "type": "string", "pattern": "^[0-9]+$" }, "options": { "type": "array", "items": { "type": "string" }, "minItems": 2 } }, "required": ["title", "deadline", "options"]}

在此架构中,投票表单 JSON 中的每个字段都使用其类型进行声明,并且在“截止日期”的情况下,需要附加模式要求以确保它是一个数字。它还指定至少需要两个选项。

链上投票

投票本质上涉及两个交易:将用于投票的 XCH/CAT 代币发送到临时账户,并将代币桥接到同一账户。两项交易都包含在同一个支出包中,确保它们同时完成,消除了代币卡在临时账户中的风险。

有趣的是,临时帐户的私钥是公开的,可以从表单内容中得出。私钥的计算规则为sk = SHA256(SHA256(form), option)。这会将临时私钥链接到特定的投票表格和选项,防止恶意行为者滥用过期的投票表格或选项来吸引错误的投票。

投票结果计算
投票结果是通过查看投票表中每个选项的地址来确定的。每个选项的分数是根据与其特定地址关联的未使用代币的总价值计算的。
分数的计算根据投票截止时间进行限制,要求所有用于投票的币在此区块高度之前保持未花费状态。

测试案例
链式投票的测试案例位于Pawket GitHub存储库的主分支中 packages/pawket-chia-lib/test/vote文件夹。

参考实施

链上投票的参考实现位于Pawket GitHub存储库的主分支中。

安全

双倍交易安全
在投票过程中同时执行两个交易可以防止令牌丢失的风险。这是通过将两个交易都包含在同一支出包中来确保的。
私钥派生
临时账户的私钥是故意公开的,并根据规则 sk = SHA256(SHA256(form), option) 根据投票表单的内容计算。这种与特定投票表格和选项的独特关联有助于防止恶意行为者使用过期表格或不同选项进行滥用,从而确保投票程序的真实性和完整性。
投票代币状态
链上投票系统要求所有投票代币在投票截止高度之前保持未花费状态。此功能可确保准确计算选票,并防止与最后一刻代币变动相关的潜在操纵。
信息透明
由于所有交易都记录在区块链上,该系统提供了完整的可追溯性和透明度,允许用户验证投票过程的公平性。

额外资产

版权

通过 CC0 放弃版权和相关权。
对话:
@icerdesign:
我提出了这个CHIP,同时还有一些剩余的工作需要完成:
  • 在 Pawket 中实现投票功能 UI。
  • 实施测试用例。
  • 尝试与社区一起运行。
@Yakuhito:
作为社区开发者,我认为有两点:
  • 该提案不包含 DAO 所要求的链上计票机制;
  • Chia 已经研究 DAO 原语有一段时间了,谜题已经在“主”分支上 – 有两个投票/DAO 标准会令人困惑。
话虽这么说,我非常高兴再次见到 Pawket 团队!
@icerdesign:
很高兴知道 CNI 正在研究原语,希望我可以在实现这个之前使用它们。
(也许我们可以告诉某人我们对此功能的热切期待。)
为了简单起见,链上计数被省略。由于每次投票都是链上透明的,因此通过链下计数达成共识变得非常简单。

原创文章,作者:admin,如若转载,请注明出处:https://news.chiahub.co/202311191602371456.html

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

联系我们

400-800-8888

在线咨询:点击这里给我发消息

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息