区块广播:

挖矿及新区块的生成原理

mina水手发布在 BTC/比特币
 10290  8
在比特币网络中,一些节点被称为专业节点矿工。挖矿是增加比特币货币供应的一个过程。挖矿同时还保护着比特币系统的安全,防止欺诈交易,避免“双重支付”,“双重支付”是指多次花费同一笔比特币。矿工们通过为比特币网络提供算力来换取获得比特币奖励的机会。

矿工们在挖矿过程中会得到两种类型的奖励:
1) 创建新区块的新币奖励
2) 区块中所含交易的交易费

挖矿的最重要的功能:支撑比特币安全的去中心化的自发共识机制。

尽管挖矿带来的奖励是一种激励,但它最主要的目的并不是奖励本身或者新币的产生。如果只把挖矿看作生产新币的过程,那是把手段(激励措施)当成了目的。挖矿是一种将结算所去中心 化的过程,每个结算所对处理的交易进行验证和结算。挖矿保护了比特币系统的安全,并且实现了在没有中心机构的情况下,也能使整个比特币网络达成共识。

大约每十分钟产生一个新区块,每一个新区块都伴随着一定数量从无到有的全新比特币。每开采210,000个块,大约耗时4年,货币发行速率降低50%。在比特币运行的第一个四年中,每个区块创造出50个新比特币。

2012年11月,比特币的新发行速度降低到每区块25个比特币,并且预计会在2016年的某个时刻,在第420,000个区块被“挖掘”出来之后 降低到12.5比特币/区块。

挖矿&&新区块的生成过程

通过完成工作量证明算法的验算,挖矿节点将交易记录独立打包进新区块,详细步骤和过程如下:



T0区块结构:


T1区块头结构:


P1 挖矿计算哈希值的过程(寻找nonce过程):

对区块头和nonce进行哈希运算(sha256(str(header)+str(nonce))),将所得哈希值与目标哈希值进行比较,如果当前nonce值计算的哈希值小于目标哈希值,则挖矿成功。如果这个哈希值不小于目标值,矿工就会修改这个nonce(通常将之加1)然后再试。

其中,
1) 目标哈希值target=2**(256-Difficulty)
2) 难度值Difficulty是节点自动调整的,调整规则为 New Difficulty= Old Difficulty*(Actual time of last 2016 Blocks/ 20160 minutes).即:最新2016个区块花费时长与20160分钟(2周,即这些区块以10分钟一个的速率所期望花费的时长)比较所得。
  • 正序
  • 最新
只看帖主楼层直达
登录 账号发表你的看法,还没有账号?立即免费 注册
推荐节点 更多
热帖榜 本周最热本月最热