Vota:用于去中心化社区治理的特殊用途基础设施
2023-08-09 20:40
DoraFactory
2023-08-09 20:40
订阅此专栏
收藏此文章
长期改进投票和治理科技,建造开源,现代化的投票系统。


撰文:Eric Zhang

编译:DoraFactory


区块链可以在货币和金融交易之外发挥作用。其中一种非金融应用便是区块链可以极大地改进投票和治理领域。在本文中,我们探讨构建一种特殊用途区块链的方法,该基础设施旨在促进基于 MACI 的投票活动。该基础设施应包括充当时间戳服务器并托管逻辑的轻型区块链,以及减少用户成本 / 最大化用户体验所需的工具。因此,它应该成为新一代投票技术的新基础平台。在深入探讨细节之前,让我们首先回顾一下投票技术的历史以及投票在区块链社区内的发展过程。


投票技术的演变


从古希腊 Kleroterion[1]到现代电子投票机的投票技术。


投票技术有着悠久的历史[2]。它对人类社会非常重要,但发展非常缓慢。英国在 2019 年大选[3]期间仍然依赖手写选票,其他民族国家使用闭源电子投票机[4],很容易为治理结果带来争议[5]。


现代投票技术的采用提高了效率,但在解决透明度和可验证性方面并没有取得太大成功。


毋庸置疑,投票的诚信对于权力的交接、重要事务的决策或资源的分配非常重要。如果人们不能就治理决策的投票结果达成一致,他们就无法相互合作,摩擦就会增加。摩擦可能会引起问题,如从争端到战争。


尽管投票技术正在缓慢发展,但透明度在很长一段时间内并没有得到改善。从 Kleroterion 到纸质选票,再到电子和光学扫描投票机,验证仍然依赖于值得信赖的个人和审计组织。确认和审核投票结果的成本可能极其高昂[6]。显然还有改进的空间。


那么理想的投票技术是什么?其实这并不是一个困难的问题。我们可以轻松创建一个「愿望清单」:


(1) 基础设施开源;

(2) 托管用于投票逻辑的开源程序;

(3) 按顺序保留所有投票的永久记录;

(4) 能够对结果进行密码学验证;

(5) 抗串谋;

(6) 保护隐私;

(7) 投票成本低。


如果我们能够构建一个可以不断完善的开源系统,我们就会逐步实现上述目标。投票技术的改进和成本的降低可以使较小的组织和社区受益于使用他们以前无法获得的技术,这增加了巨大的正外部性。


区块链社区内的投票和治理


投票和治理在区块链社区中并不陌生,因为很多区块链社区都是分布式的,他们必须依靠治理来推动事务的发展。


区块链本身可以透明地记录投票并验证投票结果。这些属性已被区块链社区用于治理,例如 Snapshot 代币投票[7]和 Cosmos 治理提案投票[8]活动。因此,区块链社区可以在不经过中心化代理或面对面会议的情况下,对提案进行投票,并决定重要的治理事务。


KlaytnSquare[9]正在进行的一项提案[10]呼吁验证者在链上投票。该提案寻求季度财政支出计划[11]的批准。


前述的例子采用了简单直接的 1 代币 1 票规则 - 拥有多少投票权取决于在网络或协议中的权益。显然,只要有意义,我们可以创造其他投票逻辑。区块链的可编程性使得实施非传统投票逻辑变得更加容易和实际。


一个例子是二次方投票[12](QV),这是一种在区块链社区中越来越受欢迎的投票方案。在 QV 轮中,用户可以通过在特定主题上花费「投票信用积分」(Voice Credit)来表达他 / 她的偏好。但如果选民想对同一主题投不止一票,则每票的投票信用成本就会增加。因此,投票的总成本呈二次增加,阻止了那些拥有过多投票权用户的极端偏好。


二次方资助[13]轮在 Aptos 区块链上投票。投票结果记录在链上,投票逻辑可验证。


