6.19.23
一、POS是什么?
POS是区块链领域中共识机制下的一种算法,全称为Proof of Stake,算法核心为权益的证明。
二、为什么会产生POS?
因为POW存在缺陷。对于PoW,由于矿场的出现及挖矿设备性能的不断提升,算力开始集中,节点数和算力值渐渐不适配,同时旷工持续挖矿进行的重复性Hash计算没有任何实际或者科学价值,而且还有一个更大的问题,作恶是没有成本的,旷工的恶意攻击并不会对旷工下次记账并获取相关权益(比特币)产生任何影响,鉴于此,人们提出了PoS。
三、原理
参与者预先放一些代币(利益)在区块链上,类似将财产存储在银行,这种模式会根据你持有数字货币的量和时间,分配给你相应的利息。用户只有将一些利益放进链里,相当于押金,用户才会更关注,做出的决定才会更理性。同时也可以引入奖惩机制,使节点的运行更可控,同时更好地防止攻击。
核心公式:计算币龄
Coinage = 币的个数 * 每个币的剩余使用时间
E.G.拥有100个币,共持有30天。则:
Coinage = 100*30 =3000,则:
1、在竞争开始前,你将3000币龄作为筹码下注,并成为记账验证者,
PoW机制会随机选出一个记账者,刚好是你,你开始记账并完成。
2、你的3000币龄被清0.
3、你获得利息=3000 * 5% / 365 = 0.41个币(每被清空365币龄,你将会从区块中获得0.05个币的利息)。
四、实现方式
开始竞争出块记账前,拥有权益的节点将自己的权益放入PoS机制中,同时身份变为验证者,PoS机制根据验证者下注的多少,采用随机的方式选出一个记账者进行出块记账。此处随机并非真正的随机,一般跟下注的权益成正比,谁的权益多,出块难度就越小,获取记账权的概率就越大。如果选出的记账者在一段时间内没有记账,PoS机制重新选择记账节点,当出块完成,开始进入下一轮的记账。
1、简单系统
E.G. Peer Coin(点点币,PPC)、新星币(Nova Coin,NVC)、黑币(Black Coin,BLK)、NextCoin(未来币,NXT).
2、设计系统
(1)基于拜占庭容错的权益证明
(2)基于链的权益证明
E.G. ETH Casper、ADA的Ouroboros.
五、运行机制
1、加入PoS机制的都是持币人,成为验证者( validator)。
2、PoS算法在这些验证者里挑一个给予权利生成新的区块。挑选顺序依据持币的多少。
3、如果在一定时间内,没有生成区块,PoS则挑选下一个验证者,给予生成新区块的权利,以此类推,以区块链中最长的链为准。
六、优缺点
1、优点
(1)可解决POW中算力资源浪费的问题。
(2)性能高。
(3)更加安全。
为什么PoS更加安全?
在指定时间内,在POS体系中,即使你拥有了全球51%的算力,也未必能够进行51%攻击,因为,有一部分的货币并不是挖矿产生的,而是由利息产生(利息存放在POS区块中),这要求攻击者还需要持有全球超过51%的货币量。这大大提高了51%攻击的难度。
在PoS机制下,持有币越多,越容易获得记账权,接近于赢家通吃的感觉,但持有的币越多,越接近于一个诚实的节点,因为破坏整个网络带来的损失也越大,即假设富人不会做恶,毕竟做恶的目标是钱,若你富有,自然就没有做恶的动力。
(4)不用担心算力集中导致的中心化出现。
(5)避免货币紧缩。
2、缺点
(1)币无法发行
币龄的计算公式中,假如一开始挖矿,只有创始区块中有币,也就是说其他矿机是没法参与挖矿的,因为币的个数这个值对他们来说永远是零。
(2)记账权易得
①囤积时间手段
币龄其实就是时间,一旦挖矿者囤积一定的币,很久很久之后发起攻击,这样他也将很容易拿到记账权,需要给每个币设置一个时间上限。(与其安全性矛盾?)
②囤积代币数量手段
币的数量因素会影响记账权的得到与否,很多挖矿者还会囤积代币,给代币造成流通上的缺陷。
目前有些平台引入币龄按时间衰弱的方案来解决这一缺陷(例如:瑞迪币)。
③囤积离线时长手段
④无成本利益问题
解决方法:Csaper协议
原理:对恶意制造者加以惩罚。
实现方式:
[if !supportLists]l [endif]验证者押下一定比例的他们拥有的以太币作为保证金。
[if !supportLists]l [endif]然后,他们将开始验证区块。也就是说,当他们发现一个可以他们认为可以被加到链上的区块的时候,他们将以通过押下赌注来验证它。
[if !supportLists]l [endif]如果该区块被加到链上,然后验证者们将得到一个跟他们的赌注成比例的奖励。
[if !supportLists]l [endif]但是,如果一个验证者采用一种恶意的方式行动、试图做“无利害关系”的事,他们将立即遭到惩罚,他们所有的权益都会被砍掉。
正是利用了这样的对赌协议,帮我们对恶意制造者加以了惩罚,使得我们的区块链尽量保障不会产生分叉。
七、存在的问题
1、链叉问题
(1)什么是分叉?
在原有区块链基础上,按照不同的游戏规则在某个块后分裂出两条区块链,相应的一个币变成两个币。
(2)为什么会分叉?
因为当区块链网络中发生意见分歧、协议改进时,就有可能产生分叉(协议分叉)。还有一种产生分叉的可能是人为地发起分叉攻击,故意造成分叉。在协议分叉情况下,根据分叉后的区块链是否兼容旧的区块链,分为软分叉(限制协议)和硬分叉(两条平行的链)。
解释:因为系统需要升级更新迭代,而在去中心化系统中,升级需要取得链上各节点或者交易方达成共识,如果某项决策有2/3的人不同意,则会出现创造新的协议与分支区块的情况,即分裂。
(3)怎么实现分叉?
①理论上
以两个案例说明
案例一:2016年6月,以太坊项目The DAO被黑客攻击,损失了价值超过6000万美金的ETH,随后以太坊团队通过回滚的方式“追回”了被黑客盗取资产,但一部分社区成员认为此举有违区块链不可回滚、不可窜改的基本精神仍旧坚持维护旧链。自此分裂出以太坊(ETH)和以太经典(ETC)两个独立的区块链项目,对应不同的共识理念。以太坊持币者在分叉后除了原有的数字货币(ETC)外,还可以获得1:1数量对应的分叉币(ETH)。
案例二:2017年8月,为解决比特币交易拥堵、手续费奇高等问题,比特币核心开发团队bitcoincore提出“隔离见证 + 闪电网络”的扩容方案,但另一派则认为应该直接在链上扩容,支持大区块(将区块大小提升至8M)。由于扩容方案理念不一致,于是在UTC时间2017年8月1号,位于比特币区块高度478558,比特币网络发生了"分叉",比特币区块链分裂为BTC以及比特币现金BCH两条链。比特币持币者在分叉后除了原有的数字货币(BTC)外,还可以获得1:1数量对应的分叉币(BCH)。
②技术上
新协议
(4)有什么影响?
①可以通过分叉的形式给区块链更多可行性方案探索与验证的机会。
②分叉对原有投资者来说也是一个利好,除了原有数字资产不变还可以分得相当数量的分叉币,不论分叉币后续成功与否,都基本没有风险。
③分叉过多或频繁分叉会导致社区混乱,社区成员间很难达成共识,同时也有违区块链“不可篡改”的精神。
2、远程攻击问题
3、卡特尔形成问题
即区块链的寡头垄断,由于PoS共识算法是谁“富有”,谁就有更大的话语权,这样少数富有旷工之间的“协调”将导致寡头垄断的形成。
https://blog.csdn.net/qq_38491875/article/details/109045776