LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 区块链资产 > Vitalik为什么我们需要广泛采用社交恢复钱包

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

2021-01-11 链向财经 来源:区块链网络

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

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

多年来,人们提出了许多解决方案:纸钱包、硬件钱包和我曾经最喜欢的多重签名钱包。事实上,它们已经导致了安全方面的显著改善。然而,这些解决方案都有各种各样的缺陷——有时提供的防止盗币和丢失的额外保护远远低于实际需要,有时使用起来很麻烦,导致很少被采用,有时两者兼而有之。但最近出现了一种更好的替代方案:一种更新的智能合约钱包,被称为“社交恢复钱包”(social recovery wallet)。与以前的选择相比,这些钱包有可能提供高水平的安全性和更好的可用性,但在它们能够方便地广泛部署之前,还有一段路要走。这篇文章将讨论什么是社交恢复钱包,为什么它们很重要,以及我们如何并且应该在整个生态系统中更广泛地采用它们。

钱包安全是一个很大的问题

几乎从一开始,钱包安全问题就一直困扰着区块链生态系统。甚至在2011年,当比特币几乎是唯一的加密货币时,加密货币的丢失和盗币就非常猖獗。事实上,在我加入以太坊之前,作为Bitcoin Magazine的联合创始人和作者,我写了一整篇文章,详细描述了当时已经发生的黑客攻击、丢币和盗币的恐怖。

这里有一个案例:

昨晚晚上9点左右,我点击了一个链接去CoinChat[.]freetzi[.]。com -系统提示我运行java。我按照提示做了(以为这是一个合法的聊天室),但什么也没发生。我关闭了窗口,没去想这件事。大约14分钟后,我打开我的bitcoin-qt钱包,发现一笔我没有批准的交易(几乎是我钱包的全部金额)去钱包1Es3QVvKN1qA2p6me7jLCVMZpQXVXWPNTC…

此人的损失是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%。这些故事和数字都同样指向了一个无法回避的事实:钱包安全问题的重要性是巨大的,它不应该被低估。

很容易看出为什么钱包的安全性很容易被低估的社会和心理原因:人们自然会担心在总是评头论足的公众面前显得粗心或愚蠢,而且很多人都把自己的资金被黑的经历留给了自己。资金的损失更糟糕,因为人们普遍(尽管在我看来非常不正确)觉得“除了你自己,没有人可以怪”。但现实是,包括区块链在内的数字技术的全部意义,是让人类更容易从事非常复杂的任务,而不必施加极端的脑力劳动,或生活在不断担心犯错的恐惧中。一个仅能解决丢失和盗币的生态系统是12步教程,不太安全的折衷措施和不太偶然的半讽刺“为你的损失道歉”,这将很难得到广泛采用。

因此,在不要求所有加密货币用户将个人安全变成全职爱好的情况下,减少丢失和盗币发生的数量的解决方案对该行业非常有价值。

单靠硬件钱包还不够

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

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

供应链攻击:如果你购买了一个硬件钱包,你就信任了许多参与生产它的参与者——设计钱包的公司、生产它的工厂,以及参与运输它的每个人,他们可以用一个赝品替换它。硬件钱包是此类攻击的潜在磁石:被盗资金与被盗设备数量的比例非常高。值得赞扬的是,像Ledger这样的硬件钱包制造商已经采取了许多措施来防范这些风险,但一些风险仍然存在。从根本上说,硬件设备不能像开源软件那样被审计。

还有一个故障点:如果有人站在你身后,发现你在输入密码,然后就偷了你的硬件钱包,他们就会偷走你的资金。如果你丢失了你的硬件钱包,那么你就会丢失你的资金——除非硬件钱包在安装时生成并输出备份,但正如我们将看到的那样,这些都有自己的问题……

仅靠助记词是不够的

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

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

助记词短语可以防止丢失,但对于盗币却毫无用处。更糟糕的是,他们为盗币添加了一个新的载体。如果你有一个标准的硬件钱包+助记词备份组合,那么有人偷了你的硬件钱包+ PIN或助记词备份就会盗走你的资金。此外,保存助记短语,而不是偶然地把它扔掉本身就是一项非同小可的脑力劳动。

