要让以太坊从一项年轻的实验性技术转型为一项成熟的技术栈,能够真正为普通用户带来开放、全球化和无需许可的体验,这个技术栈还需要经历三个转变,基本上需要同时进行: - L2 扩容转变 - 所有人都迁移到 rollups
- 钱包安全性转变 - 所有人都迁移到智能合约钱包
- 隐私转变 - 确保提供隐私保护的资金转移,并确保正在开发的所有其他工具(社交恢复、身份、声誉)都能保护隐私
生态系统转变三角, 缺一不可
没有第一个 L2 扩容转变,以太坊会失败,因为每笔交易都需要花费3.75美元(如果我们有另一轮牛市,费用为82.48美元),而每一个以大众市场为目标的产品都不可避免地遗忘链,并采用中心化的工作方法来处理一切。 没有第二个(钱包安全性转变),以太坊会失败,因为用户不愿意存储他们的资金(和非金融资产),所有人都会转移到中心化交易所。 没有第三个(隐私转变),以太坊会失败,因为对许多用户来说,公开所有的交易(和POAP等),让任何人都能看到,对隐私的牺牲太高了,每个人都转移到中心化的解决方案,至少在某种程度上隐藏你的数据。 由于上述原因,这三个转变是至关重要的。但它们也是具有挑战性的,因为要妥善解决它们所涉及的激烈协调。需要改进的不仅仅是协议的功能;在某些情况下,我们与以太坊交互的方式需要相当根本的改变,需要应用和钱包进行深度改变。 这三个转变将从根本上重塑用户和地址之间的关系在一个二层网络的世界里,用户将存在于很多二层网络上。你是ExampleDAO 的成员么, 它在 Optimism 上,那么你在 Optimism 上就有一个账户! 你是否在ZkSync上的稳定币系统中持有CDP?那你就有一个ZkSync上的账户!你是否曾经去尝试过一些碰巧在 Kakarot 网络上的应用?那么你在 Kakarot 上就有账户, 一个用户只有一个地址的日子将不复存在。 根据 Brave Wallet 的显示,我在四个地方有ETH。而且是的,Arbitrum 和 Arbitrum Nova 是不同的。别担心,随着时间的推移,会越来越混乱的!。
智能合约钱包增加了更多的复杂性,因为它使得在L1和各种L2之间拥有相同的地址变得更加困难。今天,大多数用户都在使用外部拥有的账户,这个账户地址实际上是用于验证签名的公钥的哈希值--因此在L1和L2之间没有任何不同。然而,有了智能合约钱包,保持一个地址变得更加困难。 虽然已经做了很多工作试图使地址成为可以跨网络的等价的代码哈希,最明显的是CREATE2和ERC-2470 singleton factory,但很难使其完美运作。一些L2(例如"类型4 ZK-EVMs")并不是完全的EVM等价,通常使用替代的 Solidity 或中间汇编,从而阻止了哈希等价。即使可以有哈希等价,钱包通过密钥变更改变所有权的可能性也会产生其他不直观的后果。 隐私要求每个用户都有甚至更多的地址,甚至可能改变我们使用的哪种的地址。如果隐身地址的建议被广泛使用,而不是每个用户只有几个地址,或每个L2有一个地址,而是用户可能每个交易都有个地址。其他隐私方案,甚至现有的方案,如 Tornado Cash,以不同的方式改变资产的存储方式:许多用户的资金被存储在同一个智能合约中(因此在同一个地址中)。要向特定的用户发送资金,用户将需要依靠隐私方案自己的内部地址系统。 正如我们所看到的,这三种转变中的每一种都以不同的方式削弱了 "一个用户~=一个地址 "的心理模型,其中一些影响反馈到执行转变的复杂性上。复杂性的两个特别点是: - 如果你想付款给某人,你将如何获得“如何付款给他们” 这个信息呢?
- **如果用户有许多资产存储在不同链的不同地方,他们如何做密钥变更和社会恢复? **
三个转变和链上支付(和身份)的问题我在 Scroll 网络上有币,我想支付咖啡。你把咖啡卖给我,但你只支持在 Taiko 网络上接收币。我该怎么办? 基本上有两个解决方案: - 接收钱包(可能是商家,但也可能只是普通个人)非常努力地支持每一个 L2,并有一些自动功能,以异步方式整合资金。
- 接收者提供他们所支持的L2和他们的地址,而发送者的钱包通过一些跨 L2 的桥接系统自动将资金发送到目的地L2。
当然,这些解决方案可以结合起来:接收者提供他们愿意接受的L2的列表,而发送者的钱包计算出付款,如果他们幸运的话,可能可以直接发送,或其他跨L2桥接路径。 但这只是这三个转变所带来的关键挑战的一个例子:简单的支付行为,却开始需要更多的信息,而不仅仅是一个20字节的地址。 幸运的是,向智能合约钱包的过渡并没有给寻址系统带来很大的负担,但在应用栈的其他部分仍有一些技术问题需要解决。钱包将需要更新,以确保它们不会给交易只限定21000个Gas,而且更重要的是要确保支付接收方不仅跟踪来自EOA的ETH转账,还要跟踪智能合约代码发送的ETH。依靠地址所有权是不可改变的假设的应用(例如,禁止智能合约执行版税的NFT)将不得不找到其他方法来实现他们的目标。智能合约钱包也将使一些事情变得*容易--特别是,如果有人只收到了非ETH的ERC20代币,他们将能够使用ERC-4337 paymasters用该代币支付Gas。 另一方面,隐私问题再次带来了重大挑战,我们还没有真正处理好。最初的 Tornado Cash 并没有引入任何这些问题,因为它不支持内部转账:用户只能向系统中存款,并从系统中提款。然而,一旦你可以进行内部转账,用户将需要使用隐私系统的内部寻址方案。在实践中,用户的 "支付信息 "将需要同时包含(i)某种 "支出公钥",既接收者可以用来支出的秘密的承诺,以及(ii)发送者发送只有接收者可以解密的加密信息的某种方式,以帮助接收者发现支付。 隐形地址协议依赖于一个元地址的概念,其工作方式是这样的:元地址的一部分是发送者的支出密钥的盲化版本,另一部分是发送者的加密密钥(尽管一个最小的实现可以将这两个密钥设置为相同)。 基于加密和ZK-SNARKs的抽象隐形地址方案的示意图。
这里的一个关键教训是,在一个对隐私友好的生态系统中,用户将同时拥有支出公钥和加密公钥,而用户的 "支付信息" 将必须包括这两个密钥。除了支付之外,也有很好的理由向这个方向扩容。例如,如果我们想要基于以太坊的加密电子邮件,用户将需要公开提供某种加密密钥。在 "EOA世界 "中,我们可以重用账户密钥来实现,但在一个安全的智能合约-钱包世界中,我们可能应该有更明确的功能来实现它。这也将有助于使基于以太坊的身份与非以太坊去中心化的隐私生态系统更加兼容,最明显的例子是PGP密钥。 |