工作量证明
工作量证明计算复杂耗时,但验证简单快速。
工作量证明计算过程
- 使用
sha256
算法,对区块数据加上随机数Nonce
进行哈希运算,得到哈希值。 - 将哈希值与目标值进行比较,若大于则重复第
1
步。 - 若小于目标值则挖矿成功,向全网广播。
go工作量证明demo
区块结构
type Block struct {
//版本号
Version uint64
// 前区块哈希
PrevHash []byte
//交易的根哈希值
MerkleRoot []byte
//时间戳
TimeStamp uint64
//难度值, 系统提供一个数据,用于计算出一个哈希值
Bits uint64
//随机数,挖矿要求的数值
Nonce uint64
// 哈希, 为了方便,我们将当前区块的哈希放入Block中
Hash []byte
//数据
Data []byte
}
工作量证明(挖矿)
type ProofOfWork stru