区块链100问|基础概念|15、POW共识机制的优点和缺点是什么?
我最近在重新学区块链,巩固一下细节,也收集一个“区块链100问”,供小白们使用(大佬可以另找教程),每天更新1-2个。
推特:0x00pluto
PoW(工作量证明)机制最早应用于Adam Back 1996年提出的Hashcash中,而后被中本聪改造为以“挖矿”形式实现区块链一致性的共识机制。
在比特币网络,争得生成新区块权力的矿工将能获得相应的比特币作为奖励;而竞争过程中则需矿工以最快速度计算出符合要求的Block Hash(区块哈希值)。由于哈希函数是无法预测的随机散列函数,所以计算出符合要求的哈希值具有一定难度,需耗费大量算力才能获得被所有节点认可的结果。而这整个过程中,矿工贡献的算力就是上面所说的“工作量”。
总的来说,就是谁先计算出结果,就由谁负责生成新区块;其中贡献算力越多,生成新区块的概率越高。不过在网络延迟的背景之下,会出现极少部分矿工同一时间生成“合格区块”的情况;届时比特币区块链出现分叉。所以该系统会等待六个区块确认后才承认最长的链为合法链,这就是我们上一问提到的牺牲一部分一致性已达成共识。
由于算法确定、难度一致,再加上链上每个区块都引用了前一区块的哈希值;所以想要伪造区块,就需要将该区块以及后续区块相应难度值的哈希函数再重新计算一遍;而这往往要耗费非常高额的成本以及代价才能实现。而随着网络上算力的增大,篡改以及攻击区块链数据的难度就更高。
不过,这种共识机制保护下的区块链系统对算力以及高性能网络环境具有一定要求。举个例子,2017年全球矿工用于比特币挖矿的电力已经超过159个国家的年度电费输出。而受到矿工增多、区块链延长等多方因素影响,比特币网络消耗的能源将会日益增长。为此不少人认为,这种方式很不环保。