金色观察丨“V神”解读社交恢复钱包全文

2021-01-12 12:46:13 作者:金色财经

金色财经 区块链1月12日讯  目前加密货币和区块链应用程序对普通用户来说的最大挑战之一,其实是安全性:我们如何防止用户的资金丢失或被盗?资金丢失和盗窃是一个严重的问题,通常会使无辜的区块链用户损失数千美元,在某些情况下甚至会导致他们大部分或全部净资产消失殆尽。

CPLsAPiTc5Sj4u5Z6Lg1GlEuQgkGPXi7n3aWJ0Kl.jpeg过去多年来,加密货币社区已经提出了许多解决方案,比如:纸钱包、硬件钱包、还有我个人比较推荐的多签钱包。实际上,这些钱包的安全性已经有了显着改善。但是,这些解决方案依然存在各种缺陷——有时提供的防盗和防丢保护远远少于用户实际需要的,有时流程笨拙且难以使用,有时两者兼而有之,导致不少加密货币安全解决方案的采用率极低。但是最近,出现了一个更好的替代方案:一种称为社交恢复钱包的新型智能合约钱包。与以前的同类产品相比,这种钱包可以提供更高的安全性和更好的可用性,但是想要轻松且广泛地部署此类钱包,依然还有较长一段路要走。这篇文章将介绍什么是社交恢复钱包,以及为什么这种钱包非常重要,还有我们需要如何且应该如何在整个生态系统中更广泛地采用社交恢复钱包。

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

实际上,钱包安全性问题从一开始就一直困扰着区块链生态系统。早在2011年,当时比特币几乎是市场上唯一的加密货币,但已经有不少猖狂的盗窃案件导致用户损失了。确实,在创建以太坊之前,我曾作为Bitcoin Magazine联合创始人和作家写过一篇文章,详细介绍了当时已经发生的骇客事件,以及用户遭受损失和盗窃有多么恐怖。

这是一个示例:

太平洋夏季时间昨晚9点左右,我单击了一个链接以转到CoinChat [.]freetzi[.]com——并被提示运行Java。我照做了(因为我认为这是一个合法的聊天室),但是什么也没发生。我关上窗户,什么也没想。大约14分钟后,我打开了我的bitcoin-qt钱包,发现一笔交易完成,几乎把我整个钱包的钱都转移到钱包1Es3QVvKN1qA2p6me7jLCVMZpQXVXWPNTC。

还有一个例子,某人的损失为2.07 BTC,当时价值300美元,但现在已超过7万美元,让我们来看看:

2011年6月,在一个未知入侵者以某种方式直接访问了他的计算机后,Bitcointalk成员“allinvain”损失了25,000 BTC(当时价值500,000美元)。攻击者能够访问allinvain的wallet.dat文件,并通过从allinvain计算机直接发送交易,而且还能轻松上载wallet.dat文件并清空计算机上的钱包记录。

以目前的价值计算,这笔损失高达近10亿美元。但是,盗窃并不是唯一的问题。丢失私钥也会带来损失,以斯特凡·托马斯(Stefan Thomas)为例:

比特币开发人员斯特凡·托马斯的钱包有三个备:一个是加密的USB记忆棒,一个是Dropbox帐户,还有一个Virtualbox虚拟机。但是,他弄丢了其中两个,而且还忘记了第三个密码,从而永远失去了7,000 BTC(当时价值125,000美元)的访问权限。对此,斯特凡·托马斯的回应是:“ 自那时起,我一直致力于创造更好的用户体验。”

一项对比特币生态系统的分析研究表明,加密货币市场每天可能丢失1500个BTC,这是比特币用户交易费用支出的十倍以上,并且这些年来累计丢失的比特币数量已经多达总供应量的20%。所以,我们必须面对一个不可避免的事实:钱包安全问题是非常重要的,我们不应低估它。

如果从社会和心理分析的话,就很容易看出为什么钱包安全性容易被人们低估,主要原因是:人们很自然地会担心在总爱评判的公众面前显得自己不小心或愚蠢,因此很多人会把自己资金被黑的经历隐藏起来。资金损失更为严重,因为人们普遍认为“除了你自己,没有人可以责怪”。但现实是,包括区块链在内的数字技术的全部意义在于,使人类更容易地从事非常复杂的任务,而不必付出极大的精神努力,也不必生活在不断害怕犯错的恐惧之中。如果一个生态系统对损失和失窃的唯一答案是一个12步教程、不太安全的措施以及不那么偶然的半讽刺性的“对于你的损失感到抱歉”这样的方案,那么它将很难被广泛采用。

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

单靠硬件钱包还不够好

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

硬件钱包是一个重大的改进,它们肯定可以保护Java聊天室的受害者,但并不完美。我看到了硬件钱包的两个主要问题:

1、供应链攻击:如果您购买硬件钱包,那么您会信任许多参与生产钱包的参与者-设计钱包的公司,生产钱包的工厂以及所有可能将其替换为钱包的参与运输的人假的。硬件钱包可能会吸引此类攻击:资金被盗与被盗设备数量之比非常高。值得称赞的是,诸如Ledger之类的硬件钱包制造商已经采取了许多保护措施来防范这些风险,但是仍然存在一些风险。从根本上说,硬件设备不能像开源软件那样进行审计。

2、单点故障:如果有人在站在您的肩膀后抓住您输入PIN后立即偷走了您的硬件钱包,他们就可以窃取您的资金。如果您丢失了硬件钱包,那么您将损失您的资金-除非硬件钱包在设置时生成并输出备份,但是正如我们将看到的那样,它们都有自己的问题...

助记词也不够好

许多钱包(无论是硬件钱包还是软件钱包)都有一个设置过程,在此过程中,它们会输出一个助记符短语,该短语是人们可理解的12到24个单词的钱包根私钥编码,举个助记词短语例子:

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位),那么就有可能存在一个老练而有动机的攻击者,如果其拿到了其中一半的助记词短语,他就可能通过暴力碰撞可能的组合来找到另一部分助记词短语;

(iii)进一步增加了精神负担。

所以,我们需要的是什么?

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

1、没有单一的故障点:理想情况下,没有一起运送的事物的集合,如果被盗,攻击者也无法简单地访问你的资金,或者如果丢失,则可以拒绝使用您的资金;

2、低心理负担:尽可能不应该要求用户学习陌生的新习惯或付出精神努力以始终记住遵循某些行为模式。

3、最大交易便利性:大多数常规活动所需要的精力不应比常规钱包多得多(例如Status、Metamask等);

多重签名很棒!

早在2013年,解决这些问题的最佳技术就是多重签名(multisig)。你可以拥有一个存在三把密钥的钱包,但只需要其中任意两把密钥签名,你就可以发送交易。

NZ5Xv0BY348t1SZhPu9e3Qc0YDvBJmg7RSMtCCkV.png

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

而对于个人用户来说,使用多重签名钱包可能存在的一个主要问题是:谁持有资金,以及如何批准交易?最常见的公式是“两个易于访问但独立的密钥是由你掌握的(笔记本或手机),第三个是更安全但易访问的备份,其离线存放或由朋友或机构托管。”

这是相当安全的:即便其中一个设备丢失或被盗,你也可以访问到自己的资金。但安全性远不是完美的:如果你能偷别人的笔记本电脑,偷他们的手机通常也没有那么难。可用性也是一个挑战,因为现在每笔交易都需要使用两个设备进行两次确认。

社交恢复是更好的选择

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

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

2、至少有3个或更多“守护人”,其中多数人就可合作更改帐户的签名密钥。

签名密钥可以添加或删除守护人,但会有一个延迟(时间通常是1-3天)。

bgJ2NxDt91LsX51rlccpe5EmhyGPY5dxTWLSUQeg.png

在所有正常情况下,用户都可以像普通钱包一样简单地使用其社交恢复钱包,并使用其签名密钥对消息进行签名,从而使每个已签名的交易都可以通过一次确认点击快速完成,就像在“传统”钱包(如Metamask)中一样。

如果用户丢失了签名密钥,那么社交恢复功能就会启动。用户可以直接与监护人联系,要求他们签署一项特殊交易,以将钱包合同中注册的签名公钥更改为新的签名。这很容易:他们可以简单地转到诸如security.loopring.io之类的网页,登录,查看恢复请求并对其进行签名。对于每个监护人而言,这与进行Uniswap交易一样容易。

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

1、钱包持有者自己拥有的其他设备(或纸助记符);

2、朋友和家人;

3、机构会在收到您的电话号码或电子邮件确认后签署恢复消息,或者在高价值的情况下通过视频通话来验证您的身份。

监护人很容易添加:您只需输入他们的ENS名称或ETH地址即可添加监护人,尽管大多数社交恢复钱包都要求监护人在恢复网页上签署交易以同意添加。在任何设计合理的社交恢复钱包中,监护人无需下载和使用同一钱包;他们可以简单地使用现有的以太坊钱包,无论哪种钱包。鉴于添加监护人的便利性很高,如果您很幸运您的社交圈已经由以太坊用户组成,我个人更希望监护人数量多(最好是7个以上),以提高安全性。如果您已经有了一个钱包,那么就不需要监护人不断努力:您可以通过现有的钱包进行任何恢复操作。如果您不认识许多其他活跃的以太坊用户,那么最好相信数量较少的监护人。

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

如果您死亡或永久丧失工作能力,这将是一项社会认可的标准协议,监护人可以公开宣布自己,以便在这种情况下,他们可以找到彼此并追回您的资金。

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

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

