详解以太坊:关于共识机制
Web3世界依旧处于早期的阶段,因此在研究这个领域时,不可避免地要了解很多关于技术层面的东西。
对于没有技术基础的行业新人来说,去理解底层技术会非常困难,然而收益却没有那么大。
就像当我们去研究黄金时,我们不需要去钻研黄金的化学分子构成,而是会研究黄金的基本属性、市场价值、流通体系等等。
因此,本系列文章将从一个产品经理的视角出发,输出“用户体验友好”的内容,尽量不去深究技术细节,而是从整体架构、运作机制等方面剖析以太坊。
本文是《详解以太坊》系列文章的第3篇,之前的文章请参见:
共识机制对于区块链网络的运作方式、安全性、经济模型等至关重要,可以被称作公链的“发动机”。
我们了解了共识机制之后,我们就知道区块链到底是怎样运作了。
01 什么是共识?
我们之前说过,区块链就是一个“全球大账本”,那这个大账本上记录的数据到底怎么维护呢?
也就是说,谁可以记账呢?又怎么保证记录的数据是正确的呢?
这就涉及到记账权的问题。
而共识机制正是要解决“谁可以记录数据和确认数据”的问题,也就是记账权的问题,并使得系统中的每一个人对最终的数据认可。
简单说,共识机制是一种激励制度,可以让区块链这个分布式系统的各个个体达成一致并维护区块链网络的正常运作。
目前,共识算法主要分为两大类:PoW(Proof of Work,工作量证明)和PoS(Proof of Stake,权益证明)。
最早区块链(比特币)的创造者中本聪发明了一种叫作工作量证明(Proof of Work, PoW)的共识算法。可以说,工作量证明是支撑比特币的最重要的发明。
其实在PoW出现以前,许多研究者提出过基于金融保证金的共识算法变种,现在被定名为权益证明(Proof of Stake, PoS)。
也就是说,PoS比PoW出现得更早,并不是现在很多人认为PoS是一项比PoW更新的技术。
区块链共识机制的第一步就是随机筛选一个记账者,那到底谁来记账呢?
PoW是通过计算能力来获得记账权,通过算力解决一个数学难题,计算能力越强,获得记账权的概率越大;
PoS则将此处的计算能力更换为财产证明,就是节点所拥有的币龄(币的数量*持有时间)越多,获得的记账的概率就越大。
挖矿或者质押的真实目的都是保护区块链的安全,同时保证对系统的控制权是去中心化的(在参与者之间尽可能广泛地分布)。
在一个敌意环伺、没有中心化控制者的分布式网络中达成共识的能力是所有开放性公有区块链的核心。
02 以太坊的共识算法
以太坊在1.0阶段采用的是PoW算法Ethash,其具备“抗ASIC性”,也就是让人们更难开发出用于Ethash挖矿的专用型集成电路(ASIC)、难以据此获得比图形处理单元(GPU)快几个量级的挖矿速度。
使用消费级GPU来产生以太坊网络的工作量证明,意味着世界上的大多数人都可以参与到挖矿过程中,这种机制避免了比特币挖矿导致的中心化问题。
以太坊创始人一直致力于将PoW转向PoS,为了避免在转换时矿工这个利益群体不配合,以太坊的PoW算法中被精心地置入了一个叫作“难度炸弹”的机制,目的就是逐渐让以太坊的PoW挖矿变得越来越难,迫使网络转向PoS。
如今以太坊2.0已经成功从PoW转向了PoS。
我们先看下PoW的运作过程:
(1)交易发送者使用钱包通过私钥进行签名确认,交易经过签名后会提交到区块链网络中;
(2)所有矿工都可以验证交易的正确性(发送者是否有足够的金额),验证通过后会将交易打包到一个区块中;
(3)为了在区块链这个大账本上提交新区块,节点需要花费算力解决一个复杂数学问题,这就是工作量证明(PoW,Poof of Work),只有算出正确解,新区块才能被提交给全体网络成员验证。
(4)一旦有节点完成了工作量证明并向全网广播了新的区块,其他节点就会验证它的有效性,一旦大多数节点验证完毕,这个区块就会被添加到账本上。
(5)提交了有效区块的节点将会获得区块奖励,区块奖励包括新币(增加比特币总量),以及区块中包含的所有交易的交易手续费(不增加比特币总量)。
PoS算法与PoW算法的整体流程大体相似,核心差别就在节点竞争记账权不是通过比拼算力获得记账权,而是通过质押资产成功验证者,质押的资产越多获得记账权的概率越大。
PoS算法的验证流程大体如下:
(1)区块链会跟踪一组验证者,而任何持有区块链原生密码学货币(在以太坊中就是以太币)的人都可以称为验证者,只需发送一笔特殊的交易把自己的以太币作为保证金锁住就好。
(2)验证者轮流提议下一个区块并对之投票,每一位验证者投票的权重都与他们质押的保证金(即权益)大小正相关。
(3)若大多数验证者都同意某个区块,验证者就可以获得一小笔奖励,奖金数额与他们质押的权益成正比;但是,如果他们所投票支持的区块被大多数验证者拒绝,那么将面临失去保证金的风险。
03 PoW与PoS的对比
虽然以太坊已经转向了PoS,但是并不代表PoS优于PoW。PoS和PoW到底谁优谁劣,长期以来一直都在被争论。
区块链有一个不可能三角:可扩展性、去中心化、安全性,三者只能选择其中的两个。
我们具体对比一下不同共识机制下,安全性、去中心化、可扩展性三个维度的区别:
1.安全性
整体上讲,PoW引入了外部的资源来获取对区块链的保护,即通过矿机将电力转变为算力;PoS则主要靠系统内的资源分配和治理,即通过协议层面的惩罚措施约束节点的行为。
PoW中的惩罚是外生的(例如让花在电力上的资金做了无用功),而PoS中的惩罚是内生于区块链的(例如失去质押的以太币),即一个向外、一个向内。
以太坊创始人Vitalik一直通过攻击成本来证明PoS的安全性:
PoS具有低持续成本和高进入成本, PoS共识证明系统中有一个内置的罚没机制,通过该机制,攻击者的大部分质押权益会自动销毁,因此系统可以快速惩罚节点的作恶行为。
不过,这种惩罚措施并不能绝对保证系统的安全,本身也存在一定的逻辑问题。
PoS的整个模型有点像衔尾蛇,就是咬着自己尾巴的蛇。你的账本要安全,那么共识机制必须要安全,但是想要共识机制必须安全的话,那么账本又必须安全,所以构成了一个衔尾蛇。
这本质是一种循环论证。
比如,攻击者可以跳到另外一个账本上去,发动攻击分叉这条链,而在这条分叉链上,原链所有的惩罚措施都不奏效了。
同时,没有系统外部资源的保护,PoS的恢复效率反而弱于PoW。
PoW让每个点都能在没有人为监督或治理的情况下决定正确的账本状态,PoS则增加了很多精巧又复杂的治理机制,不过反而会引入很多新的问题。
2.去中心化
对去中心化的理解,可以分为三个层次:公平性、无需许可的准入机制、反审查。
先说公平性:
对于PoW工作量证明,因为大矿工可以通过大矿场的规模效应来分摊成本,而小矿工付出同样的成本无法获得等同的回报,因此更容易中心化;
而在PoS权益证明机制中,每个人投资一份保证金所需要的资金是相同的,规模经济在这里并不会起到太大的作用,因此会更公平;
再看下准入机制:
对于采用PoW机制的比特币,需要购买专用的ASIC矿机;
对于采用PoS机制的以太坊,则需要质押32ETH才能成为验证者;
最后看下反审查:
矿工在 PoW 中参与出块,其实跟矿工的身份没有关系, 矿工的公钥可以每天换一个,同时可以随时退出,而矿机则需要折价出售了;
但在 PoS 中你是没法做到不断更换身份,验证者可以不断切换网址,但验证者的身份一直是那个身份,所以在PoS中可以基于这个身份一直持续地追踪验证者。在退出时,质押的资产需要一定周期才能返还。
所以总的来看,在去中心化这个维度,PoW和PoS各有优劣,都没有绝对的优势。
3.可扩展性
在条件一致的情况下,节点的资源总量不变,那么在验证共识上花费的资源越多,在处理交易上的资源就越少,性能就会下降。
相对而言,PoS 共识验证的开销,比 PoW 大非常多。
在PoW中的验证是一个“无状态”的验证,即不需要知道公钥是谁控制的,只需要计算一次区块的哈希值,就能知道区块是否有效;
但在PoS中的验证,你首先要验证签名,其次验证是带状态的,你必须知道每个公钥对应多少权重,你才能够算出最终的区块签名当中它有多少权重,然后你才能够确定它是否达到 2/3,是否达到检查点的要求。
这就意味着,PoS 在共识验证上的开销,会随着验证者数量的增加而增大,因此PoS在验证区块上的开销会变得比PoW大很多。
所以,单纯从交易处理效率上来说,PoS其实不如PoW。
虽然PoS没有提升性能,甚至降低了处理交易的效率,但是PoS主要为以太坊后续的性能优化做准备。
以太坊性能解决方案主要是分片,但在PoW机制上做分片很困难:简单说,分片就是将大数据库进行分区,但较小的分片容易被恶意矿工掌控。
因此如果要做分片,就要先转PoS,转PoS可以说是以太坊大规模扩容的垫脚石。
除了安全性、去中心化、可扩展性三个维度的对比,以太坊从PoW转向PoS后,PoS更直接地为以太坊带来了经济模型上的收益:
在PoS机制下,更多的ETH会被质押,再加上燃烧机制(交易费用的一部分会被直接燃烧掉),ETH的流通量会减少,进入通缩状态,ETH的币价将会上升,并带动整个生态的繁荣;
在PoW机制下,每年发行量约占 ETH 总供应量的 4.3%;转POS机制后,每天的产出模型是根据网络上积极质押的ETH数量来确定的,每年的发行率将下降至 0.3% 至 0.4% 之间。(比特币的发行量要到 2028 年才能匹配这次ETH的转POS的效果)
当通过EIP1559(交易费用的一部分会被直接燃烧掉)销毁的ETH超过PoS增发的数量时,以太坊的主链币ETH就会达到通缩状态,这对ETH的资产价值是一个长期利好。
最后
通过上文的分析,我们会发现,基于PoW机制的比特币选择了去中心化和安全性,因此网络非常健壮,但是牺牲了可扩展性,性能较差;而选择了PoS机制的以太坊选择了可扩展性和去中心化,牺牲了一定的安全性。
到底谁优谁劣,各自的支持者都有自己一套自洽的逻辑,因此还是需要时间来证明,至少比特币已经成功运行了10多年,可以说经受住了相对较长时间的考验 ,接下来就要看以太坊了。
推荐阅读
详解以太坊:整体框架
公链生态纵览:浅析现有公链市场格局
你好,我是岳小鱼,一名在路上的产品经理。
会和你聊聊职场和产品经验,也会漫谈生活、电影、读书。
希望我们能一起交流进步。