SDC:简析账户抽象和EIP-4337:未来智能合约钱包落地情况如何?_VEST

最近,账户抽象以及EIP-4337在开发者圈子里很火。账户抽象指的是未来钱包签名机制概念化。目前,主流钱包采用的签名机制是CDSA,而未来钱包的签名机制可以多样化:采用多签、其他的加密算法以及ZK验证等。EIP-4337的提出则推动账户抽象概念的落地,未来将可能开启智能合约钱包新纪元。

那么,账户抽象所带来的钱包改革会带来什么实质性的好处吗?在Metamask、MathWallet等钱包已经成了主流应用的情况下,智能合约钱包还机会兴起吗?本文在科普的基础上也对上述话题进行探讨。

(本文由FenbushiCapital原创,有匪撰文,感谢MathWalletCTOEric的分享。)

EOA钱包&智能合约钱包

钱包的账户都有两部分构成:分别为外部账户。EOA钱包是用户通过私钥直接控制账户的钱包。其中,钱包账户的创建是通过随机生成私钥、根据私钥计算出公钥、根据公钥计算出地址的方式。用户发送交易的过程实际上是用私钥为交易数据签名的过程,由外部账户触发。

安全公司:AurumNodePool合约遭受漏洞攻击简析:金色财经报道,据区块链安全审计公司Beosin EagleEye监测显示,2022年11月23日,AurumNodePool合约遭受漏洞攻击。

Beosin分析发现由于漏洞合约的changeRewardPerNode函数未进行验证,导致攻击者可以调用该函数进行任意值设置。

攻击者首先调用changeRewardPerNode函数将每日奖励值设置成一个极大数,接下来调用claimNodeReward函数提取节点奖励,而节点奖励的计算取决于攻击者设置的rewardPerDay值,导致计算的节点奖励非常高。而在这一笔交易之前,攻击者便通过一笔交易(0xb3bc6ca257387eae1cea3b997eb489c1a9c208d09ec4d117198029277468e25d)向合约存入了1000AUR,创建了攻击者的节点记录,从而使得攻击者能够提取出该节点奖励。最终攻击者通过该漏洞获得约50个BNB($14,538.04)。[2022/11/23 8:01:04]

慢雾:Harmony Horizon bridge遭攻击简析:据慢雾安全团队消息,Harmony Horizon bridge 遭到黑客攻击。经慢雾 MistTrack 分析,攻击者(0x0d0...D00)获利超 1 亿美元,包括 11 种 ERC20 代币、13,100 ETH、5,000 BNB 以及 640,000 BUSD,在以太坊链攻击者将大部分代币转移到两个新钱包地址,并将代币兑换为 ETH,接着将 ETH 均转回初始地址(0x0d0...D00),目前地址(0x0d0...D00)约 85,837 ETH 暂无转移,同时,攻击者在 BNB 链暂无资金转移操作。慢雾 MistTrack 将持续监控被盗资金的转移。[2022/6/24 1:28:30]

EOA钱包的优劣势包括,优势:

1.可以免费创建钱包。

2.转账是gas费用较为低廉。

慢雾:DEUS Finance 二次被黑简析:据慢雾区情报,DEUS Finance DAO在4月28日遭受闪电贷攻击,慢雾安全团队以简讯的形式将攻击原理分享如下:

1.攻击者在攻击之前先往DeiLenderSolidex抵押了SolidexsAMM-USDC/DEI的LP。

2.在几个小时后攻击者先从多个池子闪电贷借出143200000USDC。

3.随后攻击者使用借来的USDC在BaseV1Pair进行了swap操作,兑换出了9547716.9个的DEI,由于DeiLenderSolidex中的getOnChainPrice函数是直接获取DEI-USDC交易对的代币余额进行LP价格计算。因此在此次Swap操作中将拉高getOnChainPrice函数获取的LP价格。

4.在进行Swap操作后,攻击者在DeiLenderSolidex合约中通过borrow函数进行借贷,由于borrow函数中用isSolvent进行借贷检查,而在isSolvent是使用了getOnChainPrice函数参与检查。但在步骤3中getOnChainPrice的结果已经被拉高了。导致攻击者超额借出更多的DEI。

