我想通过问你几个问题来开始这篇文章:
我们可以在不知道 Instagram 或 Twitter 如何运作的情况下使用它们。
我们不需要了解他们的底层技术就可以开始使用它。但当谈到区块链时,人们应该谨慎对待它们的网络、它们发送的代币以及它们发送的地址。
EIP-4337 旨在抽象出我们目前提出的与账户或钱包相关的所有复杂细节。
为了理解这个概念,我们需要了解背景。
在以太坊网络中,有两种类型的账户:
EOA 与私钥相关联,这意味着对资金或合约访问的控制。另一种类型的账户是合约账户。合约账户有智能合约代码,这是简单的EOA所不具备的。此外,合约账户没有私钥。相反,它由其智能合约代码的逻辑拥有(和控制)。
由于合约账户没有私钥,因此它无法发起交易,但它可以通过调用其他合约并构建复杂的执行路径来对交易做出反应。
将以太坊视为一个巨大的、去中心化的状态机。每当有人需要与区块链交互时,他们都会通过交易来完成,例如转移代币、质押代币或铸造 NFT。共识规则控制状态变化,并且状态分布在全球范围内,以便每个参与者都具有相同的状态。
网络需要知道谁发出了交易;因此,每笔交易都必须签名。尽管在某些少数情况下,情况可能并非如此。
一笔交易改变了网络的状态;它可能包括更改余额,因为人们已将余额从一个帐户转移到另一个帐户。这些状态变更需要付费;因此,几乎每笔交易都需要付费。
对于那些与Dapp交互的人来说,整个体验已经成为标准,但从初学者的角度来看,谁愿意上手呢?陡峭的学习曲线可能会阻碍他们使用 Dapp,从而减慢 Web3 的整体适应速度。
想想桥接令牌、包装令牌、不同的网络、存储私钥、记住助记符等等。这根本不是;如果你忘记了助记词怎么办?我们的 web 3.0 中没有“忘记密码”按钮。
如果您忘记了,那么您将损失所有与之相关的资金。一旦您去世,就没有被提名人可以帮助您的家属。所有这些事情都让你想知道为什么会有这么麻烦。为什么不坚持我们的中心化世界,在那里人们可以向客户服务人员发送电子邮件并要求他们帮助恢复他们的帐户?
这就像给一个新手如此巨大的责任,以至于他们常常耸耸肩并转向其他事情。
账户抽象提案就是答案。您会看到,EOAs 涉及很多风险。账户抽象允许您使用智能合约钱包而不是 EOA。让我更加努力地声明:账户抽象是以太坊中的一个概念,它将使用户能够使用智能合约钱包而不是传统的外部拥有账户(EOA)与区块链进行交互
正如所讨论的,智能合约钱包不依赖于公共/私有密码学,而是依赖于代码。这意味着验证交易的逻辑可以定制,并且不与公钥/私钥紧密耦合。代码可以灵活;你可以用你的逻辑来花费你的 eth,恢复你的账户,甚至添加一个被提名者。
EIP-4337是一项旨在在不改变以太坊协议的情况下实现账户抽象的提案。这是什么意思?这个建议不需要硬性要求
这一功能将使以太坊的账户方式更加灵活和强大。
让我们详细讨论一些用例:
在 Web3 中困扰每个人的事情是,如果我们丢失了私钥怎么办?除非建造一台强大的量子计算机来恢复你的私钥,否则你将失去所有资金,但这也是一个不太可能的情况。
实际上,您的所有资产将永远丢失或永远锁定。
但可以使用账户抽象来定制你的钱包逻辑,这样你就可以通过你信任的朋友或家人(守护者)重新获得你的账户。
将监护人视为任何帐户,例如冷库、家庭成员或第三方服务。用户可以指定他们想要信任的人以及他们必须满足什么条件才能执行恢复过程。
如果您使用的是 EOA,例如
假设我们有一个使用帐户抽象的智能合约钱包。我们可以在不创建新帐户的情况下更改签名密钥,就像我们在密码被泄露后更改密码一样。
您必须向监护人请求恢复并向他们提供您要使用的新签名密钥。监护人不会得到签名密钥,而是得到它的哈希值。如果足够的监护人批准您的请求,您可以将旧的签名密钥替换为新的签名密钥,并继续使用同一帐户。
上帝禁止这样做,但如果你遇到致命事故怎么办?您的家人将如何获得您的资金?您希望该基金被永远锁定吗?无权利?
您只能与他们共享私钥,他们可以使用私钥访问您的资金。
将其视为一种机制,如果帐户持有人不再存在于这个世界上,则会触发操作或事件。人们可以设置一种逻辑,将资金或数据转移到帐户抽象中的另一个帐户。但如何知道账户持有人是否不再存在呢?
同样,这完全取决于您想要的方式。我们可以通过要求用户定期发送信号或心跳来检查用户是否还活着(就像我们在分布式系统中了解节点是否处于活动状态或被杀死的方式)。如果用户未能在规定时间内发送信号,死人开关就会触发并执行主人定义的逻辑。
如果您使用新的 Dapp 并想要交换您的代币,通常需要多次批准。用户可以建立智能合约来同时执行各种交易,从而节省交易费用并使流程更加高效。
如果你想在以太坊网络上进行任何交易,你必须支付汽油费,而这些价格通常是其原生代币,即 ETH。但如果你的钱包里只有 USDT 呢?
不幸的是,你必须将部分 USDT 转换为 ETH,这又需要费用,从而使整个事情变得混乱。但通过账户抽象,可以设置智能合约以不同的代币支付交易费用。这将显着改善用户体验。
技术细节请参考这篇文章: