探索 Web3 钱包安全问题:以太坊社会需要什么样的恢复系统?

首页    技术教程    探索 Web3 钱包安全问题:以太坊社会需要什么样的恢复系统?

这篇文章将讨论什么是社会恢复钱包、社会恢复系统的替代用例以及用户反馈。

原文标题:《DAOrayaki |以太坊社区需要什么样的社会恢复系统》

撰文:Vitalik,isthisanart

编译:Xinyang

让加密货币和区块链应用程序对普通用户可用的最大挑战之一是安全性:我们如何防止用户的资金丢失或被盗?丢失和盗币是一个严重的问题,经常使无辜的区块链用户损失数千美元,甚至在某些情况下浪费了他们的大部分净资产。

多年来,人们提出了许多解决方案:纸钱包、硬件钱包和我曾经最喜欢的多重签名钱包。事实上,它们已经导致了安全方面的显著改善。然而,这些解决方案都有各种各样的缺陷——有时提供的防止盗币和丢失的额外保护远远低于实际需要,有时使用起来很麻烦,导致很少被采用,有时两者兼而有之。2021 年初 v 神提出一个替代方案并在今年 5 月份的《去中心化社会:寻找 Web3 灵魂》一文中再次强调:一种更新的智能合约钱包,被称为「社会恢复钱包」(social recovery wallet)。与以前的选择相比,这些钱包有可能提供高水平的安全性和更好的可用性,当以太坊生态系统大规模迁移到 rollup 二层方案,可有效解决社会恢复钱包当前面临的两大问题:(1)依赖中心化的中继器(relayer),(2)高交易费用。DAOrayaki 社区对社会恢复系统系列提案进行梳理并汇总成此文。这篇文章将讨论什么是社会恢复钱包、社会恢复系统的替代用例以及用户反馈。

一、社会恢复钱包

社会恢复系统的工作原理如下:

  • 只有一个「签名密钥」可用于批准交易

  • 至少有 3 名 ( 或更多 )「监护人」,其中大多数人可以合作更改帐户的签名密钥。

签名密钥具有添加或删除监护人的功能,但需要经过一段时间(通常为 1-3 天)之后才可以。

在所有正常的情况下,用户可以像普通的钱包一样简单地使用他们的社会恢复钱包,用他们的签名密钥签署消息,这样签署的每一笔交易都可以通过一次确认快速完成,就像在「传统」钱包(如 Metamask)中一样。

如果用户丢失了他们的签名密钥,这时社会恢复功能就会启动。用户只需联系他们的监护人,让他们签署一项特殊的交易,将钱包合同中注册的签名公钥更改为一个新的签名。这很简单:他们可以简单地访问一个网页,比如 security.loopring。查看恢复请求并对其进行签名。对每个监护人来说就像交易 Uniswap 一样简单。

有许多可能的选择供您选择谁作为监护人。三个最常见的选择是:

  • 钱包持有人自己拥有的其他设备(或纸助记词)

  • 朋友和家人

  • 机构会在收到您的电话号码或电子邮件的确认之后签署恢复信息,或者在重要的情况下,通过视频电话亲自核实您的身份

监护人很容易添加:你可以简单地输入他们的 ENS 名称或 ETH 地址来添加监护人,尽管大多数社会恢复钱包会要求监护人在恢复网页上签署交易以同意添加。在任何设计合理的社会恢复钱包中,不需要下载和使用同一个钱包;他们可以简单地使用他们现有的以太坊钱包,无论它是哪种类型的钱包。考虑到添加监护人的高度便利性,如果您足够幸运,您的社会圈子已经由以太坊用户组成,我个人倾向于更高的监护人数(理想情况下是 7 个以上)以增加安全性。如果您已经有了一个钱包,那么就不需要监护人不断努力:您所做的任何恢复操作都将通过您现有的钱包来完成。如果您不认识许多其他活跃的以太坊用户,那么您相信在技术上有能力的少量监护人是最好的。

