随着 Restaking 热度兴起,市面上出现了较多以 Eigenlayer 为基础的 Restaking 项目。Restaking 意在通过共享以太坊 Beacon 质押层的信任,将用户的质押份额共享给其他项目,从而让用户获得更多收益的同时,让其他项目也可以享受和 ETH Beacon 层同等的共识信任和安全性。
为了帮助大家更好地了解不同 Restaking 项目之间的交互风险,Cobo 安全团队对市面上主流的 Restaking 协议和主流 LST 资产进行了调研,并对相关风险进行了梳理,让大家在享受收益的同时,能更好地对相应的风险进行把控。
注:Cobo 安全团队所列相关结论基于 UTC 时间 2024 年 2 月 5 日 0 点前。
风险点概览
目前市面上的 Restaking 协议基本都是基于 EigenLayer 进行构建,对于用户来说,参与 Restaking 意味着将自己暴露于以下风险中:
合约风险
1.目前参与 Restaking 需要和项目方合约进行交互,用户需要承担合约被攻击的风险;
2.基于 EigenLayer 构建的项目资金最终都会存放在 EigenLayer 协议的合约中,如果 EigenLayer 合约被攻击,相关项目资金也会遭到损失;
3.在 EigenLayer 中,存在 2 种 Restaking 类型,分别是 native ETH Restaking 和 LST Restaking。对于 LST Restaking,资金直接存放于 EigenLayer 合约中。但是对于 Native ETH Restaking,资金则是存放于 ETH Beacon chain 中;这意味着,进行 LST Restaking 的用户有可能因 EigenLayer 合约风险遭受损失;
4.项目方存在高危权限,在某些情况下通过敏感权限可以挪用用户资金。
LST 风险
LST 代币存在脱锚的可能,或 LST 合约升级/被攻击导致 LST 价值发生偏差和损失。
退出风险
目前除了 EigenLayer 外,市面上主流的 Restaking 协议都不支持提款。假设项目方没有通过合约升级相应的提款逻辑,用户则永远无法拿回资产,需要从二级市场获得流动性退出。
根据上面罗列的风险点,Cobo 安全团队系统调研了当前市面上一些主流的 Restaking 协议,并进行了梳理。目前主要包括:
1.项目完成度低,大部分项目未实现提款逻辑;
2.中心化风险:用户资产最终为多签钱包所控制。项目方存在一定的 Rug Pull 能力;
3.基于第二点的情况下,当出现内部作恶或多签私钥丢失的情况下,可能造成资产损失。
为了让结果看起来更加直观,Cobo 安全团队对调研结果进行了整理归类,方便大家查看,如下:
由于 EigenLayer 是所有项目的基石,除了表格中提到的以外,还有以下几个点需要用户注意:
1.EigenLayer 当前部署在主网的合约中,尚未完整实现其白皮书中所有功能(AVS,slash)。其中,slash 功能仅是实现了相关的接口,尚未有具体的完整逻辑。根据合约代码,当前 slash 通过 StrategyManager 合约的 owner(项目方 admin 权限) 进行触发,执行方式较为中心化;
2.在进行 EigenLayer native ETH Restaking 的过程中,除了要创建一个 EigenPod 合约用于 Restaking 资金管理外,同时还需要自己运行 Beacon chain 节点服务,并承担被 Beacon chain slash 的风险。用户在进行 native ETH Restaking 时,建议选择较为靠谱的节点服务提供商。除此之外,由于 ETH 保存在 Beacon chain 中,在进行提款的过程中,除了需要用户发起外,还需要节点服务提供商帮助用户将相关资金从 Beacon chain 中退出,即退出过程需要双方同意;
3.由于 EigenLayer 目前暂未实现完成的 AVS 和 Slash 机制,Cobo 安全团队建议用户不要在没有了解好相关风险的情况下在 EigenLayer 协议中启用 delegate 功能,否则可能会引起一定的资金损失。
除此以外,通过对代码的 Review,某些项目还存在一些代码上的风险,可能影响用户资金安全。Cobo 在发现相关风险的同时,第一时间与项目方团队进行了沟通确认。一些风险点及沟通结果如下:
EigenPie
目前协议所有合约为可升级合约,升级权限为 3/6 Gnosis Safe,但是 MLRT 代币中 cbETH,ethX,ankrETH 的 MLRT 代币合约的升级权限为EOA 地址。
Cobo已于截稿前联系 Eigenpie 团队,项目方回应会在 24 小时内将所有 MLRT 代币的升级权限给到多签钱包。
KelpDAO
在充值过程中,在计算用户获取的 share 份额时,需要对 share 价值进行计算,但计算公式中的 rsETHPrice 需要手动更新对应的 oracle。除了 stETH 以外,分别使用对应代币合约的 share price 作为价格源。stETH 则直接采用 1:1 换算。当 stETH 在二级市场存在存在折价时,充值过程中将存在一定的套利空间。
KelpDAO 于 2 月 5 日回应,Lido 合约的兑换率定名 1 stETH = 1 ETH,因为目前 KelpDAO 尚未开放提现功能,故套利者无法利用这一策略。针对这一问题,KelpDAO 团队将在推出提款时,添加熔断机制,用于检查 stETH 的市场价格,将其与 stETH 的合约价格进行比较,并在偏差较大时应用必要的护栏。
Renzo
OperatorDelegator 负责路由协议资金到 EigenLayer 中,并对应不同的充值比例,但是协议在配置 OperatorDelegator 过程中,没有检查所有 OperatorDelegator 的比例是否大于 100%,导致可能出现 OperatorDelegator-1(70%)和 OperatorDelegator-2(70%)的情况。该问题主要影响用户资金提现,由于提现逻辑目前尚不完整,无法评估具体对本金的影响。
Renzo 团队表示,在这种特定情况下资金将转移到不正确的 OperatorDelegator 合约以进行存款,或从不正确的 OperatorDelegator 中提取。Renzo 表示,这个技术问题虽然会导致 Renzo 分配给不同运营商的预期分配不匹配,但不会影响总锁仓价值 (TVL) 的计算或资金安全。同时,Renzo 团队将会在未来的合约升级,解决这个技术问题。
除了协议本身的风险外,LST 风险在 Restaking 过程中不可忽视,Cobo 安全团队同时对市面主流的 LST 代币进行了调研,并将结果整理方便大家查看,如下:
如何有效降低参与 Restaking 的风险?
Restaking 是一个新兴的概念,无论是从合约层还是协议层都没有经过相应的时间考验,除了上述整理的风险外,可能还存在其他未知的风险。那么是否存在一个相对安全的最佳交互指南,有效降低交互过程中的风险呢?
基于目前的调研结论,Cobo 安全团队为大家整理了一份相对安全的交互路径。
资金分配
对于使用较大资金参与 Restaking 的用户来说,直接参与 EigenLayer 的 Native ETH restaking 是一个不错的选择。原因在于,对于 Native ETH restaking 来说,充值的 ETH 资产并非存放于 EigenLayer 合约中,而是存放于 Beacon chain 合约中。即便是最坏的情况下发生合约攻击,攻击者也无法立即拿到用户的资产。
对于同样想使用大资金参与但不愿意忍受较长赎回时间的用户来说,可以选择相对稳妥的 stETH 作为参与资产直接参与到 EigenLayer 中。
对于想赚取额外收益的用户,可以根据自己的风险承受能力,适当选择一部分的资金参与如 Puffer,KelpDAO,Eigenpie 和 Renzo 这些基于 EigenLayer 构建的项目,但需要注意的是,由于目前上述项目都没有实现相应的提款逻辑,参与此类协议的用户需要同时考虑相应的退出风险,在投资过程中应同时考虑相关 LRT 在二级市场的流动性。
监控配置
目前文中罗列的项目都存在合约升级和暂停的能力,同时项目方多签也可以执行对于项目的高危操作。对于进阶用户,可以配置相应的合约监控,监控相关合约升级和项目方敏感操作的执行。
同时,希望投入 ETH 参与项目的团队和用户,可配合 Cobo Argus 为 Safe 多签钱包的条件触发自动化机器人和单签授权配置,基于池子的 TVL 变化、ETH 价格的波动以及巨鲸的举动,来设置自动存款功能至 EigenLayer 和各个再质押协议。