为什么我们需要广泛采用社交恢复钱包

文章探讨了如何通过广泛采用社交恢复钱包(Social Recovery Wallets)来提高加密货币和区块链应用的安全性,分析了现有钱包(如硬件钱包和多签钱包)的局限性,并介绍了社交恢复钱包的工作原理及其优势。

为什么我们需要广泛采用社交恢复钱包

为什么我们需要广泛采用社交恢复钱包

特别感谢 Argent 的 Itamar Lesuisse 和 Loopring 的 Daniel Wang 的反馈。

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

多年来,人们提出了许多解决方案:纸钱包、硬件钱包,以及我曾经的最爱:多重签名钱包。这些解决方案确实带来了安全性的显著提升。然而,这些解决方案都存在各种缺陷——有时提供的防盗和防丢失的额外保护远远低于实际需求,有时使用起来笨重且困难,导致采用率非常低,有时两者兼而有之。但最近,出现了一个更好的替代方案:一种新型的智能合约钱包,称为社交恢复钱包。这些钱包可能提供比以往选项更高的安全性和更好的可用性,但在它们能够轻松广泛部署之前,还有一段路要走。本文将探讨什么是社交恢复钱包,为什么它们重要,以及我们如何以及应该如何在生态系统中更广泛地采用它们。

钱包安全性是一个大问题

几乎从一开始,钱包安全性问题就是区块链生态系统的痛点。早在 2011 年,当比特币几乎是唯一的加密货币时,加密货币的丢失和盗窃就已经猖獗;事实上,在我作为以太坊之前,我作为 Bitcoin Magazine 的联合创始人和撰稿人,写了一整篇文章,详细描述了当时已经发生的黑客攻击、丢失和盗窃的恐怖情况。

这里有一个例子:

昨晚大约 9 点 PDT,我点击了一个链接进入 CoinChat[.]freetzi[.]com——然后被提示运行 Java。我运行了(认为这是一个合法的聊天室),但什么也没发生。我关闭了窗口,没多想。大约 14 分钟后,我打开了我的 bitcoin-qt 钱包,看到一笔我没有批准的交易,将几乎我的整个钱包发送到了钱包 1Es3QVvKN1qA2p6me7jLCVMZpQXVXWPNTC...

这个人的损失是 2.07 BTC,当时价值 300 美元,今天价值超过 70000 美元。这里是另一个例子:

2011 年 6 月,Bitcointalk 成员 "allinvain" 丢失了 25,000 BTC(当时价值 50 万美元),原因是某个未知的入侵者以某种方式直接访问了他的电脑。攻击者能够访问 allinvain 的 wallet.dat 文件,并迅速清空钱包——要么通过从 allinvain 的电脑本身发送交易,要么通过简单地上传 wallet.dat 文件并在自己的机器上清空它。

以今天的价值计算,这是一笔近十亿美元的损失。但盗窃并不是唯一的担忧;还有因丢失私钥而造成的损失。以下是 Stefan Thomas 的例子:

比特币开发者 Stefan Thomas 有三个钱包备份——一个加密的 U 盘、一个 Dropbox 账户和一个 Virtualbox 虚拟机。然而,他设法删除了其中两个,并忘记了第三个的密码,永远失去了对 7,000 BTC(当时价值 12.5 万美元)的访问权限。Thomas 的反应是:“从那以后,我致力于创建更好的客户端。”

对比特币生态系统的一项分析表明,每天可能丢失 1500 BTC——比比特币用户在交易费用上花费的多出十倍以上,多年来累计丢失的比特币可能高达总供应量的 20%。这些故事和数字都指向同一个无法逃避的事实:钱包安全性问题的重要性是巨大的,不应被低估

很容易理解为什么钱包安全性容易被低估的社会和心理原因:人们自然担心在总是评判的公众面前显得不小心或愚蠢,因此许多人将他们的资金被黑客攻击的经历藏在心里。资金丢失甚至更糟,因为有一种普遍的(尽管在我看来非常错误的)感觉,即“除了你自己,没有人可以责怪”。但现实是,数字技术,包括区块链,其核心目的是让人类更容易地参与非常复杂的任务,而不需要付出极度的精神努力或生活在不断犯错的恐惧中。一个生态系统的唯一答案是将 12 步教程、不太安全的半措施和偶尔的半讽刺的“为你的损失感到抱歉”结合起来,这很难获得广泛的采用。

