理工男的爱情故事
小蓝是一个理工男,他喜欢上了小红。奈何小红追求者众,小蓝苦于不能脱颖而出。
到底选择哪个男生呢?公平起见,小红决定考察每个男生的诚意。
谁第一个解出方程,小红就选择谁。因为解高次方程没有固定公式,需要花费一定的时间、进行大量的计算,才能得出正确结果。愿意解方程的男生,自然最有诚意。而小红可以把结果带入方程式,简单地验证其是否正确。
那么问题来了:如果有人作弊,偷看了小蓝的答案,并且抢答怎么办?
要解决这个问题也容易,小红可以给每个男生编号,把编号作为方程第一项的系数。这样,每个人收到的方程式都是不同的,小蓝的答案对于其他人来说是错误的。
而且,小红可以通过结果验证,直接从方程第一项的系数得知,究竟是谁解出了方程。因此,作弊是没有用的。
从爱情故事到挖矿原理
从小蓝的爱情故事中我们可以知道,要想达成目标,就得付出一定的工作量。通过工作量证明,可以有效验证每个人是否花时间做了计算。
有效的工作量证明: 计算过程复杂,需要消耗一定时间;验证过程相对简单,甚至可以瞬间完成。
在比特币网络中,矿工挖矿也是一种工作量证明。当然,不能通过解高次方程来实现,因为这对人来说很难,对计算机来说却非常容易,可以在1秒内完成。
要对计算机进行工作量证明,必须找到一种工作量算法,让计算机无法在短时间内计算出来,这种算法就是 哈希算法 。
通过改变区块头部Nonce字段的值,计算机可以计算出不同的区块哈希值,直到计算出某个特定的哈希值时,计算结束。特定哈希和其他哈希的区别是,它的数值前面有多个“0”。
<