共识机制——POS与DPOS探究
POS
介绍
Proof-of-stake(POS)是加密货币的区块链网络达到分布式共识的一种算法。在基于Pos的加密货币中,下一个区块的创建者是通过组合随机选择,财富值,或者是年龄等条件选择出来的。相反的是,基于Pow的加密货币(比如比特币)是通过破解hash谜题来决定区块的创建者。
区块选择方案
- 随机区块选择
Nxt 和 BlackCoin 使用了随机的方式来预测下一个区块产生者,通过使用一个公式,这个公式选择用户股份hash值的最小值。argmin hash(stake)。 因为股份是公开的,所有的节点都可以计算出相同的值。
- 基于币龄选择
依据币龄进行选举,币龄=币量*持有天数,获得激励后,币龄会清空
潜在问题与解决方案:
-
账本分叉问题
在POW中账本分叉时必须选择一个方向,而POS中通常选择全都要,同时POS分叉失败几乎是零成本不浪费任何算力
-
长程攻击
由于产生区块并不要需要算力,就容易攻击者恶意修改历史记录,该问题通过惩罚机制来避免 -
冷启动问题(Initial Distriction Problem)
主要是指代币的流通性问题,通过POS和POW混合来解决,早期使用POS后面加入POW -
币龄累加攻击
由于有了币龄的收益,币的流通性变差,持币者更倾向于长久持币,使得在线节点非常少,可以通过:1.限制最大币龄 2. 直接消除时间的影响
DPOS
介绍
DPOS(Delegated Proof of Stake ,委任权益证明机制),它可以由持币人进行投票产生超级节点代理人进行验证和记账
要求
在DPOS机制下,算法要求系统做三件事:
- 随机指定生产者出场顺序;
- 不按顺序生产的区块无效;
- 每过一个周期洗牌一次,打乱原有顺序;
潜在问题
除了POS有的问题外,还要考虑以下两个问题:
- 传输速度问题:受制于节点间的物理性能
- 持币人的投票进度非常缓慢,造成无法上线