经典重读 | Vitalik:为什么我们需要广泛采用社交恢复钱包?

Vitalik Buterin热度: 18410

我们需要的钱包设计必须满足以下三个关键条件。

原文标题:Why we need wide adoption of social recovery wallets

原文作者:Vitalik Buterin

原文来源:Vitalik.ca

编译:eigen实验室

加密货币和区块链带给很多用户对于安全问题的担忧,阻碍了他们使用跨链app。财产丢失和遭受盗币都十分严重,经常使无辜的区块链用户损失数千美元,甚至在某些情况,使用户多年的打拼挣得的积蓄付诸东流。

那么,如何防止用户的资金丢失或被盗呢?

这些年来,人们提出了许多解决方案,比如:纸钱包、硬件钱包,以及我曾经的最爱-多签钱包,这些钱包已经很大程度上改善了安全性。然而,它们也有各种各样的缺陷:要么提供了过度的额外保护,要么使用起来很麻烦,有时两者都有。最近,出现了一种新型智能合约钱包——“社交恢复钱包“是一个更好的替代方案。与传统钱包相比,社交恢复钱包将更安全并具有和更高的可用性。不过,对于社交恢复钱包被广泛认可以及投入使用方面,还有很长的路要走。本文将讨论什么是社交恢复钱包以及它的重要意义。并且,我们将讨论在社交恢复钱包应用到整个生态系统的过程中,我们能做什么,以及应该怎么做。

钱包安全问题亟待解决

几乎从一开始,对钱包安全问题的担忧就在区块链生态系统中普遍存在。在2011 年,加密货币还只有比特币时,密钥丢失和被盗就已经十分非常猖獗了。事实上,在我加入以太坊之前,作为 Bitcoin Magazine 的联合创始人和作者,我写过一整篇文章去详细描述当时发生的黑客攻击、丢币和盗币的恐怖现象。

让我们来看一个案例:

昨晚 9 点左右,我打开了一个 CoinChat的链接,系统提示我运行 java。我以为这是一个合法的聊天室,于是遵照提示进行操作 ,一切正常,我随后关闭了窗口,没把这件事放在心上。大约 14 分钟后,我打开我的 bitcoin-qt 钱包,却发现一笔我没有批准的交易,这笔交易几乎转走了我钱包的全部金额……

此人的损失是 2.07 比特币,在当时价值 300 美元,今天超过 7 万美元。还有另一个案例:

2011 年 6 月,Bitcointalk 成员 allinvain 损失了 2.5 万比特币(当时价值 50 万美元),原因是一个未知的黑客以某种方式直接访问了他的电脑。黑客直接操控了allinvain电脑中的wallet.dat文件并快速清空了他的钱包,不知道是让allinvain电脑本身发送了一笔交易还是仅仅升级了下wallet.dat文件,让它在本地清空。

按现在的价值计算,这相当于损失了近 10 亿美元。但盗币并不是唯一的问题。自己的私钥丢失也会造成财产损失。这是 Stefan Thomas 的案例:

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

对比特币生态系统的一项分析表明,每天会有高达1500 个比特币的丢失——这个费用比用户在交易费用上花费高出了十倍之多。多年来,累计比特币丢失的数量相当于总供应量的 20%。这些案例和数字都无一例外地证实了一个无法回避的现实:钱包安全问题至关重要,我们不该低估此类悲剧对于用户的影响。

为什么钱包的安全性问题容易被低估?如果从社会心理角度来分析,这个问题很简单:因为我们不想被周围的人贴上“粗心”、“愚蠢”等标签,或被他人评头论足。于是人们倾向于把自己资金被黑的经历深埋起来,丢失私钥这种事更不愿意透露。虽然我不敢苟同,但是人们普遍觉得“自己是造成损失的罪魁祸首”。事实上,区块链运用复杂的数字技术,其目标是让人类轻松地完成复杂的任务,减轻大脑负担,从而不必一直担心自己犯错。如果整日让用户战战兢兢,面对自己私钥丢失或资金被盗的风险,并且只能参照复杂的教程、或讽刺的“sorry for your loss”抱歉时,这种糟糕的用户体验必然不会使用户选择这样的生态系统。

单靠硬件钱包?还不够

