相关快讯
更多
2分钟前
BlockBeats 消息,11 月 30 日,FTX 创始人 SBF 在 FTX 破产后曾和加密举报人 Tiffany Fong 进行过对话,在 Tiffany Fong 公布的对话录音中,SBF 解释,FTX 在暂停取款后重新向巴哈马居民开放,是因为要安抚公司所在国的公民。 关于 Binance 创始人 CZ 在 FTX 破产中扮演的角色,SBF 回应称,如果没有 CZ 的质疑行为,「事情肯定会更稳定,产生流动性的能力也会更强,但系统中仍然存在太多的保证金。我认为两者五五开。」 SBF 还表示,回想起来,他希望公司能有一个人专门负责风险管理和流动性。另一个问题则是,公司的业务太分散了。他特别表示,FTX 花了大量精力试图获得监管牌照,「而我们本可以在这方面更有选择性,在这方面花更少的时间。」
32分钟前
BlockBeats 消息,11 月 30 日,据 CoinDesk 报道,加密货币托管公司 Prime Trust 总裁兼首席执行官 Tom Pageler 已于本周被解雇。根据 Linkedin 资料,Pageler 自 2021 年 1 月执掌 Prime Trust,目前尚不清楚被解雇的原因。Prime Trust 发表声明表示,Jor Law 担任临时首席执行官,且已为 Pageler 调整新的角色。 据悉,Prime Trust 与 FTX 高层有着个人财务方面的联系,SBF 在该公司持有数千万美元资产,并为政治竞选活动提供捐款。
38分钟前
BlockBeats 消息,11 月 30 日,据 The Block 报道,由 Brevan Howard 支持的 Web3 支付初创公司 Starlight 推出了公司卡,旨在简化加密公司的费用支付,这些卡允许法定和加密支付,可以通过平台上的财务仪表板进行跟踪,付款通过 Starlight 可用的加密钱包或支票账户处理。 Starlight 表示,其法定账户中持有的资金由 FDIC 承保,公司卡对比特币、USDC、以太坊或法定货币等具有有可调整的限额。Starlight 创始人兼首席执行官 Gray Nguyen 表示,「DAO 或加密企业可以通过加密卡在现实世界中使用加密货币进行消费。」
41分钟前
BlockBeats 消息,11 月 30 日,据 CoinDesk 报道,Jack Dorsey 创立的支付公司 Block 旗下比特币子公司 TBD 拟申请「Web 5」商标以防止被滥用。TBD 在社交媒体指出:「我们最近注意到『Web 5』一词被某些产品和服务滥用,与我们制定的 Web 5 原则截然相反,因此,我们决定为『Web 5』寻求保护,防止对『Web 5』的含义产生混淆,并确保该术语按预期使用,即一个真正开放、去中心化的新互联网层。」
谈以太坊的账户抽象化与ERC-4337
将合约账户与外部账户的功能合二为一
原文标题:《以太坊账户抽象和 ERC-4337》
原文来源:IOBC Capital


以太坊系统中实际存在两种类型的账户:


· 一种是由私钥控制的外部账户(externally-owned account,EOA),比如我们所使用的钱包中的账户,这类账户都有自己的余额。拥有者可以通过创建和签名一笔交易从自己的外部账户发送消息;


· 另一种是由部署到区块链上的代码控制的合约账户(contract account),由存储在智能合约账户(有时也被称为智能钱包)内的以太坊虚拟机代码控制。当合约账户收到信息时,其内部代码就会被激活,并允许它对内部存储进行读取和写入以及创建新合约等操作。按照目前的以太坊协议,只有外部帐户才可以发起交易,并且仅允许账户的所有人修改其帐户状态。



什么是账户抽象化?


账户抽象是对以上两种账户的一种改进,尝试模糊二者之间的界限,变成一种包含复杂逻辑的通用性账户,使账户可以同时拥有合约账户和外部账户的功能


这种做法相当于让用户按照合约账户的格式来定义外部账户,用户可以在智能合约钱包中包含任何逻辑验证。由密钥控制的账户也可以获得代码的支持。




账户抽象化的各种方案


一直以来,实现账户抽象化都是以太坊开发者社区的愿景。社区也提出了各种各样的方案,如:EIP-86,EIP-2938 等


EIP-86 是为账户抽象做技术准备,它定义了一种新的账户类型,允许用户创建基于智能合约的账户。


以太坊协议本身要求将所有内容打包到源自 ECDSA 安全的外部账户 (EOA) 的交易中,每个用户操作都需要由来自 EOA 的事务包装,这会产生 21000 gas 的费用。用户需要在单独的 EOA 中拥有 ETH 来支付 gas。


EIP-86 提出的账户抽象带来新类型的事务,与传统事务必须有一个 EOA 作为发送者相比,这些事务没有发送者。这种事务破坏了事务哈希的唯一性。EIP-86 原计划于 Metropolis 阶段升级,但由于前面所说的问题,开发者决定在 Metropolis 中暂缓引入。


EIP-2938 提供了一种账户抽象化解决方案,通过更改一部分以太坊协议,允许合约账户与外部账户一样可以发起交易。但是由于这个方案需要在共识层进行以太坊协议的更改,所以并没有得到广泛的接受。


后来提出的新的协议 ERC-4337 则提供了一种无需更改共识协议的方案试图达到与 EIP2938 同样的效果,这种安全性更高的实现方式目前在社区中得到了更多的关注。



ERC-4337 如何实现?


ERC-4337 没有试图修改协议共识,而是在系统中复制了 mempool 的功能。


用户发送一个用户操作(UserOperation)对象,这个对象中包括了用户的意图、签名和其他数据。