因此,减少丢失和盗窃发生的解决方案,而不需要所有加密货币用户将个人安全变成全职爱好,对行业来说是非常有价值的。

仅靠硬件钱包是不够的

硬件钱包经常被吹捧为管理加密货币资金的最佳技术。硬件钱包是一种专门的硬件设备,可以连接到你的电脑或手机(例如通过 USB),并且包含一个只能生成私钥和签署交易的专用芯片。交易将在你的电脑或手机上发起,必须在硬件钱包上确认后才能发送。私钥保留在你的硬件钱包中,因此入侵你的电脑或手机的攻击者无法耗尽资金。

硬件钱包是一个显著的改进,它们肯定会保护 Java 聊天室的受害者,但它们并不完美。我认为硬件钱包有两个主要问题:

  • 供应链攻击:如果你购买了一个硬件钱包,你信任了参与生产它的多个参与者——设计钱包的公司、生产它的工厂,以及参与运输的每个人,他们可能用假货替换了它。硬件钱包可能是此类攻击的磁铁:被盗资金与受损设备数量的比率非常高。值得赞扬的是,像 Ledger 这样的硬件钱包制造商已经采取了许多保障措施来防范这些风险,但一些风险仍然存在。硬件设备从根本上无法像开源软件那样被审计。
  • 仍然是单点故障:如果有人在看到你输入 PIN 码后立即偷走了你的硬件钱包,他们可以偷走你的资金。如果你丢失了硬件钱包,那么你就丢失了资金——除非硬件钱包在设置时生成并输出备份,但正如我们将看到的,这些备份也有自己的问题......

助记词不够好

许多钱包,无论是硬件还是软件,都有一个设置过程,期间它们会输出一个助记词,这是钱包根私钥的 12 到 24 个单词的人类可读编码。助记词看起来像这样:

```markdown
vote    dance   type    subject valley  fall    usage   silk
essay   lunch   endorse lunar   obvious race    ribbon  key
already arrow   enable  drama   keen    survey  lesson  cruel
```

如果你丢失了钱包但你有助记词,你可以在设置新钱包时输入助记词来恢复你的账户,因为助记词包含根密钥,从中可以生成所有其他密钥。

助记词对于防止丢失很有用,但它们对防止盗窃毫无作用。更糟糕的是,它们增加了新的盗窃途径:如果你有标准的硬件钱包 + 助记词备份组合,那么有人偷走你的硬件钱包 + PIN 码你的助记词备份都可以偷走你的资金。此外,维护助记词并不意外地扔掉它本身就是一项不小的精神负担。

如果你将助记词分成两半并将一半交给朋友,可以减轻盗窃问题,但 (i) 几乎没有人真正推广这种做法,(ii) 存在安全问题,因为如果助记词很短(128 位),那么一个复杂且有动机的攻击者偷走其中一部分可能能够通过所有 264 种可能的组合来暴力破解找到另一半,以及 (iii) 这进一步增加了精神负担。

那么我们需要什么?

我们需要一个满足三个关键标准的钱包设计:

  • 没有单点故障:没有单一的东西(理想情况下,没有一起旅行的东西集合)在被盗时可以让攻击者访问你的资金,或者在丢失时让你无法访问你的资金。
  • 低精神负担:尽可能不需要用户学习奇怪的新习惯或付出精神努力来始终记住遵循某些行为模式。
  • 最大的交易便利性:大多数正常活动应该不需要比常规钱包(例如 Status、Metamask...)更多的努力。

多重签名很好!

在 2013 年,解决这些问题的最佳技术是多重签名。你可以有一个有三个密钥的钱包,其中任何两个密钥都需要签署交易。

这项技术最初是在比特币生态系统中开发的,但现在以太坊也有优秀的多重签名钱包(例如参见 Gnosis Safe)。多重签名钱包在组织中非常成功:以太坊基金会使用 4-of-7 多重签名钱包来存储其资金,以太坊生态系统中的许多其他组织也是如此。

