技术解码 | 谈 PoS, 怎能不懂 Nothing At Stake ?

Cobo Global
Cobo Global 机构得得号

May 24, 2019 Cobo 是一家全球领先的数字资产托管和区块链技术提供商,总部位于新加坡。

摘要: PoS(Proof of Stake)本质上是一种持有一定币量而获得挖矿资格和收益的共识协议,在最初 Proof of Stake 2013年被提出来后, Nothing At Stake (无利害关系)的问题和 Long-Range Attack(长程攻击)问题是经常被谈论的 Proof of Stake 共识协议的挑战。

PoS(Proof of Stake)本质上是一种持有一定币量而获得挖矿资格和收益的共识协议,在最初 Proof of Stake 2013年被提出来后, Nothing At Stake (无利害关系)的问题和 Long-Range Attack(长程攻击)问题是经常被谈论的 Proof of Stake 共识协议的挑战。想更深入了解 PoS?知道是什么,还需要了解为什么。

今天我们先来看看 Nothing At Stake problem (无利害关系)。

Nothing At Stake, a situation where someone loses nothing when behaving badly, but stands to gain everything.

Nothing At Stake 问题的本质是 “作恶无成本,好处无限多”。具体来讲,是当在 PoS 共识系统出现分叉 (fork) 的情况时 ,出块节点可以在”不受任何损失“的前提下,同时为多条链出块,从而有可能获得“所有收益”。

这就好比有个窗口,排队既可领钱,当只有一个窗口时,大家会乖乖的排队,每人都有,其乐融融。

但是当第二个窗口出现时。大家知道,最终这两个窗口有可能只有一个领到的是“真钱”,另外一个的钱会变成废纸。但排队的你不知道哪个窗口会是发“ 真钱” 的窗口。所以你会怎么做呢? 你可能会下个跑腿订单帮你分身同时去另外一个窗口排队。

但是,在实际 PoS 出块节点时,此时的分身无成本,只是计算机做一个运算而已。

这会造成什么乱象呢?

聪明的出块节点会有动力产生新的分叉,支持或发起不合法交易,其他逐利的出块节点会同时在多条链(窗口)上排队出块支持新的分叉。随着时间的推移,分叉越来越多,非法交易,作恶猖狂。区块链将不再是唯一链,所有出块节点没有办法达成共识。

另外,无利害关系问题还让双花攻击更容易。不像 PoW 51% 的攻击那样,PoS 的攻击节点只需要多一定的算力 (有时候仅仅1% )就有可以进行攻击。例如一个质押总量占流通币量只有30%的币,攻击成本相比 60% 质押率的网络更容易攻击。

有多容易呢?如下图所示,仍然是 A、B、C 三个出块节点,假如 A是攻击节点,它在产生分叉时创造两笔交易。一笔将X个币发给自己的一个钱包地址,同时在另外一个分叉上将X个币发到交易所。B、C出块节点因 Nothing At Stake 所以同时会在两条分叉链上出块。当交易被交易所确认后, A 将 X 个币出售兑换成隐私币种,移出交易所。之后 A 通过增加质押币量,或创建多个其他出块节点的方式提升出块权重,只在分叉链继续出块。此时最长链很明显,且逐渐拉开差距,会最终成为最长链,A 成功将 X 个币双花。

为什么 Nothing At Stake 问题仅仅是 PoS 的挑战? PoW难道不会有吗?

PoW机制天生避免了这个问题。因为在出块时,矿工会付出机会成本 — 算力资源。如果分叉出现, 矿工需要慎重的选择在哪条链上出块,一旦选错,付出的算力成本则没有收益。矿工也不会选择在两条链上均分算力,这样只会将原链的出块概率缩小一半,可能得不偿失。

那么如何解决 Nothing At Stake问题 ? 

一般的策略都是后置惩罚,既如果被判为恶意出块行为,则会将 stake 的一部分或保证金作为罚金。然而,所有的惩罚和监管措施都只是事后,而不像 PoW需算力出块的隐形约束直接。

我们来看看 Tezos 是怎样使用惩罚机制来避免 Nothing At Stake 问题的:在 Tezos 链上参与挖矿需要保证金,这部分保证金就是用来保证“面包师” (baker)的诚实行为,如果面包师试图在两个分支上广播区块,那么他的保证金将被没收。如果面包师成功创建和广播了合法区块,他将获得区块奖励和交易手续费。这种机制用金钱奖惩来避免双挖矿问题,节点的安全由面包师自行维护。

除了后置惩罚,至今的解决方案,都是要牺牲一定程度的性能、去中心化原则,合约机制的设计也更复杂。

这种复杂性体现在什么地方呢?

在 PoS 中,节点的角色和职责众多:除了和PoW中类似的出块节点 (Miner), 还有验证节点(Validator) 为区块背书 ,守护猎人(State Guardian) 抓“坏人”。

守护猎人的 stake 有一定的锁定期,一般是需要X个区块之后才可以拿到质押的币,这样可以给守护猎人足够时间来抓住非法节点。

此外,虽然项目方可以通过前置节点筛选选择信任的节点,但是中心化的问题依然不可避免:

  • 如果网络发展迅速,利益超过了组织的信誉,那么,被选出的实名节点不一定仍然可信;

  • 节点是否有足够的动机或技术能力去保证自身的反攻击能力,从而保证网络安全;

  • 节点数量有限,伸缩性不够,仍然是中心化。

(作者:Cobo钱包,内容来自链得得内容开放平台“得得号”;本文仅代表作者观点,不代表链得得官方立场)

链得得仅提供相关信息展示,不构成任何投资建议
本文系作者 Cobo Global 授权链得得发表,并经链得得编辑,转载请注明出处、作者和本文链接

更多精彩内容,关注链得得微信号(ID:ChainDD),或者下载链得得App

分享到:

相关推荐

    评论(0

    Oh! no

    您是否确认要删除该条评论吗?

    分享到微信