钱包 2.0 时代:MPC 钱包 vs. 智能合约钱包_LAYER:CRO

作者:Chloe,IOSGVentures

在波哥大举办的Devcon6大会中,TomaszTunguz提到了Web3.0的一些统计数据:各主流公链DAU累计约为250万,而传统互联网的DAU为50亿,前者勉强够上后者的0.05%。从供给侧来看,约有1.6万名开发者在Web3.0开发,而世界上开发者总数达到了2700万,Web3开发者占卜不足0.06%。因此,Web3.0离massadoption还有很远的距离。

钱包,作为Web3.0的入口,其用户体验直接影响到加密行业何时能迎来大规模化采用。尽管各大钱包在这方面卯足了劲,可在普通用户的眼里,钱包使用体验依旧不尽人意。托管钱包虽然易用,但是安全性是一个很大的隐患,钱包被盗事件层出不穷。自托管钱包虽然相对安全,但保管长长的助记词和私钥的方式与传统互联网的用户名-密码体系相比复杂了很多。据Chainalysis的研究报告显示,截止2021年约有20%流通中的比特币,因所有者不记得私钥而丢失。很多人可能会有疑问,为什么我们不能将传统的验证方式应用到Web3.0来呢?

分析 | 比特币钱包 Electrum “更新钓鱼”盗币行为在继续:2018年12月,慢雾第一次发现并预警了有攻击者利用Electrum钱包客户端的消息缺陷,在用户转币操作时强制弹出“更新提示”,诱导用户更新下载恶意软件,进而实施盗币攻击。虽然在2019年初Electrum官方就说要采取一些安全机制来杜绝这种“更新钓鱼”的发生,但许多用户的Electrum还处于老版本状态(小于 3.3.4),老版本还处于威胁之中。不过,我们不排除新版本也会有相似威胁。

近期,慢雾科技反(AML)系统通过持续追踪发现,其中一个攻击者钱包地址 bc1qcygs9dl4pqw6atc4yqudrzd76p3r9cp6xp2kny已累计盗取30多枚BTC,作案时间持续半年,并且近期还在活跃。我们在此提醒Electrum用户注意“更新提示”,这种“更新提示”里的新版本Electrum很可能是假的,如果有安装,请及时在其他安全环境将比特币转出。同时我们呼吁广大加密货币交易所、钱包等平台的AML风控系统拉黑并监测如上比特币地址。[2020/1/19]

为什么我们只能通过私钥的方式进行验证?为了回答这个问题,我们需要了一些背景知识和概念。首先是以太坊上的账户类型。以太坊一共有两种账户:外部账户和合约账户。合约账户就是智能合约,其代码由以太坊虚拟机来运行。而外部账户就是我们平常用来发起交易的钱包账户,它之所以被称为“外部“是因为这种账户本身是没有代码的,因此独立于以太坊虚拟机之外,由用户通过私钥进行控制。

动态 | Algo Capital官方:CTO钱包被盗部分代币流向币安钱包 FBI已介入:10月15日,Algo Capital发布有关CTO钱包被盗细节事宜。博客称,9月26日,前Algo Capital 首席技术官 Pablo Yabo称,他管理的几个钱包已经被盗。这导致了190万至150万美元的失窃,其中有150万美元被装在由Algo Capital赞助的风险投资基金拥有的钱包里,其余的被装在其他Algo Capital的钱包和Yabo的个人钱包里。由于一个错误,黑客能够访问一个临时解密文件从而能够访问恢复种子备份,随后黑客可以访问到这些钱包中的资金。在很短的时间内,黑客可能将被盗的 Algos 转移到数个币安钱包中,显然是在试图清算这些资产。据币安称,所有与该事件有关的账户都已被隔离。Algo Capital也向联邦调查局报告了这一事件,并与当地的亚特兰大联邦调查局合作,后者正在调查这一案件。由于此次事件,Yabo主动选择了从公司辞职并获批。Yabo还同意将很大一部分损失偿还给Fund。此外,公告最后显示,Algo Capital 与 Algorand Inc、Algorand LLC、Algorand Foundation 或其任何子公司均无关联。[2019/10/15]

