比特币基础教学之:工作量证明 proof of work

工作量证明即proof of work 是指系统为达到某目标而设置的工作度量方法。工作量证明最初被应用在网络的拒绝服务识别和反垃圾邮件上,用户的计算机必须完成一些工作来证明自身行为的可靠性

工作量证明的含义
工作量证明需要由工作者验证者两方共同完成。
工作量证明中包含了两层含义:
第一、工作者需要完成的工作必须有一定的量,这个量由工作验证者给出。
第二、验证者可以迅速的检验工作量是否达标,注意这里的检验完成过程必须简单。
关于proof of work,举几个简单的例子
———————————————————————————————————————-
你想到一家公司去工作,这家公司会让你先实习一段时间,公司会考量你的实习质量来决定是否录用你,这段实习的时间就是你的工作量证明。
———————————————————————————————————————-
某吊丝男女谈恋爱,吊丝女为了考验吊丝男的忠心,便让吊丝男去给她买套房,吊丝男便用光老爸老妈所有的钱买了套房,吊丝女可以轻易的检验吊丝男是否购房,这个行为也可以看做是工作量证明。
———————————————————————————————————————-
解一个10次方程,过程很麻烦,但是结果容易验证。
———————————————————————————————————————-
在计算机系统中,proof of work可以这样设计:
A向B请求一个服务,如果A可以在短时间内向B发送大量请求,则会造成B的崩溃,于是B对于服务的请求者A出题。这个题需要花费一定的时间去计算,计算好了以后,发送给B验证,B可以瞬间完成验证,如果验证通过,再给A提供服务。
如果A是一个黑客,则A要花可观的时间来完成B的验证问题,这对A来说很麻烦,因此可以有效阻止恶意攻击。
在比特币中的工作量证明
在比特币系统中,矿工为了挖掘新的block(数据区块)必须进行并完成工作量证明过程。矿工计算每个数据区块头部信息的sha256值(HASH值的一种),如果比前一个数据区块的sha256值小那么P2P网络便接受这个新的数据区块。
What's bitcoin?
关于sha256
每个数据区块的头部信息中都含有一个随机数(nonce),当计算出来的sha256值不满足要求时,那么这个随机数(nonce)便增加一个单位,直到满足要求为止。现在没有发现预测sha256值的方法,所以矿工需要大量的计算来找到符合要求的头部sha256值。但是一旦找到答案,验证信息的sha256值是非常容易的。因此,比特币block(数据区块)生成的这一过程便成为了矿工工作量的证明。
需要指出的是,如果发现有效的快速碰撞sha256值的数学算法,那么整个比特币体系将受到很大冲击。

proof of work

比特币block之间的验证关系

SHA256计算程序
要签名的内容
SHA-256 hash值
作者:P2PBUCKS , 转载请注明出处并保持文章完整