以太坊合约只认验证者签名:Gravity 桥的密钥委托、延迟观察与批量出金 图 1
以太坊合约只认验证者签名:Gravity 桥的密钥委托、延迟观察与批量出金 · 图 1

桥不验证链,桥验证签名

跨链桥大致有两条信任路线:在一层合约里核验另一条链的共识证明,或者干脆不核验,转而相信一个委员会的联署。Cosmos 生态的 Gravity 桥选了后者——用官方设计文档的话说,以太坊端的 Gravity 合约持有全部资产,它放行一笔提款的依据不是从以太坊头到 Cosmos 共识的密码学证明,而是”当前 Cosmos 验证者委员会的多数签名”。这是一座把自身安全锚定在链上验证者集合之上的桥。

委员会的镜像靠两套独立密钥。验证者操作者在部署时设置两把代理密钥:一把 Cosmos 密钥用于向链上提交预言机消息,一把以太坊密钥专门替桥签名;合约里存的正是这组以太坊侧代理密钥,连同按 Cosmos 质押权重归一化的票数。合约不读 Cosmos 的状态,它只执行一条规则:签名者的权重合计越过门槛,更新或提款批次才被接受。为了让这面”镜像”保持新鲜,快照要持续提交上链——设计文档给出的边界条件是:更新频率必须显著高于约三周的解绑锁定期,以便任何还在签名的人都在可罚没范围内;一旦两集合的权重差超过约 3% 到 5%,就必须强制刷新,否则离场的钥匙可能不再关心以太坊上的更新,出金会被拖延或审查。部署之前,治理还要投票锁定一个随机的 32 字节 Gravity ID,此后每一笔经合约验证的签名都绑定它——同一批密钥、另一座桥的签名,在这里无法冒名顶替。

入金靠作证,出金靠攒批

示意图:小球群从矮墙向环口漂移的抽象路径(图片由本地 SDXL 生成,非资产转账示意)

以太坊到 Cosmos:用户调用合约的 sendToCosmos 把 ERC20 锁进合约,合约发出事件;验证者们跑的预言机进程监到事件后,各自向 Cosmos 提交一条存款证词(claim),当超过 66% 的投票权交过一致的证词,这笔存款被认定 observed,系统按事件里的目标地址向用户发行凭证代币——凭证的后缀 denom 由 gravity 前缀与源合约地址的哈希拼成,在 Cosmos 侧视作唯一资产标识。反向的 Cosmos 到以太坊走攒批:用户提交 MsgSendToEth,附上以同一种 ERC20 计价的手续费(无强制最低值),交易进入按代币类型分组的池子;池子攒够了,中继者把同类型交易打包成一批(上限约一百笔)提交给合约执行,出款事件被预言机看到、对应取款证词越过门槛之后,Cosmos 侧的凭证才被销毁。Cosmos 原生资产要上以太坊,先得有人调用不限许可的 deployERC20 铸造一个 ERC20 并由预言机核对小数位、名称等字段是否准确代表原资产,验证者采纳其合约地址后方可流转。

官方设计文档算过攒批的账:批量执行把单笔出金的成本压低四分之三以上,代价是延迟——想立刻出金就要出高价,而那个价格约等于没有攒批时每笔出金本来的开销。还有一处防重组的缓冲:预言机不会在事件刚发生就作证,必须等约定数量的以太坊区块过去(文档讨论过的取值是 50 个区块),短重组不足以让两条链对”发生过什么”吵起来。

这份信任账本的边界

把 Gravity 的诚实假设用一句话写全:超过三分之二投票权的验证者要么诚实、要么可罚没。链本身的安全模型、预言机证词、以太坊侧的委员会签名,同源于这一个验证者集合,因此这座桥的信任上限与”两条链中验证者集合较弱的那一边”同级——把这条原则推到 IBC 上,结论也成立:即便走 IBC 传输,也不比两端验证者集合里更弱的一端更安全。

结构性薄弱点不来自代码漏洞,而来自这套经济结构。签名密钥独立于共识密钥,意味着恶意签名需要额外的可证明条件与罚没条款才能兜住;快照天然比真实集合旧,刷新靠”差值超阈值就提交”的规则与中继者激励维持,验证者侧不设硬性提交义务;出金的流动性完全靠中继者为费而跑的意愿,费给低了没人搬;文档还允许治理投票给验证者集合更新发放桥接代币奖励,这种”在对手方链上无限增发”的收入只能选 Cosmos 原生资产,否则合约资产池迟早见底,更新会直接失败。

机制叙述以 Gravity-Bridge 仓库官方设计文档为准,实际部署与参数以各链治理生效值为准;涉及资产跨链迁移,风险自负,不构成投资建议。