# ERC-6551 类比式解读

By [zhixian](https://paragraph.com/@zhixian) · 2023-07-06

---

> 昨天被问了好几次 ERC-6551 跟 AA 的关系，聊起来才发现大家对它的理解有各种各样的偏差。我把今天讨论里用到的一些类比记录下来，希望能对大家的理解有点帮助。老规矩，这篇小作文不是严肃的技术文章，为了便于理解会使用并不精确的类比。

### 快速了解 ERC-6551

首先，ERC-6551 **不是 Token 标准**，它跟 ERC-721 等不是一个范畴的概念，而是更像 ERC-4337 —— 是的你没听错，**它更像一个 AA 标准**，只不过是应用层的标准。如果说最像的，应该是（私货预警 😛）[ERC-7093](https://eips.ethereum.org/EIPS/eip-7093) 的社交恢复标准，都是在考虑 AA 应该怎么用。所以你可以说「UniPass v2 是 4337 / 6551 / 7093 兼容的 AA 账户」，但是并不存在「ERC-6551 兼容的 NFT」这种说法。

看到这里你可能一脸问号❓：不是说给每个 NFT 绑定一个账户吗，怎么就变成 AA 标准了？这就是叙事的力量了 —— 同样一件事情，描述的角度不同，受众的认知就会天差地别。

*   `站在 NFT Holder 的角度：` 我的地址 A 里有一个 NFT，它有个关联的地址 X，我可以用 A 控制 X 转账；当我把 NFT 转到地址 B 之后，A 失去了控制 X 的能力，同时 B 获得了这个能力，所以 **账户 X 是跟这个 NFT 绑定的**。
    
*   `站在 AA 账户开发者的角度：` 在 AA 账户里实现一种 **NFT 关联的鉴权方式**，如果发起转账请求的 Key 是一个以太坊地址，并且该地址拥有某个预先登记的 NFT，那么鉴权通过，可以解锁账户。
    
    _当然，也可以通过在生成地址时把 NFT 的唯一 ID 编码进去的方式来达成「先天绑定」的效果。如果你恰好是一个会写合约的小伙伴，其实可以很快地通过 Safe Module 来实现一个类似功能的 AA 账户。_
    

实际上，如果你阅读过它的 Abstract，应该可以很轻松地发现这个结论：

> This proposal defines a system which **gives every** [**ERC-721**](https://eips.ethereum.org/EIPS/eip-721) **token a smart contract account**. These token bound accounts allow ERC-721 tokens to own assets and interact with applications, **without requiring changes to existing ERC-721 smart contracts or infrastructure.**

### 用类比解释 ERC-6551

相信大家已经理解了 ERC-6551 描述的是一种 AA 账户而非 NFT，那么接下来我们就用 AA 科普的最佳道具 —— 智能门锁 来进行类比解释。

首先我们把**私钥类比为指纹**。它们分别对应 Crypto 世界和物理世界的「身份」概念，如果被第三方获得，其他人无法分辨是「自己」还是「别人」在做操作，所以一般我们不会共享私钥和指纹给第三方。

然后咱们拿最简单的 AA 账户举例：由单个密钥（EOA）控制的 AA 账户，比如一个单签的 Safe 账户。它的解锁逻辑就是验证密钥的签名，如果匹配就可以解锁账户；类比到智能门锁的话，就是用指纹开锁的逻辑。这种跟身份强绑定的逻辑在一些场景下其实是不合适的，比如澡堂储物柜，这时候就需要「钥匙卡」这种跟人无关的解锁凭证了，也就是「认卡不认人」。

最后，我们把「`人`拿着`钥匙卡`开`储物柜`拿了 `100 美金`」映射到「`地址`拿着 `NFT` 解锁`绑定地址`转了 `100 USDT`」—— 恭喜你，ERC-6551 的基本原理你已经懂了！🎉

**ERC-6551 就是把每个 ERC-721 的 NFT 当作钥匙卡，然后给它配了一个储物柜**。

### 小结

是不是有种「戛然而止」的感觉？因为用类比来讲的话确实不复杂。实际的 Spec 里还有一些类似 ERC-4337 里 Entry Point 的设定，以及关于「循环引用」（就是把钥匙卡锁柜里了）的处理方法，这些对大家理解基本原理帮助不大，所以就没有涉及了。

这个标准虽然思路比较简单，基本上就是换了个视角叙事，但换种角度也会让一些场景的设计更加自然，比如 NFT 游戏装备穿戴的逻辑可以变成「把装备 NFT 打给人物 NFT 的绑定地址」（感谢[史迪仔](https://twitter.com/CryptoStwith)提供的案例）。因此 ERC-6551 可以说是一种对 AA 的普及有很大助力的协议，希望类似的协议或者用例能够越来越多，让大家都感受到 AA 的魅力。

最后，如果你对 AA / EOA 这些概念还有些陌生，这里有一篇我之前写的[名词解释](https://mirror.xyz/zhixian.eth/dACTTYPzEfRcF6jSE_iwJsnbNmN2Ier_NA_TzkZaOeM)可以参考。

---

*Originally published on [zhixian](https://paragraph.com/@zhixian/erc-6551)*
