区块链投票在无知的人中被高估,而在知情的人中被低估

本文探讨了区块链技术在投票过程中的应用和潜在问题,指出许多人对其持有的过高或过低期望。文章阐述了投票所需的安全性要求,包括公正性、抗审查性、隐私和抗胁迫性,并指出现有区块链投票系统在隐私和抗胁迫性方面的不足。同时,提出了安全加密的电子投票机制的可能性,并探讨了如何将区块链与其他加密技术结合以提升安全性。最后,作者对区块链投票的未来发展前景进行了展望。

基于区块链的投票在信息不充分者中被高估,但在信息充分者中却被低估

基于区块链的投票在信息不充分者中被高估,但在信息充分者中却被低估

特别感谢 Karl Floersch、Albert Ni、Mr Silly 和其他人对本书的意见和讨论。特别感谢 crisgarner 的翻译。

投票是一个对过程的完整性有着非常重要需求的程序。投票的结果必须是正确的,这必须通过一个透明的过程来保证,以便所有人都能相信结果是正确的。任何人都不应该能够成功干扰投票的尝试,或阻止他们的选票被计算。

区块链是一种提供过程完整性保证的技术。如果一个过程在区块链上执行,那么可以保证该过程将根据某种预先商定的代码执行,并提供正确的输出。没有人能够阻止执行,没有人能够操纵执行,也没有人能够审查或阻止用户输入的处理。

因此,乍一看,区块链似乎提供了投票所需的所有条件。而且我并不是唯一这样想的人;许多 潜在 用户重要性上 表达了这种想法。但是,结果显示有人持有截然不同的看法……

图片

尽管投票需求与区块链技术优势的完美结合,但我们经常看到可怕的文章反对两者的结合。这不仅仅是一篇文章:这里有一篇来自《科学美国人》的关于基于区块链的投票的反对文章,还有来自 CNet 的另一篇,以及来自 ArsTechnica 的另一篇。而且不仅仅是随机科技记者在发声:Bruce Schneier 反对基于区块链的投票,麻省理工学院的研究人员写了一篇完整的文章,论证其不足之处。那么,究竟发生了什么呢?

大纲

两条关键的意见 是区块链投票协议的批评者最常表达的:

  1. 区块链是进行选举的错误软件工具。它提供的信任属性与投票所需的属性不匹配,其他类型的信息流和信任属性不同的软件工具将工作得更好。
  2. 软件通常不可信,在执行选举时,无论是什么软件。不可检测的软硬件错误的风险过高,无论平台如何组织。

本文将讨论这两项主张(“反驳”这个词过于强烈,但我与这两项主张的意见不合的程度绝对超过我同意的程度)。 首先,我将讨论现有尝试使用区块链进行投票的安全问题,以及 正确的解决方案不是放弃区块链,而是将其与其他加密技术结合。其次,我将解决关于软件(和硬件)是否可信的担忧。答案是:计算机安全正在大幅改善,我们可以努力推动这一趋势。

从长远来看,持续坚持纸质投票将对我们改善投票的能力产生巨大不利影响。无论如何投票是自 250 年前民主的一种形式,若投票变得更方便、更简单,那么我们可以更频繁地参与投票,从而实现更好的民主。

需要指出的是,整篇文章都建立在存在良好的区块链扩展技术的基础上(例如,sharding)。 当然,如果区块链无法扩展,那么这一切都无法实现。但到现在为止,这项技术的发展正迅速推进,并且没有理由相信它无法实现。

不良的区块链投票协议

基于区块链的投票协议经常被黑客攻击。两年前,一家名为 Voatz 的区块链投票科技公司引起了广泛关注,很多人对此非常兴奋。但去年,麻省理工学院的一些研究人员发现了他们平台上的一系列关键的安全漏洞。与此同时,在莫斯科,一个将在即将到来的选举中使用的基于区块链的投票系统被黑客攻击,幸运的是,发生在选举之前的一个月。

黑客攻击相当严重。以下是分析 Voatz 的研究人员发现的攻击能力的表格:

这本身并不是反对 绝对 使用基于区块链的投票的论据。然而,它确实表明,基于区块链的投票软件应该设计得更加谨慎,并随着时间的推移缓慢而逐步地扩展。

隐私和抗胁迫性