硬件钱包经常被奉为加密货币基金管理的最佳技术。硬件钱包是一种专门的硬件设备,它可以连接到你的电脑或手机上(例如通过 USB),它还包含一个专门的芯片,只能生成私钥和签署交易。在你的电脑或手机上启动后,交易将必须经过硬件钱包的确认才能发送。私钥是保存在你的硬件钱包上的,所以黑客入侵你的电脑或手机时就无法盗取你的资金。

硬件钱包显著提高了安全性,并且会保护伪造Java 聊天室攻击的受害者。但硬件钱包显然并不完美。我认为硬件钱包存在两个主要问题:

-供应链攻击:如果你购买了一个硬件钱包,就代表你完全信任参与生产它的参与者,包括设计方、生产方及运输方。他们可以用一个赝品冒充硬件钱包。硬件钱包是此类攻击的潜在对象,被盗资金与被盗设备数量的比例非常高。不过,像 Ledger 这样的硬件钱包制造商已经采取了许多措施来防范这些风险。不过一些风险仍然存在。从根本上说,硬件设备不能像开源软件那样被核验安全性。

-单点故障:如果有人站在你身后,发现你在输入密码,就相当于偷走了你的硬件钱包,也就相当于偷走了你的资金。除非硬件钱包在安装时生成并输出备份。但简而言之,弊端仍然存在。

单靠助记词?也不够

许多钱包,无论是硬件还是软件,都有一个设置过程,在此过程中它们会输出一个助记词短语,这是一个人类可读的 12 到 24 单词的钱包根私钥编码。如下图所示:

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

助记词短语可以防止丢失,但面对盗币却无济于事。如果你有一个标准的硬件钱包+助记词备份组合,那么有人偷了你的硬件钱包+ PIN 或助记词备份,就会盗走你的资金。此外,用户要妥善保存助记短语,不能随意丢失,这本身就比较难做到。如果你把助记词分成两半并给朋友一半,盗币的问题可以缓解。但是 ,一则,几乎没有人提倡这种行为;二则,仍然存在安全问题,因为助记词短语很短 (128 位),那么一个聪明且动机很强的盗币者只要获得一部分助记词,便可以强行通过所有 2^64种可能的组合找到剩下的助记词;三则, 进一步增加了脑力负担。

那需要什么样的方案呢?

我们需要的钱包设计必须满足以下三个关键条件:

1. 无单点故障:没有任何单一的密码或私钥,在被盗的情况下,会造成资金损失。或者如果丢失,可以拒绝您访问您的资金。

2. 低脑力消耗:尽可能不要求用户学习新的行为,也不需要花费脑力去记住某些特定的行为模式。

3. 最大程度地简化交易:大多数操作不应该比使用普通钱包更难(如:Status, Metamask等)

多签应运而生

其实,早在 2013 年,多签就成为了解决此类问题的最佳技术。用户有一个带有三把钥匙的钱包,需要其中任意两把钥匙才能发送交易。

钱包

这项技术最初是在比特币生态系统中开发的,现在以太坊中也存在优秀的多签钱包(如:Gnosis Safe)。多签钱包在多人共治钱包方面非常成功,以太坊基金会用的就是一种4-of-7的多签钱包,很多其他以太坊生态的组织也是也样做的。

对于一个私人持有的多签钱包,主要的挑战是:谁是资金的持有者,以及如何批准交易?最常见的方案是“由用户持有两个容易访问但互相分开的密钥,例如,电脑和手机,加上第三个更安全但不可访问的备份,此备份由朋友或机构离线保存”。

这种方案相当安全:不会发生由于任何单一的设备的丢失或被盗,从而导致您失去使用资金权限的悲剧。但弊端体现在安全性和易用性上。首先,安全性远非完美无缺:如果用户被同时偷走笔记本电脑和手机,则资金就会被盗。其次,这种方案不太方便,因为现在每笔交易都需要用两台设备进行两次确认。

社交恢复成为”宠儿“

我最喜欢的保护钱包安全的方法就是社交恢复。社交恢复系统的工作原理如下:

1、只有一个“签名密钥”可用于批准交易

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

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

钱包

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

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

三个最常见的监护人选择是:

1. 钱包持有者拥有的其他设备(或纸助记词)

2. 朋友和家人

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

