如何在区块链中验证交易



如果一个矿工a创建了一个包含事务a的块,而一个矿工B创建了一一个不包含事务a(大约同时(的块,那么其他一些矿工将首先接收矿工a的块而其他矿工将接收矿工B的块。

如果矿工B的链比矿工A的链增长得更快,那么交易A将永远不会被接受(就像它从未发生过一样(。那么,创建交易A的用户A如何确保交易A被区块链接受/验证呢?

此外,交易a是否有可能在某个时候被区块链验证,然后在未来另一个不包含交易a的子链将增长更快,从而拒绝交易a?

是否建立了所有矿工都应该同意的时间检查点?

注意:由于区块链都非常不同,我假设我们谈论的是比特币。

如果首先挖掘块B,则事务A返回到节点的内存池(memory(中,并且候选包含在下一个块中。如果交易未被挖掘,mempool会在2周后将其踢出。

另一个不包含区块的区块链可能会增长得更快,但极不可能,因为每个区块平均需要10分钟,矿工被激励在主链上工作(而不是分叉链(,这样当主链开采新区块时,他们就会立即切换。他们不会在分叉链上工作足够长的时间来超过网络,从而浪费时间和资源。它需要至少51%(平均(的网络哈希能力才能超过主链,这被称为51%的攻击。比特币从未发生过这种情况,但像比特币黄金这样的小型链也发生过。

最新更新