作者:@willshyzzz

编辑:@xinzhu4real

出品:@OpenBlockloveu

近日,黑客利用Chrome浏览器和iOS的数个 0day 漏洞盗取大量用户的加密钱包私钥并转移了其中的加密资产。安全机构漫雾 @Cos(余弦) 提出,目前存在一种原因未知的盗币方式——即用户的钱包私钥在某些数据中被无差别采集,如在用户的电脑文件夹或者手机相册中被采集,当黑客发现这些数据中存有钱包私钥,就有如拾荒者一般,“捡走”里面的资产。

“0day”漏洞

首先科普一下,关于 “0day” 漏洞的概念

第零日 0day

你发现中午在食堂刷卡的时候,如果很快就取走卡,虽然刷卡机提示支付成功,但是实际上钱款并未扣除。

如果你是个坏人(黑客),你会选择一直这样白嫖午餐。

如果你是个好人(白帽),你会选择向学校食堂上报。

当然,大多数情况下大家会犹豫。这种情况的漏洞即 “0day” 漏洞。

第一日 1day

学校食堂召开了反馈大会。在会议上老师们邀请大家提出意见或建议,还说如果意见恰当会给志愿时长的奖励,社会实践加分。

你果断汇报了这个情况,拿到了奖励和加分。

老师们大惊失色,立刻联系工作人员维修,工作人员说几个工作日内修好。

但同样在会议室里的同学们想,还能这么白嫖?我不白嫖不亏了?

于是那一天的食堂里出现了很多飞速刷卡的人,他们心满意足地端着免费的午餐走了。这种情况的漏洞被称为 “1day” 漏洞。

第N日 Nday

很多天以后,学校已经修复了系统。修复方法非常简单,把“支付成功”的提示音延迟几秒即可。不过这件事已经在校内发酵,甚至外校的人都知道了。于是,大多数大学的食堂系统都纷纷升级。你也因此登上媒体,广受褒奖。但没人想到学校的附属高中用的也是同一套系统。你的表弟看见了新闻,照猫画虎地试了一下。于是他吃了一顿免费的午餐。这种情况的漏洞是 “Nday” 漏洞。

与此同时,各类软件中尚未修复的0day漏洞时刻影响着加密用户的私钥安全和资产安全。即使传统EOA钱包如 MetaMask 坚持开源,也没有遭受供应链攻击,即私钥未泄露的用户保存在 MetaMask 上的资产非常安全。但没有人可以保证自己保存的私钥绝对安全,例如没有人可以保证记录自己私钥的纸条不会因受潮、失火、地震导致遗失或破损——这时就会发生“私钥单点失效”事件。如同一个豪华的宅院,修建了一个豪华且足够安全的大门,但却没有安全的墙院和围栏来防止外人进入及意外事件的发生。没有人能保证自己永远不会犯遗失私钥的失误,因此不暴露私钥在开放平台的产品一定是下一个周期热钱包的趋势。

以史为鉴可知兴替

科技和技术的创新让人们的生活越来越便捷,亦如智能手机和移动支付的普及大大减少了人们对于纸钞的需求。

历史节点1 纸钞替代贵金属

世界上第一张纸钞诞生于公元1023年(中国宋代),称之为“交子”,一开始作为私人票据,成为贵金属、丝绸等货物的等值替代物,可以理解为一种早期汇票。后续国家介入,开始印刷有统一面额和格式的交子,作为一种新的流通手段向市场发行。正是这一步步的发展,使得“交子”逐渐具备了信用货币的特性,成为了真正的纸币。

历史节点2 移动支付的出现替代现金

21世纪第二个10年,随着智能手机的普及,移动支付走进千家万户,在中国大陆地区已经完成支付宝/微信支付的大范围普及,二维码支付极大简化了人们的支付操作:扫码-输入密码-完成支付的简易流程不仅让人们不再需要随身携带大量现金,而且二维码支持多人同时付款,极大地便利了买卖双方。但同时二维码也存在安全性差、二维码钓鱼等缺点。