但即使是那些在技术上没有被破坏的基于区块链的投票协议也往往表现欠佳。要理解原因,我们需要更深入地探讨区块链提供哪些特定的安全属性,以及投票需要什么特定的安全属性;让我们分析后会发现,这之间存在差异。

区块链提供了两个关键属性:执行正确性抗审查性。执行正确性仅意味着区块链接受来自用户的输入(“交易”),根据某些预定义规则正确处理,并返回正确的输出(或以正确的方式调整区块链的“状态”)。抗审查性同样易于理解:任何一个想要提交交易并愿意支付足够高费用的用户,都可以提交交易并,期待它迅速被纳入链中。

这两个属性在投票中都非常重要:你希望投票的输出确实是计算每个候选人投票数的结果,选择获得最多投票的候选人,并且你绝对希望任何有资格投票的人都能够做到这一点,即使某个有权势的角色试图阻止他们。但是,投票还需要一些区块链 无法 提供的重要属性

  • 隐私:不应该能够确切知道某人投票了谁,甚至他们是否根本参与投票。
  • 抗胁迫性:不应该能够_向_他人展示你是如何投票的,即使你想这样做。

第一个要求的必要性是显而易见的:你希望人们基于个人感受投票,而不是考虑他们周围的人、雇主、警察或街上的随机恶霸对他们选择的看法。第二个要求是为了防止贩卖选票:如果你可以向别人证明你是如何投票的,那就很容易出售你的选票。选票的证明也会开启各种胁迫手段,施暴者要求查看某种对他们首选候选人的选票的证明。大多数人,即使他们都意识到第一个要求的重要性,也不会想到第二个要求。但第二个要求同样必要,而提供它在技术上并不简单。值得一提的是,你在实践中看到的“基于区块链的投票系统”通常甚至不尝试提供第二个属性,并且通常在提供第一个属性时失败。

安全的电子投票没有区块链

加密保证社会机制执行的概念并不是区块链爱好者发明的,事实上,它在我们之前就已存在。除了区块链空间,过去 20 年中一直有密码学家在研究安全电子投票问题,值得庆幸的是,的确 有优秀的解决方案。其中一篇被大量引用的本科文献是 Juels、Catalano 和 Jakobsson 于 2002 年发表的题为《抗胁迫电子选举》的论文 :

自那之后,这一概念有了许多迭代:Civitas 是一个突出的例子,当然还有 其他 例如。这些协议采用了一套类似的基本技术。这里达成了一致的“计票者”组,并假设大多数计票者是诚实的。计票者拥有彼此共享的私钥“分区”,相应的公钥则被公开。选民将加密的选票发送到计票者的公钥上,计票者使用一个安全多方计算协议 (MPC) 来解密和验证选票,并计算出结果。计票的计算在“MPC”内部进行:计票者永远不会得知其私钥,并在不知晓任何单个选票内容的情况下计算最后结果。

选票加密提供了隐私,并且添加了诸如混合网络等一些额外基础设施,以增强隐私性。为了提供抗胁迫性之一,可以采用两种技术。一种选择是在登记阶段(即计票者了解每个注册选民公钥的阶段),选民生成或接收一个密钥。相应的公钥在计票者之间秘密共享,MPC 只有在使用秘密密钥签名的选票进行计数时,才会计算该选票。一名选民无法向第三者证明其秘密密钥是什么,因此如果他们受到贿赂或胁迫,他们可以简单地展示和发出一个使用错误的秘密密钥签名的选票。另一种选择是选民能够发送消息以_改变_其密钥。选民无法向第三者证明他们_没有_发送此类消息,这同样得出相同的结果。

第二种选择是选民可以进行多次投票,第二次投票会否定第一次投票。如果选民受到贿赂或胁迫,他们可以为贿赂者/施暴者首选的候选人投票,但随后发送另一张选票以否决第一次投票。

现在,我们来到所有这些协议中的一个关键细节。它们都依赖于外部原语以完成其安全保证:公告板(这是上图中的“BB”)。公告板是每个选民都可以发送消息的地方,保证(i)任何人都可以阅读公告板,而(ii)任何人都可以发送被接受的消息到公告板。你可以找到的大多数抗胁迫投票文献将在一些细节上规范性地引用公告板(例如,例如“就像在电子投票方案中很常见的那样,我们假设有一个公开且仅添加的公告板”),但非常少有文献讨论应该如何 实际实现 这个公告板。在这里,你应该能看出我要说的:“实现公告板的最安全方式 就是 直接使用现有的区块链。”

