比特币的产生----挖矿原理

Posted 喜欢数学的女孩

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了比特币的产生----挖矿原理相关的知识,希望对你有一定的参考价值。

比特币的产生----挖矿原理

2008年,由美国次贷危机引发的金融危机开始席卷全球,世界经济开始全面衰退。

2008年11月1日,这个历史性的时刻,一位自称中本聪的人在网络上发表了《比特币:一种点对点的电子现金系统》的白皮书,文中描述了一个全新的数字货币系统:比特币。

Satoshi Nakamoto发布了《Bitcoin: A Peer-to-Peer Electronic Cash System》

白皮书如下:

 

比特币产生方式

我们约定如此:每个区块的第一笔交易进行特殊化处理,该交易产生一枚由该区块创造者拥有的新的电子货币。

价值背书

这种将一定数量新货币持续增添到货币系统中的方法,非常类似于耗费资源去挖掘金矿并将黄金注入到流通领域。此时,CPU的时间和电力消耗就是消耗的资源。

 

挖矿原理 

工作量证明(Proof-of-Work,PoW)

我们在区块中补增一个随机数(Nonce),这个随机数要使得该给定区块的随机散列值出现了所需的那么多个0。

比特币网络中任何一个节点,如果想生成一个新的区块并写入区块链,必须解出比特币网络出的工作量证明的迷题,俗称比特币挖矿。这道题关键的三个要素是工作量证明函数、区块及难度值。

 

工作量证明函数(sha256())

哈希函数(Hash Function),也称为散列函数,给定一个输入x,它会算出相应的输出H(x)。
比特币系统中使用的工作量证明函正是SHA256。是由美国国家安全局设计,到目前为止,还没有出现对SHA256算法的有效攻击。

 

难度值(difficulty)
比特币的区块大约每10分钟生成一个,每2016个块调整一次难度,调整公式:
新难度值 = 旧难度值 * ( 过去2016个区块花费时长 / 20160 分钟 )

 

目标值(Target)

最大目标值:
0x00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
比特币工作量证明的目标值的计算公式如下:
目标值 = 最大目标值 / 难度值

 

Coinbase交易

每个区块的第一笔交易叫做Coinbase交易。Coinbase交易是一笔特殊交易,因为它包含了挖矿奖励。和普通交易不同,coinbase交易的输入不包含UTXO,而是输入一个coinbase值,用于凭空创造比特币。Coinbase交易有一个输出,向矿工的比特币地址支付比特币。

 

工作量证明的过程
可以把比特币矿工解这道工作量证明迷题的步骤大致归纳如下:
1.生成Coinbase交易,并与其他所有准备打包进区块的交易组成交易列表,通过Merkle Tree算法生成Merkle Root Hash
2.把Merkle Root Hash及其他相关字段组装成区块头,将区块头的80字节数据(Block Header)作为工作量证明的输入
3.不停的变更区块头中的随机数即nonce的数值,并对每次变更后的的区块头做双重SHA256运算(即SHA256(SHA256(Block_Header))),将结果值与当前网络的目标值做对比,如果小于目标值,则解题成功,工作量证明完成。

 

Pow计算公式如下:

 

 注:
挖矿的本质
工作量证明方案解了一个比拜占庭将军问题更难更挑战的问题,就是在参与者集合未知的情况下,实现共识的一致性,支撑比特币安全的去中心化的自发共识机制。比特币只是对完成工作量证明节点的一种奖励形式。

中本聪的主要发明就是这种去中心化的自发共识机制。

 

 注:本文虽然在别的论坛发表过,但属于原创,皆为作者喜欢数学的女孩同一人。

 

以上是关于比特币的产生----挖矿原理的主要内容,如果未能解决你的问题,请参考以下文章

比特币的产生----挖矿原理

比特币是怎么产生的? 如何挖矿?

比特币的自私挖矿

比特币的自私挖矿

什么是比特币挖矿机?比特币挖矿机原理是什么?

区块链系列教程之:比特币中的挖矿