自从移动支付普及后,人们对于现金的需求大大减少,可以说移动支付的大规模应用替代了人们对于纸钞的需求(但并没有替代对于货币的需求)。

历史节点3 私钥钱包出现

区块链目前有两种类型的账户:外部拥有的账户(externally owned accounts,即EOA)和合约账户。EOA是用户控制的账户,可以发送交易。EOA通过其私钥控制账户的所有权,可以通过签名执行交易。其中私钥是EOA所有权的唯一代表。

密钥是钱包的管理工具,它包含一组成对的私钥和公钥,这是一一对应的。用户使用私钥签名交易,从而证明该用户拥有交易的输出权,而输出的交易信息是存储在区块链中的,公钥则是用来生成地址。

传统私钥的弊端是:钱包内的资产不属于用户本身,而是属于私钥持有人,即任何持有私钥的人均可以自由支配钱包内的资产,因此当黑客盗取钱包私钥后,用户没有任何方法或者措施保护自己的资产或限制恶意登录。就如同扒手盗取了别人的钱包,可以肆意消费钱包里的现金。但是当移动支付普及以后,街头巷尾的扒手数量越来越少,其中一个原因就是智能手机和移动支付的安全性非常出色。

历史节点4 新类型钱包替代传统EOA钱包

目前业界提出了2种EOA钱包私钥解决方案,一种是基于TSS+MPC技术的“升级”方案,另一种是基于ERC-4337的“取代”方案。

智能合约钱包很早就出现了,如Gnosis Safe/Argent wallet,ERC-4337的提出是为了标准化设计智能合约钱包及其相关基础设施的通用功能。但目前由于技术过于早期,且许多Layer2项目的账户抽象在技术实现上与以太坊主网存在差异。因此在比特币即将减半的时间节点前,智能合约钱包在本轮周期内完成大规模应用并不现实。长期来看,EOA钱包及其升级方案有很大可能将被智能合约钱包取代。

如果?下一代钱包“消灭”了私钥呢

目前市面上绝大多数的钱包产品大多 Fork 了 MetaMask 开源代码,不论是从产品形态还是安全性上来说与MetaMask无异。大量用户被迫使用EOA钱包来保管自己的资产,甚至为了安全性宁可将资产存到交易所中进行托管(与加密世界的自托管、去中心化思想相悖)。 MPC 钱包的出现,作为 EOA 钱包的“升级”方案,不仅引入了社交登录、社交恢复等安全方案,还改变了私钥的存在形式,从用户体验上“消除”了对于私钥的感知。

MPC,全称为 Multi-Party Computation,是一种重要的加密安全措施。MPC并不是一项划时代的新技术,早在20世纪80年代就由华人科学家姚期智先生(图灵奖得主,Conflux 创始人)提出。MPC 技术使得可以通过将“机密信息”分成多个部分来进行编程式的保护,这样没有单个参与者知道底层的“真相”。也正因为如此,没有单个参与者可以重构或泄漏机密信息。

MPC钱包,通俗讲是将一份乃至多份私钥经过二次加密,再将二次加密得到的密钥分片化并发送至多个计算方来处理。当发起交易需要私钥签名时,则将分片组合解析形成一个完整的私钥。一般来说,用户本地设备保存一份密钥分片(Sharding)、钱包服务器保存一份、可信第三方再保存最后一片。

所以使用 MPC 技术完成链下交易签名具有巨大的优势:

速度:更快地完成交易签名,因为 MPC 密钥分片不依赖于底层区块链TPS以完成交易。

成本:在链下计算的签名不会产生网络费用(无 Gas 费)。

隐私:链下签名无法在公开区块链上查看,这可以防止交易信息被披露,从而防止潜在攻击者了解敏感的签名方案与工作流程。

兼容性:虽然多重签名加密钱包与特定区块链相关联,但 MPC 基于标准化的加密签名算法(ECDSA),可在 95%的区块链上完成部署。

