注:原文作者是以太坊联合开创人Vitalik Buterin,在这篇文章中,Vitalik首要提到了传统加密钱银钱包(例如硬件钱包和助记词钱包)存在的安全问题,然后经过Argent和Loopring两个比方简略介绍了交际康复钱包(即智能合约钱包)的原理及特征。Vitalik认为,交际康复钱包能够做到比传统钱包更安全,而迁移到rollup二层计划,可有用处理交际康复钱包当前面对的两大问题:(1)依靠中心化的中继器(relayer),(2)高买卖费用。
特别感谢Argent团队的Itamar Lesuisse以及Loopring的王东(Daniel Wang)供给的反应。
要让加密钱银和区块链应用对一般用户可用的应战之一,便是安全性:咱们怎么避免用户的资金丢掉或被盗?丢掉和偷盗是一个严峻的问题,它们往往会让无辜的区块链用户丢掉数千美元,乃至在某些情况下,用户会丢掉掉其净值的大部分。
这些年来,职业傍边现已呈现了许多处理计划,例如:纸钱包、硬件钱包,还有我自己从前最喜欢的多重签名钱包。现实上,它们现已很好地改善了安全问题。可是,这些处理计划都有各种各样的缺陷,有时钱包供给的防盗和防丢掉的额定维护,远远低于实践需求,有时则是钱包繁琐且难以运用,导致这些钱包的选用率十分低,而有时这些问题都会存在。而在最近,呈现了一种更好的替代计划:一种新型的智能合约钱包,称之为「交际康复钱包」。这些钱包有或许供给高水平的安全性,以及比以往挑选更好的可用性,但在它们能被容易和广泛地选用之前,还有一段路要走。这篇文章将评论什么是「交际康复钱包」,它们为什么是重要的,以及咱们如安在整个生态系统中更广泛地选用它们。
钱包安全是一个大问题
从一开端,钱包安全问题便一直是区块链生态系统面对的一个棘手问题。即使在2011年,比特币简直仍是其时仅有的加密钱银时,相关的丢掉和偷盗也十分猖獗。现实上,在创立以太坊之前,我作为Bitcoin Magazine的联合开创人和作者,写了一整篇文章来详细描述其时已发生的耸人听闻的黑客行为、丢掉及偷盗情况。
以下是其中一个示例:
“昨夜太平洋时间9点左右,我点击了一个链接进入CoinChat[.]freetzi[.]com,然后我被提示运转java。我这么做了(以为这是一个合法的聊天室),什么也没发生。我关上窗口,什么也没想。大约14分钟后,我打开了我的bitcoin-qt钱包,看到了一笔未经我赞同的买卖,我钱包里的一切资金都转到了1Es3QVvKN1qA2p6me7jLCVMZpQXVXWPNTC……”
此人的丢掉是2.07 BTC(其时价值约300美元),而在今日看来,他的丢掉超越了7万美元。还有一个比方:
“2011年6月,Bitcointalk 论坛成员‘allinvain’失去了25000个BTC(其时价值50万美元),其时一个不知道的进犯者直接侵略了他的电脑。进犯者可拜访allinvain的wallet.dat文件,并敏捷清空了钱包。这要么是从allinvain的电脑上发送的买卖,要么是简略地将这个wallet.dat钱包文件传给进犯者自身,然后在自己的机器上清空它。”
以现在的价值核算,‘allinvain’丢掉接近10亿美元。但偷盗并不是仅有的问题,丢掉私钥也会形成十分大的丢掉,下面是来自Stefan Thomas的比方:
“比特币开发者Stefan Thomas的钱包有三个备份,一个加密U盘、一个Dropbox账户以及一个Virtualbox虚拟机。可是,他删去了其中两个备份,并忘记了第三个备份的暗码,这使得他永久无法拜访到自己的7000BTC(其时价值12.5万美元)。Thomas的反应是:‘自那以后(我)会一直致力于创造更好的客户端。”
而一项针对比特币生态系统的剖析标明,每天全球用户或许会丢掉1500 BTC,这是比特币用户买卖费用的10倍之多,这些年丢掉的比特币合计占到了总供应量的20%。这些作业和数字都指向了一个无法逃避的现实:钱包安全问题的重要性是巨大的,咱们不该该轻视。
很容易得出钱包安全性容易被轻视的社会和心理原因:人们很自然地会忧虑在总爱评判的大众面前显得自己不小心或愚蠢,因而许多人会把自己资金被黑的阅历躲藏起来。资金丢掉更为严峻,由于人们普遍认为“除了你自己,没有人能够责怪”。但现实是,包含区块链在内的数字技能的全部意义在于,使人类更容易地从事十分杂乱的任务,而不必付出极大的精力尽力,也不必生活在不断惧怕犯错的恐惧之中。假如一个生态系统对丢掉和失窃的仅有答案是一个12步教程、不太安全的办法以及不那么偶然的半讽刺性的“关于你的丢掉感到抱歉”这样的计划,那么它将很难被广泛选用。
因而,在不要求一切加密钱银用户将个人安全变成全职爱好的情况下,削减丢掉和偷盗数量的处理计划对业界来说对错常有价值的。
单靠硬件钱包还不行
硬件钱包通常被吹捧为办理加密钱银资金的最佳技能,硬件钱包是一种专门的硬件设备,其能够衔接到你的核算机或手机(例如经过USB),它包含了一个专门的只能生成私钥和签署买卖的芯片。买卖将在你的核算机或手机上发动,必须在硬件钱包上承认后才干发送。私钥会留在你的硬件钱包里,因而侵略你的电脑或手机的进犯者,无法盗走你的资金。
硬件钱包是一种明显的改善,它们当然能够维护Java聊天室受害者,但它们并不完美,我发现硬件钱包存在两个首要问题:
-
供应链进犯:假如你购买了一个硬件钱包,你就相信了生产它的许多参加者(包含规划钱包的公司、生产钱包的工厂,以及一切参加运输钱包的人),这些参加者能够用赝品来代替钱包。硬件钱包或许是此类进犯的磁石:被盗资金与存在问题的设备数量的比率十分高。值得称道的是,Ledger等硬件钱包商现已采取了许多办法来防备这些危险,但依然存在一些危险。从根本上讲,硬件设备不能像开源软件那样被审计。
-
依然存在单点失利危险:假如有人偷了你的硬件钱包,并获取了你的PIN暗码,那他们就能够盗取你的资金。假如你失去了你的硬件钱包,那么你就失去了你的资金。除非硬件钱包在设置时生成并输出一个备份,但咱们会看到,这些办法都存在着自己的问题……
助记词短语还不行友好
许多钱包(无论是硬件钱包仍是软件钱包),都有一个设置进程,在这个进程中,它们会输出一个助记词短语,这是钱包根私钥的一种人类可读的12个单词或24个单词的短语,例如下面这个便是一个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
假如你丢掉了钱包,但你有助记词的话,你能够在设置新钱包以康复你的账户时输入这些助记词,由于助记词短语包含根密钥,因而能够从中生成一切其他密钥。
助记词短语有助于避免丢掉,但关于防偷盗而言却无能为力。更糟糕的是,它们为偷盗增加了一个新的载体:假如你有规范的硬件钱包+助记词备份组合,那么有人偷了你的硬件钱包+暗码或你的助记词备份,就能够盗取你的资金。此外,维护好一个助记词短语,而不是不小心将其丢掉,这自身便是一件不容易办到的作业。
假如你把这个助记词短语一分为二,将其中一半分给你的朋友,那偷盗的问题就能够得到缓解,但(1)简直没有人会这么做,(2)存在安全问题,由于这个助记词短语很短(128位),那么就有或许存在一个老练而有动机的进犯者,假如其拿到了其中一半的助记词短语,他就或许经过暴力磕碰或许的组合来找到另一部分助记词短语,并且(3)它进一步增加了精力压力。
那么,咱们需求的是什么?
咱们需求的是能够满足三个要害规范的钱包规划:
-
没有单一的失利点:假如被盗,进犯者也无法简略地拜访你的资金;
-
低精力负担:尽或许地降低要求,它不该该要求用户学习一些古怪的新习惯,也不该强迫用户总是记住要遵从特定的行为方式。
-
买卖的最大便当性:大多数正常的活动,不需求比一般钱包付出更多的尽力(例如Status、Metamask等);
多重签名是好的!
早在2013年,处理这些问题的最佳技能便是多重签名(multisig)。你能够拥有一个存在三把密钥的钱包,只要有其中恣意两把密钥签名,你就能够发送买卖。
这项技能最初是在比特币生态系统中开发的,但优异的多重签名钱包(例如Gnosis Safe)现在也适用于以太坊。多重签名钱包在安排内部对错常成功的:以太坊基金会运用了一个4-of-7多重签名钱包来存储资金,以太坊生态系统中的许多其他安排也是如此。
而关于个人来说,运用多重签名钱包的首要应战是:谁持有资金,以及怎么赞同买卖?最常见的公式是“两个易于拜访但独立的密钥是由你把握的(笔记本或手机),第三个是更安全但易拜访的备份,其离线寄存或由朋友或组织保管。”
这是适当安全的:即便其中一个设备丢掉或被盗,你也能够拜访到自己的资金。但安全性远不是完美的:假如你能偷别人的笔记本电脑,偷他们的手机通常也没有那么难。可用性也是一个应战,由于现在每笔买卖都需求运用两个设备进行两次承认。
交际康复是更好的挑选
这让我想到了我最喜欢的钱包维护办法:交际康复。交际康复系统的作业原理如下:
-
只有一个“签名密钥”可用于赞同买卖;
-
有一组(至少3个或更多)的“看护人”,其中多数人就可协作更改帐户的签名密钥。
签名密钥能够增加或删去看护人,但会有一个推迟期(通常是1-3天)。
在一切正常情况下,用户只需像一般钱包相同运用他们的交际康复钱包,运用他们的签名密钥对音讯进行签名,这样每笔签名的买卖都能够经过一次承认点击完结,就像在“传统”的钱包那样(例如Metamask)。
假如用户丢掉了他们的签名密钥,那么交际康复功用就会发动。用户只需联系他们的看护人,让他们签署一项特殊买卖,将钱包合约中注册的签名公钥更改为新的。这很简略:他们能够简略地去拜访一个页面,例如security.loopring.io,登录,检查康复请求并签名。关于每一个看护人来说,操作就像进行一笔Uniswap买卖相同容易。
关于选谁作为看护人,有许多种或许的挑选。最常见的三种挑选是:
-
钱包持有者自己拥有的其他设备(或纸质助记词);
-
朋友和家人;
-
组织,假如他们得到了你的电话号码或电子邮件的承认,或许在价值很高的情况下,经过视频电话亲自核实你的身份,组织就会签署一条康复信息;
看护人是很容易增加的:你只需求输入他们的ENS域名或ETH地址即可增加看护人,不过大多数交际康复钱包都要求看护人在康复网页中签署买卖,以赞同增加看护人。在任何规划合理的交际康复钱包中,看护人不需求下载和运用同一个钱包。他们只需运用现有的以太坊钱包,无论是哪种类型的钱包。考虑到增加看护人的高度便当性,假如你足够走运,你的交际圈现已由以太坊用户组成,我个人倾向于增加看护人的数量(最好是7个以上),以进步安全性。假如你现已有了一个钱包,那么你就不需求一直在精力上尽力做一个看护人:你所做的任何康复操作都会经过你现有的钱包来完结。假如你不认识许多其他活跃的以太坊用户,那么你信赖的技能上有才干的少数看护人则是最好的。
为了削减看护人进犯或合谋的危险,你不必揭露你的看护人:现实上,他们不需求知道对方的身份。这能够经过两种方式完成,首要,不必将看护人的地址直接存储在链上,而是将地址列表的哈希存储在链上,钱包一切者只需在康复时发布完好的列表。第二,能够要求每个看护人确认地生成一个新的单用途地址,它们将仅用于特定的康复。除非实践需求康复,否则它们不需求运用该地址实践发送任何买卖。
为了弥补这些技能维护,主张从不同的交际圈子中挑选不同的看护人调集(理想情况下要包含一个组织看护人),这些主张加在一起,将使得看护人极难一起遭到进犯或发生合谋。
假如持有者不幸身亡或永久丧失行为才干,看护人就能够揭露宣布自己的身份,这样他们就能够找到对方并收回你的资金。
交际康复钱包不是一种变节,而是“加密价值”的一种表达
关于运用任何方式的多重签名钱包、交际康复或其他方式的主张,一个常见的回应是,这种处理计划回到了“信赖人”的角度,这也是对区块链和加密钱银职业价值观的变节。尽管我了解人们为什么会这么想,但我认为,这种批判源于对“crypto应该是什么”的根本误解。
对我来说,加密的意图永久不会消除对一切信赖的需求。相反,加密的方针是让人们能够拜访加密和经济构建块,让人们有更多的信赖挑选,并进一步让人们建立更受约束的信赖方式:给予或人代表你做某些作业的权力,而不给予他们做任何作业的权力。从这个角度来看,多重签名和交际康复是这一准则的完美体现:每个参加者对接受或回绝买卖的才干都有必定的影响,但任何人都不能单方面转移资金。这种更为杂乱的逻辑,使得交际康复钱包设置的安全性,远远高于只有一个人或一把密钥单方面操控资金的安全性。
这个基本的主意(应谨慎地运用人的输入而不是直接丢掉它)是有用的,由于它能够很好地与人脑的优缺点相适应。人脑十分不适合记住暗码和跟踪纸钱包,可是它是用于跟踪与其他人的关系的ASIC。关于一般用户来说,这种效果乃至更强:他们或许更难运用钱包和暗码,但他们同样擅长处理诸如“挑选7个不会勾通的人”之类的交际任务。假如咱们能够从人类输入中至少提取一些信息到一种机制中,而又不将这些输入变成进犯和利用的载体,那么咱们应该弄清楚怎么做到。交际康复对错常强壮的:要盗取一个有7个看护人的钱包,这需求7个看护人中的4个,以某种方式彼此发现,并赞同盗取钱包中的资金,而不让他们中的任何一个向失主告密:这当然要比进犯一个朴实由一个人维护的钱包要困难得多。
交际康复怎么避免偷盗?
上面说明的交际康复涉及你丢掉钱包的危险。可是依然存在签名密钥被盗的危险:有人侵略了你的核算机,在你已登录时悄悄溜到你的死后,然后用一些用户界面故障诱使你签署自己不打算签署的买卖。
咱们能够经过增加一个金库来扩展交际康复,以应对此类问题。每个交际康复钱包都能够以主动生成金库。只需将财物发送到金库的地址即可将其移动到金库,但只有在一周推迟期后才干将其移出金库。在该推迟期间,签名密钥(或许扩展为看护人)能够撤销买卖。假如需求,还能够对金库进行编程,以便能够毫不推迟地完结一些有限的金融操作(例如在一些列入白名单的代币之间进行Uniswap买卖)。
现有的交际康复钱包
现在,实施交际康复功用的两大首要钱包有Argent钱包和Loopring钱包:
Argent钱包是首个,也是现在最盛行的“智能合约钱包”,而交际康复是其首要卖点之一。Argent钱包包含一个能够增加和删去看护人的界面:
为了避免被盗,钱包有一个每日限额:到达该金额的买卖是即时的,而超越该金额的买卖,需求看护人赞同才干最终取款。
而Loopring钱包是由Loopring协议(这是一个用于付出和去中心化买卖的ZK rollup协议)的开发者构建的。Loopring钱包也有一个交际康复功用,其作业原理与Argent十分相似。在这两种情况下,钱包公司都免费供给了一名看护人,这依靠于手机发送的承认码来验证你的身份。关于其他看护人,你能够增加同一钱包的其他用户,或经过供给其以太坊地址增加任何以太坊用户。
这两个钱包的用户体会都出奇地流通。但它们存在着两个首要应战,首要,两个钱包的平稳性都依靠于钱包商运转的“中继器”(relayer),它将签名音讯作为买卖重新发布。第二,费用是很高的。走运的是,这两个问题都是能够战胜的。
迁移到Layer 2(rollups)可处理剩下的应战
如上所述,交际康复钱包面对两个要害的应战:(1)依靠中继器(relayer)处理买卖,(2)高买卖费用。第一个应战是对中继器的依靠,这是以太坊应用中普遍面对的问题。这个问题的发生是由于以太坊中有两种类型的帐户:外部拥有账户(EOA)和合约账户,前者是由单个私钥操控的账户。在以太坊中,有一条规则是每一笔买卖都必须从EOA开端,其初衷是EOA代表“用户”,合约则代表“应用”,只有用户与应用会话时,应用才干运转。假如咱们期望钱包具有更杂乱的策略,比方多重签名和交际康复,咱们需求运用合约来代表用户。但这带来了一个应战:假如你的资金是放在了一个合约里,你需求有一些其他有ETH的帐户,以用于付出每一笔买卖,那它就需求适当多的的ETH,以防买卖费用变得十分高。
Argent和Loopring经过亲自运转“中继器”(relayer)来处理这个问题。这个“中继器”(relayer)负责侦听用户提交的带数字签名的链外“音讯”,并将这些音讯包装在买卖中并发布到链上。但从长远来看,这是一个糟糕的处理计划,它增加了一个额定的中心点。假如“中继器”(relayer)关闭,并且用户的确需求发送一笔买卖,他们总是能够从自己的EOA账户发送买卖,可是在中心化和不方便之间引入了一种新的权衡。有人在测验处理这个问题,即在没有中心化的情况下取得便当,首要的两类是围绕着建立一个通用的去中心化中继网络或修正以太坊协议自身,以答应买卖从合约开端。但这两种处理计划都不能处理买卖费用问题,现实上,由于智能合约自身更为杂乱,它们使得问题变得更糟。
走运的是,经过寻觅第三种处理计划,咱们能够一起处理这两个问题:将生态系统移动到layer 2 协议上,例如optimistic rollup和 ZK rollup。Optimistic和 ZK rollup都能够运用内置的帐户笼统进行规划,然后避免对“中继器”(relayer)的任何需求。现有的钱包开发者现已在研究rollup处理计划,但最终迁移到rollup是整个生态系统的应战。
整个生态系统大规款迁移到 rollup是一个很好的时机,它能够扭转以太坊生态系统前期的错误,让多重签名和智能合约钱包在帮助确保用户资金安全方面发挥更重要的效果。
但这需求更广泛的认识,即钱包的安全性是一个应战,并且咱们在测验应对和应战方面还没有做得足够。多重签名和交际康复不必定是故事的结局,或许还会有更好的规划。可是,简略地进行改革,即迁移到rollup,并确保这些rollup将智能合约钱包视为一类公民,是完成这一方针的重要一步。
视野开拓
想要多读点经济学的人,接下来应该找几本中等篇幅和难度适中的专业著作来看。据我所知,目前还没有哪本书能完全满足这种要求,但是有几本书,加起来效果不错。 Faustio Ballve Essetials of Ecoomics,Ivigto-o-Hudso,N.Y Foudatio fo Ecoomic Educatio 126pages Pecy L. Geaves Udestadig the Dolla Cisis, Belmot, Mass. Weste Islads, 1973, 327pages 主题类似但篇幅较长。 Fee Maket Ecoomics, Foudatio fo Ecoomic Educatio by Bettia Bie Geeves 想要深入了解经济学的读者,如果已经具备了一定理解能力,接下来应该看Huma Actio, Chicago:Cotempoay Books1949,1966; 907pages 这本书的逻辑单一性和经济学的精确度,超越了以前所有的经济学著作。“人的行为”出版十三年后,米塞斯的学生罗斯巴德(Muay N. Rothbad) 写了两册的人,经济与国家“(Ma, Ecoomy, ad State, MIssio, Ka 987pages 这本书中有不少新东西,有不少作者透彻的见解;其叙述简单明了;其结构安排在某些方面比米塞斯的居住更适合作为教科书。 未完。-《一课经济学》