包是密码学货币世界里重要的基础设施。所有跟密码学货币相关的操作,包括买卖密码学货币、持有密码学货币、转账,乃至质押获利(staking),多多少少都跟钱包相关。就像 web 浏览器是 Web 的门户一样,钱包好比 Web3 的门户。因为其重要意义,人们已经在密码学货币钱包行业投资了约 4 亿美元,其中以 Ledger (8800 万美元)、Blockchain(7000 万美元)、 BRD(5400 万美元)、 Abra(3550 万美元)所筹集的资金最多。
目前,大量的人力物力都集中在设计更好的钱包用户体验上。本文将给读者简介密码学货币钱包的生态系统,重点介绍钱包的用户界面或者用户体验上的最新进展,这些进展包括:钱包 SDKs、智能合约钱包和元交易(meta transaction)。
在比特币发展的早期,最早一批用户都是熟悉公私钥密码学的密码朋克。所以,人们一开始管理资金的方式(也称 “私钥管理”)就是用一张纸记下私钥和助记词(也叫 “seed phrase”)并保管好这张纸(译者注:保存着私钥,你就可以花用这把私钥对应的地址里的资金。或者说,私钥就是资金的所有和使用权)。
4136fb984d0a8650c6ddc54698cb9365479a607402120e0b7527b2aa1f5d8903
witch collapse practice feed shame open despair creek road again ice least
(译者注:这里即是私钥和助记词的示例。私钥是一串随机字符串,而助记词跟私钥是一一对应的。因此,掌握了助记词就等于掌握了私钥)
显然,一般人都不愿意为了转钱去记这串又长又臭的随机字母和数字,另外一个担忧是随身带着私钥的风险太高了。于是有人提出了 “Brainwallet”(脑钱包) 的概念:用户可以自己选择一组好记的助记词,然后使用某种哈希函数(例如 SHA-256)把这组词语转换成私钥。脑钱包这个名字也表明了其理念 —— 让用户自己把助记词记下来,而不是写出来。如果用户自己把助记词忘了,或者用户去世了,那么 ta 的比特币也就一去不复返了。
此外,脑钱包模式还意味着,用户的财产安全依赖于自己打乱助记词组的能力(译者注:如果用户自己选择的助记词不够乱,这些助记词就会被人猜测出来,进而泄露用户的私钥)。但是人类其实并不善于选择出足够混乱的助记词组,所以挑选出来的助记词往往是可以预测的。正如这次黑客大会所展示的,黑客们能够从挑选不善的脑钱包中窃取数百个比特币。这些脑钱包现在的价值已经是数百万美金了。
然后就出现了我们现在常说的钱包(软件)。有了钱包软件之后,用户就不再需要直接接触私钥了,只需通过简单的用户界面即可转账和接受密码学货币;只需在备份钱包时把私钥记录下来并保管好(译者注:毕竟,软件只是帮助你使用私钥,那把私钥才是真正的资金所有权)。最早出现的钱包是基于客户端的,用户要下载电脑软件才能使用。桌面钱包要么在本地运行轻客户端(light client),要么连接到另一个节点。每次打开钱包后,都要花几分钟来同步到最新区块。
对于用户而言,花长时间下载的体验显然不好,所以下一代的钱包就往网页钱包和手机钱包发展了。
所有这些钱包都具备安全保管密码学货币和收发交易的基本功能。大多数的钱包是用户控制型钱包,也就是说这些钱包的供应商只是提供了帮助用户使用私钥的软件,但是接触不到用户的私钥,因此也没有能力挪用用户的资金。如此一来,钱包供应商把保管用户私钥的责任重担还给了用户自己。
时至今日,已经有很多基于客户端的钱包、网页端钱包和移动端钱包,(在保管资金和收发交易方面)它们的差别微乎其微。这些钱包的差异化体现在 —— 有的钱包通过 Wyre 或 Simplex 这样的支付服务商帮助用户用法币直接购买密码学货币;有的钱包支持 Shapeshift 或 Changelly 这样的币币互换服务;还有些钱包使用混币服务(比如 Bitocin 上的 CoinJoin)来保护用户隐私。支持更多种类的密码学货币,乃至链上收藏品,也是差异化的一部分。
但是中国的钱包软件往往选择了另一条路。这些钱包模仿的是微信支付,希望用户尽可能在自己的软件里停留、不要去使用别的钱包软件,因此,它们也尽可能地包含更多功能。例如, imToken 允许用户在钱包中关闭自己在 MakerDAO (一个以太坊上的应用)中的抵押债仓。在中国流行的钱包还有 Bitpie、RenrenBit 和 Cobo Wallet。
(译者注:MakerDAO 是运行在以太坊区块链上的一个系统,用户可以通过质押资产来借出与美元软锚定的稳定币 DAI。)
除了上述所说的软件钱包之外,也有硬件钱包。硬件钱包主打冷存储,也就是说它们是隔离于互联网的,可以保存在银行的保险箱里。硬件钱包适合保管大额存款,黑客若想偷这笔钱,他也只能先去偷实体的硬件钱包。
(译者注:冷存储指的是设备在正常情况下不联网。)
如果你仅仅关注钱包保管、收发交易以及买卖密码学货币的安全性,那上述钱包就够你用了。但是,如果你还想使用 Web3 应用(译者注:代指运行在区块链上的应用),这些钱包在易用性上的差别就很大了。
从用户的角度来看,Web2 和 Web3 应用程序的主要差别在于,使用 Web3 应用程序需要用户在浏览器中安装钱包,Web2 则不用。进入 Web3 应用后,网站会检查用户是否支持 web3.js library 的钱包扩展。若发现不支持,则会告知用户先去下载 Metamask(一种浏览器插件钱包),然后才能使用 dApp。像 BRD Wallet 和 Edge Wallet 这类的非 Web3 的钱包就不支持 web3.js library,因此,哪怕你钱包里有 ETH,也用不了 dApp (如 Compound 或者 Uniswap)。
(译者注:Compound 是以太坊上的借贷市场,用户可以存入资金并赚取利息,也可以贷出自己需要的 token;Uniswap 是以太坊上的去中心化交易所,可用于 token 的互换)
Metamask 是 Web3 钱包中最有名的一个。截至 4 月份,Metamask 估计有 264000 月活跃用户和 90000 周活跃用户。考虑到大多数 dApp 都要求用户在使用功能前下载 Metamask 插件,Metamask 的指标也代表着 dApp 当前可以触达的全部市场。可以这么说,Metamask 是 Web3 的看门人,其产品的市场适应性可能也是最强的,虽然它在用户体验方面还有诸多不足。但 Web3 本身的愿景就是削弱中心化看门人对网络的控制,因此我们可以看到有不少团队在构建更好的替代方案。
Hedgehog 是由 Audius 团队开发、旨在替代 Metamask 的桌面 Web3 钱包。这种钱包支持用户用自定义的口令(password)将私钥加密保存起来,而且不会强制用户手动确认交易信息,以此隐藏钱包的复杂性。这个解决方案的缺点是没有账户恢复功能,另外它主要针对涉及小金额的用例。
Coin base Wallet 和 Trust Wallet 是两种已经推出的手机 Web3 钱包,而 Metamask Mobile 和 Astro Wallet 目前仍处于测试阶段。说白了,移动端 Web3 钱包就是浏览器加常规的手机钱包,让用户可以在访问网站的同时动用自己的资金。搭配 WalletConnect 或 WalletLink,在电脑上也可以操作移动端 Web3 钱包,只需扫描二维码把两个设备关联起来即可。而像 DexWallet 和 Rainbow 这样的钱包则是专门定制来服务 DeFi 用户的。
更好的用户体验是每个 dApp(如:MakerDAO 和 Augur)都有专门的移动端 app,用户可以直接从 App Store 或者 Play Store 下载。就好像大多数用户在移动设备上都是通过 Facebook app 来使用 Facebook,而不是使用移动端浏览器访问 facebook.com 的。为了提高 dApps 在移动设备上的用户体验,Tasit 正在为各种流行的 Ethereum dApps 开发移动应用 SDK。
(译者注:Augur 是以太坊上的预测市场平台,用户可以在平台上开盘预测未来事件,也可以参与预测。预测得当者可以得到奖励)
尽管 Metamask 很早就备受瞩目,它在用户界面和用户体验方面仍有很大的进步空间,而且可以有的放矢地推动 dApp 的普及。使用 Metamask 主要的用户体验瓶颈是 —— 用户要另外下载浏览器插件(虽然 Metamask 最近出了一个用于网站整合的新插件)。跟专门跟踪用户转化的 dApp 开发者交谈后,我们得知 —— 超过 90% 的 dApp 用户,当发现需要下载 Metamask 才能使用 dApp 时,会直接放弃。
如果我们真想让主流用户使用以太坊,那么登录到 Web3 应用程序与登录到 Web2 应用程序不应该有任何区别。
Web3 钱包 SDK 类似于 Web2 的用户名和口令登录。用户不需要在使用应用程序的时候另外下载插件,也不需要每次发送交易都要麻烦地点击一下弹窗。此外,钱包是和网站集成的,所有的设备和浏览器都可使用。而缺点在于 —— 只有在整合了相关钱包代码的 dApp 上才能正常使用此种钱包。
钱包 SDK 的供应商会存储加密过的用户口令,这个口令是跟某个私钥相匹配的 —— 比如 Fortmatic 和 Bitski 这两种 SDK 会选择把私钥储存在 HSM(硬件安全模块)上,而 Torus 会切片后分散存储。因为钱包 SDK 提供上储存了口令和私钥之间的映射,所以更新映射就可以重置密码了。这对于流连于 Web2 应用程序的用户来说是很重要的,因为他们的假设是 —— 总有办法可以找回口令。但是,用户如果弄丢了自己传统钱包的私钥,该私钥对应的资金就再也找不回来了。
以太坊上的智能合约可以为 DeFi 提供可编程的货币。那我们能不能智能合约给钱包编程、提供额外的功能呢?
首先,介绍一下以太坊账户模型的一些背景知识。在以太坊上,有两种不同类型的账户:外部所有者账户(EOA,即用户日常中接触到的以太坊账户)和合约账户。传统的以太坊钱包用的是外部所有账户,资金的安全完全取决于私钥(通常会被转换成十二个单词的 “助记词” 交给用户)。终端用户的责任是好好保管这些助记词,如果他们丢失了助记词,账户里的资金就石沉大海了。
与之相对的,合约账户则是永久存储在以太坊区块链上的代码,这些账户是没有私钥的,因此也无需私钥来使用合约账户里面的资金。
因此,智能合约钱包抛弃了完全让用户来管理私钥的办法。甚至于,智能合约钱包可以被编写得像传统银行那样,拥有着一样的安全保证,如:账户恢复、诈骗保护和提款限额。
在传统的钱包中,如果用户没有备份自己的助记词,还丢掉了手机,那钱就全没了。但是,有了智能合约钱包后,用户可以指定自己信任的家人或者朋友作为 “备份”(在 Argent 中称为 “监护人”)。如果得到大多数备份的同意的话,用户就可以启动社会恢复程序。需要注意的是,备份永远也不能窃取用户的资金,它们仅仅是对完成账户恢复程序有特殊的许可而已。
为了防止欺诈,Gnosis Safe 还使用了 2FA(双因子认证)。这是大多数在线的重要账户服务都会采取的做法。Dapper 还能监控异常行为,如:账户是否在不常用地区发起操作,是否正把大额资金转到可疑账户;另外也会在确定交易前检查异常。
传统的银行系统中,提款额度是极其常见的安全功能。有了智能合约,用户可以为所有交易设置其最大的交易额度。如果启动的交易超过最大额,交易会暂停,直到走完一段预先确定的时间(交易才能继续发送)。在此期间,用户随时可以取消交易。
虽然智能合约钱包比传统的钱包能提供更多的安全功能,但是智能合约钱包的风险在于它不是冷存储;此外,编程钱包会增加受到攻击的面向。智能合约不像常规的钱包,它不能通过保护私钥去保证钱包永远不会被黑,只要在代码上有漏洞就有可能被黑。Nexus Mutual 提供了智能合约钱包险,在钱包被黑、用户丢钱时会给用户赔付。目前,Argent 和 InstaDapp 的保险金分别为 2.4 万美金和 1.5 万美金。
- 点击 NexusTracker.io 以获取更多详情 -
元交易是由 Austin Griffth 提出的新模式,它可以极大地减少人们使用 dApp 的障碍。现在已经有围绕这个概念而形成的社区了,这在很大程度上也是先锋作品 MetaCartel 的功劳。
元交易是无需用户支付 Gas 的交易,用户不需要安装浏览器插件、也用不着购买密码学货币,利用元交易就可以直接使用 dApp。元交易的概念在于 —— 用户先用私钥签署交易,然后把交易数据传递给中继者,中继者会把这些数据包装成一笔以太坊交易,然后支付 Gas 发送到网络中。需要再次提醒大家的是 —— 元交易不是钱包,所以用户怎么储存私钥取决于你用来执行元交易的钱包。
元交易最早的实现是只用一个中继者来广播交易的,这就很有中心化的意味了。理论上,这个中继者可以审查用户的交易;但在实际上,因为钱包和 dApp 往往自己充当中继者,所以,自己审查自己是讲不通的。尽管如此,Zeppelin 和 TabooKey 团队的成员很机智使用去中心化的方式解决了这个问题,而且正在努力开发 Gas Station Network。
在 Gas Station Network 上,用户从独立中继者构成的网络中随机选出中继者代为提交交易。中继者由 dApps 支付报酬,如果中继者意图不轨,其预先存入的安全保证金就会被罚没。如此一来,dApp 承担了中继器成本和 Gas 成本(这也就是 TA 的获客成本),就可提供给用户一站式的体验。dApp 可根据自己的商业模型,在日后通过其他途径收取用户费用(如:订阅费用)。
元交易也可以在智能合约钱包中执行。Argent 和 Astro 就使用了元交易,所以用户无需支付 Gas 就可以发送交易。但更重要的是,元交易支持把多笔交易绑定成为一笔交易。这一点很重要,因为像 Uniswap 这样的 dApp,用户需要使用额外的交易来解锁想要交换的所有代币的相关权限,然后用户才能做代币互换。元交易消除了所有这些不必要的准备步骤,从而使得用户能直接用 dApp 进行交易。
- 在 ETHDener 推出的 Burner Wallet,支持黑客马拉松的参与者给小吃摊支付。从那时开始,在很多其他的赛事中都出现了 Burener Wallet 的类似物 -
使用元交易来引导新用户的另一个著名例子是 burner wallet。它的用户体验很简单,就是一个可以快速发送小额资金的网页钱包。用户通过手机或电脑浏览器访问 xdai.io 时会自动生成一个 burner wallet,不用下载任何软件,也不用记什么助记词,私钥会储存在用户浏览器的本地储存中。在 burner wallet 之间发送交易和使用微信支付差不多,扫二维码就可以相互交易。
Burner Wallet 好比于现金,你不会想随身带太多,不是怕它被小偷惦记就是怕自己马大哈,可现金的流通性实在强呀。因为用户的私钥储存在浏览器的本地存储空间上,Burner Wallet 给用户提供很好的引导体验,尽管它不适合长期保管资金。为了解决这个问题,Burner Wallet 和 Gnosis Safe 携手合作,等用户攒钱攒到一定数额之后,就自动地将资金转移到更安全的钱包当中。有 Gnosis Safe 的安全性和广泛的功能,再加上 Burner Wallet 强大的适用性,两者强强联手,大大地提升了以太坊钱包的水平。
许多人认为密码学货币和 dApp 的用户体验一时半会还成不了气候,但最近几年,它在用户体验上已经实现了很多巨大的突破,只是有待嫁接到现在的这些钱包上。我相信一旦像元交易这样的用户体验更好地被 dApp 的开发者所了解、并得到广泛的实现,dApp 的爆发就会到来。
我也注意到,现在的密码学货币老用户和新用户之间,存在着一个分歧。老用户似乎总体上对 Metamask 比较满意(至少是适应了其用户体验上的问题),而且没有什么动机去切换所用的钱包,除非新功能真能带来什么眼前的好处,比如在以太坊 Gas 价格飞涨的时候不用支付 Gas 费。
与此相反,新用户不太明白 “Web3 的应用需要 Web3 的钱包” 的意思,一旦 Ta 们看到没有钱包就用不了某个网站,他们会扭头就走。钱包领域几乎所有正在开发的 UI/UX 改进都是为了满足新用户的需求的。因此,钱包项目也是在赌,糟糕的用户体验(而非缺乏杀手级软件)才是 dApps 得到广泛使用的最大瓶颈。一旦解决这个问题,密码学货币普及的下一波浪潮就指日可待。
为了弥合新老用户之间的分歧,我认为理想的解决方法是 —— 提供两种登录选择。一种是使用 Matamask,照顾成熟用户对自主性的需要,另一种是用新型钱包去俘虏新用户(但是会牺牲抗审查性和隐私性)。又或许在将来,现在这些网络浏览器,比如 Chrome 和 Firefox, 会在浏览器内推出一个面向所有用户的预装钱包,那时候就真的能用上 HTTP 402 错误代码了(译者注:HTTP 在设计时专门给支付请求留了一个错误代码,就是 402。但是在 HTTP 问世之后,迟迟没有出现能内嵌在浏览器中的支付服务,所以这个码从来没有用过)。到那一天,我们就实现了互联网货币的神奇梦想。