背景
PoS 方案,因其启动快速,资金成本与协调成本低,消耗能量更少等特性,被新公链广泛采用,但是在种种安全假设上,PoS 仍与 PoW 有较大差距,并存在以下种种问题:
- 初始启动问题:一开始难以获得去中心化且足够高市值的资产作为安全保证,PoS前期筹码集中,所以导致链本身也很中心化。
- 安全自指涉问题:使用协议发行的代币决定协议代币的发行,存在可能存在安全隐患,并且由于激励方式问题,可能进一步加剧筹码集中。
- 由于底层也基于PoS,重质押的滥用将影响PoS链的底层安全。
此外,对于PoS还存在多种攻击方式,常见的攻击如下:
- 无利害攻击:验证人在同一区块高度签名多个不同的区块,使得区块无法敲定。
- 长程攻击:通过购买私钥等方案,获取在历史某个时刻超过 67% 的权益,构造一个分叉链。
- 审查攻击:验证人不打包新增质押的交易。
- 懒惰攻击:验证人不参与区块验证,影响链的活性,超过 34% 将使得链停止。
- 验证人签名不合法的区块。
一个想法是使用 PoW链产出的代币作为质押代币,为PoS链提供安全性,并通过将PoS链锚定在PoW链上,以规避种种问题。使用 CKB 或者 NervosDAO 的衍生CKB作为质押是可行的,并且CKB有图灵完备的脚本可以检查 PoS 质押的正确性,但目前 CKB 的市值,作为质押来源,难以提供足够的安全性。
BTC-Pegged PoS
Robin Linus 提出了一种质押 BTC 发起 PoS 链的方案,叫 Stake Chian,该方案后续由 Robin Linus 与 Babylon 合作进行了扩展。
如果使用 BTC 作为质押代币的来源,以及定时将检查点打到 BTC 上,那么可以解决长程攻击,并抵抗一定程度的区块重组,因为检查点被部署在 BTC 上,而 PoW 不是主观的;对于审查攻击,因为质押交易发生在 BTC 上,审查BTC 交易的难度也远大于所有的 PoS 链。
对于懒惰攻击和不合法区块签名的攻击,首先验证人将无法获得对应区块的奖励,如果可以证明其签名了不合法的区块(有超过 67% 的权益同意),那么还可以扣除其已经累积的Staking奖励。
对于无利害攻击,则可以通过可抽取的一次签名(EOTS)解决,由于 Schnorr 签名的特性, 对于不同的消息,如果采用相同 Nonce 签名,将导致私钥泄露,那么可以使用这一特性抵抗无利害攻击。规定某个高度签名的nonce,如果验证人签名了矛盾的信息,将导致私钥泄露,并使得其质押被罚没。
但是目前的 PoS 共识算法的 equivocation,除了能在同一高度出两个区块外,验证者还可能对两个矛盾的分支在不同高度签名,而这无法简单由 EOTS 解决。
为了解决这个问题,Babylon提出了一种方案,即将 EOTS 作为 Finality gadget 附着在任意已有的 PoS 系统上,而不是直接参与共识过程,即:
- 验证人在BTC上质押指定 Schnorr 地址。
- Schnorr 绑定一个已有共识算法使用的签名算法,如BLS,ed25519。
- 验证人首先由共识算法规定的签名算法参与共识,并达成敲定条件。
- 在由原本的共识算法敲定后,进行 Schnorr 签名,在获取67%以上权益签名后,达成Finality。
这样的好处是,任何原有的 PoS 系统将不用做任何修改,而只需要补充一个 Finality Gadget 即可由 BTC 质押保证安全性。
另一个问题是限制条款问题,如果只是披露私钥,如果验证人与大矿工合谋,则仍然可能导致对PoS攻击后无法罚没。为了避免这个问题,质押应该只能被烧掉,利用限制条款能解决这个问题,但目前限制条款无法在BTC上使用,Babylon 使用了一个多签委员会用于模拟限制条款,理论上使用门限签名网络也可以。
相比合并挖矿的优势,在合并挖矿中,BTC大矿工可以对合并挖矿链进行无利害攻击,而在 BTC-Pegged PoS中则无法实施相关攻击。
Babylon的完整方案
Babylon使用了两种 BTC 脚本:
- 质押脚本,存在三个解锁路径
- 时间锁路径,到期后质押者可收回质押。
- 解质押路径,由质押者和多签委员会签名,输出到解质押脚本。
- 罚没路径,由质押者,受委托者和多签委员会签名,输出到零地址。并且质押者必须提前发布对这个交易的签名,质押才能生效。所以质押是支持代理的。
- 解质押脚本
- 时间锁路径,到期后质押者可收回质押。
- 罚没路径,由质押者,受委托者和多签委员会签名,输出到零地址。并且质押者必须提前发布对这个交易的签名,解质押才能生效。
BTC链上存在多种交易:
- 质押交易:一个输出是质押输出。
- 解质押交易:一个输入是质押输出,一个输出是解质押输出
- 罚没交易:一个输入是质押或者解质押输出,对应的BTC转移到销毁地址。
- Checkpoint 交易,在达成Finality后,需要将区块以及验证人签名合并哈希,使用交易提交到BTC链上进行锚定。
CKB 使用该方案的可能性
由于Finality Gadget的设计,该方案可以对接 Overlord,并使用 CKB 作为 BTC 与诸多 BTC- Pegged PoS 链的 Hub 层和中间层。
对于需要同构绑定的链,可以将 CKB 的共识算法修改为 Overlord,使其成为由BTC质押保护的 BTC Layer2。
对于需要账户模型的链,可以使用 Axon,使其成为由 BTC 质押保护 EVM兼容 的 BTC Layer2。
如果未来 CKB 市值持续上升,可以推出使用 NervosDao 衍生 CKB 质押的 PoS 链。