原文来自卡尔达诺基金会区块链工程师Thomas A. Mayfield,由卡尔达诺大使陈哲Anson翻译
准备诸如 2022 年卡尔达诺峰会之类的国际活动涉及多个活动部分,各个团队倾向于不同的方面,以确保事情尽可能顺利进行。 7 月下旬,卡尔达诺基金会的元数据工具团队接到了一项新任务:通过开发任何人都可以轻松使用的投票应用程序来支持峰会。该应用程序还应该利用卡尔达诺区块链的可能性,可以在链上验证每一个投票。
仅用两个月的时间来开发一个高端且功能齐全的解决方案,元数据工具团队就开始了一段紧张的工作和探索期。今天,团队和整个卡尔达诺基金会很高兴推出卡尔达诺投票应用程序( Cardano Ballot)
为投票应用程序奠定基础
卡尔达诺投票的主要要求意味着一个应用程序不仅服务于卡尔达诺峰会,而且展示了卡尔达诺区块链的优势和潜力。它的设计和建造方式需要让每个人都能投票给社区选择的发言人并奖励峰会提名人。投票也将免费提供给用户,并且每个用户只能投一票。
元数据工具团队考虑了许多设计模型,其中一些使用元数据交易,另一些使用原生资产、智能合约或 Hydra 可扩展性解决方案。还考虑了重新利用现有卡尔达诺投票解决方案的选项。
我们很快发现无法依赖基于质押 ada 数量的加权投票模型。我们需要确保每个用户的投票权重相等,而这些模型自然无法提供这样的保证。此外,该团队发现将一个钱包限制为一票存在一些困难。
在开发过程中,卡尔达诺投票应用程序演变成一个 Web3 投票应用程序,该应用程序采用了卡尔达诺基金会的新开源钱包连接器,使用户能够连接支持 CIP 30 和 CIP 8 标准的 卡尔达诺钱包。该团队实施了两种不同的方法来验证用户的钱包:要么使用 Discord 机器人,要么使用 SMS 消息。利用 CIP 8 消息签名和钱包的质押地址,我们要求用户签署通过两种方法之一提供的秘密消息,从而验证连接钱包的所有权。
开发这个新的钱包连接器库的决定有两个方面考虑。首先,我们需要一个针对卡尔达诺投票应用程序的解决方案,并且通过大量的反复试验,我们在与钱包连接相关的各种钱包项目中发现了许多问题,这意味着我们无法从中获得最佳使用。其次,该团队希望为未来的 Cardano 开发人员提供一种开源解决方案,以消除与当前问题相关的可能工作量和负担。
促进开源工具和优化实用程序
除了已识别的钱包问题外,开源钱包连接器库还试图提供一种不依赖于现有序列化库的轻量级解决方案。因此,我们开发了定制的 React 组件来提供优先考虑钱包连接和 CIP 8 消息签名的功能。最终结果是一个开源钱包连接器,使任何开发人员或项目能够无缝地引入卡尔达诺钱包连接和身份验证。我们希望这个新的钱包连接器能够增强卡尔达诺开发人员的旅程,并帮助克服我们团队遇到的钱包连接按钮和组件的有限标准化。
通过连接并经过验证的卡尔达诺钱包,用户现在可以为峰会不同演讲者和奖项类别中的各种提名人起草卡尔达诺选票。卡尔达诺选票草案也必须使用 CIP 8 标准签署,然后可以作为投票提交。通过这种方式,该应用程序利用 CIP 8 来验证连接的钱包并签署草拟的选票。该团队还采用了 CIP 8 来为应用程序创建登录功能。
在开发和实施开源钱包连接器的整个过程中,很明显,卡尔达诺生态系统中当前的移动设备支持受到很大限制。此外,CIP 8 标准在不同钱包中的实施方式存在相当大的差异。
展望未来,Cardano 基金会还打算发布一个开源的 JAVA CIP 8 验证器和解析器,可以合并到卡尔达诺 项目中。这个 JAVA CIP 8 验证器和解析器支持 CIP 8 签名的反序列化,专门设计用于支持 SundaeSwap 治理的数据提取工作流。同样,该库支持使用流行的 JAVA 编程语言对 CIP 8 签名解析进行泛化。
在链上投票
卡尔达诺选票签署后编辑并提交给系统,然后团队面临挑战,即决定什么可以提供理想的选择来在链上进行投票。选择的方法必须包含许多考虑因素,包括关注透明度和验证,以及负责任地使用区块链。
一些正在进行的讨论争论是否应该将区块链的主网络(通常称为 layer-1)用作数据库。在卡尔达诺选票的情况下,这意味着所有签名的选票都写在链上。它肯定会提供所需的透明度和验证特性,但也引起了担忧。
了解 merkle 树及其对验证的重要性后,该团队着手确定一种负责任的解决方案,该解决方案提供透明度和验证,同时不使用 Cardano 的 layer-1 作为数据库。在这个设计和开发的综合阶段,与不同社区拥有的项目的对话开始了。
在与 Voteaire 会面时,尽管团队确定了项目提出理想解决方案的众多用例,但很明显,与他们的投票解决方案集成需要在链上写入所有投票,因此不符合我们的要求。确保每个用户一票的一些现有问题也出现了。尽管如此,与 Voteaire 的讨论被证明是无价的。他们深入研究了有关去中心化投票的现有问题的重要信息,并以具有成本效益的方式为用户提供可验证的解决方案。
另一方面,SundaeSwap 最近实施了一种治理模型,该模型采用默克尔树作为验证数据的手段,并且无需将整个数据写入 Cardano 区块链即可。与 SundaeSwap 的深入讨论,以及他们愿意分享他们在开发解决方案时学到的宝贵经验,使我们能够为卡尔达诺投票应用程序的验证机制确定一个可行的解决方案,该解决方案提供透明度和验证,但不需要编写大量的数据上链。此外,它以最低的成本做到了这一点。
与 SundaeSwap 的这种合作关系也是卡尔达诺基金会与卡尔达诺社区合作的一个例子。这是基金会不断努力展示和帮助生态系统成熟的一部分。
从卡尔达诺投票到区块链实用程序
在设计和开发卡尔达诺投票应用程序的过程中,元数据工具团队遇到了卡尔达诺开发生态系统中值得称道的方面以及可以从进一步探索和开发中受益的领域。为了继续与生态系统合作,我们现在正在记录和分析改善卡尔达诺开发人员和用户体验的潜在途径。
尽管卡尔达诺投票应用程序是专门为 2022 年卡尔达诺峰会设计的,但它引发了围绕企业级解决方案以及实施该解决方案的讨论。整个卡尔达诺基金会和元数据工具团队都特别了解自我主权身份(SSI)的研究和开发。我们同样意识到在卡尔达诺上通过 Atala Prism、RootsID、IAMX 和 Sidetree-Cardano 等项目发行的去中心化标识符 (DID)。此外,如果目标是设计和开发真正可互操作的身份解决方案,则应考虑 SSI 中存在的众多标准和系统,例如 DIF、W3、IP 信任、KERI。
卡尔达诺投票应用程序最终将被重构为一个开源库。我们希望它对社区内的其他人以及超出 2022 年卡尔达诺峰会的目的有用。
这个开发项目为团队提供了令人大开眼界的体验,因为我们确定了卡尔达诺开发者旅程中需要进一步讨论的领域。考虑到这一点,卡尔达诺基金会计划在 2022 年卡尔达诺峰会上举办钱包连接器和 DApp 研讨会,并主持围绕 CIP 标准、去中心化投票等的讨论。
元数据工具团队和卡尔达诺基金会邀请整个卡尔达诺社区首先为演讲者类别投票,然后为首届卡尔达诺峰会奖投票。我们还希望在峰会上与大家面对面或以虚拟的形式进行见面,并期待继续与卡尔达诺社区合作。
原文链接:The Cardano Ballot: developing a decentralized voting app