比特币基础教学之:工作量证明 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网络便接受这个新的数据区块
关于sha256SHA (Secure Hash Algorithm,译作安全散列算法) 是计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。由美国国家安全局 (NSA) 设计,美国国家标准与技术研究院 (NIST) 发布。正式名称为 SHA 的家族第一个成员发布于 1993年。然而现在的人们给它取了一个非正式的名称 SHA-0 以避免与它的后继者混淆。两年之后, SHA-1,第一个 SHA 的后继者发布了。 另外还有四种变体,曾经发布以提升输出的范围和变更一些细微设计: SHA-224, SHA-256, SHA-384 和 SHA-512。
每个数据区块的头部信息中都含有一个随机数(nonce),当计算出来的sha256值不满足要求时,那么这个随机数(nonce)便增加一个单位,直到满足要求为止。现在没有发现预测sha256值的方法,所以矿工需要大量的计算来找到符合要求的头部sha256值。但是一旦找到答案,验证信息的sha256值是非常容易的。因此,比特币block(数据区块)生成的这一过程便成为了矿工工作量的证明。
需要指出的是,如果发现有效的快速碰撞sha256值的数学算法,那么整个比特币体系将受到很大冲击。
下图比特币block之间的验证关系:
比特币教学之更多内容:比特币基础教学之 索引 http://www.5ywyx.com/forum.php?m ... 2332&fromuid=24(出处: 比特币-游戏之家) |