选择特定投票方式时需要考虑许多参数。例如,一个权衡是选择链上投票还是链下投票。链上投票逻辑可能更具可验证性和透明度,但交易手续费可能是一个重要的负担。相反,链下投票逻辑可能更便宜,但同时透明度和可验证性较低。然而,链上与链下投票不是二选一的关系。我们可以很容易地将其设计为混合系统,其中部分流程在链上进行,其余部分在链下完成。


除了成本之外,还有隐私问题。隐私之所以重要有两个原因。首先,在很多情况下,如果用户可以匿名投票(用户和组织者之间的隐私),他们对投票的顾虑就会减少。此外,用户之间的隐私可以帮助防止投票贿赂,有效实现抗共谋。


我们可以最大限度地减少链上计算,同时强制链下完整性的一种方法是使用零知识证明[14]。一个简单的想法是,如果链下计算可以通过零知识证明进行验证,我们就可以将大部分计算移至链下。如果消息进一步加密,我们就可以增强隐私性。MACI[15]是实现这一目标的最小框架。


MACI 投票轮将计票转移到链外。最后通过零知识证明链上验证结果的有效性。


在 MACI 投票轮中,投票被封装在由一轮管理员(运营者)生成的公钥加密的消息中,并提交给智能合约。因此,所有消息都被区块链「时间戳」,从而创建了一个投票信息的消息链。


当投票轮次结束时,管理员下载所有消息,对它们进行解密,并以相反的顺序进行投票计数。然后,将结果与零知识证明一起发布,可以在智能合约上(或由任何其他人)进行验证,从而标志着发布结果的有效性以及消息处理的正确性。


整个过程在保证发布结果的完整性的同时,保持了最小的链上计算。它还为用户之间提供了隐私和抗共谋的能力。


MACI 在实际产品中是如何工作的?


MACI 现在被 DoraHacks[16]上的各个黑客马拉松社区用来投票选出他们最喜欢的黑客马拉松项目。所以我们以 DoraHacks MACI 轮次为例。


OpenSea 与 Replit 黑客马拉松在 2022 年使用 MACI 进行评委投票


黑客马拉松项目 (BUIDL) 提交后,主办方从所有提交的作品中选出了 12 支 BUIDL 团队。10 名评委受邀为这 12 支 BUIDL 团队投票,并分发 25,000 美元的奖金。10 名评委被列入白名单,报名参加投票轮,他们总共向部署在 Polygon 上的 MACI 智能合约发送了 39 条消息。


投票结束后,管理员(DoraHacks)统计票数并将最终结果发布到排行榜上,然后提供零知识证明来验证排行榜。


OpenSea x Replit 黑客马拉松投票结果的排行榜。


验证排行榜上显示的结果的零知识证明。


作为一个通用框架,MACI 可以用于黑客马拉松评委投票和开源社区投票之外的投票用例。然而,令人惊讶的是,在更多投票用例中采用 MACI 的情况却很少见。更广泛地说,区块链投票本身在现实世界中还没有被采用。


使用区块链改进投票技术的好处显而易见,但为什么现实世界却没有向前发展?即使在区块链社区内,MACI 的优势显而易见,为什么去中心化社区不普遍采用 MACI?


先进投票技术采用缓慢的一个主要原因并不是需求低,而是使用这种技术的困难。换句话说,我们需要改进技术,为现代投票产品提供更好的 UX/UI,并降低用户的使用成本。


用户体验


除了开源社区治理之外,我们还需要构建更多接口供用户使用新的投票技术。DoraHacks 为 Web3 生态系统和黑客马拉松社区提供了目前整个行业最好用的产品来提供资助。尽管 DoraHacks.io 上的接口本身具有特定的用例,但可以对其进行简化然后泛化,以便为更多用例构建更多接口。


具体的前端策略尚未确定。然而,良好的用户体验对于该技术的采用至关重要,即使是在区块链社区中也是如此——这对于 Dora Factory 开发者来说很重要。


投票费用


通用区块链应该尽可能去中心化,并为所有类型的应用程序提供单一的基础设施。这些区块链并非旨在针对任何特定类型的应用程序进行优化,尤其是非货币或非金融应用。同时,当存在大量应用程序竞争同一组计算资源时,交易费用会出现波动。成本的不可预测性会给投票带来麻烦。