对我而言,加密货币的目标绝不是消除对所有人的信任。相反,加密的目的是使人们能够使用加密和经济构建块,从而使人们有更多选择信任的对象,并进一步使人们建立更多受限的信任形式:赋予某人代表您做某事的权力没有赋予他们做任何事情的权力。从这种角度来看,多重签名和社交恢复是这一原则的完美表达:每个参与者对接受或拒绝交易的能力都有一定的影响,但是没有人可以单方面转移资金。与必须由一个人或钥匙单方面控制资金的情况相比,这种更复杂的逻辑可以使设置安全得多。

这个基本的想法(应谨慎地使用人的输入而不是直接丢掉它)是有效的,因为它可以很好地与人脑的优缺点相适应。人脑非常不适合记住密码和跟踪纸钱包,但是它是用于跟踪与其他人的关系的ASIC码。

对于普通用户来说,这种效果甚至更强:他们可能更难使用钱包和密码,但他们同样擅长处理诸如“选择7个不会勾结的人”之类的社交任务。如果我们可以从人类输入中至少提取一些信息到一种机制中,而又不将这些输入变成攻击和利用的载体,那么我们应该弄清楚如何做到。

社交恢复是非常强大的:要盗取一个有7个守护人的钱包,这需要7个守护人中的4个,以某种方式相互发现,并同意窃取钱包中的资金,而不让他们中的任何一个向失主告密:这当然要比攻击一个纯粹由一个人保护的钱包要困难得多。

社交恢复如何防止盗窃?

上面说明的社会恢复涉及您丢掉钱包的风险。但是仍然存在签名密钥被盗的风险:有人侵入您的计算机,在您已经登录并潜入您的头上时在您身后偷偷摸摸,甚至只是使用一些用户界面故障来欺骗您进行签名您不打算签署的交易。

我们可以通过添加保管库来扩展社会恢复能力以处理此类问题。每个社会恢复钱包都可以附带一个自动生成的保管库。只需将资产发送到保管库的地址即可将其移至保管库,但只能将其移出保管库,但要延迟1周。在该延迟期间,签名密钥(或扩展为监护人)可以取消交易。如果需要,还可以对库进行编程,以便可以立即进行一些有限的财务操作(例如,白名单令牌之间的Uniswap交易)。

目前市场上有哪些社交恢复钱包?

当前,已实现社会恢复的两个主要钱包是Argent钱包和Loopring钱包:

Argent钱包第一个、突破魔幻手机哦也是目前最流行的“智能合约钱包”,而社交恢复是其主要卖点之一,该钱包包括一个可以添加和删除守护人的界面,为了防止被盗,钱包有一个每日限额:达到该金额的交易是即时的,而超过该金额的交易,需要守护人批准才能最终取款。

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

这两个钱包的用户体验都出奇地流畅。但它们存在着两个主要挑战:

首先,两个钱包的平稳性都依赖于钱包商运行的“中继器”(relayer),它将签名消息作为交易重新发布。

其次,费用是很高的。

幸运的是,这两个问题都是可以克服的。

迁移到二层(rollups)网络可以解决剩余的问题

如上所述,存在两个主要挑战:

(i)依赖中继器来解决交易;

(ii)高交易费。

在以太坊应用中,第一个挑战是对中继器的依赖,这是一个日益普遍的问题。出现此问题是因为以太坊中有两种类型的帐户:由单个私钥控制的外部拥有帐户(EOA)和合同。在以太坊中,有一个规则,即每笔交易都必须从EOA开始。最初的意图是EOA代表“用户”,合同代表“应用程序”,并且仅当用户与应用程序对话时,该应用程序才能运行。如果我们想要具有更复杂政策(如多重签名和社会恢复)的钱包,则需要使用合同来代表用户。但这带来了一个挑战:如果您的资金处于合同中,则您需要拥有其他一些具有ETH的帐户,才能开始每笔交易,并且它还需要大量的ETH,以防万一交易费用变得很高。

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

幸运的是,我们可以通过寻求第三种解决方案同时解决这两个问题:将生态系统移至第二层协议,例如乐观rollups和ZK rollups。可以使用内置的帐户抽象来设计乐观和ZK rollups,从而避免了对中继器的任何需求。现有的钱包开发人员已经在研究rollups,但是最终要整体迁移到rollups是整个生态系统的挑战。

生态系统范围内的大规模迁移到rollups是一个很好的机会,它可以扭转以太坊生态系统的早期错误,并为多重签名和智能合约钱包在帮助确保用户资金方面发挥更加重要的作用。但这需要更广泛的认识,即钱包的安全性是一个挑战,而且我们在尝试应对和挑战方面还没有做得足够。多重签名和社会复苏不一定是故事的结局。可能会有更好的设计。但是,简单地进行改革,即迁移到rollups并确保提供一流的智能合约钱包是实现这一目标的重要一步。

本文部分内容编译自vitalik.ca

相关推荐

图文推荐