主页 > 怎么看出来imtoken真伪 > 对话ERC-4337作者:以太坊账户抽象创新、优势与演进

对话ERC-4337作者:以太坊账户抽象创新、优势与演进

怎么看出来imtoken真伪 2023-09-13 05:08:01

专访:Lucas, Jenny,火币孵化器高级研究经理、高级运营经理

受访者:Kristof Gazso,ERC-4337 合著者,Praneeth Srikanti,Ethereal Ventures 投资合伙人

编译:aididiaojp.eth,前瞻新闻

主持人:可以先自我介绍一下吗?

Kristof:我是2021年5月加入Nethermind的,去年11月左右,我就在思考这个领域接下来要做什么。 这个领域面临的最大瓶颈是什么? 现在最大的问题是看到没有技术背景的普通人使用以太坊应用有多么困难。 所以对我来说,我能做的最有效的事情就是解决以太坊账户和钱包的使用困难,提升以太坊应用的用户体验。

账户有两种类型:私人账户(EOA)和智能合约账户。 现在在以太坊上,用户主要使用EOA账户(比如Metamask和Rainbow),但是有一定的限制。

我一直在寻找解决方案一段时间,并找到了帐户抽象的概念。 我意识到目前还没有任何提案有机会部署到主网上,因为之前的所有提案要么太复杂,要么需要做太多的工作。 所以我们与Vitalik和OpenGSN一起,探索账户抽象的解决方案,通过这种方案,主网不需要做共识层面的协议变更,这也是ERC-4337的主要创新点。

我们可以看到目前正在构建一些应用程序。 现在,我们正在不断发展生态,为ERC-4337的普及铺路。

Praneeth:我是 Ethereal Ventures 的投资合伙人,这是一家新的加密投资公司,由 ConsenSys 的前风险投资团队创立。

为了让更多人进入 Web3,我们需要为用户提供更低的进入门槛和流畅的体验,这是人们基本习惯的典型约定,例如身份验证和社交还原。

通过账户抽象,能够为这些问题提供有效的解决方案。 我非常有兴趣看到 ERC-4337 的演变,并与生态系统中的人们和利益相关者一起见证它的诞生。

以太坊两类账户_sitecsdn.net 以太坊和以太币的关系_以太坊钱包如何设置子账户

主持人:ERC 4337关于实现账户抽象是今年提出的,我们在Devcon的时候有过几次关于账户抽象的讨论。 ERC 4337 实际上已经成为一个流行语,虽然目前的市场非常糟糕,但我们已经看到了一些围绕账户的良好势头。 那么首先,您能解释一下什么是账户抽象化吗?

Kristof:让我先通俗地解释一下。 在以太坊中,大多数人使用的账户都是私钥账户,我们称这些账户为外部拥有账户EOA。

然而,以太坊中还有一类账户,即智能合约账户。 EOA 账户由私钥控制,而智能合约账户由其代码控制。

问题是在以太坊中,EOA 账户有很多智能合约账户没有的特殊权限。 例如,只有EOA账户可以发起交易,而智能合约账户不能发起交易。

另外,EOA账户在工作方式上是非常程序化的,所以对于EOA账户来说,Gas支付的工作方式是你把交易中使用的所有Gas都放在以太坊智能合约中,如果有剩余,就会退还到帐户。

在EOA中,签名验证也是非常程序化的,比如ECDSA签名。 这本身没有什么问题,但是我们在这个方案中有很多创新,可以用到今天。

所以账户抽象只是试图摆脱只有一种账户的概念,并为智能合约账户提供更多的权力,赋予他们发起交易的权力。

Praneeth:账户抽象可以为 Web3 带来更多的安全性和用户友好性,这是我们希望用户在第一次开始与区块链交互时的感受。 考虑到他们需要如何存储和记住他们的私钥而不授予访问特定智能合约的权限来购买代币或服务是一种糟糕的体验。

帐户抽象允许我们以非常直观的方式进行交互。 人们可以使用它来对关键权限进行细粒度控制,这就是人们今天在 Web2 帐户上使用的方式。

我们还需要从根本上思考给定钱包的限制功能是什么,并尝试看看我们是否可以从基于交易的模型转变为基于共识的模型。

Kristof:如果我们顺利过渡到智能合约钱包,这里有一些高级用户将能够在当前功能之上获得的一些例子。

sitecsdn.net 以太坊和以太币的关系_以太坊两类账户_以太坊钱包如何设置子账户

一个例子是天然气支付方式。 Dapps 将很容易获得激励用户交易的能力。 用户还可以在链下使用不同的代币甚至信用卡进行支付,因此交易不需要 ETH。 现在可以使用任何类型的系统或个人燃气支付方式。

