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