灵活性:链下分布式签名允许更复杂的治理方案,可以更轻松地配置以适应企业级管理需求并遵守监管要求。

给钱包一个增加容错率的机会

由“私钥单点失效”导致的钱包私钥被盗/丢失情况,在 MPC 钱包中完全可以避免。

以 MPC 钱包 OpenBlock 为例:创建账号后,服务器会自动将本地设备的密钥分片发送至设备中,并验证设备 ID。同时用户需要设置自己的社交登录账号、支付密码、2FA 验证等多项生物信息,使钱包无限接近传统移动支付的安全性和使用体验。

本文第一章结尾提到,“没有人能保证自己永远不会犯遗失私钥的错误”。不论是当自己因为疏忽导致私钥丢失,还是私钥被黑客恶意盗取。在 MPC 钱包的使用中,未经验证密钥分片的设备首先无法登录至钱包内,即使突破验证信息登录至钱包,没有支付密码也无法将资产转出。

若用户不慎遗失本地设备或登录信息,在服务器端申请重新分配一个密钥分片即可找回钱包。面对 0day 漏洞等系统风险时,黑客获得的密钥分片仅仅是登录钱包的部分必要信息,登录凭证不足致使黑客无法进入钱包并盗取资产。钱包容错率得大大提高让 MPC 钱包的大规模应用成为可能。

所以开放的环境里不应该存储私钥。因为开放的环境,总是有0day的漏洞。MPC 方案可以认为是一个很好的避开 0day 漏洞的钱包方案。

Web3 SuperApp

Web3 SuperApp 可以理解为杀手级应用,所谓杀手级应用,就是用户每天都习惯使用的入口,只要是跟加密相关的产品,用户都会想起和使用,这个思考的过程会构建起一个完整的用户心智模型。

目前为止,称得上加密行业杀手级应用的产品,目前仅有中心化交易所 App。目前中心化交易所App的用户和访问量最大,集成的应用也非常丰富。但是当 2022 年一系列的暴雷事件后,中心化交易所 App 成为行业最大的 SuperApp 几乎不可能,因为交易所的中心化在加密行业天然无法获得用户的全部信任。

SuperApp 即用户使用加密服务的起点,类似支付宝/微信一样的应用入口,有任何服务需求都会第一时间点开该应用搜索服务。因此Web3的SuperApp需要用户可以在这里可以购买到绝大部分资产,具有跨链属性,提供DeFi服务,用户可以自由出入金,最重要的是用户可以完全掌控自己的资产,随时存取且百分百可以取出。这也是目前 Uniswap 和 1inch 迫切推出自己的应用钱包的根本目的——想成为行业第一个去中心化 SuperApp。

按照该产品逻辑,未来行业内一定会出现一个去中心化的交易应用 App,它可以让用户安全的自我托管资产,可以交易所有链的资产,可以打通绝大部分应用的连接,还聚合了大部分理财业务。这样的一个 SuperApp 基本由三部分构成,有前端的用户界面,中台的聚合服务以及后台的全链支持和跨链服务。

综上所述,MPC 钱包非常有可能成为替代传统 EOA 钱包完成大规模普及。因为自2021年起,许多加密用户通过 NFT/ 游戏开始了解Web3和加密货币。他们不愿也不想了解私钥钱包的工作原理和保存方式。他们只想买到很酷的 NFT 或者体验自己喜欢的游戏。因此提供与传统互联网相似的社交登录方式,辅以MPC无私钥的安全方案以及钱包账号找回功能。在比特币减半前后以及 Layer2 生态即将爆发的下一轮繁荣市场中,MPC钱包相比合约钱包更可能先一步完成大规模普及并诞生第一个 Web3 SuperApp。

人不是机器,是人就会犯错误,在加密行业亦是如此,每个人都值得再来一次的机会。落后于时代的产品,应该被丢弃到历史的滚滚洪流中。