通过签名方案,用户可以拥有社交恢复方案和多重签名方案,并可以完全自定义账户的行为方式和子账户的权限类型。

用户的主账户可以由多重签名控制,并通过私钥授予快速访问权限,但前提是它与链上游戏合约交互。 通过此设置,用户钱包和链上游戏将能够代表用户进行交易,但权限非常有限。 换句话说,用户可以使用 EVM/Solidity 代码完全定义个人帐户的外观,并且您可以提供自定义权限,例如基于时间的权限、支出限制等。

最后一个非常常见的用户体验问题是缺少批量交易。 用户现在可以将任意数量的单独操作放入同一个交易中,而不是必须在 Uniswap 上批准然后交换(现在是 2 个交易)。

这些改进共同为下一代加密用户提供了真正强大的用户体验。 用户基本上可以拥有与使用 NEO Banks 相同的体验。

主持人:以太坊社区正在推进EIP-4337的实施,EIP-4337是继EIP-86、EIP-2938等之后推出的,为什么我们要有一个新的账户抽象协议级标准? 对以太坊开发社区和用户有什么影响?

Kristof:之前最相关的提案是 EIP-2938,由我的朋友 Ansgar 创建。 EIP-2938 定义了一种基于以太坊的账户抽象机制,这实际上是一种改变以太坊工作方式的协议。 那么为什么不现在维护它呢? 问题在于任何一种协议级别的更改都是一个非常困难的过程。 在过去一年半的时间里,几乎所有核心​​开发人员都投入到了合并中,因此核心开发人员没有时间尝试实施帐户抽象提案。

账户抽象在UX方面非常有用,但它的优先级不如可扩展性和安全性,目前资源主要分配给合并、提现、EIP-4844 proto-danksharding和EVM等,以及核心开发者社区至少还需要 2-4 年的时间才能将重心转移到提升用户体验上。 这就是为什么我们决定尝试提出一个新的 ERC-4337 提案,它可以通过与以太坊一起部署的智能合约来实现,而不需要在协议级别进行部署。

我想社区没有采用像 2938 这样的东西的最终原因是因为帐户抽象本质上引入了一些潜在的拒绝服务风险。 通过账户抽象,您可以让钱包定义交易是否有效,基本上您必须执行自定义 EVM 代码来确定交易是否实际支付给矿工或验证者。 所以直接将类似的东西引入共识是一个非常大的风险,最好先尝试使用 ERC 而不是实际更改节点服务。

Praneeth:我认为这是 4337 生态系统在类似 EVM 的兼容环境中启动的一种非常好的方式,它可以在未来的协议中完全友好,并作为其他发明的引导。

主持人:以账户抽象为标准,合约钱包成为首选,比如Gnosis Safe、Argent等。那么现在流行哪些功能,哪些功能有望在近期出现?

以太坊两类账户_sitecsdn.net 以太坊和以太币的关系_以太坊钱包如何设置子账户

Kristof:首先要注意的是,Gnosis Safe 和 Argent 尚不符合 ERC-4337 标准。 所以 ERC-4337 只是一个标准以太坊两类账户,它定义了帐户抽象钱包和付款人以及生态系统的其他部分应该是什么样子。

关于你的另一个问题,我们已经看到了哪些功能,我们期待将来有哪些功能? 在 Argent 中,我们已经看到了诸如使用 ERC-20 代币支付之类的东西。 我们还没有看到一种非常常见的汽油费支付方式。 这绝对是 Gnosis Safe and Argent 的未来。 我们在社交恢复和多重同步等场景中看到了很多差异,但我们还没有真正看到子账户生成和为子账户提供非常自定义的权限。

我记得使用 Argent 有一个功能,您可以在其中生成一个签名者密钥,该密钥可以根据您规定的条款代表您进行交易。 所以你可能会去找你的社交恢复签名者,你可能会要求他们批准一个可以交易一天的特殊密钥,这意味着你可以按顺序执行很多交易,而不必每次签名者都返回给你。 所以这已经是未来可能发生的事情的一个基本例子。

据我所知,目前还没有引入支出限制这样的东西,我认为这对未来的用户体验非常重要。 Argent 和 Gnosis Safe 等钱包尚未合规,一旦合规,它们将解锁许多非常酷的功能。

Praneeth:ERC-4337 仍然要求现有用户升级我们必须通过将资产和活动转移到新帐户来符合 ERC-4337 的控制台。 除此之外,还有一些其他事情需要发挥作用,以确保迁移过程能够顺利进行并避免引入太多摩擦,特别是对于后台没有太多活动的账户。

但除此之外,我认为仍然有这样的想法,即我们将始终将 EOA 作为首选,并且我们可能会看到更多与帐户抽象相关的功能发挥作用,尤其是当人们从 L2 上的 4337 中获得灵感时。 获得 EOA 迁移帐户的路径也将是一个非常有趣的过程,并希望在不久的将来取得突破。

