本文由币车HIT(biche.yaofache.com)大V养成计划支持
不同于银行有中心化的账本,区块链是一种去中心化的账本记录。由于点对点网络存在延迟,就需要设计一种机制,记录差不多时间内事务发生的先后顺序。这种机制就是共识机制。
共识机制是区块链的灵魂,确保交易数据的一致性。今天要说的就是共识机制中的一种,工作量证明(Proof-of-Work,PoW)。
先来看一个小故事。
有一天,马老板和他的手下说,我这里有100元的人民币,谁能猜中上面的后四位编码(鉴于难度,前后误差不小于5吧),就可以拿到这笔钱。
于是大家陷入热烈的讨论。有的随机报数1147、2345、8989……有的掐指回忆,有没有特殊数字。当然啦,哪有这么好算出来的。
如果把这个故事放在区块链中,100元相当于工作奖励,员工不停地猜数字相当于在工作,后四位编码相当于哈希值。如何获得工作奖励?那就要猜中编码。
PoW,其实就是选择由谁来完成记账,并且给予奖励。这个谁不是老板说了算,而是最先解决这个数学问题的人。由于问题中的哈希函数有加密安全性,解决问题只能靠尝试所有的可能性。那么计算机的算力就至关重要。大概率上来说,算力越高,就越容易获得奖励。
目前比特币采取的共识机制,就是PoW。它的优势在于:
(1)算法简单,容易实现;
(2)节点间不需要交换额外的概念就可以达成共识;
(3)因为对算力和电力的要求高,导致破坏的成本也很高。
下面这张图就能很好地解释。假设所有人都在第91区块。但是一个矿工想在74区块修改一笔交易,那他就必须重做74-90区块,再做91区块。相当于要多花18个区块的算力。更糟糕的是,他必须在比特币网络中的每个人完成91区块前,做好上述全部的工作。
也就是说,这么大的硬件成本和电力成本去做破坏,实在是不值得。
那PoW的劣势也很明显:
(1)浪费了算力和电力,摩根士丹利的一份报告指出,2018年比特币的电力需求量将增至三倍以上,耗电量可能会超过125太瓦时,这与阿根廷整个国家一年的能源消耗量相同。
(2)区块的确认时间很难缩短;
(3)如果集中算力,就很容易对比特币网络产生攻击。很著名的理论是“51%攻击”,如果集齐世界上51%的算力去攻击,就相当于美联储内部更改数据,随意掌控金融数据了。