引介 Wrapped Native:Wrapped Ether 的现代替代品

Wrapped Native 一个更好的原生代币 Wrap 方案

引入 Wrapped Native:Wrapped Ether 的现代替代品

Limit Break 很高兴地宣布发布 Wrapped Native,这是 Wrapped Ether (WETH) 的现代升级。像 Limit Break 的 NFT 交易协议 Payment Processor 这样的协议依赖于 WETH 来正常运行并支持 NFT 出价用例。然而,随着 EVM 链数量的增加,一个关键挑战是 WETH 在不同链上的地址不一致。跨链的不一致代币地址使得 Payment Processor 难以自由部署到新链上,因为需要自定义配置以指定每条链上的唯一 WETH 地址。作为其整个创作者优先协议套件向无许可部署模型过渡的一部分,Limit Break 有必要创建一个新的 WETH 版本,可以在任何 EVM 区块链上由任何人部署到一致的地址。除了支持确定性地址外,Limit Break 还在许多改进上投入了大量精力,以帮助现代化和改善用户体验,并使其在其他 DeFi 协议中更有用。

Wrapped Native 在 MIT 许可证下发布,可以使用新的基础设施部署工具自由部署到任何 EVM 兼容链上,网址为 https://developers.erc721c.com/infrastructure 。 只需将任何以太坊钱包连接到基础设施部署工具,即可在你选择的链上将 Wrapped Native 合约部署并验证到地址 0x6000030000842044000077551D00cfc6b4005900

源代码可在 Wrapped Native Github 上找到。如果你是对 Wrapped Native 的增强功能和特性感兴趣的开发者,请继续阅读本文的其余部分。

WETH 用例

WETH 是一个核心 EVM 原语,提供了一个代表以太 (ETH) 的 ERC-20 代币。WETH 之所以重要,是因为它简化了 ETH 与各种智能合约协议的集成。许多流行的用例都由 WETH 支持,包括:

  • DEX 流动性池 — LP 通常需要一对 ERC-20 代币,因此 WETH 通常用于在 DEX 池中代表 ETH。
  • DEX 交换 — DEX 通常依赖于 WETH 交易对来简化智能合约逻辑,使得 ETH 与其他代币的交易更容易。
  • 借贷 — WETH 使用户能够借出或借入 ETH,因为 WETH 允许 ETH 像任何其他 ERC-20 一样被对待。
  • 抵押品和衍生品 — WETH 通常用作衍生品平台的抵押品,这些平台铸造合成资产或开启杠杆头寸。
  • 收益农业和质押池 — 有许多 DeFi 协议要求用户在 WETH-DAI 或 WETH-USDC 等对中质押流动性以赚取收益、代币奖励和激励,或参与治理。
  • NFT 市场支付和拍卖 — WETH 使交易者能够在 Magic Eden 和 OpenSea 等平台上对 NFT 进行出价和报价。

WETH9 — 当前标准

WETH 的规范实现称为 WETH9,它于 2017 年 12 月首次部署到以太坊主网,并使用 solc v0.4.19 编译,目标是最早的 EVM 版本之一 byzantium。自 WETH9 部署以来,EVM 已经历了七次重大升级,solc 也经历了四个主要版本和数十个小版本。

此外,当 WETH9 发布时,没有显著的侧链或 L2。自那时起,EVM 生态系统已经增长并分裂为数千个 EVM 兼容的 L2/L3、侧链和应用链,具有可配置的本地 gas 代币。虽然许多 L2 仍然以 ETH 定价 gas,但越来越多的 L2 和 L3 使用自定义代币来定价交易费用,因此在这些自定义链上,Wrapped Ether 这个术语并不总是合适的。更糟糕的是,WETH9 合约在所有链上没有一致的地址,因此应用程序和协议必须意识到并配置为在每条链上使用自定义 WETH 地址,这造成了显著的开销,并且不允许对核心原语进行常量或不可变变量的优化!

自 WETH9 问世以来,许多现代链仍然部署并使用 WETH9 来实现其包装的本地 gas 代币。WETH 的技术更新早已过期。幸运的是,Limit Break 构建了一个现代化的、更高效的合约,称为 Wrapped Native,可以替代过时的 WETH 实现。

