页面最后更新: 2023年9月21日
账户抽象
用户通过外部帐户 (EOA) 与以太坊进行交互。 这是当前开始交易或执行智能合约的唯一方式, 这限制了用户与以太坊的交互。 例如,这导致很难进行批量交易,并且要求用户一直让以太币帐户中有余额以支付燃料费。
帐户抽象是解决这些问题的一种方式,可以让用户灵活地设置自己的帐户,以提高安全性和改善用户体验。 要完成帐户抽象,可以升级外部帐户(opens in a new tab),使它们能被智能合约控制,或者升级智能合约(opens in a new tab),使它们能够发起交易。 这两种方案都需要对以太坊协议进行更改。 还有第三种途径,即添加第二个独立的交易系统(opens in a new tab),与现有协议并行运行。 无论采取哪种路径,结果都是通过智能合约钱包访问以太坊,要么作为现有协议的一部分得到本地支持,要么通过附加的交易网络完成。
智能合约钱包可以为用户带来许多好处,包括:
- 灵活定义自己的安全规则
- 丢失密钥后找回帐户
- 在信赖的设备或个人之间共享帐户安全性
- 支付他人的燃料费用,或让他人为你支付燃料费用
- 批量交易(例如,一次性批准并执行兑换)
- 增加去中心化应用程序和钱包开发者创新用户体验的机会
由于目前只有外部帐户 (EOA) 可以发起交易,所以这些好处还没有得到本地支持。 外部帐户采用简单的公钥-私钥对。 它们的工作原理如下:
- 如果你拥有私钥,可以在以太坊虚拟机 (EVM) 的规则范围内做任何事情。
- 如果你没有私钥,将无法进行任何操作。
如果你丢失了密钥则无法找回,而窃取者可以使用窃取的密钥立即获得帐户中的所有资金。
智能合约钱包是解决这些问题的方法,但是目前它们很难编程,因为最终它们实现的任何逻辑都必须被转换为一系列外部帐户交易,才能被以太坊处理。 帐户抽象可以让智能合约自行发起交易,因此用户希望实现的任何逻辑都可以编码到智能合约钱包本身,并在以太坊上执行。
最后,帐户抽象可以改善对智能合约钱包的支持,使其更易于构建且更安全地使用。 最终,通过帐户抽象化,用户可以享受以太坊的所有好处,而无需了解或关心底层技术。
超越助记词
目前,帐户是通过私钥保护的,而私钥是通过助记词计算出来的。 获得助记词的任何人都可以轻松掌握保护帐户的私钥,并获得其保护的所有资产。 如果私钥和助记词丢失,它们将永远无法找回,并且它们所控制的资产将永久冻结。 即使对于专业用户来说,保护这些助记词也很困难,而助记词钓鱼是用户遭受诈骗的最常见方式之一。
帐户抽象通过使用智能合约来持有资产和授权交易,解决了这个问题。 然后,这些智能合约可以用自定义逻辑装饰,以尽可能提高安全性,并根据用户的需求进行定制。 最终,你仍是使用私钥来控制帐户访问,但是有了安全措施,帐户就更易于管理且更安全。
例如,可以将备用密钥添加到钱包中,这样如果你丢失或意外泄露了主要密钥,可以通过备用密钥的授权将其替换为新的安全密钥。 你可以通过不同方式保护这些密钥,或者将它们分散到不同的受信任守护者。 这大大提高了窃取者完全控制你的资金的难度。 同样,你可以在钱包中添加规则,以减轻主要密钥泄露的影响。例如,你可以允许低价值的交易由单个签名验证,而要求高价值的交易由多个经过身份验证的签名者批准。 智能合约钱包还可以通过其他方式帮助你防止遭到窃取,例如可以使用白名单来阻止除了发送到受信任地址或经过多个预先批准的密钥验证的交易之外的所有交易。
可以内置到智能合约钱包中的安全逻辑的示例:
- 多重签名授权:你可以在多个受信任的人或设备之间共享授权凭证。 然后,可以对合约进行配置,以便超过预设值的交易需要获得一定比例(例如 3/5)的受信任方的授权。 例如,高价值的交易可能需要在移动设备和硬件钱包上都获得批准,或者需要分散在受信任家庭成员的帐户的签名。
- 帐户冻结:如果设备丢失或被入侵,可以从另一个经过授权的设备上锁定帐户,以保护用户的资产安全。
- 帐户找回:丢失设备或忘记密码了? 在目前的模式下,这意味着你的资产可能被永远冻结。 通过智能合约钱包,你可以对一些帐户进行预授权,使其可以授权新设备并重置访问权限。
- 设置交易限额:指定一天/一周/一个月内每天最高可以从帐户中转出的价值。 这意味着,即使攻击者成功获得了你的帐户的访问权限,他们也无法一次性将所有资金转移走,而你有机会冻结帐户并重新设置访问权限。
- 创建白名单:仅允许与你认为安全的特定地址进行交易。 这意味着即使 你的私钥被盗,攻击者也无法将资金发送到非白名单目标帐户。 这些白名单需要多个签名才能更改,这样除非攻击者能够获得你的多个备份密钥,否 则无法将自己的地址添加到名单中。
改善用户体验
帐户抽象可以改善整体用户体验和安全性,因为它在协议层面上为智能合约钱包增加了支持。 最重要的原因是它将为智能合约、钱包和应用的开发者提供更大的创新自由度,使他们能够以我们目前还无法预料到的方式改进用户体验。 通过帐户抽象,我们将迎来一些明显改进,其中包括捆绑交易以提高速度和效率。 例如,简单的兑换应该是一键操作,但在当前情况下,需要在执行交换之前签署多个交易来批准每个代币的支出。 帐户抽象通过允许交易捆绑消除了这一问题。 此外,捆绑的交易可以精确批准每个交易所需的适当代币价值,然后在交易完成后撤销批准,提供额外的安全性。
通过帐户抽象,燃料管理也得到了很大改进。 不仅应用程序可以支付用户的燃料费,而且可以使用以太币以外的代币支付燃料费,从而使用户无需为提供交易资金而保持帐户中有以太币余额。 可以这样做,在合约内使用用户的代币兑换以太币,然后使用以 太币支付燃料费。