监护人很容易添加:你可以直接输入他们的 ENS 名称或ETH地址(但大多数社交恢复钱包会要求监护人在恢复网页上签署交易)。在任何设计合理的社交恢复钱包中,监护人不需要下载和使用与资金所有者同一个钱包,而是可以使用任意类型的以太坊钱包。既然添加监护人已经这么方便了,如果您的社交圈子中有大量的以太坊用户,不妨选择更多的监护人数(理想情况下是 7 个以上),这样就特别安全了。如果您已经有了一个钱包,那么就不需要因为监护人而烧脑,您所做的任何恢复操作都将通过您现有的钱包来完成。如果您不认识太多的以太坊用户,那么您可以选择设置在技术上信任的较少的监护人。

为了减少监护人被攻击和监护人联合作恶的风险,用户的监护人不必公开:监护人不需要知道彼此的身份。这可以通过两种方式实现。首先,将地址列表的哈希值存储在链上,而不是将监护人的地址直接存储在链上。钱包所有者只需在恢复时发布完整的列表即可。其次,要求每个监护人生成唯一的地址用于特定的恢复。这意味着除非在需要恢复的情况下,否则他们可使用该地址发送任何交易。为了辅助这些保护方式的实施,建议用户选择来自不同社会圈子的多元化监护人组合(理想情况下包括一个机构监护人);以上的建议将使监护人很难同时受到攻击或联合作恶。

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

社交恢复不是背叛

对于使用多签、社交恢复或其他形式的建议,一种常见的看法是,这种解决方案都是源于对人的信任,也就是对区块链和加密货币行业价值的背叛。这么想无可厚非,但我想说的是,这种批评来源于用户对加密技术的误解和偏见。

对我来说,加密货币的目标从来都不是消除对信任的需求,而是通过提供加密的经济区块,给人们权利去选择该信任谁,并允许人们建立以约束为前提的信任。要说明的一点是,赋予某人权力,并不意味着给他们权力为所欲为。从这个角度来看,多签和社交恢复是这一原则的完美体现:每个参与者对接受或拒绝交易的能力都有一些影响,但没有人可以单方面转移资金。这种逻辑较为复杂,却建立了一个更安全的机制。

显而易见,至少这个机制比由一个人或私钥单方面控制资金更加安全。完全抛弃人脑记忆并不现实,我们应该利用人脑的特点,将人类大脑的优点和缺点结合在一起。这个指导思想意义非凡。要知道,人类的大脑不太擅长记住密码或记住纸质钱包的位置,但它擅长来记忆人际关系。这种影响在不熟悉技术机理的”小白“用户身上表现得更明显:他们可能在钱包和密码上十分吃力,但能够轻松完成“选择 7 个不会合伙对付我的人”这样的社交类任务。如果我们能从人类的输入中提取一些信息,保证这些信息不会成为黑客或他人联合作恶的点,并利用这些信息形成一种加密机制,将是一个非常有前景的尝试。所以,社交恢复是非常可靠的:要让一个拥有 7 监护人的钱包收到攻击,这 7 个监护人中的 4 个将需要以某种方式发现彼此并串谋窃取资金,并且7人中的任何一个都不会向资金所有者告密。与单纯攻击一个人的钱包相比,做到这些难于登天。

社交恢复如何防止被盗币?

如上所述,社交恢复能够有效缓解用户丢失钱包的风险。签名密钥被盗的风险并没有完全消除:比如,有人在您登录后侵入您的计算机,或通过暴力方式控制您的电脑,甚至只是使用一些用户界面故障来欺骗您进行签署某些交易。这些可能性都为密钥被盗埋下了隐患。

为了解决这些问题,我们可以通过添加保险库来扩展社交恢复。每个社交恢复钱包都可以自带一个自动生成的保险库。通过发送资产到保险库的地址,用户可以将资产移动到保险库。资金移动保险库就没那么迅速,需要有一个星期的延迟来保障安全性。在这一延迟期间,签名密钥(或监护人)可以取消交易。如果需要,还可以对保险库进行编程,以便可以立即进行一些紧急的资产交易。例如:白名单代币之间的 Uniswap 交易可以迅速完成。

现有的社交恢复钱包

目前,实现社交恢复的钱包主要有 Argent 钱包和 Loopring 钱包两种:

钱包

Argent 钱包是当前首个主流的,也是最受欢迎的“智能合约钱包”,社交恢复是其主要卖点之一。Argent 钱包包含一个可以添加和删除监护人的接口:

钱包

为了防止盗币,钱包有每日限额:在每日限额以内的交易可以即时完成,但超过该金额的交易需要监护人批准才能完成提款。