用户操作有一个单独的 mempool 存储池,连接到这个存储池的节点会进行 ERC-4337 特定的验证,以过滤操作来确保他们只收到支付费用的操作。


由矿工或使用 Flashbots 服务的打包者批量收集这些用户操作,打包成单笔捆绑交易(bundle transaction),并纳入以太坊区块中。打包者为以太坊中的捆绑交易支付 gas fee,并收取每个单独的 UserOperation 所支付的费用进行补偿。打包者将使用费用优先级逻辑选择包含哪些 UserOperation 对象。  



其中的用户操作 UserOperation 看起来像一个事务,但它是一个 ABI 编码的结构,包括了以下字段:


1、发件人:进行操作的钱包;


2、nonce 和 signature:传递给钱包验证函数的参数,以便钱包可以验证操作;


3、initCode:如果钱包尚不存在,则用于创建钱包的初始化代码;


4、callData:用于实际执行步骤调用钱包的数据。


而每一个钱包都是一个智能合约,必须包括两个功能函数:


1、validateUserOp,它接受一个 UserOperation 作为输入。这个函数应该验证 UserOperation 里的签名和 nonce,如果验证成功则支付费用并增加 nonce,如果验证失败则抛出异常;


2、op 执行函数,将 calldata 解析成钱包执行操作的一个或多个指令。  



ERC-4337 带来的变化


如果该提议被普遍采用,签名验证转移到了以太坊虚拟机(EVM)上,validateUserOp 函数添加了任意签名和随机数验证逻辑,使验证逻辑变得更加灵活。


如此一来,签署交易之时就能采用新的密码学工具,钱包也可以提供一些新的功能,比如:


1、多重签名;


2、社交恢复;


3、更高效、更简单的签名算法(例如 Schnorr、BLS);


4、后量子安全签名算法(例如,Lamport、Winternitz);


5、可升级钱包。


这种方案还打开了各种其他交易许可管理,比如允许交易通过智能合约来支付 gas 费


在目前,外部钱包要在以太坊上交互的 gas fee 只能通过钱包中的 ETH 来支付,如果你的钱包中只有 ERC-20 Token,没有 ETH,你将没有办法将这些 Token 转出。当 ERC-4337 采用后,用户可以使用账户中的 ERC-20 Token 来支付费用,由矿工节点用合约作为中介来代为支付 ETH 上链并获取用户的 ERC-20 Token 。


抽象化实现后,由外部账户的所有者签名交易并进行广播将不再是发起交易的唯一方法。这将为以太坊充当元交易的中继者带来可能。目前许多以太坊上的应用都需要依靠中继者在区块链上发布用户交易,并向中继者支付费用。如果钱包中可以内置更复杂的合约,有些中继者就不再有存在的必要,也就不需要向他们支付额外的费用。


虽然有很多优点,但是新方案也同样面临一些问题。


最突出的一点就是更高的 Gas 成本,基本的 ERC-4337 操作约需要 42000 gas,而常规交易需要 21000 gas,原因如下:


1、需要支付大量的单个存储读/写成本,在 EOA 的情况下,这些成本会捆绑到一笔 21000 gas 的付款中:


(1)编辑包含 pubkey+nonce (~5000) 的存储 slot;


(2)用户操作调用数据成本(约 4500,通过压缩可减少到约 2500);


(3)ECRECOVER (~3000);


(4)首次访问钱包本身 (~2600)


(5)首次访问收款人账户 (~2600)


(6)将 ETH 转入收款人账户 (~9000)


(7)编辑存储以支付费用(~5000)


(8)访问包含代理 (~2100) 的存储 slot,然后访问代理本身 (~2600);


2、除了上述存储读/写成本之外,合约还需要执行「业务逻辑」(解包 UserOperation、对其进行哈希、洗牌变量等)


3、需要消耗 gas 来支付日志费用(EOA 不发布日志);


4、一次性合约创建成本(约 32000 gas,加上代理中每个 code byte 200 gas,再加上设置代理地址的 20000 gas)


简而言之,账户抽象地址的每一步都需要计算,需要消耗更多的资源,也增加了额外的费用。


好在这并不是无解的。


由于 Rollup 擅长进行数据压缩,与数据复杂的账户抽象方案具有天然的契合点。


在 Vitalik 最新的提案中,提出了通过 layer 2 来处理账户抽象化产生的数据。其改进点在于,将只能分步骤实现的功能打包成批交易,同时用 SNARK 技术来保证交易有效性。  



结语


在以太坊重点发展 Layer 2 的格局已定的现在,Vitalik 对以太坊升级的后续计划开始转向账户抽象。最新的提案中展示了 rollup+账户抽象的技术路径。各个 Rollup 提供商也推出了兼容账户抽象的新版本。


今年 6 月,zkSync 发布 V2 更新信息:增添「账户抽象」功能,增加与以太坊 EVM 的兼容性。10 月,ERC-4337 发布了新版本,添加了包括 BLS 签名算法的签名聚合功能。签名聚合能够让构建者和批次提交者也能聚合签名(例如 BLS、SNARKs),大大减少链上数据,可为 rollups 降低数据成本。



我们有理由相信,账户抽象带来的变化同样蕴藏着生态爆发的可能性。随着 Rollup 的发展,可以与 Rollup 进行结合的账户抽象化一定也能发展出更优更精细的方案。


原文链接


律动 BlockBeats 提醒,根据银保监会等五部门于 2018 年 8 月发布《关于防范以「虚拟货币」「区块链」名义进行非法集资的风险提示》的文件,请广大公众理性看待区块链,不要盲目相信天花乱坠的承诺,树立正确的货币观念和投资理念,切实提高风险意识;对发现的违法犯罪线索,可积极向有关部门举报反映。
以太坊
栏目
认识以太坊、了解以太坊、学习以太坊