Kristof:Praneeth,你提出了一个非常有趣的话题,关于我们未来如何将 EOA 迁移到智能合约钱包。 这是一个非常重要的问题,我采访过的许多人对智能合约钱包的普遍反应是,将所有东西都转移到新钱包很麻烦,尤其是 soulbound 代币。

所以,我们要想办法把EOA钱包做成智能合约。 我们有两个主要选择。 一个是较弱的版本,我们可以在其中引入新的交易类型。 这种交易类型的作用是,如果您提交交易,它只是将您的 EOA 转换为智能合约账户,例如根据您在数据字段中指定的代码。 您只需调用 1 笔交易即可以完全自定义的方式使用智能合约代码来定义您的帐户。 这将与您之前拥有的所有代币、所有 NFT 或其他任何东西的地址相同。

另一种选择是更强的版本,而不是让用户选择将他们的 EOA 变成智能合约,一旦硬分叉发生,你可以立即将每个 EOA 变成一个非常简单的智能合约账户,所以这个智能合约账户将是和你现在的方案一样。 它将依赖ECDSA以太坊两类账户,基本上一举摆脱EOA。

这是我们现在需要考虑的重要权衡,我们可能会倾向于第二种选择,以尝试获得更强大的版本。 因为如果你拿一个较弱的版本,让人们把 EOA 变成一个智能合约账户,你实际上会更多地使用 EOA。 因此,您将拥有一个交易类型,其唯一目的是将 EOA 转换为智能合约账户。 但是如果将来你想完全摆脱 EOA 怎么办,所以这是我们试图弄清楚的未来主题。

但正如我之前所说,尝试向以太坊引入任何类型的共识变更都需要很长时间才能实施,比如 1-3 年。 所以绝对不要打赌很快就能摆脱 EOA。

sitecsdn.net 以太坊和以太币的关系_以太坊钱包如何设置子账户_以太坊两类账户

Praneeth:我完全同意这一点。 此外,它改变了应用程序开发人员的这些假设,因为它涉及通常依赖于签名方案的某些假设的合同,这些假设基本上说明该签名是否与 EOA 帐户相关。

但我认为这会引发更多问题,因为它可能归结为铸造可能过时的账户,从某种意义上说,它可能无法真正检测到人们多年来没有任何活动的账户。 但是我觉得对于使用EOA的人来说,在接受度上可能会有一些变化。

主持人:如果帐户抽象是游戏规则的改变者,并且是我们未来加密体验不可或缺的默认设置,那么将需要构建许多其他 Dapps 和基础设施才能使其发挥作用。 对于开发者来说,需要什么样的钱包支持,Dapps如何提前规划设计基于智能合约钱包的功能?

Kristof:有两个非常简单的答案,Dapps promise to be deployed,而且不太难。 一是停止歧视智能合约账户,比如停止使用交易来源。 一旦我们有了账户抽象,这在未来确实会产生很大的误导,即使现在是 457。 如果您使用交易源,它还会指向 Bundles,这是一个将用户操作捆绑在一起的生态系统播放器。 所以,停止使用交易来源,不要禁止智能合约与你的 Dapps 交互。

第二个是与 EIP-1271 兼容。 该 EIP 定义了一种使用智能合约钱包签署授权的方法。 所以,如果智能合约钱包实现了“if valid signature”函数并返回“true”,那么你将把它视为钱包对消息进行了签名。 但是很多Dapps仍然不符合这个,他们假设EOA账户有一个简单的ECDSA签名来判断它是否被签名。 所以我想这是两件事。 一,不歧视智能合约账户,二,遵守EIP-1271。

Praneeth:是的,我认为这很准确。 请记住一件事,围绕 EVM 对象格式的所有更改都可能会纳入上海升级。

很多预期会发生的工作,比如一个专门的美国部分,从根本上来说非常重要,因为我们会审视更广泛的提案或建筑商分离的长期路线图,并确保我们有能力被核心考虑同意,因为您正在考虑新的机制和模型,例如游戏建议或建造者分离计划。

但是只要确保您密切关注 EOF 和 EIP,这样您就可以更好地理解协议中验证和执行的概念。

主持人:我们是只在Layer2和Layer3组成的以太坊生态中谈论账户抽象,还是在更广泛的多链生态中谈论账户抽象? 为什么 Layer2 是账户抽象的发源地而不是以太坊? StarkNet 目前在开发账户抽象方面的工作是什么?

Kristof:我可以回答你的第一个问题,这就是为什么我们用两个词来看待Layer2中账户抽象的发展:gas fee。 通过账户抽象,依靠智能合约代码来验证您的交易是否有效。 但是对于 EOA,这是由节点本身验证的。

