深入浅出区块链之PoW共识
了跳间球
发表于 2022-11-28 20:31:31
83
0
0
) N$ z3 E9 |* b% D6 E
因为比特币采用了PoW共识机制,所以这个概念才得以被广泛传播。PoW全称ProofofWork,中文名是工作量证明,PoW共识机制其实是一种设计思路,而不是一种具体的实现。: p7 d8 A0 F0 T
PoW机制其实早在1997年就被提出了,它早期多被应用在抵抗滥用软件服务的场景中,例如抵抗垃圾邮件(所以PoW在邮件服务系统会有所涉及)。- U7 f2 W x9 O' h
# J# @6 q$ C1 C" K; b( c! H
为了防止垃圾消息泛滥,接收者并不直接接受来自任意发送者的消息,所以在一次有效的会话中,发送者需要计算一个按照规则约定难题的答案,发送给接受者的同时,需要附带验证这个答案,如果这个答案被验证有效,那么接受者才会接受这个消息。, W3 z1 T/ n C D* c h1 i
可以看出PoW的核心设计思路是提出一个计算难题,但是这个难题答案的验证过程是非常容易的,这种特性我们称之为计算不对称特性,我们在“浅谈区块链共识机制”中举的24点游戏的例子就具备了计算不对称特性。
如何理解区块链PoW+ l- P/ l2 k# Y6 d+ T: T
, B0 m- @+ j9 e
上面介绍了一般的PoW是什么,那么区块链上的PoW又是如何设计的呢,我们还是以比特币为例子来讲一讲。7 W8 d, o" V: s$ g; W' S, F
0 Q! g* W7 H) @. b+ S( q# d
在分析拜占庭将军问题的时候可以看出,如果所有节点在同一时刻发起提案,那么这个系统的记账过程将会非常的复杂混乱,为了降低具有提案权的节点数量,采用工作量证明不失为一个好办法。
所以我们需要构造一个计算不对称的难题,这个难题在比特币中被选定为以SHA256算法计算一个目标哈希,使得这个哈希值符合前N位全是0。
实际挖矿的基本步骤如下。$ W4 W1 e G1 ?5 j* q
$ H) L4 Y" g* N1 Q+ @
生成Coinbase交易,并与其他所有准备打包进区块的交易组成交易列表,并生成默克尔哈希;
$ X$ m: |, \/ g$ ^5 z- Q
把默克尔哈希及其他相关字段组装成区块头,将区块头(BlockHeader)作为工作量证明的输入,区块头中包含了前一区块的哈希,区块头一共80字节数据;
# B& }6 K5 w+ v" E# D
不停地变更区块头中的随机数即nonce的数值,也就是暴力搜索,并对每次变更后的的区块头做双重SHA256运算,即SHA256(SHA256(Block_Header))),将结果值与当前网络的目标值做对比,如果小于目标值,则解题成功,工作量证明完成。
& M9 w, _5 }/ d9 [
如果更深程度去理解的话,PoW机制是将现实世界的物理资源转化成区块链上虚拟资源的过程,这种转化为区块链提供了可信的前提。
PoW挖矿的发展历程
8 m1 [0 v. Y" {9 t. C
好了,现在我们知道了,PoW的过程其实就是计算一个难题解的过程。
在区块链的发展史上,PoW经历了大致两个阶段。分为早期分散挖矿阶段和中心化矿池挖矿阶段。我们目前处于第二个阶段,并且将会长期处于这个阶段。& ^# H6 y" v/ I- E9 T/ N7 ]
早期分散挖矿是中本聪的愿景,期望是1CPU=1票,所以如果CPU挖矿,那么将会是非常理想化的情况,而现实的情况是,SHA256只需要非常简单的重复计算逻辑,它不需要复杂的逻辑控制。3 f, X$ c% H+ _/ }% J: o
那么CPU这种重控制逻辑,轻重复计算的计算单元来搞这么低端的暴力计算非常吃力不讨好,大部分人的第一反应肯定是用GPU呀,非常正确。
所以这个时期,出现了GPU挖矿,它的效率是CPU的十几甚至上百倍,那么1CPU=1票的逻辑就被打破了,挖矿工具的改变让人们意识到挖矿技术也是极大改进的。除了GPU挖矿,我们还有AISC芯片挖矿,这部分内容我们在讨论挖矿算法分类时会详细讲解。& M" p1 C) D6 j5 I# R% T
同期我们也慢慢进入到了中心化挖矿阶段。中心化挖矿很好理解,算力如果越分散,也就意味着竞争越激烈,如果某个节点计算出答案了,那么也意味着其他矿工这段时间的工作量几乎都白费了,投入了物理资源结果零收益,可以说是负收益。0 z0 x( x+ ]/ |7 B" c2 R6 [
那怎么办呢?思路就是把分散的算力汇聚到一个池子里面,这个池子我们称作矿池,就像四面八方的小溪流最终汇总成一条大江一样。9 z, o7 k4 B7 n. x) V
矿工参与到某个矿池,相当于矿工把算力租给矿池了,与其他矿工联合挖矿,最后看起来矿池这个节点的算力就会很大,获得记账权的概率就越大,如果这个矿池计算出了答案,将获得Coinbase的奖励,矿池就会按既定的分配比例打给每一位参与的矿工。
矿池作为一个中心节点,可以被矿工连接,而在比特币全网来看,矿池节点本质上也只是一个全节点,它与其他全节点一起组成了比特币的点对点网络,特殊的地方仅仅在于它可以产生新的区块。* H' S- S( C c9 g# {
PoW挖矿算法分类与简介
! l; B/ S# l$ D* J/ P5 I$ t
PoW挖矿算法大致分为两个大类,第一类叫做计算困难,第二类叫内存困难。
6 n$ ?7 ?& u, D9 X' ^: b- c
这两类的区别在于对于提供工作量证明的组件要求不同。我们知道计算机的组成分为计算单元和存储单元,通过以往的编程经验我们还可以知道,一个计算机的瓶颈往往是IO,如果要制造大量的IO操作,可以通过写程序撑大内存,制造大量的数据处理过程,使工作量证明从计算单元转变为存储单元。
* M7 ^$ e9 }# W, n+ ~
那为什么要这么做呢?
1 x5 a0 `- \* T. s3 v
其实在PoW挖矿中心化以后,又出现了一次挖矿工具改进,这次超越了GPU,人们先是尝试在FPGA上尝试SHA256的计算过程,结果计算效率成倍于GPU。
FPGA出现的时间比较短暂,最终人们开发出了ASIC专业芯片来计算SHA256,这就是我们常说的专业矿机。
3 G0 z/ C4 D. L" }0 N
专业矿机的出现加速了PoW挖矿的中心化过程,因为购买专业矿机需要额外的时间和精力,配置运行还有一定的门槛,普通人也只能从专业机构手里购买专业矿机。
5 {+ k% y' M0 b" \
所以这些专业矿机直接就是数字货币印钞机,生产专业挖矿芯片的商业公司几乎成了数字货币的货币发行司,这不得不说到市值直逼英伟达的比特大陆公司,它用的就是专业生产数字货币挖矿芯片。
+ X6 b, z4 f0 [6 x
新的数字货币开发者们为了防止情况重演,不断发明新的挖矿算法。有名的有Scrypt、X11、SHA-3,不过这些依然是计算困难型的挖矿算法,依然没有逃脱出现专业矿机的命运。3 I8 L' }& i' C; T0 A( F3 o: i
u& {6 m* C1 _
这里不得不提到以太坊的PoW挖矿算法:ETHASH,ETHASH是Dagger-Hashimoto的修改版本,它是典型的内存困难型挖矿算法。直到如今,也没有芯片厂商设计出挖矿芯片。 o# ~, u4 W5 [+ E2 p. m
' v# C( r5 J2 o3 d6 S V% E
正如我们上文所说,因为工作量证明要求的组件从计算资源转变为内存资源,而对内存的高要求使得矿工必须加内存。
在专业矿机上加一块内存的收益与在GPU上加一块内存获得的收益是差不多的,所以厂商并没有研发内存困难型专业矿机的动力,没有专业矿机的出现,这从某种程度上也缓解了算力中心化的问题。 i8 i/ Y9 X0 w1 h
" @5 l4 r- E* E% E5 E9 A1 @! h) U
PoW的优势和劣势
1 v: q/ T5 O4 ?
PoW共识的内在优势在于可以稳定币价,因为在PoW币种下,矿工的纯收益来自Coinbase奖励减去设备和运营成本,成本会驱使矿工至少将币价维持在一个稳定水平,所以攻击者很难在短时间内获得大量算力来攻击主链。
PoW共识的外在优势是目前它看起来依然是工业成熟度最高的区块共识算法,所以在用户信任度上、矿工基础上都有很好的受众。; V8 I: v5 q+ U9 g* K5 j
, L% S& w$ S" }
PoW共识最大的缺点是非常消耗计算资源,耗电耗能源,这一点也一直为人们所诟病。因为每次产生新的区块都会让相当一部分工作量证明白白浪费了,也就是将计算资源浪费了。
* _$ R, c& {4 Y. `* f- y
目前来看这个是无解的,只要是PoW共识,一定会遇到计算资源浪费的问题。不过人们也想了一些改进方案,早期如素数币,近期有比原币,它们都号称深度学习友好型的工作量证明方法。$ B" S& h% |1 M/ c1 u) M3 a* n# d/ R
) W$ ^3 \ t- S, ?" [% p9 X) _
从理论上来看,PoW会一直有51%算力攻击的问题,即攻击者只需要购买超过全网51%算力设备,即可发起“双花攻击”,甚至“重放攻击”等多种高收益攻击,这个问题目前没有解决方案。
除了51%攻击,PoW共识还有自私挖矿的问题,自私挖矿是一种特殊的攻击类型,不会影响区块链正常运转,但是会形成矿霸,间接造成51%攻击,我们就曾经遇到过这样的自私挖矿攻击。
4 v9 W. c- s% x4 f4 Y+ ?( j& e
PoW共识机制是一种简单粗暴的共识算法,它不要求高质量的P2P网络资源,它可以为公链提供稳定有效的记账者筛选机制。同时它也面临了挖矿中心化严重的问题,这也促使人们研究出了新的共识机制,我们留到下一篇讲解。
) f- q- z5 G/ x. l Q. m4 Q0 d, o
总结
) ], | D, q9 v& f' [3 U
今天我介绍了PoW工作量证明,又介绍了发展历程和算法分类,最后提到了PoW的优势和缺陷。相信你对PoW机制的理解可以更加深入了。
以上内容由本人搜集整理,并不代表任何投资建议,仅仅作为学习参考,也不作为买卖依据。市场有风险,投资需谨慎!同时我也为大家总结准备了500份区块链白皮书、区块链行业词典、公链项目大盘、技术波段看线等优质免费大礼包。联系(hyrik2020)免费获取500份中文版区块链白皮书:其中BTC、ETH、EOS、ont、HT、BU、PAI、ADA等(了解数字货币价值的核心因素)。
8 ?4 ~5 ]9 i, d+ S; H v2 B% t
最后还是那句话,2018年是区块链发展元年,未来区块链会是一个新的发展趋势,错过了这个风口,你将会像当年错过互联网时代、错过电商、错过微商时代一样,再一次错过整个区块链时代。
写文章总要有结束语,最后用一段话来做结束语:1、关于区块链发展:短期是底层技术,中期是应用场景,长期是改造社会。7 r! m& e8 @% q& [2 R
2、关于区块链参与各方:币圈看到流量,链圈看到共识,玄学圈看到革命。
9 X3 j- o& t) z8 J6 H, U. b
3、关于区块链怎么改造社会:短期是通证和激励,中期是货币和经济,长期是社会。6 \+ S. S6 a8 e& F+ i9 z2 S
0 E* ?. M* f* {- y, E& @
4、关于应用落地:前期是比特币和炒币工具,短期是公链,中期是轻应用,长期是去中介化场景。
; I2 {9 @ [5 q# B: F
5、关于炒币:长期看人口,中期看供求,短期看监管。
- Y5 h2 V, k. Z6 t
6、关于区块链本质:一边是技术,一边是通证,一边是社区,链币社区不分家。+ |3 L: W" L' E
7、关于技术模型:短期看共识机制,中期看操作系统,长期看DAPP生态。/ v+ p0 Q$ R8 ~; [
8、关于通证模型:短期看发币上市,中期看总量机制,长期看生态使用,终极看通证经济体的参与各方利益平衡。
9、关于社区治理:短期是自发自理,中期是社区政治,长期是代码法治。1 p. x; K5 _" c0 u' T- I
+ h7 Q. A ]5 X
10、关于通证社区经济体:以前是公司制,现在有非盈利组织,以后是通证社区,终极是人的自由联合。
成为第一个吐槽的人