为了减少监护人受到攻击和串通的风险,你的监护人不必公开:事实上,他们不需要知道彼此的身份。这可以通过两种方式实现。首先,与其将监护人的地址直接存储在链上,还不如将地址列表的哈希存储在链上,钱包所有者只需在恢复时发布完整的列表即可。其次,可以要求每个监护人确定性地生成一个新的单一用途地址,他们将仅用于特定的恢复;除非实际需要恢复,否则它们不需要使用该地址实际发送任何交易。为了补充这些技术保护,建议选择来自不同社会圈子的多元化监护人(理想情况下包括一个机构监护人);这些建议结合在一起将使监护人很难同时受到攻击或串通一气。

如果您死亡或永久丧失行为能力,那么监护人可以公开宣布自己的身份,这样他们就可以找到对方,追回您的资金。

社会恢复钱包不是一种背叛,而是「加密价值」的一种表达。

对于使用任何形式的多重签名、社会恢复或其他形式的建议,一种常见的回应是,这种解决方案可以追溯到「信任人」的想法,也就是对区块链和加密货币行业价值的背叛。虽然我理解人们乍看之下会这么想的原因,但我想说的是,这种批评源于对加密技术的基本误解。

对我来说,加密货币的目标从来都不是消除对所有信任的需要。相反,加密的目的是给人们访问加密和经济基石,给人们更多的选择在该信任谁,而且允许人们建立更多的约束形式的信任:赋予某人代表您的权力做一些事情而不给他们权力为所欲为。从这个角度来看,多重签名和社会恢复是这一原则的完美表达:每个参与者对接受或拒绝交易的能力都有一些影响,但没有人可以单方面移动资金。这种更为复杂的逻辑允许建立一个远比由一个人或密钥单方面控制资金更安全的机制。

人类的输入应该谨慎使用,而不是完全抛弃,这一基本理念非常强大,因为它与人类大脑的优点和缺点很好地结合在一起。人类的大脑不太适合记住密码和追踪纸质钱包,但它是用来追踪与他人关系的专用芯片。这种影响在非技术性用户身上表现得更强:他们可能在钱包和密码上更吃力,但他们同样擅长「选择 7 个不会合伙对付我的人」这样的社会任务。如果我们至少能从人类的输入中提取一些信息,使之成为一种机制,而不使这些输入变成攻击和利用的媒介,那么我们就应该弄清楚如何做到这一点。社会恢复是非常强劲的:要让一个拥有 7 监护人的钱包收到损害,这 7 个监护人中的 4 个将需要以某种方式相互发现并同意窃取资金,而其中的任何一个都不会给所有者带来小费。当然,这是一个艰巨的挑战比攻击纯粹由一个人保护的钱包更为重要。

二、社会恢复钱包的替代用例

v 神在 2021 年 1 月中的文章中通过 Argent 和 Loopring 两个例子简单介绍了社交恢复钱包(即智能合约钱包)的原理及特征。并在 2021 年 7 月在 ethresear.ch 上[1]提出「社会恢复用例的替代机制」。我们本文重点探讨:此替代机制。

Dark Crystal Web3 这个词源自 Vitalik Buterin 在 2021 年发表最初帖子[2]后的提案,它建议使用一种系统,让恢复合作伙伴无需安装软件或保管任何其他数据,前提是有一个个人以太坊钱包。

Magma Collective 目前正在努力将其发展成一个 MVP(最简可行产品)。这是一个社会恢复协议,我们为其确定了三个主要的重要功能。

  • 该应用程序不需要恢复者记住任何东西,除了他们的以太坊主钱包的访问密码;

  • 该应用程序应该是保密的,这意味着它可以备份任何类型的秘密,包括但不限于以太坊私钥;

  • 该应用程序理想状态下应允许秘密所有者和恢复伙伴的匿名性。

由于该应用程序处理的是秘密,也许是具有高价值的秘密,验证我们项目中的安全假设和信任要求是至关重要的。

该系统由两个部分组成:

  • 一种基于 Web 的 dAPP,供恢复合作伙伴使用,它调用 Web3 API,以生成加密密钥对派生的签名,并在恢复期间从合同中检索和解密共享。

  • 供备份人员使用的离线优先软件组件。给定密钥和公钥列表,生成一组加密共享,然后发布到区块链。作为离线拳头,该程序不进行实际发布,但生成包含加密有效负载的 dapp 链接。然后,这可以传输到任何带有 Web3 扩展的浏览器(例如通过二维码)。

