本文由尘埃科技整理编辑发布,请拖动至文章底部查看更多精彩内容
最近为了一个项目,又重新研究了一下账户抽象的概念,大家应该八成和我一样,很可能已经阅读了一些用于理解帐户抽象的文章,并且其中 99% 关于帐户抽象的内容都是垃圾,根本不能对我们的知识理解有任何帮助。
你发现几乎所有的人都从描述 EOA 和智能合约之间的区别开始,并含糊地提到了用户体验的改进。他们未能解释账户抽象实际上是什么,而是专注于账户抽象的副产品。
今天我们整理了一份指南,涵盖了整个思路,从账户抽象是什么,到为什么每个人都称它为下一个大事件。
“
什么是帐户抽象?
我发现从帐户抽象不是什么开始解释比较容易:
支付用户 gas 费
原生多签名
Web3auth 类型的“社交登录”
作为帐户抽象实现的结果,你可以执行这些操作。
如果我可以把账户抽象重新命名得更直观一些,那么它将被称为“可编程交易有效性”。
一般来说,帐户抽象是一种以编程方式设置交易有效性条件的能力。
由 Vitalik 等人撰写的 EIP-4337 表示:“实现帐户抽象的关键目标是,允许用户使用包含任意验证逻辑的智能合约钱包,而不是 EOA 作为他们的主要账户。”
目前,在以太坊上,当且仅当满足以下条件时,交易才有效:
1.有足够的余额支付 gas。
2. nonce 是正确的。
3.它具有有效的数字签名。
但是,如果开发人员可以定义一组不同的交易有效条件呢?
“
你不能自动执行交易
无状态和有状态的帐户抽象
在我们继续之前,有必要注意存在两种类型的帐户抽象:无状态和有状态。
无状态=不依赖于外部状态,没有副作用。
有状态=可以依赖于外部状态,可以访问链的状态。
在有状态的账户抽象实现中,定义有效性条件的智能合约可以访问链的状态。这样做的问题是,一个条件在一个实例中是真的,在另一个实例中可能不是真的。实际上,这看起来就像一个节点发送了一个当前有效但之后就会失效的交易。例如,假设你想在区块 1000000 处自动执行一笔交易。在区块 1000000 处,你可以向 mempool 提交一个在当时有效的用户操作。当 bundler 试图将它放入下一个区块时,它可能会因为区块编号增加而无效。
接收节点不得不花费资源来验证一些永远不会出现在链上的东西,而且不能把发送交易的东西列入黑名单,因为它在发送的时候是有效的。
在 ERC4337 中,研究人员花了很多时间来研究如何避免这种情况。为此,该规范禁止使用特定的操作码,如' blockNumber '。
通过无状态帐户抽象,你永远不会冒更改有效性的风险——它是单调的。
Fuel 的无状态 AA 的实现
我们稍后将讨论其他生态系统如何实现帐户抽象。从 Fuel 开始,你将看到与为现有系统构建相比,从头开始构建新系统与模块化论述之间的对比。
Fuel 使用谓词实现了无状态 AA。谓词只是一个可以使用 UTXO 的条件,是主函数返回布尔值的脚本。是该谓词下的资产被解锁,如果求值为 true,则可以由调用者使用的纯函数。谓词拥有或控制 UTXO。
注意:UTXO 代表未花费的交易输出。对 UTXO 的核心基本理解是,对于每笔交易,都会花费全部余额或代币数量。你发送给你的目标收件人的金额会转给他们,其余的会被销毁,然后再次铸造,从而产生新的未花费输出。
关于 Fuel 谓词的关键在于,你可以内省或检查谓词的输入和输出,这允许你达成协议,从而允许你建立订单簿交易或在多方之间进行原子交换。
在交易层面,UTXO 交易描述了交易的确切效果的子集。这部分效果可以在无状态帐户抽象中被设定为条件。Fuel 通过 UTXO 模型的设计决策实现了这一点。这使得系统能够了解交易的输入和输出。在以太坊上,你只知道输入的情况。有了 Fuel,你可以用输出来编写逻辑,说明如果你提供 X 则 Y。
你可以将代币锁定在具有可编程有效性的谓词中,该谓词表示:“如果将 X 数量的 Y 资产发送到某个特定地址,则这些代币是可消费的。类似地,你可以有一些逻辑,说这个交易只有在 X 以一定的价格交换时才有效。这里的问题不在于你在“发送”什么。它已经被发送了。你看到的是交易的最终效果,在这种情况下,代币已经被发送。
谓词有效性
在作用域执行期间不会检查谓词。他们会在交易有效性时间被检查。谓词可以检查交易的输入是否具有特定的属性,但它并不关心这些输入是否是有效的。要使交易有效,它们必须是有效的输入,但执行这种有效性的不是谓词。
现在,作为衡量它们的一种方式,Fuel 谓词受到字节数的限制。在未来,该团队将使用 gas 来约束谓词。这使得通常需要循环的自定义哈希和签名验证等密码学成为可能。
Fuel 实施的好处
注意:如果你想继续了解 AA 可以做什么,请跳过本节
UTXO 自省
在比特币和以太坊以及使用类似实现的协议上,你不能自省交易。这意味着你不能自省交易的支出,也不能基于输出以编程方式设置要执行的操作。
在其核心,Fuel 的 AA 实现为开发人员和用户提供了更多的灵活性,因为这些不是在协议级别上编码的东西。Fuel 的帐户抽象允许开发人员在应用层面定义自定义验证方案。
Fuel Labs 团队有一个以太坊私钥的 EC 恢复示例。如果你想要针对不同曲线的 EC Recover,开发人员可以在应用层编写一个!
EC RECOVER:当向以太坊网络发送交易时,你必须使用你的私钥签署此交易。EC Recover 正将验证签名的功能转移到智能合约中,而不是只有以太坊节点才能做到这一点。有了它,你可以验证更多的东西,而不仅仅是交易签名本身。
无状态膨胀
无状态帐户抽象不会使状态膨胀 ( 那么多 ),因为即使它被花费了,它也永远不会进入区块链状态,只会进入历史记录。
对于谓词,没有合约、状态或存储。谓词最初没有状态,如果有人代表谓词消费,则只能获得一个数据库条目,仅用于 UTXO 而不是状态树。
“
其他生态系统是如何进行帐户抽象的
像计算机科学中的大多数事情一样,帐户抽象可以以无数种方式实现。没有一种实现是整个行业的标准。
以太坊
EIP-2938 是一个初始 EIP,允许合约成为支付费用和启动交易执行的最高级别账户。其实施围绕着引入一个新的 EVM 操作码来发出有效性信号,以通过执行任意 EVM 字节码来扩展交易条件。该提案没有纳入协议,因为开发人员正忙于合并等其他变更,不能冒险进行如此大规模的协议变更。
ERC-4337 是第一个不需要改变核心协议就能实现以太坊账户抽象的账户抽象提议 / 标准。它通过将交易验证移出协议本身,并将其移到更高的级别—具有特殊“入口点”的智能合约级别来实现这一点。
在以太坊上,EOA 是以太坊上的帐户,其功能被硬编码到协议中。它定义了他们如何支付 gas,如何签署交易,如何使用 nonce 等等。这个标准摆脱了 EOA 给我们带来的账户硬编码性质。
Starknet
Starknet 是以太坊上的 zk-rollup。Starkware 为以太坊实现了 EIP-4337 模型的修改版本。
zkSync
zkSync 是以太坊上的 zk-rollup。zkSync 实现了 EIP-4337 的修改版本。
Biconomy AA
Biconomy 是一个开发人员工具平台,专注于以太坊生态系统的基础设施和工具。Biconomy 实现了 EIP-4337 的修改版本,并提供了一些功能,比如作为 SDK 的一部分为用户支付 gas 费。
模块化设计
模块化的理念不是设计一个与另一个系统紧密耦合的系统,以允许更大的灵活性。Fuel 对账户抽象的实现就是这种精神的一种体现。Fuel 的帐户抽象实现提供了更高的灵活性和高度可定制的环境,开发人员可以在应用层面上定义有效性条件,而不需要依赖 Fuel 协议的支持。
因为 Fuel 不是专门为以太坊或任何其他系统构建的,所以 Fuel 的实现不受其他系统的拖累,有创新的空间。
zkSync、Starkware 和 Biconomy 都实现了 EIP-4337 的修改版本,而 Fuel 实现了更独特和高性能的帐户抽象。由于 Fuel 将作为一个 rollup 部署在以太坊上,因此从某些方面来说,以太坊已经有了账户抽象。
“
你可以用帐户抽象做什么
你所看到的正在构建的新体验是通过帐户抽象而不是帐户抽象本身实现的功能。像为用户提供 gas 费赞助和 Web3Auth 之类的东西都是建立在帐户抽象之上的应用层事物。通过帐户抽象的核心机制:以编程方式设置 tx 的有效性条件的能力,这些事情本质上是可以实现的。
建立在帐户抽象之上的例子:
Web3auth
为其他用户支付 gas 费
自由签名验证方案
检查多签名 ( 原生多签名 )
利用了 Fuel 账户抽象的项目:
Authsome- 无钱包登录系统。这个钱包会被用作类似于 Web3Auth 的可插拔认证基础设施的基础。
Thunder-Fuel 上的一个 NFT 市场,可以通过一次点击批量执行交易。
Poolshark- 用于定向流动性的协议。Poolshark 使用 Fuel 的账户抽象与汇集流动性来匹配条件订单,以提高可及性并减少高级交易者的费用。
“
用户体验改进
钱包的社交恢复
批量交易
应用程序可以为用户交易的 gas 付费
使用来自不同生态系统 ( 或相同的,使用不同签名方案 ) 的钱包
无钱包 web3 登录
用户不需要在“常规”钱包中使用 ETH 来发起交易
能够把 100% 的资金放在一个 multisig 并直接从那里发起交易
“
解锁新应用
事实是我们还不完全知道哪些新类型的应用程序可以被解锁 ( 目前 ),但我们可以开始对现有应用程序的用户体验进行大规模改进,这是一个很好的开始。
几年前,区块链的用户体验问题是,世界上大多数人在财务上完全无法接触到它们。随着第 2 层的不断发展和扩散,我们到达了一个新的领域:用户体验。
突然之间,我们可以将费用降低到足够低,使区块链可用,但应用程序的 UX 需要更加令人愉快和强大。在下一个周期中,我预计更多的团队将专注于支持帐户抽象的 UX 改进和流程。这将是为 web3 的托管属性带来类似 web2 的体验所需的另一个工具。
信息来源自substack,略有修改,作者cami
尘埃科技
看墙外更多信息,推特账号指路「Allrecode」
为 Web3 从业者建立内部链接,了解「重构研究院」
“商务合作”、“内容转载”请直接在后台回复关键字
更多 DAO、Web3、NFT、Metaverse
专业研究请关注尘埃科技旗下「Fastdaily」
Web3 知识点、干货类内容
请关注尘埃科技旗下「Allrecode 重构」
【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。