Shaun:DAOrayaki 负责人
【时间轴】
02:56 最近丢币、丢 NFT 的行业大佬们
05:00 以太坊的钱包类型
10:58 2015 年 Vitalik 首次提出,账户抽象的历史
16:27 怎么理解账户抽象
19:20 账户抽象落地后,会和哪些场景相结合
26:41 账户抽象如何服务于流浪地球里的量子计算机
27:36 账户抽象和多方计算结合
33:54 账户抽象对 web3 的影响
随着 web3 世界迎来更多的用户,把钱包打造得更为安全和易用是开发者们不得不解决的问题。现有的自我托管钱包账户在赋予用户资产自主权时,却存在不安全以及难以使用的问题——小白用户面对天书一样的私钥地址和借记词往往不知所措,资深行业人士也常常被“钓鱼”以及黑客攻击从而损失大额财产。
账户抽象(Account Abstraction)是以太坊钱包的一种技术解决方案,这几年一直被频繁提及,它的主要思路是让账户具备图灵完备的能力,让账户在赋予用户资产自主权等优势时,也能够像 web2 的账户那样,安全并且对用户友好。
我们在 web3 的世界一直在谈论“去中心化”以及“权利的普及”,但是很重要的一条原则是产品要做到易用,对普通用户都足够友好,才能够真正实现去中心化,才能够帮助权利去普及。
分布式资本是以太坊早期投资人,照理来说,对区块链账户风险有较强的把控能力,但就在 2022 年 11 月 23 日,合伙人沈波表示,“个人常用 894 结尾钱包,共 4200 万美元价值资产,其中包含 3800 万枚 USDC,在纽约时间 11 月 10 日凌晨被盗”,沈波表示,已经报案,FBI 与律师均已介入。
接着,就在在 1 月份,一些资深技术人士也丢失大额资产。Bitcoin Core 有一位核心开发者,被疑似来自北朝鲜的开发者攻破了服务器,盗走了私钥,丢失了 200 多枚比特币;moonbird 的创始人 Kevin Rose 就因为误点了一封钓鱼邮件,就丢失了几十个价值几百万的 NFT。他以为这封邮件来自 opensea,但是实际上是来自黑客。
理解技术和风险的行业资深人士都会频繁丢币,还是和目前区块链主流钱包的设计有关。
目前以太坊用户经常使用的,例如 metamask 小狐狸或者是硬件钱包 Ledger,都是属于以太坊外部账户,简称 EOA(Externally-owned account),根据使用环境钱包,EOA 可以分为以下几种:
插件钱包:有浏览器插件钱包,Metamask,trustwallet,或者是 Solana 链上的 Phantom;
移动端:华人较常使用的 Token Pocket 等;
硬件钱包:最知名的 Ledger, Treasure 等;
EOA 钱包之所以成为用户的重要选择有其固有的优势——用户掌握自己的私钥,就掌握了资产的自主权。对于用户来说,最大的便捷就是,不再需要依赖银行等机构,在任何一个地方都可以生成一对公私钥对,从而掌握自己的资产。在去年 FTX 暴雷事件中,交易所跑路卷走用户资产,就是因为资产实际上交给了交易所,“not you key,not you coin”也是加密货币领域一条重要的资产原则。
私钥,只有自己知道,是一串随机的字符串;
但风险也是在这里——巨大的单点失败(single point failure)的可能性。我们在 web2 中使用的账户,往往和手机号、身份证等多重信息绑定,如果忘记了密码,我们可以通过获得手机验证码等手段,找回密码。但是在 EOA 的钱包中,唯一和私钥相绑定的是 12 个或 24 个助记词,一旦用户丢失了私钥或者是助记词,钱包就无法恢复,资产就无法找回。
可以用个简单的例子理解这种单点失败的风险,假设你拥有一套上海汤臣一品的豪宅,但是你丢失了它的钥匙。在 web2 的账户世界,你可通过换锁来重新进入这套豪宅,因为房产证等在现实世界拥有法律效力的信息帮助你与这套房产锚定;但是在 web3 世界中,一旦你丢失钥匙,你就不能再进入这套豪宅,一旦其他人捡到了你的钥匙,这套豪宅就归他所有。
因此,web3 真正走向大规模应用时,行业的开发者们必须一定要解决账户的安全性问题——假设用户成倍增大,这些风险也随之放大。
沈波在丢失巨额资产后,在当时的推文中表示:“文明与正义终将战胜野蛮与邪恶,这是人类社会的铁律,只是时间问题。”
MPC 钱包和放弃部分自主权
在 web3 世界,相信 code is the law 的领域中,技术迭代往往在解决问题中扮演了更重要的角色。
为了规避这种单点失败的风险,开发者们提出了 MPC(多方计算)钱包。它本质上也是 EOA 钱包,但是它的签名方式跟传统方式有所不同——私钥并没有在用户侧完成签名,而是打碎成若干个碎片,由用户保存多个备份或是与钱包提供方提供方共同保存。当你需要签名的时候,几个碎片就拼接起来,经过计算,重构出整个私钥。
核心思路就是分散控制权,进而达到分散风险的目的,避免单点失败。举例来说,一个私钥分成了三片,黑客就要分别攻破三个人,难度就骤然上升。
比较知名的产品比如 Fireblocks、ZenGo,包括 Coinbase 去年 5 月份也推出了它们的半托管方案——用户自己有一份私钥,Coinbase 有一份,如果用户丢失备份,可以联系 Coinbase 确认身份,让它帮你恢复——但这相当于放弃了一部分自主性。
因此,衍生出了一个很大的问题,就是你需要相信 MPC 的提供方,相信第三方提供的计算能力。比如 ZenGo 也曾表示,如果它们的服务器出现故障,那服务也是无法继续的。与此同时,还有受到监管机构封停账号的风险。
合约账户和账户抽象
在以太坊生态中,除了 EOA 和 MPC 钱包,还有另一种账户叫合约账户(Contract account),简称 CA。相比 EOA 账户是用密钥控制,合约账户是用智能合约的代码控制,比如常用的 DeFi 协议 Uniswap、Compound、Aave 等等。但是从目前情况来说,CA 账户能力非常有限——它不能主动发起交易,只能作为一笔交易的回应去发起交易,所以通常 CA 账户都是和 EOA 账户一起使用,因此,以太坊开发者们一直在寻求技术解决方案,账户抽象就是一种。
第一个,确定交易是不是由持有私钥的人签名的;
第二个,确认账户里面有没有足够的气费,因为转账需要气费;
在 EOA 钱包中,这些判断逻辑是写死在协议层的,也就会带来上述的 EOA 钱包的单点失败风险,而账户抽象的思路就是用一种可编程的方式来确认交易是不是有效,可以让开发者用验证私钥之外的其他的方式来认证交易。
实际上,Vitalik 等以太坊的开发者一直希望用户的账户具备图灵完备的能力,为用户提供更多服务,这几年在多个以太坊改进协议(EIP)中被提出:
新的协议和新的场景
以太坊几次大的繁荣,往往和标准的确立有关——2017 年 ICO 的繁荣是因为 ERC20 代币标准的确立,而这几年 NFT 的繁荣则是因为 ERC7721,而这一次账户标准的确立,也会给以太坊带来新的生命力。
多方验证:合约账户通过账户抽象方案,具备图灵完备能力之后,就能够加入其他的验证要素。例如授权另一个私钥去验证账户,这个私钥可以是自己持有的另一个私钥,或者是朋友家人持有的私钥,甚至是机构持有你的私钥,解决了 EOA 账户单点失败的风险——不会在丢失私钥之后就丢失账户里全部的资产。
值得注意的是,这种账户抽象的多方验证功能,与同样拥有多方验证功能的 Cobinbase 的半托管钱包方案不一样。通过账户抽象实现的这种功能,无论你授权给谁,仍然是可以将授出的权限收回,整个资产还是被用户所最终控制。但是半托管的方案中,是由中心化交易所控制着你的资产,账户不是跑在智能合约上,不能排除中心化交易所作恶的可能性。
为不同角色设置不同的支出策略:具备图灵完备能力的账户能够让多人共同管理账户,达到传统金融账号的能力。举个例子,在一个公司或是 DAO 组织,为不同角色设置不同的支出权限,比如普通出纳人员每个月可以发一次工资,CFO 可以随便花,超过一定金额需要一个更高级别的人的授权。或是 DAO 组织内部需要投票,可以拿去 Snapshot 里投票,但是不可以用来转账等等一系列复杂功能。
更便捷的气费支付场景:以太坊在转账时通常需要支付气费,过去经常会遇到支付不方便的问题,比如在 Polygon 的链上,你需要 Matic 代币,但有时候你恰好没有这个代表,就需要去换。除此之外,很多时候新手也不知道该如何支付气费。引入抽象账户之后,就可以用账户里其它代币支付,甚至是由另外一方代为支付,可能另一方是游戏开发商,或是社交类产品帮助用户支付,从而大大降低了用户门槛。
授权批量交易:举个例子,在跟链上的 DFI 交互时,通常需要完成很多操作,例如在 compound 上质押 altcoin,借出 usdc,至少要完成 3 个操作:首先授权 compound 合约能够调用该用户的 altcoin;第二步要把 altcoin 存到 compound 的合约账户;第三步会根据质押率算出你能借出多少 usdc。过去,这三步每一步都需要弹出确认,在账户抽象中,这三笔交易可以打包成一笔交易,不仅增加了便捷性,同时节省气费。
这个场景最近在去中心化协议 Lens protocol 上有较好的体现。Lens 用以太坊的账户做社交图谱里的签名,在其中设计了一个 dispatcher 调度器工具,用户可以把一个签名权限委托另外一个账号,这样,在 lens 上的社交互动都是写在链上的,同时 lens 作为产品方可以代付气费,大大降低了用户的使用门槛。
Web3 行业的新开端
账户抽象也并非没有弊端,它最大的弊端就是兼容性问题,因为它依赖于智能合约,而智能合约是部署到某一条链的,所以它跟这某条链绑定。如果部署在以太坊上,那么像 BTC,Solana 上的交易就无法支持。
第二个问题是费用问题。账户抽象是跑在链上的,它的计算要消耗链上计算资源高于传统钱包。目前以太坊主网的 Gas 费目前也比较高,所以账户抽象钱包可能在以太坊主网上还需要等待一段时间,会先在 Layer 2 上落地发展。
相比传统方案,比如 MPC,账户抽象有时反而显示出了弱势。MPC 私钥是在链下完成,所以它天然支持不同的链,它只要支持对应的加密曲线算法就可以,大部分是由 ECDSA 椭圆曲线签名来支持,所以它有更好的兼容下。其次,它在算的过程中不消耗 Gas 费,因为它是在链下完成计算。显而易见的是,不在链上的那部分就存在信任风险。
因此,一些新的项目,比如 AxtroX,会选取包括账户抽象、MPC 等各种技术方案的优势,提出全新的方案——把 MPC 有信任风险的那部分在一条独立的链上完成,完成密码学的计算。简单来说就方案选了一些公链,在链上搭建了这一套计算,来去支持不同的链的这种私钥的管理,同时就实现了这种跨链的账户抽象的能力。
我们在 web3 世界里经常谈论去中心化,谈论权利的普及,但是背后有一个不能忘却的道理——只有把产品做到容易使用,符合小白用户的使用习惯,才能够帮助权利去普及,才能够真正实现去中心化。举个简单的例子,在 1990 年代,打开电脑一个纸牌游戏,都需要写代码,写 basic 语言,和机器交流的权利实际上掌握在会写代码的人的手上;到了 90 年代后期,微软发明了图形界面系统,人们点击电脑里的图标,就能够打开网页——使用电脑的门槛大大降低;到这几年 AI 迅速发展,到 chatgpt 出现,人们用自然语言就可以和机器交流。如果把和机器交流,获得知识信息看作一种权利,那么这就是一个权利普及的过程,人们为之努力了几十年。
【联系我们】
进听友群微信:Cyberpunklychee
小宇宙:Mempool
Nostr:npub1hsncf9s35x59n9ff44y9vakrfww4lwyvwlrzyvcdr39pufee9ghsx55f5m
Mempool,知识和信息在这里聚集,共识也在这里达成。
【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。