为此,Dora Factory 最近测试了一款名为 Vota[17]的新产品。Vota 的想法是尝试特殊用途的区块链,并利用它们来不断优化投票技术和用户体验。目前,Vota 还处于婴儿阶段。然而,我们可以想象几种不同形式的 Vota。


临时智能合约


这是目前在 DoraHacks.io 上支持投票轮次的方式。每轮投票都作为单独的智能合约部署在特定的区块链上。大部分情况下,以太坊通常无法直接支持大部分的投票场景(这就是为什么 Snapshot 是以太坊社区默认使用的产品)。目前,Polygon 和 BNBChain 是 DoraHacks 上大多数资助组织者和黑客马拉松组织者的热门选择。


L1 区块链上的临时智能合约,所有投票消息发送到 L1。


使用临时智能合约并不完全是坏事。它很灵活,可以根据需要将其部署在任何地方。对于 DoraHacks 的用户而言,目前效果还不错,但无法同等满足所有投票需求。


L2 Vota


如果我们创建一个专门用于投票的二层基础设施(L2),可以显着降低 Gas 费成本,并且可能能够在以太坊上实现低成本的投票。L2 合约不必全部部署在以太坊上,它们可以更便宜,只需不时地提交 L1 交易以验证所有 L2 活动。


我们可以进一步优化这个模型。通用 L2 必须经常提交到以太坊。Vota 每轮只需向以太坊提交一笔交易,即每轮最多只需要一笔交易的 Gas 费成本。如果多轮在同一时间结束,他们可以共享一笔交易以进一步降低 Gas 成本,使投票 L2 更加现实可行。


消息直接发送到 L2 合约。每轮结束时只有一笔交易被发送到 L1 区块链。


L3 Vota(适用于 L(n)Vota,其中 n>=3)


L3 Vota 并非完全没有意义。通过已建立的 L2,L3 Vota 可以进一步将 Gas 费降低一个数量级。尽管 L3 交易最终在以太坊上记录和验证,但权衡之处在于要相信所选择的 L2。


当然,我们可以进一步将其扩展到 L(n) Vota,因为 L(2)…L(n-1) 将向以太坊(或其他 L1)提交交易。但显然信任链会让事情变得复杂。从目前的情况来看,很多著名的 L2 仍然依赖于单一的排序器(Sequencer);现在谈论 L(4) 可能还为时过早。



应用链 Vota


Dora Factory 开发者创建了一个简单的「Hack」,允许 CosmWasm 合约使用[18]Bellman[19]验证 SnarkJS 生成的零知识证明。通过将 Bellman 纳入 CosmWasm 合约中,任何 Cosmos 应用链都可以快速支持 zk 应用程序。


借助运行 zk 应用程序的能力,独立的区块链可以使用像 Tendermint 这样的软件架构来构建一条链。这些区块链的共识类似于 BFT,或更简单,它们通常可以支持多达 100 个左右的验证者。通过仔细选择利益不一致的验证者,独立的区块链可以足够安全和中立。



随着 DoraHacks 欢迎更多 Cosmos 应用链加入,基于应用链的 Vota 的一个明显用例是为黑客马拉松结果投票。除了 DoraHacks 之外,基于 Cosmos 应用链的 Vota 的作用远不止黑客马拉松评委投票。


应用链 Vota 的验证器数量较少,但精心挑选的验证器可以提供可靠的基础设施。


值得注意的是,这些解决方案并不是排他性的。随着 Vota 的发展,不同的解决方案可能会交叉。例如,如果我们有一个独立的应用链版本的 Vota 作为主要基础设施,对于需要在特定 L1 上进行交易验证的用例,应用链可以向 L1 发送额外的交易。


更好的匿名性


目前正在进行的研究工作旨在使 MACI 更加去信任。最初的 MACI 做出了一个重要的信任假设,即管理员不会腐败。这并不具有普遍性。为了改进这一点,有基于 MPC 的[20]解决方案和基于非 MPC 的[21]解决方案。目前,DoraHacks 已经构建了一个基于 ElGamal 可重随机化加密的匿名 MACI 版本,该加密最初由 Kobe Guikan 提出。[22]它已在 DoraHacks.io 上的小型 ETH 研究资助轮[23]中进行了测试。


