凌晨两点,老陈扔过来一个链接:“Babylon,用比特币给PoS链当保安,你瞅瞅。”
我点开文档,盯着“Bitcoin-secured PoS”看了很久。“Babylon enables native bitcoin staking directly on the Bitcoin blockchain without intermediaries.”用比特币的安全经济做外部防御层,让PoS链共享BTC的最终性,这个想法确实漂亮。任何写过共识协议的人看到这套设计,都得承认这是目前赛道最激进的安全尝试。
但顺着轻客户端往下拆时,后背开始发凉。
Babylon链只运行BTC轻节点,不完整同步比特币全账本,只依赖区块头和UTXO脚本校验。Zellic的审计报告明确指出:如果Babylon网络因panic宕机,重启后btclightclient仍会认宕机前的高度为最新状态。在这段空窗期,恶意矿池抢先提交分叉链的区块头,轻客户端会暂时把分叉当成主链——质押交易可能在错误的分叉上被确认。而比特币网络出现孤块、重组、深度区块回滚时,轻客户端没有能力识别。
更让我后背发凉的是EOTS。这是Babylon核心创新的可提取一次性签名,用于跨链罚没证明——“if an FP signs two different blocks at the same height, the private key is exposed, leading to automatic slashing”。听起来很漂亮,但Zellic审计发现eotsmanager的GenerateRandomness函数用SetByteSlice时没检查返回值——溢出Secp256k1群阶时,nonce变成非均匀分布。虽然概率低,但一旦发生溢出样本,配合Hidden Number Problem算法就能恢复EOTS私钥。更致命的是GHSA-7mm3-vfg8-7rg6:x/finality模块缺乏域隔离,攻击者可以把PoP签名重放成MsgCommitPubRandList,注入无效的PubRand承诺。
用比特币的最终性当护城河,轻客户端却看不见比特币的分叉——用自研密码学做罚没,EOTS的随机数生成连溢出都没检查。你信比特币的链,还是信这份代码?#baby $BABY @BabylonLabs_io
我点开文档,盯着“Bitcoin-secured PoS”看了很久。“Babylon enables native bitcoin staking directly on the Bitcoin blockchain without intermediaries.”用比特币的安全经济做外部防御层,让PoS链共享BTC的最终性,这个想法确实漂亮。任何写过共识协议的人看到这套设计,都得承认这是目前赛道最激进的安全尝试。
但顺着轻客户端往下拆时,后背开始发凉。
Babylon链只运行BTC轻节点,不完整同步比特币全账本,只依赖区块头和UTXO脚本校验。Zellic的审计报告明确指出:如果Babylon网络因panic宕机,重启后btclightclient仍会认宕机前的高度为最新状态。在这段空窗期,恶意矿池抢先提交分叉链的区块头,轻客户端会暂时把分叉当成主链——质押交易可能在错误的分叉上被确认。而比特币网络出现孤块、重组、深度区块回滚时,轻客户端没有能力识别。
更让我后背发凉的是EOTS。这是Babylon核心创新的可提取一次性签名,用于跨链罚没证明——“if an FP signs two different blocks at the same height, the private key is exposed, leading to automatic slashing”。听起来很漂亮,但Zellic审计发现eotsmanager的GenerateRandomness函数用SetByteSlice时没检查返回值——溢出Secp256k1群阶时,nonce变成非均匀分布。虽然概率低,但一旦发生溢出样本,配合Hidden Number Problem算法就能恢复EOTS私钥。更致命的是GHSA-7mm3-vfg8-7rg6:x/finality模块缺乏域隔离,攻击者可以把PoP签名重放成MsgCommitPubRandList,注入无效的PubRand承诺。
用比特币的最终性当护城河,轻客户端却看不见比特币的分叉——用自研密码学做罚没,EOTS的随机数生成连溢出都没检查。你信比特币的链,还是信这份代码?#baby $BABY @BabylonLabs_io