区块链共识机制之POW算法
2019-04-19高丽芬胡全贵
数字通信世界 2019年3期
程 瑶,高丽芬,胡全贵
(1.中国矿业大学(北京),北京 100000;2.北京国网信通埃森哲信息技术有限公司,北京 100000)
1 工作量证明的原理
POW是区块链主流共识算法:工作量证明POW、权益POS、股份授权证明DPOS中一种,是由算力决定区块的记账权归属那个节点所有,那个节点先算出哈希函数的下一个随机数数值,得到收益,即俗称的“挖矿”。
例如以下的区块链中一个区块的基本结构:
以上区块信息中“Nonce”就是这个随机数,各个节点通过算力计算出下一个区块的Nonce,即拥有该区块记账打包的权利,并获得Block Reward。
2 工作量证明函数
POW采用SHA256对区块头做双重运算,而SHA256是单向函数,所以结果很难计算出来。节点在挖矿过程中,当随机生成的Hash值小于难度值则挖矿成功,例如以下节点挖矿的函数:
在以上函数中,当hashInt小于Block里面的target,则跳出循环,输出计算得出的nonce数值,即挖矿成功,得到挖矿的收益。
3 工作量证明过程
3.1 创始区块
区块作为区块链存储结构中的数据元素,收尾相接促成单向链式存储结构,第一个元素为创始区块,包块共识机制的设置,出块时间,矿工收益等初始参数设置。例如以下为一个区块的创始区块:
3.2 生成铸币交易
注释:coinbaseTx 新建一铸币交易对象。
3.3 调整Nonce数值
采用SHA256对区块头做双重运算,当节点计算出的随机数小于小于设置的难度值时,则挖矿成功。