合约账户虽然有自定义逻辑,但它是无法主动发起事务的。因此任何合约状态的改变都依赖外部账户来发起,并由外部账户支付Ether。那如何验证事务的合法性呢?以太坊上的验证方式为检查事务的发起人和资产(Ether)的所有人,也就是这个外部账户的拥有者是一致的。因此用户需要通过钱包对交易进行签署。而以太坊默认的验证逻辑是中本聪设计的secp256k1,也正是通过此算法生了密钥对。签名的正确性可以通过验证该签名是否出自跟某个共钥对应的私钥检验,因此用户必须掌握这个私钥。这就是为什么无论如何优化钱包的用户体验也无法绕开私钥的问题。

动态 | 0.105 BTC转移至著名加密勒索钱包 相似案例已达49起:据AMBCrypto 9月12日消息,Whale Alert监测数据显示,9月11日23:22:28,又有0.105 BTC从bc1qgelr0ue07nz5tsjvmv2ncrrtjgay0w9pygdj8d地址转移至已知的著名加密勒索钱包1mptcfynyqjsczzxc5t9jesrsacpmf28h,与此类似的案例已达49起。[2019/9/12]

前文提到,外部账户并不具备代码逻辑。如果想要引入更复杂的逻辑来实现其他的功能,比如多签等等,是无法在外部账户上直接进行的。那么,目前有什么样的方式可以解决此问题呢?笔者将介绍被认为最可行有效的两种解决方案:MPC钱包和智能合约钱包。

MPC钱包

MPC,全称为Multi-PartyComputation,是一种重要的加密安全措施。其包含了很多种技术方案,在本文的语境下主要指MPC-TSS。而MPC钱包,是通过对私钥进行多方计算在链下实现“多签“、”跨链“等等更复杂的验证方式。简单来说,就是将一个私钥打碎成多片,将私钥碎片交与一个去中心化的网络进行计算和加密。当需要私钥签名时,则将碎片再拼接起来形成一个完整的私钥。MPC的核心思路为分散控制权以达到分散风险或提高备灾的目的,有效避免了单点失败等安全问题。

动态 | 三星投资加密货币钱包 ZenGo 已支持 Libra 测试网络:加密货币钱包 ZenGo 已支持由 Facebook 发起的数字货币 Libra 的测试网络,可以进行转账收款操作。由于是测试网络,所以持有的资金是没有任何实际价值的,仅供测试用途。ZenGo 在文章中介绍到,Facebook 自己开发的钱包 Calibra 将会是托管钱包,但 ZenGo 将会是一个非托管钱包。据此前消息,加密货币移动钱包 ZenGo 获得 400 万美元投资,欧洲投行 Benson Oak、三星、Elron 等参投。[2019/8/19]

MPC钱包“多方参与”的概念与“多签钱包”有些类似,但实际上,虽然都可以实现“多签”的功能,二者的实现途径是不一样的。之前我们所熟知的多签钱包,比如GnosisSafe等等,是建立在智能合约上的钱包,合约中定义了验证逻辑,比如如果需要验证一笔交易,需要一个以上的私钥,或者五个中至少三个私钥进行验证。这类钱包属于后文即将提到的智能钱包的一种。而MPC钱包,则是将一个私钥分解成多个片段,验证过程只涉及到一个私钥。并且计算网络是链下的,与智能合约并无联系。

动态 | 加密钱包 Wirex为西班牙和法国的用户推出IBAN账户:根据cryptoninjas消息,数字钱包平台Wirex今天推出了针对西班牙和法国用户的欧元账户IBAN,同时提高了账户限额。EEA的用户现在可以在他们的账户投入£15000、€16000和 $20000。Wirex联合创始人Pavel Matveev表示:“在与我们的金融合作伙伴合作之后,我们已经能够扩大我们的支付服务。我们希望为所有用户改善Wirex的体验,同时继续缩小我们的服务与传统金融平台之间的差距,目前Wirex账户包括Visa借记卡作为支付方式,上个月已经获得FCA电子货币许可证。”[2018/9/28]

智能合约钱包

