本文深入探讨了 EigenLayer 的原生 Restaking 机制,重点介绍了如何使用 EigenPod 管理 Restaked ETH,以及如何通过 OPUS Portal 创建验证器并将提款凭证指向 EigenPod,实现了 ETH 的 Restaking。文章还详细解释了 Restaking 过程中的验证机制,并介绍了如何将 Restaked 资产委托给节点运营商。
概要
一份关于使用 OPUS Portal 进行原生再质押的技术深入指南,旨在揭秘 Chorus One 在 Eigenlayer 上的原生再质押。简而言之,步骤如下:
这些简单的步骤将使你准备好参与再质押生态系统。如果你有兴趣阅读更多关于每个步骤中发生的事情,下面我们将揭示幕后发生的事情。
前往 EigenLayer Dapp 并创建一个 EigenPod,你将使用它来管理你再质押的 ETH。
再质押为质押者提供了为多个网络的安全做出贡献的灵活性,从而赚取额外的奖励。质押 $ETH 的用户可以选择加入 EigenLayer 智能合约,以再质押他们的 $ETH 并将密码经济安全扩展到网络上的其他应用程序。要阅读更多关于其工作原理的信息,请访问我们的关于 Eigenlayer 的博客文章。
幕后原理:“EigenPod”是你的智能合约,旨在通过启用余额和提款监控来管理你原生再质押的 ETH。设置新验证者时,你的 EigenPod 的地址将充当你的提款地址,我们将在下一节中更详细地介绍这一点,首先让我们看看如何创建 EigenPod。你可以在 goerli 测试网上看到一个示例交易,它部署了一个 EigenPod。这是通过“EigenPodManager”完成的——一个智能合约,负责充当信标链 ETH 再质押的入口点。该交易经过验证,以验证该地址尚未拥有 EigenPod。质押者只允许每个钱包地址拥有一个 EigenPod,尽管可以再质押的信标链验证者的数量没有限制。
EigenPod 被部署为可升级的智能合约,它拥有 EigenPod 逻辑的最新实现。智能合约在设计上是不可变的,尽管 beacon 代理模式 是一种旨在提供升级智能合约的方法,而无需更改地址和状态变量。对于智能合约,代理就像一个反向代理,将交易委托给后台的另一个智能合约,该合约拥有最新的实现。
**来源:https://docs.openzeppelin.com/upgrades-plugins/1.x/proxies ](https://blog.uniswap.org/what-is-uniswap),EigenLayer 决定将其智能合约设计为可升级的,并包括暂停功能,这些功能可以通过 multisig 治理进行更改。
作为此过程的最后一步,初始化 EigenPod 时,你的地址将设置为 EigenPod 所有者,这是一个 EigenPod 的权限角色,用于限制诸如从合约初始化提款之类的功能。最后,我们的 pod 成功部署。
2. 前往 OPUS Dedicated 并创建一个验证者,其提款凭证指向用户的 EigenPod
前往 OPUS Dedicated Portal 并创建一个验证者,其提款凭证指向你的 EigenPod。
默认情况下,在 OPUS 中创建验证者时,用于存款的钱包将设置为提款凭证,但也可以配置不同的提款地址。简而言之,提款地址是持有创建验证者时存入的 ETH 的托管权的地址。要了解更多关于 Ethereum 提款凭证和相关的地址的信息,请深入阅读我们关于 Ethereum 验证者密钥生成的一篇博客文章。
幕后原理:如前一节所述,我们需要将我们的 EigenPod 设置为我们打算原生再质押的验证者的提款地址。这是因为 EigenPod 智能合约(执行层)需要持续验证来自信标链(共识层)的状态,例如,验证验证者的提款凭证是否实际指向 EigenPod 或检查有效余额的值,以便接收奖励。
这是一个在 Goerli 测试网上部署的 EigenPod 示例,地址为 0x812e0536A6b....。为了启用验证者的再质押,提款凭证需要在将它们存入 Beacon Chain 时指向 EigenPod,请参阅一个指向上述 EigenPod 的两个验证者存款的示例交易此处。
你可以通过查看存款交易的解码输入数据来验证这一点(请参见下面的屏幕截图):
这样做的效果是,我们不能简单地更新一个已经运行的验证者,除非你已经使用 0x00 (BLS) 提款地址配置了它。如果你想了解更多关于旧格式的信息,你可以在我们关于 Ethereum 验证者密钥的博客文章中跟进。从本质上讲,这意味着,如果你使用 0x00 地址创建了验证者,你可以使用这种旧格式重新指向你的验证者到 EigenPod。对于其他人,你需要创建新的验证者,因为 Ethereum 验证者的提款凭证是不可变的。
3. 一旦你的验证者被存入,你可以在 EigenLayer 上再质押
一旦你的验证者被存入,你可以在 EigenLayer 上原生再质押你的 ETH。
这是一个用户在 Eigenlayer 上再质押其验证者的示例交易。为了能够启动再质押机制,你需要提交一个证明,证明验证者确实指向 EigenPod。当单击 Eigenlayer 按钮上的“再质押”按钮时,这是在幕后完成的,并且将以下信息提交以制作此证明:
从本质上讲,我们使用两个 Beacon Chain 证明。使用信标状态根证明和验证者字段证明,以及验证者字段和验证者索引,我们可以加密证明具有所提供信息的验证者确实记录在链上并指向给定的 EigenPod。这一点很重要,因为奖励(部分提款)将从 Ethereum 协议自动支付到你的 EigenPod。以及在提取你的资金(全部提款)时,资金将通过你的 EigenPod 流动。在未来的系列中,我们将更详细地介绍 EigenLayer 上的奖励和提款。
验证提款凭证的此过程将为你想要再质押的每个验证者执行。如果成功完成,验证者索引、有效余额将被存储,并且验证者状态设置为 ACTIVE,表明你已成功再质押你的验证者。为了最终确定该过程,EigenPodManager 中的份额数量会更新——如果该质押已经委托给一个节点运营商,则委托的份额会被更新。
4. 将你的再质押资产委托给 Chorus One
在撰写本文时,EigenLayer 上的委托功能已暂停。下图概述了再质押和委托的过程。
如上所述,(re-)质押者通过调用其 EigenPod 上的 verifyWithdrawalCredentials() 函数来再质押他们的 Beacon Chain ETH,他们在此证明验证者指向 EigenPod,从而增加可委托份额的数量,这是 EigenPodManager 中保留的记录。
现在,借助最新的升级,质押者可以选择通过调用 EigenLayer 委托合约 上的 delegate() 函数来委托给他们最喜欢的节点运营商。按照当前的设计,你所有的再质押资产都将委托给你选择委托的单个节点运营商。委托函数只需要被调用一次,如果你决定再质押更多,EigenPodManager 将自动增加 DelegationManager 中可委托份额的数量,并将资产委托给你选择的节点运营商。
- 原文链接: medium.com/@jenpaff/eige...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!