CSM 早期采用

pKqiHTYfRzuWDz0l9MTn3A?view 发布于 2026-07-19 阅读 20

本文提出了Lido社区质押模块(CSM)早期采用机制的设计方案。该方案使用Merkle证明作为早期采用期间加入CSM的入场券,并限制每个操作者最多只能注册10个验证者,以防止大型专业操作者垄断名额。早期采用者还将获得首个验证者债券折扣的激励。文章还讨论了使用NFT作为资格标记的成本考量,以及早期采用期结束后铸造纪念NFT的可能性。该提案旨在确保社区质押者的参与,并为CSM的完全无许可启动做准备。

2 年前更新

CSM 早期采用

TL;DR

本文档描述了 CSM 早期采用机制的一种可行方法。建议在主网早期采用期间,使用 Merkle 证明作为进入 CSM 的入场券。在早期采用期间,每个节点运营者的密钥数量上限为 10 个。除了可以加入 CSM,这些节点运营者还将有资格获得“首个验证者的 bond 折扣”。

动机

需要一段早期采用期,以确保社区质押者能够有意义地参与 CSM,并避免全部 CSM 容量被一个或几个专业运营者立即占满。在此期间,只有经过筛选的社区质押者才有资格加入 CSM。该时期结束后,CSM 的进入将完全无需许可。为了让早期采用对社区质押者更具吸引力,应提供类似附录 1 中所述的额外福利。

谁有资格

CSM 中符合早期采用资格的质押者主要有两个来源:Rated 的独立质押者列表,以及 Lido 社区参与者,即在 Galxe 的 Lido space 中拥有足够分数的 OAT 持有者。获得足够 Galxe 分数的最佳方式是参与 SimpleDVT/CSM 测试网或 Lido 主办的活动。这两个列表可能会在启动前合并为一个,因此它们之间的信任和条件不会有差异。

为什么限制每个节点运营者的密钥数量?

尽管在 EA 期间只有经过筛选的社区质押者才有资格加入 CSM,大型节点运营者仍然有可能设法伪装成社区质押者。为了降低 CSM 被此类复杂参与者抢占的风险,建议在 EA 期间设置 每个节点运营者最多 10 个验证者的硬性上限。这将大大限制大型运营者在 EA 期间大量占据 CSM 质押份额的可能性。

在 CSM 侧使用 Proof

早期采用功能在一个独立的(也可能是虚拟的)CSEarlyAdoption 合约中实现,其初步接口如下:

interface ICSEarlyAdoption {
    function checkAddress(address _address, bytes32[] proof) external view returns (bool);
    function consume(address _address, bytes32[] proof) external;
}

在早期采用期间,执行 createNodeOperator* 方法时需要提供 proof,以确保发送者有资格加入,并消耗一个 proof。

    function addNodeOperatorETH(
        uint256 keysCount,
        bytes calldata publicKeys,
        bytes calldata signatures,
        bytes32[] calldata proof
    ) external payable {
        uint256 id = _createNodeOperator();

        if (earlyAdoption.checkAddress(msg.sender, proof)) {
            earlyAdoption.consume(msg.sender, proof);
            accounting.setBondCurve(id, earlyAdoptionBondCurve);
        } else if (block.timestamp < earlyAdoptionExpireTimestamp) {
            revert EarlyAccessDenied();
        }


        accounting.depositETH{ value: msg.value }(msg.sender, id);
        _addSigningKeys(id, keysCount, publicKeys, signatures);
    }

建议在部署阶段明确配置该时期结束的时间戳;之后该早期采用合约将被忽略,允许所有人加入 CSM。DAO 应该能够稍后更改此时间戳,以延长或缩短早期采用期的持续时间。

imageEA 期间的操作

在早期采用期过后,可以传递 Merkle proof 作为可选参数,以获得早期采用激励。

imageEA 结束后的操作

附录 1. 早期采用者的激励

使用 CSM bond 曲线作为早期采用者的激励

随着 CSM 引入任意的 bond 曲线,出现了几个有趣的用例。其中之一就是为在早期采用期间加入 CSM 的节点运营者创建一条特定的曲线。

早期采用 bond 曲线

早期采用期的一个核心想法是,让经过验证的独立质押者(来自 Rated 列表,或由 Lido 贡献者识别)在完全无需许可的启动之前,于主网早期阶段加入 CSM。如果我们假设 CSM 主网参数(bond 规模和费用)将远优于市场上的其他方案,那么能够更早加入本身就是一种好处。然而,如果 CSM 提供的是“市场水平”的条件,那么应该为早期采用者提供一些好处,以激励他们加入 CSM。

其中一个方案是降低所需 ETH bond 的准入门槛。在 bond 曲线机制下,这可以体现为一条修改后的曲线:第一个验证者所需的 bond 低于普通曲线,而曲线的其余部分与普通曲线相同。

image

在为第一个验证者选择 bond 数值时,它应至少覆盖单个验证者的罚没(slashing)风险。其他风险可以暂时不考虑。原因如下:

  • MEV 窃取
    • 只有一个验证者时,出现 block_proposal * huge_MEV * malisious_validator_in_the_list 的概率可以忽略不计。
  • 陈旧验证者
    • 在 bond 覆盖基本罚没的情况下,单个验证者大约需要两年时间,余额下降才会超过 bond。
  • 如果节点运营者创建更多验证者怎么办?
    • 在这种情况下,他们必须为第二个及后续验证者提供常规 bond 金额。因此,总覆盖范围与普通曲线的情况不会有太大差异。

话虽如此,可以假设“以更低成本获得第一个验证者”的方案可被用作对 CSM 早期采用者的一种激励。

附录 2. 常见 NFT 成本考量

可以通过铸造 NFT 来标记所有符合条件的地址,而不进行 proof 检查。这会将质押者列表变成一种潜在的公共物品——将独立质押者名单永久保存在链上,以便其他协议复用。与常见的 EIP-721 实现(例如 来自 OpenZeppelin 的实现)不同,它将有以下限制:

  • 不可转让
  • 每个地址一个 NFT
  • 不可销毁。 任何 NFT 的使用都应在协议侧记录;
  • 一次性使用。 一个 NFT 对应协议侧的一次使用;

如果采用当前 OpenZeppelin 的实现并施加这些限制,粗略的成本估算如下:

50000 gas per mint =>
60 gwei gas cost =>
~0.32 ETH per 100 mints

TokenGate 这样的替代实现,其 gas 成本可能低得多:

26000 gas per mint =>
60 gwei gas cost =>
~0.15 ETH per 100 mints

考虑到这些估算,以及实现这种带有限制且需通过审计的 NFT 的额外成本,采用 NFT 方案并不合理。因此,Merkle Proof 解决方案要便宜得多。

附录 3. 为早期采用的节点运营者铸造 NFT

当早期采用期结束后,可以为所有 CSM 参与者铸造一个特殊的、有纪念意义的 NFT。最简单的做法是在 Galxe 上铸造 OAT,但也可以是一个单独的 NFT 合约,每个 NFT 上都有独特的图像,例如 CSM 中的节点运营者 ID、验证者 graffiti 等。

  • 原文链接: hackmd.io/pKqiHTYfRzuWDz...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~

相关文章

0 条评论