对于个人持有的多重签名钱包,主要挑战是:谁持有资金,以及如何批准交易?最常见的公式是某种变体:“两个易于访问但分开的密钥,由你持有(例如笔记本电脑和手机),以及第三个更安全但不太容易访问的备份,离线保存或由朋友或机构持有”。

这是相当安全的:没有单一设备丢失或被盗会导致你失去对资金的访问权限。但安全性远非完美:如果你能偷走某人的笔记本电脑,通常也不难偷走他们的手机。可用性也是一个挑战,因为每笔交易现在需要两个设备上的两次确认。

社交恢复更好

这让我们来到了我首选的保护钱包的方法:社交恢复。社交恢复系统的工作方式如下:

  1. 有一个单一的“签名密钥”可用于批准交易
  2. 有一组至少 3 个(或更多)的“监护人”,其中多数可以合作更改账户的签名密钥。

签名密钥有能力添加或删除监护人,但只能在一段延迟后(通常为 1-3 天)。

在正常情况下,用户可以像使用常规钱包一样使用他们的社交恢复钱包,用他们的签名密钥签署消息,这样每笔交易都可以像在“传统”钱包(如 Metamask)中一样,只需一次确认点击即可发送。

如果用户丢失了他们的签名密钥,社交恢复功能就会启动。用户可以简单地联系他们的监护人,并要求他们签署一笔特殊交易,将钱包合约中注册的签名公钥更改为一个新的。这很容易:他们可以简单地访问 security.loopring.io 等网页,登录,看到恢复请求并签署它。对于每个监护人来说,这几乎和进行 Uniswap 交易一样简单。

有许多可能的选择来选择监护人。最常见的三种选择是:

  • 钱包持有者自己拥有的其他设备(或纸质助记词)
  • 朋友和家人
  • 机构,如果他们收到你的电话号码或电子邮件的确认,或者在高价值情况下通过视频通话亲自验证你,他们会签署恢复消息

监护人很容易添加:你可以简单地输入他们的 ENS 名称或 ETH 地址来添加监护人,尽管大多数社交恢复钱包会要求监护人在恢复网页上签署交易以同意被添加。在任何设计合理的社交恢复钱包中,监护人不需要下载并使用相同的钱包;他们可以简单地使用他们现有的以太坊钱包,无论是什么类型的钱包。鉴于添加监护人的高度便利性,如果你幸运地拥有一个已经由以太坊用户组成的社会圈子,我个人倾向于高监护人数量(理想情况下 7+)以增加安全性。如果你已经有一个钱包,成为监护人不需要持续的精神努力:你执行的任何恢复操作都将通过你现有的钱包完成。如果你不认识许多其他活跃的以太坊用户,那么选择你信任的具有技术能力的小部分监护人是最好的。

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

在你死亡或永久丧失能力的情况下,监护人可以公开宣布自己,这是一个社会公认的标准协议,因此在这种情况下,他们可以找到彼此并恢复你的资金。

社交恢复钱包不是对“加密价值观”的背叛,而是其表达

对使用任何形式的多重签名、社交恢复或其他形式的建议,一个常见的回应是认为这种解决方案回到了“信任人”,因此是对区块链和加密货币行业价值观的背叛。虽然我理解为什么人们乍一看会这么想,但我认为这种批评源于对加密货币应该是什么的根本误解。

对我来说,加密货币的目标从来不是消除所有信任的需求。相反,加密货币的目标是让人们能够访问加密和经济构建块,使人们有更多的选择来决定信任谁,并且进一步允许人们建立更有约束的信任形式:赋予某人在某些事情上代表你行动的能力,而不赋予他们在所有事情上代表你行动的能力。从这个角度来看,多重签名和社交恢复是这一原则的完美表达:每个参与者对接受或拒绝交易的能力都有一定的影响力,但没有人可以单方面移动资金。这种更复杂的逻辑允许建立一个比如果必须由一个人或密钥单方面控制资金时更安全的设置。

