我正在阅读有关区块链在比特币交易中的工作原理,我对此了解很多,块是相互关联的,块包含前一个块的哈希值,每当创建一个块时,矿工都会尝试解决数学问题所谓的工作量证明难题,无论谁先解决,赚取比特币并添加该区块,最长的区块将被视为有效区块链
我没有得到的是每当有一组交易时,就会创建一个块,假设其中一个交易无效,那么矿工将开始做的是解决一个难题,但是这个谜题与检查无效交易有什么关系??
答案 0 :(得分:1)
块拼图与交易有效性或无效性无关。
每当矿工(或其他节点)收到来自对等方的新交易时,他都会验证交易与现有区块链和一些内部规则的对比。如果交易有效,矿工将这笔交易添加到内存池中,并转发给其他节点。
当交易加入内存池时,内存池的merkle root发生了变化,出现在区块头中。
在此过程中,矿工试图选择nonce值,以生成小于目标值的区块头哈希值。
如果矿工找到一个随机数,满足网络规则,他将区块分发给对等节点,只包含有效交易(从内存池打包)。
Peers,无论何时收到区块,都会验证来自该区块的所有交易,并通过检查默克尔树和区块哈希来验证区块完整性。
因此,如果恶意矿工在他的区块中添加了无效交易,他的同行只会拒绝该区块。