时间:2023-07-08|浏览:351
在比特币网络中,有很多挖矿节点和矿工参与创建比特币新区块。如果多个挖矿节点都创建了同一个高度的区块,那么该确定哪个区块更合法呢?比特币引入了PoW(ProofofWork)共识机制,通过挖矿的方式来竞争新区块的记账权。谁获得新区块的记账权,谁就创建的新区块就是合法的。挖矿的目的就是赢得记账权,并确认新区块和交易。那么挖矿节点和矿工是如何协作完成挖矿的呢?
矿工破解挖矿任务。挖矿节点创建好预备区块后,将预备区块的区块头数据发送给矿工。矿工收到挖矿任务后,会递增区块头中的随机数。每次调整后,根据比特币协议规定,用SHA256算法计算区块头的哈希值。如果区块头的哈希值大于目标哈希,就继续改变随机数,直到区块头的哈希值小于或等于目标哈希为止(或者挖矿节点发现新区块已经被其他节点挖出,这时会放弃原来的挖矿任务,构造新的预备区块,区块头是否合法(区块头哈希≤TargetHash);区块头的MerkleRoot哈希和区块中交易数据的MerkleRoot哈希是否一致(验证交易是否被篡改);交易数据中第一笔是否为Coinbase交易;区块中每一笔交易是否合法等等。
挖矿节点向全网广播新区块。挖矿节点在本地保存新区块后,会向比特币网络广播挖矿结果。由于整个区块的体积较大,一般会先广播区块头。其他节点收到广播后,会先验证区块头信息,验证通过后,在本地区块索引库中创建新区块的索引。在接收到新区块的全部信息后,节点会验证交易信息和区块头的MerkleRoot哈希,验证通过后,节点将这些交易信息录入新区块,并延长本地区块链。至此,新区块的广播和验证完成,挖矿节点开始下一个区块的挖矿工作。
用戶喜愛的交易所
已有账号登陆后会弹出下载