Wrapped Native — 未来

在一个由数千个 EVM 链组成的世界中,具有可定制的非 ETH 本地代币,将 ERC-20 表示称为 Wrapped Native (WNATIVE) 更有意义。与 WETH9 类似,Wrapped Native 将链的本地 gas 代币包装成一个 ERC-20 代币。Wrapped Native 旨在成为一个更高效、更现代化、更全面的规范替代品,具有以下相对于 WETH9 的改进。

  • 可以由任何人在任何链上以一致的地址确定性地部署!任何钱包都可以将 Wrapped Native 部署到他们选择的链上,并且地址将在每条链上保持一致,使应用程序和协议的集成更加简单。
  • 比 WETH9 更高效的操作!更多信息请参见基准测试部分。
  • approvetransfer 函数是可支付的 — 当 msg.value > 0 时将自动存款。此功能将允许用户在单个操作中包装并批准协议,而不是两个,从而改善用户体验并节省 gas!
  • depositTo — 允许存款人指定要给予包装本地代币的地址。与 deposit + transfer 相比,这对于包装本地退款等操作更高效。
  • withdrawToAccount — 允许提取者提取到不同的地址。
  • withdrawSplit — 允许提取者一次提取并发送本地代币到多个地址。
  • 许可功能 — 允许使用 EIP-712 签名无 gas 地批准转账和提取给支出者/操作员。允许的提取允许 gas 赞助商代表用户解包包装的本地代币,收取应用程序指定的小额便利费。当用户在新链上没有本地代币但他们已收到包装的本地代币时,这很有用!

注意:WNATIVE 保留了 WETH9 中可用的所有接口,以保持与现有生态系统工具的兼容性。

Gas 基准测试 — WETH9 vs WNATIVE

注意:基准测试仅关注 WETH9 和 WNATIVE 之间共享的接口,不包括 WETH9 中不存在的功能的测量。基准测试的准备和执行是为了在两个合约上重现相同的条件,以便在合约之间进行准确的比较。

TLDR; Gas 节省总结

  • balanceOf : 88 gas
  • native transfer (deposit): 48 gas
  • deposit : 108 gas
  • withdraw: 395 gas
  • approve : 213 gas
  • transfer : 627 gas
  • transferFrom (自转): 481 gas
  • transferFrom (操作员有限额授权): 1080 gas
  • transferFrom (操作员有无限授权): 508

这些改进在每个单独的交易中可能看起来相对较小。然而,作为一个广受欢迎的原语,即使是小幅节省的集体影响也是巨大的!自 2022 年 9 月 15 日以太坊合并事件以来,仅在以太坊 L1 主网上,WETH9 上已经执行了大约 2.75 亿次操作!以下 Dune 查询用于查找自合并以来 WETH9 上按功能调用的次数(查询于 2024 年 10 月 28 日合并后 774 天执行)。

select function_selector,    
case function_selector    
when 0x70a08231 then 'balanceOf'  
when 0xa9059cbb then 'transfer'  
when 0x23b872dd then 'transferFrom'  
when 0x095ea7b3 then 'approve'  
when 0x2e1a7d4d then 'withdraw'  
when 0xd0e30db0 then 'deposit'  
else 'unknown'   
end as functionName,   
count(function_selector) as countOf from   
(   
    select bytearray_substring(input, 1, 4) as function_selector from ethereum.traces   
    where length(input) > 4 and block_time > (NOW() - INTERVAL '774' DAY)    
        and to = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2   
    union all   
    select bytearray_substring(data, 1, 4) as function_selector from ethereum.transactions   
    where length(data) > 4 and block_time > (NOW() - INTERVAL '774' DAY)    
        and to = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2   
)   
group by function_selector   
order by countOf desc

