bitcoin2

比特币中的工作量证明机制

前一段时间在看中本聪论文《比特币:一种点对点的电子现金系统》时,一直没弄明白他所说的工作量证明机制,倒底是怎么一回事,也不明白挖矿为什么那么费资源,今天终于弄明白了。

先来看看中本聪论文中的描述,一个块包含了若干交易记录,将这个块加上一个随机数Nonce做SHA256运算,最终结果要满足前N位是0,以此类推,以后每一个块都前面一个块加随机数的散列值。这样可以有效防止交易被篡改,因为要修改某块中的数据,意味着要将该块及以后的每一个块中的随机数都要计算一遍,且满足某数据块加随机数的散列值前N位是0。找出Nonce的值很麻烦,但是验证起来很容易,只需要进行一次运算即可。

bitcoin_timestamp

计算Nonce过程就是传说中的挖矿,它将耗费大量的计算资源,举一个简单的例子,有一个字符串“string”,现在要求一个随机数,使得”string“+随机数的散列值前N位是0,没有好的办法,只能通过不断的尝试才能求得这个随机数是多少,尝试的次数是有一个区间的,为了求出随机数的值,需要进行一定量的运算,这个运算的过程就是挖矿,比特币挖矿的好处是能获得一定量比特币的奖励。

工作量证明机制是在 Markus Jakobsson and Ari Juels 1999年的论文中首次提出的,最初是被应用在Shell Money中,该机制最大的特点就是不对称性:工作量具有可行性,但是具有相当的难度,需要耗费一定量的时间和资源,但是对于验证方来说,非常容易,就好比招聘时要求本科毕业证,为了达到这个要求,一个学生要进入大学学习四年,以取得毕业证,但是对于招聘单位来说,想要验证这个学生的工作量够不够,只用看一看毕业证就行了。工作量证明机制除了电子货币以外,还有一些应用场合,那就是用来阻止拒绝服务攻击和垃圾邮件,它是通过要求请求者一定量的运算来实现的,这样就能避免请求者迅速、不断地发送请求。

比特币挖矿,即求解符合要求的随机数,需要耗费大量的计算资源和电量,除了能获得一定量的比特币收益外,并没有其它实际意义。相比之下,另外一种虚拟货币”质数币“的工作量证明机制,在挖矿的同时,能够给数学学术界带来一定的科研贡献。



发表评论

电子邮件地址不会被公开。 必填项已用*标注