电子投票安全地使用区块链

当然,在区块链之前,已经有许多尝试实现公告板。这篇 2008 年的文献是其中的一种尝试;它的信任模型是“kn个服务器必须是诚实的”的典型要求(k = n/2 是常见情况)。这篇2021年的文献综述涵盖了一些区块链前的公告牌尝试,并探讨了使用区块链进行投票的工作;综述的区块链前解决方案也依赖于一个 k-de-n 的信任模型。

区块链同样是一个 k-de-n 的信任模型;它要求至少一半的矿工或权益验证者遵循协议,如果这个假设失败,通常会导致“51% 攻击”。那么,为什么区块链比专用公告板更好呢?答案是:建立一个真正值得信任的 k-de-n 系统是困难的,而区块链是唯一一个已经解决了这一问题的系统,并且是大规模的。假设某个政府宣布正在创建一个投票系统,并提供一个由 15 家当地组织和大学管理的专用公告板的列表。作为外部观察者,你如何才能知道,政府不会从 1000 个组织中根据它们愿意与情报机关秘密合作的意愿选择这 15 家?

相比之下,公共区块链拥有经济共识机制,任何人都可以参与,并拥有一个多样化且高度激励的块探测器、交易所和其他观察节点的基础设施,实时验证没有任何不当行为的发生。

这些更复杂的投票系统不仅仅使用区块链;它们依赖于密码学,例如零知识证明以确保正确性,以及多方计算确保抗胁迫性。因此,它们避免了那些天真的系统中的弱点,即单纯“将选票直接放入区块链”并忽视隐私和抗胁迫性所带来的问题。然而,区块链公告板仍然是整个安全设计模型的关键部分:如果委员会坏了,但区块链没问题,那么抗胁迫性就失去了,但所有其他关于投票过程的保证仍然有效。

MACI:以太坊中的抗胁迫区块链投票

以太坊生态系统目前正在试验一种叫做 MACI 的系统,它结合了一条区块链、ZK-SNARKs 和保证抗胁迫性的唯一中心化参与者(但没有其他妥协会的权力)。MACI 并不十分技术复杂。用户通过使用他们的私钥签署一个消息,使用由中央服务器发布的公钥加密该签署的消息,并将加密的签署消息发布到区块链上。服务器下载区块链的消息,解密、处理并输出结果,另外附带一个ZK-SNARK,以其确保计算是正确的。

用户不能证明自己是如何参与的,因为他们能够发送“密钥变更”消息,来欺骗任何试图审计他们的人:他们可以首先发送一个变更密钥的消息,将密钥从 A 更改为 B,然后发送一个以 A 签名的“虚假消息”。服务器会拒绝该消息,但其他人将不能知道该变更密钥的消息已经发送。对服务器有一定的信任要求,尽管这仅限于隐私与抗胁迫性;服务器必须保证没有通过错误计算或审查消息来发布错误的结果。从长远来看,可以使用多方计算在一定程度上使服务器去中心化,从而增强隐私和抗胁迫性的保证。

这个机制在 clr.fund 上有一个功能演示,用于进行平方资助。利用以太坊区块链保证选票的抗审查性保证,这比如果只依靠一个委员会来完成要强得多。

综述

  • 投票过程有四个重要的安全要求必须满足,以确保投票的安全性:正确性抗审查性隐私抗胁迫性
  • 区块链在前两个方面表现良好,但在后两个方面却不佳。
  • 对区块链中选票的加密可以增加隐私性零知识证明可以确保正确性,尽管观察者无法直接将选票相加,因为它们被加密。
  • 在结合用户可以与系统多次交互的机制的情况下,多方计算解密和验证选票可以提供抗胁迫性;第一次交互作废第二次,反之亦然。
  • 利用区块链可以确保具有高度的抗审查性,并保持这种抗审查特性_即使_委员会共同妨碍并破坏抗胁迫性。引入区块链可以显著提高系统的安全性。

但是,技术是否值得信赖?

然而,现在我们回到了第二种更深层次的批评——对任何类型的电子投票(无论是区块链还是其它形式):技术本身是否太不安全而不可依赖。

这篇麻省理工学院的最新文章对基于区块链的投票的批评包括该表格,表示_所有_不使用纸质选票的投票形式都是根本上太难以安全保障的:

作者关注的关键属性是软件独立性,定义为“系统中的没有被发现的变化或错误不可导致选举结果的不可发现的变化”的属性。基本上,代码中的一个错误不应意外地使 Prezzy McPresidentface 成为国家的新总统(或者,更实际地,一个故意插入的错误不应将某个候选人的选票从 42% 提高到 52%)。

但我们有其他的方式来处理这些错误。例如,任何基于区块链的投票系统,只要利用可公开验证的零知识证明,就能被独立验证。任何人都可以编写自己的证明验证器,并自行验证Zk-SNARK。他们甚至可以编写自己的投票软件。诚然,做到这一点的技术复杂性超出了99.99%的任何现实选民群体,但若有成千上万的独立专家有能力这样做并检验其功能,那在实践中就绰绰有余了。

然而,对于麻省理工学院的作者来说,这仍然不够:

因此,任何完全电子化的系统,即使是具备端到端可验证性,似乎也不适合未来可预见的政治选举。美国投票基金会指出E2E投票方法提升在线投票安全的承诺,但已发布一份详细报告,建议在在线投票中避免使用这类技术,除非直到其技术成熟并经过了充分验证为止 [38]。

其他人已提出此思路的扩展。例如,Juels 等人的提议[55]强调了使用密码学来提供多种形式的“抗胁迫性”。Clarkson 等人的 Civitas 提议[24]实施了额外的抗胁迫机制,而 Iovino 等人的研究[53]进一步整合并发展了这一提议。在我们看来,这些提议是创新的,但不切实际:它们相对复杂,尤其重要的是,它们的安全依赖于选民的设备未被破坏并正常操作,这一假设是不现实的。

作者关注的问题并不是投票系统硬件的安全性; 在这一方面的风险可以通过零知识证明来缓解。而是作者关注的是一个不同的安全问题:_用户设备_是否可以在原则上变得安全?

考虑到消费级设备历史悠久的各种漏洞及攻击,人们有理由认为答案是“不”。引述我在 2013 年关于比特币钱包安全性的文章:

昨晚约晚上9点,我点击了一个链接访问 CoinChat[.]freetzi[.]com,并且被要求执行 Java。我执行了这个程序(以为它是一个合法的聊天房间),结果什么都没有发生。我关闭了窗口后就对此不再考虑。大约 14 分钟后,我打开我的 bitcoin-qt 钱包,看到了一笔我_未批准的_交易,金额显示为空钱包地址 1Es3QVvKN1qA2p6me7jLCVMZpQXVXWPNTC……

接着,还有:

在2011年6月,比特币论坛的成员“allinvain”由于某个未知入侵者以某种方式直接访问了他的计算机,损失了25,000 BTC(当时价值500,000美元)。攻击者能够访问 allinvain 的 wallet.dat 文件并快速清空钱包,当母帐户上的交易或简单地上传 wallet.dat 文件并在自己的计算机上清账的方式。

但是,这些灾难掩盖了一个更伟大的真理:_在过去20年里,计算机安全缓慢而持续地_越来越好。 攻击的发现变得更加困难,通常要求攻击者找到多个子系统中的错误,而不仅仅是在一个大型复杂代码中的单个漏洞。高调的事件比以往都要多,但这并不是说某些东西不安全;而只是说我们在互联网方面变得越来越依赖。

可信硬件 是近期改进的重要来源。一些新的“区块链手机”(如HTC的)在这个技术上取得了很大的进展,将以特定安全操作系统的硬件的可控安全验证集成在合理低级别,使得需要高度安全的应用程序(如加密钱包)能够与其他应用分开。三星已经开始制造使用类似 技术。甚至一些未经广告宣传的设备(如 iPhone)通常也有某种形式的可信硬件。加密硬件钱包实际上也是一样,只是将可信硬件模块物理上安置在电脑外,而不是内部。值得注意的是,在安全圈尤其是在区块链社区,可信硬件通常存在较差的声誉,因为其一直 攻击 多次 的事实。实际上,你显然不想用这个来_替代_你的安全保护。但是,作为补充,它是一个重大的提升。

最后,单个应用(如加密钱包和投票系统)远比完整消费级操作系统简单,边缘错更小,即便有须要支持平方投票抽签平方抽签以及未来的 Glen Weyl 生成的的奇异想法。诸如可信硬件的工具的优势在于它们能将_简单性_与_复杂性情况_隔离,且这类工具确实取得了一定成功。