智能合约钱包,正如其名,是基于智能合约而不是外部账户的钱包。市面上已经有不少的智能合约钱包,但因为这些智能合约是自定义的,缺乏统一的行业标准,且存在合约漏洞以及与其他合约兼容性等等问题未获得广泛的应用。最近,智能合约钱包又因为“账户抽象”提案EIP-4337的重大进展而再次成为了热议的话题。那么账户抽象到底是什么意思呢?实现了账户抽象后,又能给用户带来怎样全新的体验?在了解以太坊上的账户抽象之前,我们首先需要了解CS中抽象概念。

“抽象”是计算机科学最重要的概念之一,指在向外界提供必要的关键信息的同时隐藏其后台的实现细节,使得开发者在处理一个抽象层的任务时,只需要专注于这一个抽象层。举一个贴近生活的例子:当我们作为观众想使用电视机的时候,我们只需要熟悉作为电视观众需要了解的操作,比如如何打开和关闭电源、调整音量、切换频道、连接其他设备如游戏机、DVD等等。

观众并不需要了解电视内部的实现细节,比如电视是如何通过缆线接受信号,如何转换信号,如何将这些信号呈现在电视屏幕上等等。这些实现细节是造电视的人需要了解的。作为观众,我们只需要通过外部接口,比如电源按钮、遥控器、DVD等控制电视。

账户抽象同理,我们作为钱包用户,仍需要考虑很多因素,比如gasprice、gaslimit、事务阻塞等等复杂的费用逻辑。其根本原因是基于外部账户的钱包不能够被很好地“抽象”,直接导致用户需要处理很多本不应该由用户处理的问题。那如何解决呢?逻辑很简单,我们可以将外部账户和合约账户抽象,使外部账户更贴近合约账户,这样就可以通过智能合约赋予钱包更加复杂的逻辑。智能合约钱包能够实现的功能也不止“多签”这一个场景了。

如果EIP-4337能够实现以太坊账户的系统性升级,作为用户的我们能获得什么新的体验呢?理论上只要能通过智能合约代码定义的功能都能实现。首先,智能合约钱包可以通过非secp256k1的验证算法进行验证,用户不需要面对长长的密钥对和助记词。同时,智能合约还可以赋予密钥更多的逻辑。比如在多签的场景下,给每一个私钥定义不同的权限:50USDC以下的交易需要私钥A签名,50USDC以上的交易需要私钥B签名,超过2000USDC的交易需要私钥ABC共同签名等等。

此外,通过移动端与区块链交互会变得更加容易,我们可以授权一个专属于手机的密钥,且可以定义这个密钥加上限制,比如只能与固定几个智能合约交互,或者智能验证数额较小的交易等。其他能够实现的功能还包括一键授权批量交易、交易黑名单等等。总之,智能合约钱包的想象空间非常大。

总结

介绍完两种钱包,读者可能会产生疑问,这两种解决方案到底哪一种更好呢?笔者认为很难进行比较,因为MPC钱包和智能合约钱包本质上不在同一个层面解决问题。MPC钱包是链下方案,既可以控制基于外部账户的普通钱包,也可以控制智能钱包。二者各有用例,并不冲突。因此,笔者将为大家分别列举两种方案的机遇和挑战。

MPC钱包作为链下方案,并不涉及到以太坊共识层或合约层的改动,用户的使用成本更低,且在短期内更具可行性。此外,在一些特殊的使用场景比如跨链密钥等更具优势。智能合约钱包是以太坊的系统性升级,可以给用户带来更多全新的体验和用例。但账户抽象是一个需要“兴师动众”的大工程,要求其他智能合约、开发者、以及以太坊架构都配合升级。过大的实操难度使从2015年就提出的愿景到今天也没有完全落地。而智能合约钱包对于用户而言,最直接的问题就是钱包的使用成本将会提升,从创建钱包开始就需要支付费用。

笔者认为,智能合约钱包是我们的最终愿景,MPC是短期内更可行的方案,且在一些特殊场景更具优势。因为成本问题,未来智能钱包在以太坊主网实现的可行性和可能性都较低。读者可以更多关注Layer2上的账户抽象和智能钱包进展。目前EIP-4337是最可行的账户抽象方案,已经有不少智能合约钱包项目在探索这条路径,智能钱包的全面落地可能比我们想象的更近。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金宝趣谈

[0:5ms0-4:14ms