目前,在 MACI 本身被广泛采用之前推动匿名 MACI 的采用可能有点过早。然而,继续研究以减少一般投票机制的信任假设也很重要。


通过添加允许用户停用和更改其秘密密钥的操作来为 MACI 添加匿名性,而管理员无法知道谁添加了哪个新密钥。


GAS 支付


重要的是不要假设用户拥有加密货币。如果每个用户每笔交易都需要支付 Gas 费,那么区块链的用户将仅限于一小部分人。为了解决这个问题,MACI 运营商可以预先存入一笔可退还的代币并支付用户的费用。该机制可以通过加油站来实现。


加油站本身是一个驻留在 Vota 上的智能合约。在每轮开始之前,操作者可以选择使用它,也可以不使用它。通过使用加油站,运营商将 DORA 预先存入智能合约中,并且可以通过加油站支付与特定回合相关的交易费用。


最有可能的是,Vota 会部署一个默认的加油站,人们可以按需部署自己的具有不同支付逻辑的加油站。


Gas 支付合约是每轮投票的 Gas 余额的账本。


结论


特殊用途的区块链可能适用于广泛的特定应用用例,尤其是非金融用例。投票是区块链和零知识密码学可以帮助显着改善的最重要问题之一。提高投票透明度和效率可以减少人类社会和区块链社区内部的治理摩擦,从长远来看可以提高生产力。像 MACI 这样的协议为区块链上的投票应用程序创建了简洁的框架,但投票技术还需要做很多工作来改进。具体来说,我们需要一个用户友好的基础设施作为基础来长期改进投票技术,本文详细介绍了未来的工作。


参考
Kleroterion:https://en.wikipedia.org/wiki/Kleroterion
投票技术悠久的历史:https://electionlab.mit.edu/research/voting-technology
英国 2019 年「脱欧」大选:https://en.wikipedia.org/wiki/2019_United_Kingdom_general_election
电子投票机:https://en.wikipedia.org/wiki/Dominion_Voting_Systems
选举结果争议:https://www.reuters.com/legal/dominions-defamation-case-against-fox-poised-trial-after-delay-2023-04-18
确认和审核投票结果的成本可能极其高昂:https://azsos.gov/elections/voters/voting-elections/ballot-processing/2022-general-elections-recount-information
Snapshot 代币投票:https://snapshot.org/
Cosmos 治理提案投票:https://www.mintscan.io/cosmos/proposals
KlaytnSquare:https://square.klaytn.foundation/GC
KlaytnSquare 的一项提案:https://square.klaytn.foundation/Proposal/Detail?id=4
财政支出计划:https://govforum.klaytn.foundation/c/proposal/5
二次方投票:https://en.wikipedia.org/wiki/Quadratic_voting
二次方融资:https://research.dorahacks.io/2022/07/11/quadratic-governance
零知识证明:https://en.wikipedia.org/wiki/Zero-knowledge_proof
MACI:https://ethresear.ch/t/minimal-anti-collusion-infrastructure/5413
DoraHacks:https://dorahacks.io/grant/ethdenver22/buidl
Vota:https://vota.dorafactory.org/
一个简单的「黑客」,允许 CosmWasm 合约使用:https://github.com/DoraFactory/snarkjs-bellman-adapter/tree/main/prove
Bellman:https://github.com/zkcrypto/bellman
基于 MPC 的解决方案:https://research.dorahacks.io/2023/03/30/mpc-maci-anonymization
非基于 MPC 的解决方案:https://ethresear.ch/t/maci-anonymization-using-rerandomizable-encryption/7054
匿名 MACI 版本,由 KobeGuikan 提出:https://github.com/dorahacksglobal/anonymous-maci
ETH 研究资助轮:https://dorahacks.io/grant/ethre3/maci

【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。

DoraFactory
数据请求中
查看更多

推荐专栏

数据请求中
在 App 打开