5.最后着攻击者在把用借贷出来DEI兑换成USDC归还从几个池子借出来的USDC,获利离场。

针对该事件,慢雾安全团队给出以下防范建议:本次攻击的原因主要在于使用了不安全的预言机来计算LP价格,慢雾安全团队建议可以参考Alpha Finance关于获取公平LP价格的方法。[2022/4/28 2:37:18]

3.可以同时操作多个账户。

慢雾简析Qubit被盗原因:对白名单代币进行转账操作时未对其是否是0地址再次进行检查:据慢雾区情报,2022 年 01 月 28 日,Qubit 项目的 QBridge 遭受攻击损失约 8000 万美金。慢雾安全团队进行分析后表示,本次攻击的主要原因在于在充值普通代币与 native 代币分开实现的情况下,在对白名单内的代币进行转账操作时未对其是否是 0 地址再次进行检查,导致本该通过 native 充值函数进行充值的操作却能顺利走通普通代币充值逻辑。慢雾安全团队建议在对充值代币进行白名单检查后仍需对充值的是否为 native 代币进行检查。[2022/1/28 9:19:19]

劣势:

1.用户在生成一个钱包后,需要保留相应的私钥。一旦私钥流出,钱包因资产将面临被盗风险而被弃用。

2.用户在转账操作时经常需要授权应用,这给到恶意账户可乘之机,智能合约可以瞬间把资产转走。

Harvest.Finance被黑事件简析:10月26号,据慢雾区消息 Harvest Finance 项目遭受闪电贷攻击,损失超过 400 万美元。以下为慢雾安全团队对此事件的简要分析。

1. 攻击者通过 Tornado.cash 转入 20ETH 作为后续攻击手续费;

2. 攻击者通过 UniswapV2 闪电贷借出巨额 USDC 与 USDT;

3. 攻击者先通过 Curve 的 exchange_underlying 函数将 USDT 换成 USDC,此时 Curve yUSDC 池中的 investedUnderlyingBalance 将相对应的变小;

4. 随后攻击者通过 Harvest 的 deposit 将巨额 USDC 充值进 Vault 中,充值的同时 Harvest 的 Vault 将铸出 fUSDC,而铸出的数量计算方式如下:

amount.mul(totalSupply()).div(underlyingBalanceWithInvestment());

计算方式中的 underlyingBalanceWithInvestment 一部分取的是 Curve 中的 investedUnderlyingBalance 值,由于 Curve 中 investedUnderlyingBalance 的变化将导致 Vault 铸出更多的 fUSDC;

5. 之后再通过 Curve 把 USDC 换成 USDT 将失衡的价格拉回正常;

6. 最后只需要把 fUSDC 归还给 Vault 即可获得比充值时更多的 USDC;

7. 随后攻击者开始重复此过程持续获利;

其他攻击流程与上诉分析过程类似。参考交易哈希:0x35f8d2f572fceaac9288e5d462117850ef2694786992a8c3f6d02612277b0877。

此次攻击主要是 Harvest Finance 的 fToken(fUSDC、fUSDT...) 在铸币时采用的是 Curve y池中的报价(即使用 Curve 作为喂价来源),导致攻击者可以通过巨额兑换操控预言机的价格来控制 Harvest Finance 中 fToken 的铸币数量,从而使攻击者有利可图。[2020/10/26]

3.用户必须用ETH进行支付gas费用。

而合约钱包在保留公私钥的同时,不同点在于钱包本身由智能合约操作,发起交易则直接通过合约账户来完成。

合约钱包具备以下优劣势,优势:

1. 无需助记词,可恢复钱包并更换私钥。

2. 无需购买ETH作为gas费用支付。

3. 可管理,在基础的转账上增添更多功能:隐私交易、多签、代付gas费用等。

4. 可编程、可升级,定制化。

劣势:

1.创建钱包需要一定的成本,无法批量创建免费钱包。

2.在Layer1的gas费成本高昂,之后搭建在Layer2上会好一点。

3.一笔交易一次操作,多笔交易无法打包成一次。