盗币的问题可以缓解如果你把短语分成两半并给朋友一半,但是(i)实际上几乎没有人提倡这种行为;(ii)存在安全问题,就像助记词短语很短(128位),那么一个精明的和主动的攻击者窃取一块可以强行通过所有\(2 ^{64}\)可能的组合找到另一个;(iii)进一步增加了精神负担。

那我们需要什么呢?

我们需要的是一个满足三个关键条件的钱包设计:

没有单一的故障点:没有单一的东西(理想情况下,没有一起运送的东西集合),如果被盗,可以让攻击者访问您的资金,或者如果丢失,可以拒绝您访问您的资金。

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

最大程度地简化交易:大多数正常的活动应该不会比使用普通钱包花费更多的精力(例如:Metamask…)。

多重签名是个不错的选择!

早在2013年,解决这些问题的最佳技术是多重签名。你可以有一个带有三把钥匙的钱包,需要其中任意两把钥匙才能发送交易。

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

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

这是相当安全的:没有任何单一的设备可能丢失或被盗,从而导致您失去使用资金的权限。但安全性远非完美无缺:如果你可以偷别人的笔记本电脑,通常也不是很难偷他们的手机。易用性也是一个挑战,因为现在每笔交易都需要用两台设备进行两次确认。

社交恢复会更好

这让我们想到了我最喜欢的保护钱包的方法:社交康复。社交恢复系统的工作原理如下:

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

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

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

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

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

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

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

朋友和家人

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

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

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

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

社交恢复钱包不是一种背叛,而是“加密价值”的一种表达。

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

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

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

社交恢复如何防止盗币?

如上所述的社交恢复解决您丢失钱包的风险。但是仍然存在您的签名密钥被盗的风险:有人在您登录后侵入您的计算机,在您身后潜行并击中您,甚至只是使用一些用户界面故障来欺骗您进行签名您不打算签署的交易。

我们可以通过添加保险库来扩展社交恢复,以解决这些问题。每个社交恢复钱包都可以自带一个自动生成的保险库。资产可以移动到保险库只需发送他们到保险库的地址,但他们可以移动出保险库只有一个星期的延迟。在这一延迟期间,签名密钥(或监护人)可以取消交易。如果需要,还可以对保险库进行编程,以便可以立即进行一些有限的财务操作(例如:白名单代币之间的Uniswap交易)可以毫不延迟地完成。

现有的社交恢复钱包

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

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

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

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

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

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

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

Argent和Loopring通过亲自运行一个“中继器”来解决这个问题。中继器侦听用户提交的链外数字签名“消息”,并将这些消息包装在一个事务中并发布到链上。但从长远来看,这是一个糟糕的解决方案,它增加了一个额外的中心点。如果中继器关闭了,用户确实需要发送一个事务,他们总是可以从他们自己的EOA发送它,但不管怎样,在中心化和不方便之间引入了一个新的权衡。人们努力解决这个问题,并在不集中的情况下获得便利;主要的两个类别要么围绕着创建一个广义的去中心化中继网络,要么围绕着修改以太坊协议本身,以允许交易从合约开始。但这两种解决方案都不能解决交易费用问题,事实上,由于智能合约本身就更复杂,它们使问题变得更糟。

幸运的是,我们可以同时解决这两个问题,方法是寻找第三种解决方案:将生态系统转移到Layer 2协议上,如optimistic rollps和ZK rollps。optimistic rollps和ZK rollps都可以通过内置的帐户抽象来设计,从而避免对中继器的任何需求。现有的钱包开发者已经在关注rollps,但最终迁移到rollps是一个整个生态系统的挑战。

在整个生态系统范围内大规模迁移到rollup是一个很好的机会,可以扭转以太坊生态系统早期的错误,并让多重签名和智能合约钱包在帮助保护用户资金方面发挥更核心的作用。但这需要更广泛地认识到,钱包安全是一个挑战,我们在应对和挑战方面还远远不够。多重签名和社交恢复不一定是故事的结局,也许还有更好的设计。但转向rollps的简单改革,并确保这些rollps将智能合约钱包视为头等公民,是实现这一目标的重要一步。

—-

编译者/作者:链向财经

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...