其运行的基本过程可以参考这里。

三、以太坊社会需要什么样的社会恢复系统

建立在以太坊基础上的社会恢复系统,重点是可用性。

作为 MVP 开发初始阶段的一部分,Dark Crystal Web3 对 Web3 和以太坊社区的核心工具和协议进行了用户研究,采访了 WalletConnect、3Box、Metamask、Gnosis Safe、Rainbow 和 Tally 的代表,并在 Twitter 和 Discord 上分发了一份匿名问卷。此目标不仅是考量 Dark Crystal Web3 项目的可用性,而且还考量社会恢复这一当前设想的重要协议,以及潜在的对工具化的需求。

冷存储的作用

  • 用户的技术水平如何?

  • 什么样的「身份」已经在链上使用,以及对匿名性的偏好

  • 链上存储与中心化存储的角色

  • 最重要的路线图考虑

冷存储(cold storage)的作用

可用性被优先考虑,这是一个重要共识,除此之外我们最重要的发现是,冷存储用户场景是很罕见的。冷存储指的是以一种永远不与互联网连接的方式来保存钥匙——这可能是一个纸质钱包,或者一个只与离线计算机连接的硬盘。它被广泛认为是最安全的存储密匙的方式。然而,用冷存储密钥进行交易会带来重大的可用性障碍:通常必须在离线计算机上下载和建立一个钱包程序,该程序对交易进行打包和签名,然后将其转移到另一个设备上并对外广播。由于我们的应用程序是处理具有私密性,我们想知道用户多大可能能接受这种过程?

也许有点惊讶,我们发现这种安全做法并不常见。或者更准确地说,冷存储钥匙和用户将用我们的应用程序备份的钥匙之间的重叠子集非常小。在我们所有的同步对话中,我们了解到:虽然支持冷存储途径很重要,但用户不会使用它。从那些确实有冷存储密钥的受访者那里,我们了解到他们只会对价值较小的热钱包密钥使用我们这样的系统。

问卷对象在某种程度上更倾向于冷存储——33% 的人说他们会把他们的钥匙一直放在冷存储中。随着调研时间的延长,我们还收到反馈说,最有安全意识的用户倾向于拥有自己的备份系统,而不是信任我们的系统。考虑到最需要社会恢复的人往往不掌握技术:「任何能使用命令行的人都不需要社会恢复」。

用户的技术水平如何?

事实上,我们可以要求用户具备什么样的技术素养是另一个讨论的领域——什么样的工具、钱包等是我们的潜在用户熟悉或需要的?

从架构上讲,Dark Crystal Web3 涉及一个基于浏览器的托管应用程序,以及一个可以在本地提供服务的、带有网络前端的 Rust 命令行组件。我们的问卷对象和受访者都是技术派,80% 的人说如果有必要,他们会很愿意使用命令行应用程序。之所以会有目前的架构计划,便是出于支持冷存储的愿望,但根据反馈,我们怀疑如果我们的应用程序有一个完全托管的版本,只有一小部分有明显动机的用户会以其他方式使用它。这些反馈是如此强烈,以至于尽管我们已经进行了从冷存储到托管,包括设计和执行在内的工作,但南辕北辙的可能性不是没有。

尽管我们把基于浏览器的 dapp 作为主要的切入点讨论,但是我们从 6 个受访者中的 2 个收到了强烈的反馈,认为由于网络钓鱼攻击的频率,可下载的应用程序是一个更值得信赖和更可取的设计模式。绝大多数情况下,像 Metamask、Walletconnect、移动钱包和区块浏览器这样的工具对受访者或问卷对象来说没有任何问题。虽然我们试图让协议与是否备份秘密无关,但我们相信所有潜在秘密拥有者都已经加入了以太坊。我们多次明确听到,非以太坊用户将不太可能选择我们的社会恢复协议。也就是说,他们希望恢复伙伴能涵盖到技术小白,连钱包都没有的那种。我们需要考虑这个独特的需求。

