共识机制——POS与DPOS探究
共识机制是分布式应用软件特有的算法机制。通过特殊节点的投票,在很短的时间内完成对交易的验证和确认;对一笔交易,如果利益不相干的若干个分布式节点能够达成共识,我们就可以认为全网对此也能够达成共识。
POS
介绍
Proof-of-stake(POS)是加密货币的区块链网络达到分布式共识的一种算法。在基于Pos的加密货币中,下一个区块的创建者是通过组合随机选择,财富值,或者是年龄等条件选择出来的。相反的是,基于Pow的加密货币(比如比特币)是通过破解hash谜题来决定区块的创建者。
区块选择方案
- 随机区块选择
Nxt 和 BlackCoin 使用了随机的方式来预测下一个区块产生者,通过使用一个公式,这个公式选择用户股份hash值的最小值。argmin hash(stake)。 因为股份是公开的,所有的节点都可以计算出相同的值。
- 基于币龄选择
依据币龄进行选举,币龄=币量*持有天数,获得激励后,币龄会清空
潜在问题与解决方案:
-
无利害攻击(Nothing at Stake)
在POW中账本分叉时必须选择一个方向,而POS中通常选择全都要,同时POS分叉失败几乎是零成本不浪费任何算力,这会导致链长时间维持分叉的状态。
-
长程攻击
在长程攻击中,攻击者首先获得一些私钥,只要这些私钥在历史上曾经获得了足够多的股权,便可以从这一时刻开始分叉进行 51% 攻击,制造一条分叉链出来。而 PoS 的出块不需要进行工作量证明,攻击者可以短时间内让重写历史的分叉链追赶上原本的主链,从而造成PoS链的分叉和防篡改性被打破。 -
冷启动问题(Initial Distriction Problem)
主要是指代币的流通性问题,通过POS和POW混合来解决,早期使用POS后面加入POW -
币龄累加攻击
由于有了币龄的收益,币的流通性变差,持币者更倾向于长久持币,使得在线节点非常少,可以通过:1.限制最大币龄 2. 直接消除时间的影响
DPOS
介绍
DPOS(Delegated Proof of Stake ,委任权益证明机制),它可以由持币人进行投票产生超级节点代理人进行验证和记账
要求
在DPOS机制下,算法要求系统做三件事:
- 随机指定生产者出场顺序;
- 不按顺序生产的区块无效;
- 每过一个周期洗牌一次,打乱原有顺序;
潜在问题
除了POS有的问题外,还要考虑以下两个问题:
- 传输速度问题:受制于节点间的物理性能
- 持币人的投票进度非常缓慢,造成无法上线