这个基本想法,即人类的输入应该被谨慎使用,但不应该被完全抛弃,之所以强大,是因为它与人类大脑的优缺点很好地结合。人类大脑非常不擅长记住密码和跟踪纸钱包,但它是一个用于跟踪与他人关系的 ASIC。这种效应对不太懂技术的用户来说甚至更强:他们可能在钱包和密码方面更困难,但他们在“选择 7 个不会全部串通起来对付我的人”这样的社交任务上同样熟练。如果我们可以从人类输入中提取至少一些信息到机制中,而不让这些输入变成攻击和利用的途径,那么我们应该弄清楚如何做到。社交恢复非常稳健:对于一个有 7 个监护人的钱包来说,要妥协,7 个监护人中的 4 个需要以某种方式发现彼此并同意窃取资金,而没有任何一个监护人向所有者通风报信:这肯定比攻击一个仅由单个人保护的钱包要困难得多。

社交恢复如何防止盗窃?

如上所述的社交恢复处理的是你丢失钱包的风险。但仍然存在你的签名密钥被的风险:有人入侵了你的电脑,在你已经登录的情况下偷偷靠近你并击打你的头部,或者甚至只是使用一些用户界面故障来诱骗你签署你本不打算签署的交易。

我们可以通过添加保险库来扩展社交恢复以处理这些问题。每个社交恢复钱包都可以附带一个自动生成的保险库。资产可以通过发送到保险库的地址来移动到保险库,但它们只能在 1 周的延迟后从保险库中移出。在那段延迟期间,签名密钥(或者通过扩展,监护人)可以取消交易。如果需要,保险库也可以编程,以便一些有限的金融操作(例如某些白名单代币之间的 Uniswap 交易)可以无延迟地进行。

现有的社交恢复钱包

目前,已经实现社交恢复的两个主要钱包是 Argent 钱包Loopring 钱包

Argent 钱包是第一个主要的,也是目前最受欢迎的“智能合约钱包”,社交恢复是其主要卖点之一。Argent 钱包包括一个界面,通过该界面可以添加和删除监护人:

为了防止盗窃,钱包有一个每日限额:低于该金额的交易是即时的,但高于该金额的交易需要监护人批准才能完成提款。

Loopring 钱包最为人所知的是由 Loopring 协议 的开发者构建(当然也包括支持),这是一个用于支付和去中心化交易所的 ZK rollup。但 Loopring 钱包也有一个社交恢复功能,其工作原理与 Argent 中的非常相似。在这两种情况下,钱包公司都免费提供一个监护人,该监护人依赖于通过手机发送的确认码来验证你的身份。对于其他监护人,你可以添加同一钱包的其他用户,或者通过提供他们的以太坊地址来添加任何以太坊用户。

在这两种情况下,用户体验都非常流畅。有两个主要挑战。首先,这两种情况下的流畅性依赖于钱包制造商运行的中央“中继器”,该中继器将签名的消息重新发布为交易。其次,费用很高。幸运的是,这两个问题都是可以克服的。

迁移到 Layer 2(rollups)可以解决剩余的挑战

如上所述,有两个关键挑战:(i) 依赖中继器来解决交易,以及 (ii) 高交易费用。第一个挑战,依赖中继器,是以太坊应用程序中越来越常见的问题。问题出现是因为以太坊中有两种类型的账户:外部拥有账户(EOA),由单个私钥控制的账户,和合约。在以太坊中,有一个规则,即每笔交易必须从 EOA 开始;最初的意图是 EOA 代表“用户”,合约代表“应用程序”,只有当用户与应用程序交谈时,应用程序才能运行。如果我们想要具有更复杂策略的钱包,如多重签名和社交恢复,我们需要使用合约来代表用户。但这带来了一个挑战:如果你的资金在合约中,你需要有另一个拥有 ETH 的账户来支付每笔交易的启动费用,并且它需要相当多的 ETH,以防交易费用变得非常高。

Argent 和 Loopring 通过亲自运行“中继器”来解决这个问题。中继器监听用户提交的链下数字签名的“消息”,并将这些消息包装在交易中并发布到链上。但从长远来看,这是一个糟糕的解决方案;它增加了一个额外的中心化点。如果中继器宕机,而用户真的需要发送交易,他们总是可以从自己的 EOA 发送交易,但尽管如此,还是在中心化和不便之间引入了一个新的权衡。有一些努力正在解决这个问题,以获得便利而不需要中心化;主要的两类围绕要么建立一个通用的去中心化中继器网络,要么修改以太坊协议本身以[允许交易从合约开始](https://our.status.im/account-abstraction-e

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

0 条评论

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