[原创•区块链关键概念必读系列-08]撕开“工作量证明”神秘的面纱

一、引子

8月5日,夏日炎炎,3年级一班的小明百无聊赖,正在做数学暑假作业。眼前出现了一道附加题,让小明丈二和尚摸不着头脑——“X^2-22X+130=9,求X”。小明刚刚学过一元一次方程,这种一元二次方程(事实上他还根本不知道什么是二元一次方程)超出了所学教材的范围,他还不知道怎么解答,抓耳挠腮,不知怎么办。

百思不得其解后,小明想到了一种笨笨的方法——从自然数1开始,一个一个带入等式左边去尝试。于是,

X=1,左边不等于右边

X=2,左边不等于右边

X=3,左边不等于右边

……

X=11,左边=右边。

于是,小明得到了答案,X=11。

小明的故事,将对我们通俗理解工作量证明,有很大的帮助作用。他解题的方法,有一个特点:求解通过正向代入尝试的方法进行的,而没有通过倒推的方式求解X(虽然倒推的解题过程更高效,但他不会)。

二、工作量证明及其机理

工作量证明的想法于 1993 年就出现了。所谓工作量证明(Proof of Work / PoW),简单理解就是一份证明,用来确认节点做过一定量的工作,谁的工作量足够多,谁就能获得相应的奖励。

区块链中最早应用工作量证明的,就是比特币挖矿了,挖矿的过程是通过求解哈希函数进行的。

什么是哈希函数(也成为散列函数)呢?

它给定一个输入值x,通过一个固定的规则,会对应产生F(x)[即哈希结果]。

如果我们知道F(x),想求解X,只能和小明一样,通过逐个尝试运算的方法去解答,而不能倒推。

当然,仅仅这样理解哈希函数,是有所偏差的。哈希函数与小明解题,有不同之处。

小明所解的题,是可以通过倒推来直接算出答案的,他只是因为不懂,才不得已通过尝试的方法去解答。但哈希函数从理论上和设计上,就没有倒推的可能,所有人只能通过不断尝试去找答案。

由于找到X有奖励(比特币),所以对于同一个F(x)[哈希结果],可能会有许多人在同时进行运算尝试。谁先找到这个x,奖励就归谁。

这就是工作量证明:如果你达到了某一项任务的目的(与哈希结果F(x)对应成功),那么就会被认为做出了一定的工作量(像小明一样反复尝试了很多次)。谁先达到目的,基本可以认为谁的工作量大,按照工作量证明的原则,谁就应该获得奖励。

有人会问,如果小明没有按自然数顺序进行尝试,只是随便找个数代入,他也可能因为运气好,第一次就发现了11是答案啊。如果另一个人按照顺序代入尝试,那肯定会比小明后找到答案,这样,小明的工作量小,但找到了答案获得了奖励,工作量证明不就失效了吗?

的确如此,不过这个问题可以通过提高解题难度来解决。

小明解的题,需要的工作量很小,如果从1开始按顺序试自然数,只需要11次就可以成功,所以小明碰巧找到答案的概率是很高的。但哈希函数与这道题的难度根本不在一个量级上。哈希结果通常是以n个0开头的16进制字符串,0的个数越多,求解X的难度越大。例如,如果一个哈希结果以4个0开头,那么,我们需要大约4251次计算才能找到对应的答案,通过偶然发现找到正确答案的概率极低。如果增加零的数量,难度会上升,而且上升速度极快,相应地,依靠运气解答的概率也会迅速下降,几乎可以忽略不计。

这种情况下,如果谁先找到哈希函数的答案,那么,我们几乎可以肯定,他所做的工作量比其他人要多。难度到达一定级别,这个论断正确的可能性就接近100%了。

三、对工作量证明认识的误区

从上面的例子我们可以看出,工作量证明其实并非通过直接度量所有人的工作量然后进行比较,而是通过工作结果(寻找X)合理推测工作量的多少(即先找打答案的人,工作量是最多的),并且这种推测是建立在概率基础上的,并非100%正确。通过提高难度,我们可以提出运气成分,使这一推测的正确概率接近100%。

而且,工作量证明并不是简单的推测所有工作量,而是推测所有有效工作量。如果矿工去打了5次篮球,这并不会被算作他的工作量。

四、工作量证明的优缺点

通过对工作结果进行认证,来证明完成了相应的工作量,是一种非常高效的方式。这是工作量证明的一大优点。试想,如果有1000个人在解答开头有4个0的哈希结果,那么,如果直接记录每个人的工作量,我们需要对所有人进行监测记录,记录结果多达4251000条。而如果通过结果进行认证,就只需要记录一次(即谁最先找到了答案)就可以了。

但工作量证明也有缺点,最让人头疼的就是资源浪费。求解哈希函数,因为难度极高,所以需要大量计算机不停工作,耗费的电力也极多。仅仅以2015年的数据来看,一个比特币交易就需要消耗和1.57 个美国家庭 一天一样多的用电。到了2017年,一笔交易已经要耗费一个家庭一周的用电。根据专家预测,到2020年,比特币交易可能会消耗和丹麦一样多的电力。这是一个极其严重的问题,也正是因为如此,一批币圈人士开始探索新的共识机制。

五、日常应用

工作量证明的机理,虽然我们听起来新鲜。但它在生活中的应用却无处不在,几乎所有人都经历过。

比如毕业证。一个大学生被授予本科毕业证,需要学习一定量的课程,积累一定量的知识。但这个过程并不需要学校指派一名监工去跟踪你4年的大学生活。而是通过你的毕业论文和各科成绩是否合格来进行合理推测。如果各科成绩和论文都达到了规定的标准,基本可以推测,你完成了相应的学习任务,因而授予毕业证。此外,像其他证件,比如驾驶证、从业资格证、职称评定等等,都是如此。

所以,工作量证明一直存在于我们的日常生活中。即使你是对区块链一知半解的币友,对这个概念也无需恐惧。撕开“工作量证明”的内衣,你会发现,其实它并不神秘。

你可能感兴趣的:([原创•区块链关键概念必读系列-08]撕开“工作量证明”神秘的面纱)