4.合约漏洞会影响钱包安全。

对比下来,EOA钱包像是ATM机,只支持存取、转账、余额查询等基本服务。而合约钱包则更像是智能化的银行系统,用户可以设置白名单账户、最大提取额度;在转账操作上更加宽宥,允许项目方、好朋友代付等等。由于各种操作都需要调用智能合约,提高了用户管理钱包的便捷度。安全方面,EOA钱包和智能合约钱包各自存在隐患:前者容易在私钥泄露和授权应用上出问题,后者则可能出现合约漏洞。有一点坏处是,用户在使用合约钱包时每次调用智能合约费用较高。不过,此次以太坊基金会强推账户抽象,必有深意,下文继续分说。

以太坊路线图&EIP-4337

账户抽象概念自2015年就被提出,经历过多次的EIP提案也未成型。而最新的EIP-4337之所以受到以太坊基金会的重视,在于以太坊路线图的确定。在合并之后,以太坊未来升级(proto-danksharding)都会围绕着为Roll-up服务的基调。Rollup会显著降低gas费用,而Proto-danksharding在降低gas费上又添助益。这为智能合约钱包的普及奠定了良好的基础,解决了gas费用贵的主要问题。

EIP-4337无需在以太坊共识层面进行改动,而是推出了由Useroperation、Bundler以及Paymaster等角色构成的解决方案。解决方案如下:

1、Alice(用户)发起一个“用户操作”,并包含它想要执行的交易。

2、她将操作发送到高级别的“用户操作内存池”。

3、操作被部分验证并广播到P2P内存池节点网络。

4、操作由“Bundler”负责,Bundler可以是任何人——MEV搜索者、验证者、你或我,等等。所有的操作被打包者打包成一笔大额交易。

5、打包者将该区块与其他交易一起包含在以太坊区块中。

接着是打包者的功能,来了解交易将如何被执行和验证。

1、打包者将交易路由到一个全局的“入口点”智能合约。

2、全局合约通过每个用户操作并调用智能合约钱包中的“验证函数”。

3、钱包运行这个函数来验证用户操作的签名,并对打包者打包这些交易进行补偿。

4、钱包运行一个执行操作来操作指定的交易。

5、执行操作后,剩余的gas会退还至钱包。

关于EIP-4337,其中新的mempool相当于在更高级别的系统中复制原先的交易内存池,bundler相当于sequencer对于交易进行排序并可能获取一定的MEV收入,entrypointcontract作为可信入口点用以检索和检查打包内容是否有垃圾交易。Paymaster的模块未来可以接入token/法币通道,代付的应用场景也很丰富:第一,允许应用开发者代用户付费;第二,允许用户以ERC20代币支付费用,合约作为中介收取ERC20并以ETH支付。总得来说,EIP-4337中的useroperationmempool以及paymaster有机会创造出全新的业态,值得开发者深入探索!

短期&长期智能合约钱包落地情况

短期来看,Argent已经实现了部分智能合约钱包的功能,包括无需助记词和私钥,仅凭手机号和邮箱账户即可创建账户;添加可信第三方“guardian”实现无私钥恢复;支持更复杂的功能,通过DAI/WETH进行gas费用支付等等。不过,智能合约钱包并非无后顾之忧,依旧存有风险敞口。

长期来看,智能合约钱包的普及会面对如下阻力:

1.合约钱包的门槛较高,创建钱包需要花钱。从用户的角度来看,如果项目方不进行补贴,就难以有动力去使用产品。

2.合约钱包的广泛应用有赖于以太坊Layer2的蓬勃生态。就短期来说,Layer2生态还远未达到成熟的水平。

3.主流的钱包已经获取太多用户了,基于安全等因素的考虑,目前缺乏动力进行改革。

综上所述,智能合约钱包因其可编程型、智能性、复合功能而备受关注,可能成为主流钱包的发展方向。不过辩证得看,它并不是十全十美、万无一失,它的普及仍依赖于Layer2生态的成熟。最后是市场因素,这取决于用户选择对账户的”控制权“还是”便捷性“。

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

区块博客

[0:0ms0-7:578ms