如果自 The Merge 以来使用了 WNATIVE,节省的原始 gas 单位将是:

  • balanceOf : 327,453,459 次调用 x 88 gas ~= 290 亿
  • transfer : 179,154,025 次调用 x 627 gas ~= 1120 亿
  • withdraw : 61,370,490 次调用 x 395 gas ~= 240 亿
  • transferFrom : 24,489,452 x 794 gas ~= 195 亿
  • approve : 6,936,611 ~= 15 亿
  • deposit : 125,633 ~= 1350 万
  • total : 1860 亿

自 The Merge 以来的平均 gas 价格为 21.6 gwei(来源:ultrasound.money),自 The Merge 以来 ETH/USD 的平均收盘价为$2,189.25。因此,仅在 L1 ETH 主网上,总费用节省将达到4,024 ETH ($8.809M)

趣闻:在官方 Wrapped Native 地址中开采的八个零字节将在 calldata 中节省额外的 96 gas。考虑到额外的 calldata gas 节省,估计还将节省额外的$1.2M!

注意:基准细节和可比较交易的链接可以在文章末尾的补充部分找到。

不变量测试

对于像 Wrapped Native 这样关键的 EVM 原语,构建一个不变量测试套件以确保系统的关键数学属性不会被破坏或违反是至关重要的。不变量测试套件将在 Wrapped Native 仓库发布时可供审查和执行。以下属性在多个小时的不变量测试运行中得到了验证。

ETH 的守恒

ETH 只能被包装成 WNATIVE,WNATIVE 只能被解包回 ETH。

存款的偿付能力

WNATIVE 合约的本地余额应始终至少等于个人存款的总和。

余额的偿付能力

WNATIVE 合约的本地余额应始终至少等于所有用户的个人 WNATIVE 余额的总和。

总供应量

没有个人账户余额可以超过 WNATIVE 的总供应量。

补充信息

在 Sepolia 测试网上的基准测试…

  • Wrapped Native: 0x25f84ecdC8bC85f74C4cea32B80C1A05a5378Abd
  • WETH9: 0xfFf9976782d46CC05630D1f6eBAb18b2324d6B14

基准测试 1 — 通过直接 ETH 转账进行存款,零 WNATIVE

Wrapped Native (Gas: 44,683): 0xc657353364565180805eebc2d577138cf1b8c6b2d487d407f2f0123b1e5cd0c1

WETH9 (Gas: 44,731): 0xec5d8ec2fa7bbdb278ceb6fde88af7b7fd9e15dfba6e095518b7d6ebfb1dff48

基准测试 2 — 通过直接 ETH 转账进行存款,非零 WNATIVE

Wrapped Native (Gas: 27,583): 0x7757bdcb880e837e97578766bc07625a6f17f8461cf8f986bf7e3fb45b19c54d

WETH9 (Gas: 27,631): 0x1f354e6ead7406d0ece92f6b641b92b7f5169aa0cce8da5f8375616da104b2e6

基准测试 3 — 通过deposit调用进行存款,非零 WNATIVE

Wrapped Native (Gas: 27,830): 0xd94219c9b458b40a6f36cf3aa1e452bdd94edbea1cbf1385f47c62d0171ca00c

WETH9 (Gas: 27,938): 0xf3f4c2161e1901d0478e0d3ef424b43ee68983cc1b9b031b1346bf6756a4a12f

基准测试 4 — 通过withdraw(uint256)调用进行提取(部分提取)

Wrapped Native (Gas: 34,809): 0xd46b8de3877e507ae98239d74b6e3da4f10dc873ed06a70f17a738809796d562

WETH9 (Gas: 35,204): 0xd7c6823741e6b1961c9efde8707974ed6eb4293d60738a6ac7de6cc76172d3dd

基准测试 5 — 通过approve(address,uint256)调用进行批准(首次批准)

Wrapped Native (Gas: 45,851): 0x5f21a6a0e10d4d168e7662861c40832954a7ad71d5a2d4b55a80465d9ad89da5

WETH9 (Gas: 46,064): 0x9b0a864fee4fcd86d5b5b00d0c1e4e366087e7fce44f01803dfb84f69052dc20

基准测试 6 — 通过approve(address,uint256)调用进行批准(第二次批准)

Wrapped Native (Gas: 28,751): 0x042f305d19f41eef50a29e42a8f4a4a3ef51247f581d474742deb5573f596177

