Time:2022-09-15 Click:385
以太坊即将合并,完成从工作量证明(Proof-of-Work)到权益证明(Proof-of-Stake)的协议升级。合并预计将在周三晚上/周四凌晨进行。
01 POW(Proof-of-work,工作量证明)
工作量证明最早是一个经济学名词,指系统为达到某一目标而设置的度量方法。简单理解就是一份证明,用来确认你做过一定量的工作。早在比特币出现之前就已经有人探索。
哈希运算是一种最常见的工作量证明机制,即通过计算碰撞出符合条件的哈希值来确定系统做过一定的工作量,此外,你也可以利用卷积求导、大质数分解这些复杂的运算来达到工作量证明的目的。
挖矿即找到合适的哈希值,找到合适的哈希值消耗的计算、内存、电力等能源即为工作量。挖矿本质是一个数学计算过程,有一个“难度值”变量在不断变化,以维持BTC网络10分钟出一个块。难度值可调整。
上面这段话可以解释为什么过去有那么多山寨币,因为只需要稍微改一下POW参数就可诞生一种新的出块时间的山寨币,但其本质和BTC并无任何区别(没有任何智能合约应用,没有任何实际拥有),然后大肆宣传欺骗小白。
ETH上的智能合约,也可通过仅修改一些参数值来发行新币,但没给出实际的应用。先发币再说项目,这就是为什么2017 ICO项目,在市场热度下如雨后春笋,但最后落得一地鸡毛。
02 POS (Proof of Stake)股权证明机制
纯粹的POS已经在市场上被淘汰,不多说。目前留存的都是POS的变种。比较有名的是EOS的DPoS (Delegated Proof of Stake) 授权股权证明机制和Polkadot的NPOS (Nominated Proof of Stake) 提名股权证明机制。都是持币者把自己的币质押给节点,节点负责出块维护网络,如果你投的节点有块被纳入了最终的链上,你就能获得符合投票比例的分红,这个分红相当于比特币网络里的出块奖励。
这和做生意投资很像,有人融资做事,你投,赚了一起按比例分,亏了按比例亏(如果不出块,或者验证了错误的块,网络会没收这个节点的币),也就是在POS里面,正确很重要,认真干活,正确做事才能拿到网络奖励。
两相比较,POW像古时的比武,谁算力大谁就更容易碰出随机值赢得比赛获得奖励。POS则是文明人的游戏规则,大家合作共赢,共享盛宴,不管投给节点的票多还是少,只要是能为网络持续工作的节点,都会获得网络的奖励。
总结:POW机制是干的越多,得到越多;POS机制是持有越多,获得越多。
无需多言,合并引入了许多新的术语和观点,我们都要熟悉了解。在本周文章中,我们将进一步迈向后合并时代,并对两个即将在行业对话中出现的概念展开阐述。
罚没 vs 惩罚(Slashing vs Penalties)
大多数人需要花多少时间来适应PoW的逻辑,对此我们似乎已经不记得了。自然,我们也要花上些时间来理解权益证明PoS。权益证明的前提是,通过精心设计的激励机制(奖惩结合),你可以提供与工作量证明相同的功能,而无需依赖能源密集的计算。众所周知,随着权益证明的出现,以太坊系统将变得更加复杂。PoS的关键是奖惩机制,它精确地平衡了验证者的利益,以符合一个公平、去信任、抗审查的加密经济系统。
那么这些奖励和惩罚究竟是如何分配的呢?验证者被委托的职责必须得到及时、适当的履行。这些职责包括为信标链提议一个区块,这是最大的奖励来源;尽管单个质押者每年只能获得大约6次这样的奖励,但却占质押者奖励的12.5%左右。还包括证明区块的职责,证明区块会带来更小但更频繁的奖励,占质押者收益的比例也更大,总共约84.4%。提议区块的机会是概率性的,能够对验证者收益带来显著差异,而证明区块是更有规律的,并且每个epoch(32个slot)上的所有活跃验证者都只有一次证明机会。最后,约3%的收益来自参加同步委员会。这些奖励是用新铸造的ETH支付的。
年均预计区块提议数量(424,043个验证者)
如果说以太坊的提议和证明奖励是胡萝卜,那么惩罚和罚没就是大棒。“罚没”和“惩罚”是经常互换使用的。然而,它们的意图和影响却截然不同。
惩罚措施是为了激励验证者及时履行职责而设定的,并不是为了惩罚恶意行为而设计的,目的只是惩罚一直不活动无证明产生的验证者。关键一点是,错过提议并不会受到任何惩罚,付出的代价只是机会成本。然而,这却拉大了验证者的预期收益差异,特别是因为大多数验证者肯定会由于停机、网络问题、客户端bug或其他问题而时不时地未能履行他们的职责。
罚没只适用于那些会威胁到以太坊功能和完整性的行为。如果用户为一个slot(槽)提议两个冲突区块,那么他们在以太坊上的质押资金可能会被罚没,当用户错误配置冗余质押服务器时会出现这样的错误。最后,如果质押者不能以正确和及时的方式证明检查点,他们可能会被罚没,尤其是当他们的证明历史很糟糕的时候。此外,如果一个质押者在其他罚没事件发生的18天内遭到罚没,他们可能会受到关联惩罚,并损失更大比例的资金。例如,如果3%的验证者受到罚没攻击,在Bellatrix硬分叉后,每个验证者可能被罚3 × 3% = 9%的质押ETH(最低32 ETH质押额时为2.88 ETH),其中3是一个常数。尽管每个质押者都应该关注罚没,但如果他们举报见证了罚没的发生,就会得到奖励,称为举报人奖励。然而,并不会出现通货膨胀,因为他们所见证的罚没总是会消耗他们更多的ETH。
最终确定性
PoS的设计旨在实现的最关键的变化之一是为以太坊区块链带来最终确定性(Finality)。最终确定性(Finality)是一个属性,一旦交易被包含在区块中即被视为最终交易。最终确定性(Finality)使用户对其交易的经济确定性更加确定无疑。在PoW下,更长的链为用户提供了更大的信心,因为还原历史交易会变得越来越难。但是,接收方可以自己决定自己的“最终确定性(Finality)”。例如,交易所Kraken目前需要20个区块确认以太坊存款(14秒的区块时间下约需5分钟)。PoW机制下的用户必须使用这种概率函数来降低交易回滚的风险,以太坊则将在给定的一段时间后为最终区块提供更强大的定义。
我们可以很容易地使用叔块上的数据将其与以太坊当前的PoW前景进行比较,叔块包含有效的PoW解决方案,但在网络传播的竞赛中败下阵来。尽管如此,它们在使用以太坊启动的叔块机制解决PoW问题时所付出的努力和精力得到了回报。以太坊的叔块率允许我们(稍有不精确)衡量用户在进行交易时可能出现的不确定性。从本质上说,用户可能会在他们认为是最终交易的交易中交换高价值的商品,结果发现他们的交易只是叔块交易的其中一个,还没有进入到主链。
以太坊叔块率
叔块是以太坊设计的一部分,以达到快速的出块时间。此外,叔块通过其矿工完成的工作对主链的安全性做出贡献,即使叔块中包含的交易可能没有包含在区块中。这通常不会产生问题,因为交易会直接返回到下一个区块中可用的交易池。然而,对于想要最终确定其交易确实是最终交易的商人来说,这样并不理想。
虽然没有PoW链能以完全相同的方式提供最终确定性(Finality),但一旦以太坊过渡到权益证明,将能够提供非常强大的保证,确保一个区块(以及其中包含的所有交易)将是最终的。当至少三分之二的活跃验证者确认了2个epoch时,以太坊信标链(共识层)就达成了最终确定性(Finality)。Epoch时长为6.4分钟,包含32个slot,每个slot间隔时间12秒,所以最终结果大约在12.8分钟之后达成。之所以选用这些精确的设计特性是为了在网络的去中心化和最终确定性(Finality)的合理等待时间之间进行最优化权衡。
想要在合并后的以太坊中还原一个最终确定的区块,将会有三分之一的验证者必须遭受罚没失去他们的全部质押资金,这为用户提供了一个强大的最终确定性(Finality)。然而,这种强化的确定性伴随着代价:12.8分钟比大多数交易所和其他用户在以太坊PoW实践中确定最终确定性(Finality)的约5分钟要长得多。但最终,最终确定性(Finality)是推动权益证明和以太坊向前发展的设计考虑因素之一。减少“单槽最终确定性(Finality)”下的最终确定性(Finality)时间是以太坊发展路线图上一个活跃的研究领域。
POW vs POS
01 公平性
POW公平的把记账权分派给节点,但容易形成算力集中化,财团抱团,个体难参与。POS有很多变种,但波卡的NPOS保证了节点被随机性分散化组合,比POW更加公平。
02 网络性能
比特币和以太坊的拥堵已经有目共睹,但是在区块链逐渐崛起的时代,如果往后需要更多的区块链,怎么保证吞吐量和安全?
(1)吞吐量:POS系统可容纳的吞吐量比POW链高。
因为POS共识协议并不以浪费一些现实能耗为基础,区块时间和协议就可以更快的发生,这一点的逻辑是:POW面临的挑战的解决方案是不必在确定一个块之前就找到,因此创建一个块的开销可以减少到只需要创建和分发块的成本。
(2)安全性:POW的安全性靠算力,POS的安全性主要靠代币分散化持有且绑定。
POS系统的安全通过绑定的资产保护,而不是类似POW需要花费很多消耗(花费流动性机会成本以及消耗电力)。POS的工作方式是选择一组具有已知经济身份的验证者,锁定代币,以换取获得“验证”或参与共识过程的权利。如果他们发现执行了错误的程序,就会被惩罚:部分或者全部的锁定代币会被销毁。这对不良行为提供了很好的抑制作用。POW没有类似的奖惩机制,仅仅是损失算力(电力)成本而已。
破坏POW系统需要掌握51%以上算力,目前,排名前三的矿池算力加在一起已经超过51%,但攻击从未发生过。因为只要发生一次51%的攻击,比特币网络的金字招牌“可信度”就荡然无存,币价跳水,这对靠挖矿获得币而从而获得收益的矿工及其不划算,何必自己砸自己。也就是说攻击的代价会极大可能的高于诚实挖矿,所以都选择不攻击,这是个博弈的问题。(实际高于30%就可以发起攻击,但是高于51%就是铁定会攻击成功)。
传统POS链的共识需要2/3以上的验证者组同意所有发生在layer1上的事务:所有作为链状态机一部分的逻辑都要被认可。即,每个人都需要验证网络所有的信息。然而,验证者可能基于收到异步网络不同的信息,对系统有不同的看法。这让对链最新状态达成一致变得困难。
意思是说,POS的吞吐量更高,更加节能,创建一个区块消耗的时间成本和网络资源成本更低。但是POS需要全网2/3的验证者达成共识才能确定网络的最新状态,验证者们可能收到异步网络的不同信息,对系统的最新状态看法不一致,这就会导致网络的最新状态不容易确认。
这也是波卡极致分片架构设计的考虑点之一:不需要每个节点参与者验证每一笔交易,只需要每个节点参与检查一部分交易即可。每个节点参与者检查交易的某些子集,就使得拜占庭中有了足够的冗余,任意恶意的参与者就无法潜入无效的交易中,至少在没有被发现并受到削减的情况下,这些交易不能被还原,即在那些交易被恢复的情况一定会被发现受到惩罚。
另外,很多人喜欢拿以太坊和波卡做对比,从技术上来说,波卡是更新的一代,自然更高级。但客观的看待以太坊,它在最初创立的时候就想用POS共识,但当时POS共识还不如现在成熟,且POW的可靠性高,所以选择了后者,后者正是由于其对出块的时间的限制,网络转账更可靠,更能减少恶意交易,这和利用POW算法来杜绝垃圾邮件是一个道理。
与此同时,需要注意的是,POW是概率性共识,可能网络中的两个节点同时碰撞出同一个正确的哈希值,这个时候就会出现我们说的硬分岔(概率性终态确定)。
POS的共识,是确定了参与验证的节点集合,这些节点采用的是类PBFT共识,类似于有序轮换者出块。变种的波卡的NPOS是需要首先超过一半的签名才算有效,签名者不可以重复,这保证了每一轮只可能有一个节点获得出块权,是一种确定性的共识 。
由此可见,一般POS的安全性是低于POW的,因为验证人集合已知,而且数量不多,不像POW需要足够算力才能攻击,POS中联合验证人中一定比例的节点作恶就能攻击。那么如何提高POS的安全性呢?
(1)惩罚机制:即消减(slash)或者没收(chill);
(2)与多种算法协作,取长补短:好比波卡的分片和POS结合在一起相互协调,利用架构的交互性,集中资金保护所有链:允许一条平行链的Host可以为很多平行链提供完全的安全保证,而不是部分资金保护部分链,形成资金低效和浪费的状态;甚至不需要所有参与者检查所有的状态转换。同时又结合了随机选举验证者节点组和GRANDP&BABE来保证网络整体运行安全。
综上,在网络性能方面,POS的吞吐量更高,安全性能需要多种算法协作。
03 资源利用
POS算法几乎没有资源消耗,唯一消耗的是网络带宽资源。POW挖矿经历了CPU/GPU/ASIC芯片一系列的迭代,这些都是为了更加高效地挖出币,过程中消耗大量电力、算力、以及硬件资源,可以说是资源浪费。但换个角度,POW挖矿形成了一套完整的产业链:水电站、网络、矿机制造等等,只是网络找到合适的哈希值实际上并没有其他的作用,仅仅是挖到了币。
04 去中心化
在波卡的NPOS出现之前,无论是POW还是POS,都会逐渐演化出权利集中的问题。传统POS存在大户互相投票,互相推举为大节点的现象,让老百姓参与的机会少;且由于没有民主公投这样的明确网络问题解决机制,就形成了和POW矿池挖矿类似的价值回路必须要通过外部输入,其安全性不直接与使用者相关,而是要通过大节点或者矿工这类媒介来完成(不过笔者以为挖矿集中化和专业是很正常的事情,天下熙熙皆为利来,天下攘攘皆为利往。只是集中化带来的结果违背了区块链网络初衷)。
综上所述
POW是靠谁的算力大取胜获得网络奖励,但并不是算力大就一定能获得,且会造成资源浪费;POW虽然网络慢,但是可靠性更高。
POS是靠质押绑定来获得奖励,质押的多获得的多,没有额外的消耗。网络安全性相对更弱,但可通过与其它算法协同合作来提高安全性。