帖子目录
权益证明的起源和所对针问题
共识机制对于分布式加密货币网络的成功至关重要,因为它们使它们能够在没有中央权威的情况下运行。
工作量证明共识机制 需要消耗大量的能源,导致无法支持大规模交易,且交易费变得很高。
![工作量证明机制对比权益证明机制](https://blockchainworm.com/wp-content/uploads/2022/08/PoWvsPoS-300x141.png)
权益证明(Proof of Stake, PoS) 就是其中的一种替代方案。
我们了解一下权益证明的发展过程。
在 2011 年 7 月 11 日,一个名为 Quantum Mechanic 的人首次提出权益证明的概念。
其中的方案,诸如由持币量代替算力权重、委托权益、奖励分配等等,并形式权益证明的起源。
权益证明共识机制的发展可以分为三个阶段。
现在就让我们来了解一下这三个阶段的不同点:
第一个阶段是以点点币 Peercoin 为代表。使用工作量证明+权益证明的混合共识。
点点币是在 2012 年 8 月 19 日,首个基于权益证明共识开发的区块链项目。
共识里以类似工作量的方式生产区块,需要参与区块生产的节点进行一定量的哈希值计算。
点点币的共识协议中,引入了“币龄” (Coin Age)的概念,通过币龄的多少来选择生产者以达到共识,并且采用权益的激励方式。
第二个阶段则是 Nextcoin (Nxt) 的纯权益证明共识,以代币数量当做权益证明。
在 2013 年 9 月 28 日,一个账号名为 BCNext 的人启动 Nextcoin 100% 纯权益证明的众筹(Fundraise)项目。
纯权益证明共识机制的挖矿只需要抵押一定量的资产,其共识机制由节点所持权益(持有数量乘以持有时间)决定区块生产者。
权益比例越高,被选为区块生产者的概率也越大。
区块生产者选举过程中不需要节点进行哈希值计算,因此不需要消耗能源来进行计算。
因此,权益证明机制中对质押代币的要求使得 51% 攻击的成本提高,从而降低 51% 攻击的可能性。
然而,在权益证明机制中会产生新的攻击手段,例如无利害(或称为无成本利益)问题。
而第三阶段又回复到币龄的概念。
针对纯权益证明共识机制所引起的问题,其引进质押与惩罚机制。
这新型权益证明共识是以以太坊 Casper 为代表。
区块验证者以质押代币的形式参与以解决无利害攻击,并对不诚实节点进行惩罚来保证系统的安全性和一致性。
其共识通常将权益证明作为共识算法的一部分。
以权益证明的方式来生产区块,使用拜占庭容错(Byzantine Fault Tolerance, BFT)算法进行区块验证。
它们的共同点是实行“权益经济”,节点能够通过参与网络共识,根据持有权益的比例获取区块奖励。
∮ 无利害问题与惩罚机制
当一个权益证明共识系统因为网络延迟、恶意攻击或其他原因出现分叉时,权益证明矿工(验证者)可以在“没有任何成本”的情况下,同时在分叉链和主链时挖并同时出块,从而有可能获取“所有收益”。
虽然这违反了共识协议,但是,矿工(验证者)在主链和分叉链同时出块所付出的成本几乎可以忽略。
而最终胜出的链可为他们带来可观的收益,吸引了矿工们(验证者)争相投入。
为了解决上述无成本利益问题攻击,Casper 协议要求矿工(验证者)通过质押代币的方法参与挖矿。
这部分质押代币就是用来保证矿工(验证者)的诚实行为,如果矿工(验证者)试图在两个分支上广播区块,那么他的质押代币将被没收。
如果矿工(验证者)成功创建和广播了合法区块,他将获得区块奖励和交易手续费。
这种利用抵押与惩罚机制来避免无利害问题,节点的安全与共识完全由矿工(验证者)自行维护。
∮ 拜占庭容错机制如何达成共识
拜占庭问题是一个共识问题,拜占庭帝国军队的将军们必须全体一致的决定是否攻击某一支敌军。
![拜占庭容错机制达成共识才能获胜](https://blockchainworm.com/cn/wp-content/uploads/sites/2/2022/08/byzantine-fault-tolerance-cn-300x221.png)
由于这些将军都是分隔开来的,并且叛徒存在于将军当中。
叛徒可以欺骗某些将军采取不同的行动;或者迷惑某些将军,使他们无法达成共识。
只有在达成共识后,采取一致的攻击行动才能获胜。
拜占庭系统的假设即分为忠诚(诚实)和背叛(恶意)的节点。
背叛节点为了阻挠真实信息的传递及共识的达成,通常以下列的恶意方式回应:
- 未回复结果。
- 以错误的信息回应。
- 传递不一致的信息。
此外,拜占庭系统的假设也包括了网络系统中的缺失:
- 节点的反应可以是任意的,节点之间也可能共谋。
- 节点之间的错误是不相关的。
- 节点之间通过异步网络连接,网络中的消息可能丢失、错乱、延时到达。
- 节点之间传递的信息,第三方可以知晓 ,但是不能窜改或是伪造。
以上的模式,概括了现实网络中由于软硬件错误、网络阻塞及恶意攻击导致的各种未知反应。
而用于解决这个问题的算法统称拜占庭容错算法。
在拜占庭容错共识机制中,网络中节点的数量和身份必须是提前确定好的。
每一次节点的进出都需要对网络进行初始化,故其无法像工作量证明共识机制那样任何人都可以随时加入/退出挖矿。
因此采用拜占庭容错算法的网络无法承载大量的节点,其上限为 100 个节点。
主节点广播消息给其它备份节点,只要多数的诚实节点确认消息,就可以达成全网共识,即表示交易成功。
也就是说,拜占庭容错机制就是一种采用“少数服从多数投票制度”来完成记账的共识机制。
即少数服从多数的原则进行表态,如果超过66%的普通节点表示同意主节点方案,则达成共识。
如何通过权益证明机制来挖矿?
权益证明机制需要拥有权益(加密货币)来争取生成新的区块。
![权益证明机制以币龄来生成新的区块](https://blockchainworm.com/cn/wp-content/uploads/sites/2/2022/08/proof-of-stake-flow-cn-300x189.png)
- 想要参加挖矿就必须拥有或者购买一定数量的代币。
- 权益证明共识机制下的开采节点称为“验证者“。在竞争开始前,竞争者会将其代币作为质押,而成为记账验证者。
- 权益证明机制引入了“币龄“的概念。该机制会以质押的权益与币龄来选择验证者,谁的权益多,谁获取记账权的概率就越大。
- 验证者验证所有交易并发布新的区块。一旦网络上的节点验证了新区块的准确性,它就会被添加到区块链中。
- 验证者也会拿回质押的代币和奖励,其币龄也会重置为 0。这使得他在下一次验证者选举中处于“低优先级“。
- 然后就进入新一轮的验证者竞争。
∮ 币龄的计算
权益证明共识机制以随机的方式选择下一个区块的验证者,币龄越大,争取记帐权的机率越高。
您必须至少持有该代币 30 天才能成为记账验证者,而每一个代币每天都会产生一币龄。
币龄也会用来计算在生成新区块所能获得的奖励。
币龄的计算方式为:
币龄 = 代币质押的天数 × 质押代币的数量
假设您拥有 100 个代币,持有代币 30 天,因此您持有的币龄 = 100 × 30 = 3,000。
这个时候,如果您生成一个权益证明区块,那么您的币龄就会被清空为 0。
而您将会获得该币龄相对应的利息,其利息奖励公式为:
利息 = 币龄 × 该代币的年利率 ÷ 365
比如说您的质押代币的年利率是 5%,那么您可以获得 3,000 × 5% ÷ 365 = 0.41 个代币的利息奖励。
将币龄重置为 0 将避免持有大量质押代币的节点垄断区块链的问题,从而提高网络安全性。
质押代币的年利率并非一成不变,每种代币的年利率都不同且每日都会变动。
例如点点币 PPCoin 的年利率是 1% ,雅币 YaCoin 是 5%,而宇宙币 CosmosCoin 则是 1.5%。
权益证明的优点是什么?
节省能源:
由于节点是以代币质押方式达成共识并产生新的区块,因此其所消费的能源非常的少。
去中心化:
其奖励与权益数量成比例,且最低质押门槛低,大多数代币持有者都可以加入,从而促进去中心化。
安全性高:
因为攻击攻击一个网络都需要一组新的质押代币,且必须拥有 51% 的权益,从而降低51%攻击的可能性,导致一个更安全的网络。
权益证明的缺点是什么?
去中心化减弱:
拥有拥有大量代币的人,他们将有更多机会成为验证人和获取奖励。 随着时间的推移可能導致網路铸造区块变得集中。
新兴共识机制:
由于权益证明是比较新的技术,在应用过程中容易产生一些新的问题。例如无利害攻击,长程攻击等。
总结
总体而言,股权证明的发展取得了大幅增长,得到众多参与者的支持。
我们会在下一个帖文中探讨什么是委托权益(Delegated Proof-of-Stake , DPoS)和其特点。