链上已经在使用什么样的「身份」,以及对匿名性的偏好

我们的核心问题之一是如何支持参与者的匿名性:需要多少程度的匿名,以及如何在保持匿名的同时还能在以后可靠地找到恢复数据?有几个潜在的解决方案,都涉及到用某种查询密钥来存储恢复数据,这些密钥可以从用户的主钱包中哈希得来或派生出来。然而,我们想知道用户的使用模式是否会支持这种做法。人们是保持一个持久的钱包,还是经常切换从同一个种子中派生的不同钱包?他们是否会生成新的种子?所有的当面采访都证实,我们的典型用户会有一个「主以太坊地址」,他们在任何情况下都不可能忘记。然而,有趣的是,一半的问卷对象说,有可能或其实就是,用户已经忘记了这一点,或者从来没有过。「主以太坊地址」作为一个身份概念的频率是未来研究的一个潜在领域。

总的来说,反馈很支持匿名性,但我们反复听到,一旦有相当多的用户成为应用程序的一部分,「大海捞针」式的匿名程度在许多情况下就足够了。但这之前如何启动还不清楚,或者具体达到哪个门槛可以实现这一点。我们与几个受访者讨论了是否有一个公共协议,可用于将以太坊地址映射到公共加密密钥,从而为这种匿名性提供一个启动包,但没有发现一个现有的项目可以填补这个角色。我们还发现,恢复伙伴的匿名性比秘密所有者的匿名性得到了更多的认同,如下图所示。

三个问卷对象提出了他们可能会忘记谁是恢复伙伴的担忧,我们也收到了希望能够多次更换恢复伙伴的功能请求。

链上存储与中心化存储

我们收到了在两种情况下在链上存储加密秘密的批评,一种来自成本的角度,一种来自对密码学的量子威胁的担忧。没错,如果我们使用的任何密码学有一天被破解,我们协议存储的所有秘密都会受到影响。在成本方面,问卷对象和受访者都认为 200 美元左右是应用程序的交易成本的上限,更低的成本则更受欢迎。

我们听说,对于我们的用例,在主网上与在另一个类似以太坊的网络,如 polygon 或 gnosischain 相比,没有任何优势。最后,有人建议考虑为应用程序提供一个中心化的途径,用户可以选择不在链上存储,这当然会带来其他潜在的问题(持续的维护,潜在的泄漏),但仍然可能有意义地增加可访问性。37% 的问卷对象表示,他们会对链下存储感到更舒服。而且,协议的长期维护被多次列为关注点:在我们的团队有可能解散或发生重大变化之后,潜在用户如何相信恢复过程仍能发挥作用?并且,是否有任何方法可以让秘密拥有者验证秘密是可以恢复的,而不需要经历整个过程?

对路线图来说最重要的考虑

到目前为止,通过最简化产品思考,我们得到的秘密恢复的一个重要方面,是秘密所有者和恢复伙伴之间需要能够进行沟通。最初的设置信息,以及恢复数据都需要在双方之间发送。这很可能是该系统最大的安全弱点。100% 的问卷对象认为有可能通过不安全的带外传输泄露一些秘密碎片集,我们的当面采访也强烈呼应了这一观点。因为我们的受访者中有很多是协议开发者,所以我们向他们询问了加密式钱包到钱包的信息传递,以及可能有助于沟通的现有路线图功能。一组密切相关的功能与在恢复过程的各个阶段对秘密所有者和恢复伙伴的通知有关。我们采访的许多钱包开发者确实在他们的路线图上有这个功能,尽管没有确认发布日期。在这个方向上的进一步工作看起来对生态系统非常重要,与这些解决方案中的一个进行整合很可能是 Dark Crystal Web3 未来的工作核心。

参考[1] https://ethresear.ch/t/m-of-n-secret-sharing-with-pre-known-shares/10074[2] https://ethresear.ch/t/m-of-n-secret-sharing-with-pre-known-shares/10074

 
2022年8月10日 15:48
收藏
2022-09-27

最新文章