路印交易所是一个使用zk rollup技术的去中心化交易所,Loopring钱包也是他们的开发团队开发的,这款钱包也因此被大家所熟知,Loopring 钱包还有一个社交恢复功能,它的工作原理与 Argent 钱包非常相似。Loopring 钱包与Argent 钱包的提供方都免费提供一个监护人,并依靠手机发送的确认码来验证你的身份。如果您想要增加监护人的数量,您可以添加安装已经安装相同钱包的其他用户,或提供任何以太坊用户的以太坊地址。两种情况下的用户体验都非常流畅。有两个主要的问题需要考虑。首先,这两种情况下的体验感都依赖于钱包制造商运行的中央“中继器”,该中继器将签名消息作为交易重新发布。第二,费用有些高昂。不过不用担心,这两个问题都可以克服。

迁移到Layer2-解决剩余的挑战

如上所述,有两个关键的挑战:(1) 依赖于中继器来完成交易 ;(2) 高交易费用。第一个挑战是源于中继器的依赖,这是以太坊应用程序中一个日益普遍的问题。之所以会出现这个问题,是因为以太坊中存在两种类型的账户:外部拥有的账户 (EOAs),即由单个私钥控制的账户,以及合约账户。以太坊的每个交易必须从 EOA 开始;EOAs 表示“用户”,合约表示“应用程序”,并且应用程序只能在用户与其交互的情况下运行。如果我们想要拥有具备复杂策略的钱包,比如多签和社交恢复,我们需要使用合约来代表用户。这么做的挑战是,如果您的资金在合约中,您需要有一些有以太坊的其他帐户才可以开始交易,并且它还需要相当多的以太坊,以防有时交易费用变得很高。

Argent 和 Loopring 通过运行一个“中继器”来解决这个问题。中继器侦听用户提交的链外数字签名“消息”,并将这些消息包装在一个交易中并发布到链上。但从长远来看,这是不是一个好的解决方案,因为它增加了一个额外的中心点。如果在中继器关闭的情况下,用户确实需要进行交易,他们可以从自己的 EOA 发送它,但不管怎样,在中心化和不方便之间我们总要有所取舍。人们努力解决这个问题,并在不采用中心化方案的情况下获得便利;主要的解决方案要么是创建一个广义的去中心化中继网络,要么是修改以太坊协议使得交易可以从合约开始。但这两种解决方案都不能解决交易费用问题,事实上,由于智能合约本身固有的复杂属性,这两种解决方案带来了更大的不便。

幸运的是,通过寻找第三种解决方案,我们可以同时解决这两个问题,方法是:将生态系统转移到 Layer 2 协议上,如 optimistic rollups 和 ZK rollps。optimistic rollups 和 ZK rollups 都可以通过内置的帐户抽象来设计,从而避免对中继器的需求。于是,钱包开发者将重点放到了rollups的迁移过程中。这也是对整个生态系统的一大挑战。

将整个生态系统集体迁移到 rollup 是消除以太坊早期的弊端的良好方案。这个方案让多签和智能合约钱包在帮助保护用户资金方面发挥更核心的作用。在这个过程中,我们更深刻地认识到,现在所做出的成果在应对钱包安全的挑战方面还远远不够。多签和社交恢复不一定是最优解,也许还有更好的方案。但对rollups方案的采纳并确保智能合约钱包在rollup中的地位,是实现钱包安全的第一步。

Eigen Network

Eigen Network 是Layer2上第一个端到端的隐私计算网络。

基于TEE等隐私计算技术与Layer2 计算能力无限扩展,Eigen能解决目前面临的两方面问题:1)由区块链天然数据公开性导致的链上数据隐私泄漏问题;2)ETH扩展性不足导致的高昂手续费问题。除此之外,Eigen还将改革现有链上数据资产流通生产关系,从应用场景到技术栈考虑个体的隐私保护,成为对开发者友好且切实可行的隐私保护基础设施,为Web2到Web3的转换贡献力量。

声明:本文为入驻“MarsBit 专栏”作者作品,不代表MarsBit官方立场。
转载请联系网页底部:内容合作栏目,邮件进行授权。授权后转载时请注明出处、作者和本文链接。未经许可擅自转载本站文章,将追究相关法律责任,侵权必究。
提示:投资有风险,入市须谨慎,本资讯不作为投资理财建议。
免责声明:本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况,及遵守所在国家和地区的相关法律法规。
关键字:钱包