ENS:在L2购买、交易和桥接ENS域名
DeFi市场迅猛发展,促使越来越多的交易活动转至L2,但ENS并未随之转移。目前,用户无法在L2上注册和交易ENS域名,其必须继续支付L1的Gas费才能与ENS交互。
虽然ENS已在努力支持使用链下数据查找和通配符域名的L2,但这并不足以解决问题。基于此,ENSEverywhere(ETHOnline 黑客松获奖项目)开发团队提出解决方案,旨在使 ENS域名成为以太坊L2上的首选用例。
据介绍,用户可以在Polygon、Optimism或未来可能的更多链上请求域名购买。中继者在L1上注册这些域,并将ENS NFT桥接到L2。通过使用ENSEverywhere的Bulk Registrar合约,可节省高达34%费用。
ENSEverywhere开发团队表示,相信项目可以帮助所有人更容易地访问 ENS域名,并继续发展以太坊的L2生态系统。
协议设计
ENSEverywhere围绕一个相对简单的想法构建:用户提出“Bid”以在L2上购买ENS域名,随后中继器通过在L1上购买并将域名桥接到L2来完成该“Bid”。
但是,这留下了一个主要问题:如果中继者必须在 L1 上购买域名,他们会不会产生相同的 L1 交易费用,然后必须将其传递给购买者?这确实是事实,但是ENSEverywhere希望提出解决方案来显着降低L1费用,从而为用户节省成本。
通常,用户注册一个ENS域名时,他们必须发送两个交易:一个“Commitment”,它只是存储在链上的哈希值,以及一个完成注册的“Reveal”交易。此过程涉及许多存储操作,这是在以太坊上执行的最昂贵的操作。
对此,ENSEverywhere设计“Bulk Registrar”智能合约,允许注册多个ENS域名。通过在一次交易中将多个域名注册捆绑在一起,可以显着降低Gas成本。
根据ENSEverywhere说法,一次注册10个域名所花费成本,较分批注册10个域名可节省25.7%Gas。即便注册2个域名,也可节省9.3%成本。
不过,ENSEverywhere这一设计目前尚不可实现,需要经ENS DAO批准。
操作流程
域名注册流程:
用户首先向L2智能合约提交购买域名的请求。该请求包括一个“Commitment”哈希,并存入一些资金用于支付费用。
中继者看到此请求,并使用 L1 ENSEverywere 智能合约(称为 Bulk Registrar 合约)在 L1 上创建“Commitment”。
ENSEverywhere 智能合约使用 ENSEverywhere 桥接智能合约将“Commitment”数据发送到 L2。ENSEverywhere目前支持 Polygon 桥 (FXPortal) 和 Optimism 桥,但理论上可以构建对具有任意消息桥到以太坊的任何链的支持。
L2 ENSEverywhere 合约收到“Commitment”,并处理从用户到中继者的第一笔付款。
此时,用户必须与中继者共享一个签名,其中包含要注册的实际域名。此签名使用 XMTP 消息传递协议在链下加密传输。
中继器向 L1 ENSEverywhere 智能合约发送第二个 L1 交易。该交易注册了所有域名,并将所有权转移给 ENSEverywhere 智能合约。
ENSEverywhere 智能合约通过 ENSEverywhere 桥将注册合约发送到 L2
L2 智能合约确认域注册,处理从用户到中继者的第二次付款,并铸造一个代表 ENS域名的L2 NFT。
完成上述流程后,用户拥有L2上ENS 域名的所有权,且在购买域名时省下一部分费用。根据ENSEverywhere说法,用户可以将此L2 NFT兑换成主要的L1 ENS NFT,只不过该操作目前尚未实现。
需要注意的是,虽然ENSEverywhere允许用户在L2上“拥有”一个域名,但它不允许用户设置诸如解析的 Etheruem 地址之类的数值。对此,该协议团队计划使用新的 EIP-3668 链下数据查找标准来解决问题,以实现数据存储在 L2 上。