WETH9 (Gas: 28,964): 0xe7c93bcb1d0f31e139b04933f6a39597c8f64a13bb20dfcbb6a5e6e6d156f12d

基准测试 7 — 通过approve(address,uint256)调用清除批准(批准为零)

Wrapped Native (Gas: 23,867): 0x026febd5bc6f764e196eba2d9c0c236f1053d03f1fcdd2e4fdc69aa402a1849f

WETH9 (Gas: 24,080): 0x7bfc1ab9d64565be83300e89ed66555c821d3fa44d524c7f607bba63781fd196

基准测试 8 — 通过可支付的approve(address,uint256)调用进行批准和存款(温暖批准和先前余额)

Wrapped Native (Gas: 35,260): 0x8460c2f7ebadb47ce0e357a313af0cfd386d2e037983dbfc6e4e0ecdd4d54799

WETH9 (Gas: N/A)

可比操作在两个单独的交易中执行:27,617 + 28,944 = 56,561

基准测试 9 — 通过transfer(address,uint256)调用进行转账(零先前余额)

Wrapped Native (Gas: 50,955): 0xe86596f78ef6d0ba9c740ccc360d28196a611458549b2437151516a41fedeca5

WETH9 (Gas: 51,582): 0x456fb5a5c9707e36db1adf1baecde8c53cf404ca44658530c3e25bb020b5353a

基准测试 10 — 通过transfer(address,uint256)调用进行转账(非零先前余额)

Wrapped Native (Gas: 33,855): 0xc7656dfd62cf7a7b63ba734839e7bfb8f36470efb17b005bb603016c1eaa2115

WETH9 (Gas: 34,482): 0x26d1c9199e5187bac6ac487c4fe4cf6449694fc3123bfdddcfdb832a0d665975

基准测试 11 — 通过 transferFrom(address,address,uint256) 调用进行自我转账(非零先前余额)

Wrapped Native (Gas: 34,239): 0xa1162953a9a0b260abe16f9c2a35a6db797aad3eee599c373211525cc91ff552

WETH9 (Gas: 34,720): 0x712bed0132bb1e3bf9b4daa18f65eb7d793c97f9f3525fa59bbd05a1a30ce550

基准测试 12 — 通过 transferFrom(address,address,uint256) 调用进行有限授权的操作员转账(非零先前余额)

Wrapped Native (Gas: 39,456): 0x9fcaa968cfaf07df393e08b466db923626e27e8912c0cf8b1ce9c00913ba1b73

WETH9 (Gas: 40,536): 0xd810198f881cf7aa63f6b2c7e0823317c7573c0d147866cc1d8f97384cd529a2

基准测试 13 — 通过 transferFrom(address,address,uint256) 调用进行无限授权的操作员转账(非零先前余额)

Wrapped Native (Gas: 36,505): 0x6611b04d18248ebaf10427a5fa4c0e0b3c1d46d9a7cb6623575a9c93dec2351b

WETH9 (Gas: 37,013): 0xb6e9a996a0d38aef190c4879b0fda348e61fef69113b68f59869630fe95107b4

免责声明

Limit Break 的 Wrapped Native、Creator Advanced Protection Suite(Creator Token Standards、Payment Processor(V1、V2 和 V3)、Trusted Forwarder)及相关服务和协议(统称为“工具”)按现状提供,Limit Break 不对使用这些工具的行为作出任何明示或暗示的陈述和保证。用户应对确保这些工具的正确和合法使用负全部责任,并在部署时应根据需要谨慎行事。Limit Break 不对任何第三方使用这些工具所宣传或提供的任何产品或服务作出任何保证、认可、担保或承担责任,也不会成为用户与任何第三方产品或服务提供商之间的任何交易的当事方或以任何方式负责监控。使用这些工具须遵守这些工具所提供的许可证的所有条款。

我是 AI 翻译官,为大家转译优秀英文文章,如有翻译不通的地方,在这里修改,还请包涵~

点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
Limit Break Dev
Limit Break Dev
江湖只有他的大名,没有他的介绍。