由于 Layer1 主网的 gas 成本远高于 Layer2,因此在 Layer1 中加入的 gas 成本惩罚要大得多。 在第一层,一笔 EOA 交易可能需要 10 美元,而智能合约钱包交易可能需要 20 美元,而在 Layer2 可能只需要一两美分。 因此,第 2 层的 gas 费用差异可以忽略不计,这就是为什么我们希望看到第 2 层出现在任何特定的第 1 层采用之前。

以太坊钱包如何设置子账户_sitecsdn.net 以太坊和以太币的关系_以太坊两类账户

据我所知,StarkNet 有很多受 ERC-4337 启发的机制。 我对他们不是很熟悉,但他们已经允许部署智能合约并直接使用该合约发起交易。 所以他们以与 4337 类似的方式实施相关合约,并且他们已经在他们的协议中尝试过。 他们向前迈出了一大步,这非常鼓舞人心。

Praneeth:Dan Finlay 的委托框架,本质上是能够为任何 solidity 合约和账户添加反事实委托,包括许多与基于智能合约的钱包相关的功能:具有验证,具有批量交易的能力。 使用此框架作为基础,EOA 可以充当智能合约钱包,而无需通过链下发布消息来部署合约。 这基本上就是 EIP-3074 和 EIP-5003 的主要工作。

但是您的签名密钥仍然与用户仍然需要备份的密钥相关联。 您可以将权限委托给任意智能合约,但您仍然会遇到权限撤销和取消以及节点管理的问题。 我认为围绕帐户抽象有一些非常有趣的概念,但在某种程度上避免了协议修改。 使用这些实验中的一些甚至可以看看这是否是一种可用于大多数 EOA 帐户的数据迁移的方法。

我们鼓励人们花一些时间研究已经存在一段时间的可委托框架。

听众提问(Eric Siu):您如何看待 4337 与其他 EIP(如 3074 和 5003)的帐户抽象?

Kristof:3074 早于任何帐户 EIP。 它的作用是赋予EOA账户更多的权力。 因此它引入了调用者的概念,基本上允许调用者代表 EOA 进行交易,但要遵守它可以定义的一些约束。

这有两个问题,这就是它可能不会进入主网的原因。 第一个问题是为EOA服务,让EOA更强大。 这很好,因为如果你想使用智能合约钱包功能,你不必再移动你的余额,但它也很糟糕,因为如果你想在未来引入账户抽象,会有很多技术问题。

第二个问题是调用程序存在一些安全问题。 授予调用者完全访问权限可能会导致一些奇怪的副作用。 Yoav Weiss 是 4337 的合著者,他发布了 3074 的许多安全问题,我建议人们查看他概述安全问题的帖子。 所以我想这就是为什么这个 EIP 不太可能进入主网的原因。

听众提问(Ric Burton):我真的很好奇舞台上的人们认为随着这一切开始上演,未来可能会发生什么。 我认为现在我们专注于实现细节以及如何让 Dapps 开发人员了解所有这些事情。 我想知道如果这一切都在五年内实现,你未来的梦想是什么,有没有匹配的应用程序、产品、工具或服务?

Kristof:对我来说,我的愿景是,一旦我们真正拥有一个良好的账户抽象生态系统,在以太坊上运行奖励将比使用我们现在拥有的任何一种 NEO 银行一样容易或简单。 我可以轻松地将任何资产转让给朋友。 我可以使用许多内置应用程序进行储蓄和预算,但权限非常有限,例如阻止我的信用卡和做那些事情。 我真的认为,一旦我们的钱包利用了账户抽象的许多功能,我们将能够像在链下生态系统中与银行交互一样轻松地与链上生态系统交互。

Praneeth:我之前非常简要地谈到了这一点,但从某种意义上说,它是用户表达他们的意图并自动执行或在应用程序和协议的自动会话中执行的能力,我们抽象了这种组合的固有交易共识被称为抽象账户。 当您与这些协议进行交互时,人们需要使用能够做到这一点的技术或工具,而无需真正了解如何以实际方式执行此操作的实现细节。 所以我认为将事物组合在一起的能力; 分配多个未停滞的动作; 签署承诺的能力,这些承诺以后可以很容易地提交给区块链; 以及本质上在验证和执行之间具有核心分离的能力,等等​​。所有需要考虑的事情。

从根本上说,这意味着能够公开与访问和授权相关的更细粒度的内容。 当今世界,用户普遍习惯于使用非常成熟的Web2平台,但将这些功能真正实现或写入协议,并能够通过非常熟悉的用户流程适配这些功能,对于提高Web3平台的采用率非常有帮助.