那么,风险是否会随着时间的推移而降低?但,收益呢?

这些对安全技术的改善指出,消费级硬件在未来可能更加可靠的趋势。近年来在这一方面进行的投资可能在未来十年继续有所回报,并且我们可以指望显著的改善。但,让投票变得电子化(基于区块链或其他方式)的优势是什么,能够值得我们去探讨整片领域?

我的回答很简单:投票会变得更加高效,使我们能够做得更频繁。 目前,正式的民主参与(无论是政府机构还是公司)往往限制于每 1-6 年只进行一次投票。这实质上意味着每位选民每年给系统贡献的的信息可能仅不到一比特。很大程度上,由于这种原因,我们的社会在决策过程的去中心化过程中严重两极分化,形成两个极端:纯粹的民主与纯粹的市场。民主往往是效率极低(公司与政府投票)或极不安全(社交网络上的点赞和转发)。而市场则在技术上要高效得多,且相较于社交媒体更安全,但其基本经济逻辑使得其不是许多决策问题的好选择,尤其是公共物品相关的问题。

__

如果我们能构建更多的系统,将民主与市场结合在中间某一点,充分利用前者的平等及后者的技术效率,以及贯穿两者的所有经济属性,可能会有许多可做之事。平方资助就是一个很好的例子。流动民主系统也是另一个很好的例子。即使我们没有引入委托或复杂的算法,我们仍能在小规模上,更频繁地投票以适应选民可获取的信息。但所有这些想法的挑战在于,为了建立一种能持久保持_任何_水平的民主的方案,你需要在某种程度上具有抵抗 Sybil 攻击和减轻选票贩卖的措施;这正是这些复杂的 ZK-SNARK + MPC + 区块链投票方案所要解决的问题。

加密空间的帮助

加密空间的一个被低估的优点是,它是一个出色的“虚拟经济特区”,可以在高度对抗环境中测试经济与密码学的理念。无论你构建并推出什么,经济权力一旦控制达到一定规模,众多不同的参与者,包括一些是利他主义者、一些是利益驱动、还有一些是恶意的,很多都是完全匿名的,都会涌向这个系统并试图将其经济能力导向他们自己的目标。

攻击的动机是巨大的:如果攻击者从你的加密经济设备中盗取 100 美元,他们通常可以获得该 100 美元的全部收益,而且通常可以不受惩罚。但防御者的动机也很强:如果你开发的工具能帮助用户_不_失去资产,你可能会因此获得(至少在某些情况下)数百万的收益。加密环境是绝佳的训练场:如果你能构建出一个在这样的大规模环境中生存的东西,那么它也很可能能在现实世界中生存下去。

这适用于平方资助多签名社交恢复钱包,也可以同样适用于投票系统。区块链领域已经促使了重要安全技术的发生:

  • 硬件钱包
  • 高效的通用零知识证明
  • 形式化验证工具
  • 带有可信硬件模块的“区块链手机”
  • 抗 Sybil 设计的方案,如人类证明

在所有这些案例中,这项技术在区块链之前的某种形态就存在了。但是,很难否认区块链确实对推动这些努力向前发展产生了显著影响,内在的激励结构在提升筹码方面扮演了关键的角色,使技术开发的确实能够实现。

结论

在短期内,任何基于区块链的投票形式应该始终保持在小规模实验中,无论是在一些较为传统的应用中的小规模实验或仅针对区块链空间的实验。目前,安全性显然还不够好,不足以完全依赖计算机进行任何操作。但这种状况正在改善,如果我错误判断的话而安全性并未提升,那么不仅仅是区块链投票,整个加密货币市场的发展也将面临困难。因此,技术持续改善的激励非常可观。

我们应该继续关注技术及各地正在进行的努力,以增加安全性,逐渐在非常重要的社会流程中,更为自信地采用这项技术。技术在我们的金融市场中已是关键,若大部分经济与“加密”相结合(甚至是单纯取代黄金),经济的更大部分将掌握在我们的密码算法及其所支持的硬件中。我们应仔细观察并支持这一过程,并最终利用其优势,将我们的治理技术带入 21 世纪。

  • 原文链接: vitalik.eth.limo/general...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
Vitalik Buterin
Vitalik Buterin
https://vitalik.ca/