如何在区块链中验证交易?

时间:2020-03-26 19:09:19

标签: blockchain policy nonce consensus

如果矿工A大约同时创建了一个包含交易A的区块,而矿工B创建了一个不包含交易A的区块,那么其他一些矿工将首先收到矿工A的区块,而其他矿工将会收到矿工B的区块。

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

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

有没有建立所有矿工都应该同意的检查点?

1 个答案:

答案 0 :(得分:2)

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

如果首先开采了区块B,则事务A返回到节点的内存池(内存)中,并可能包含在下一个区块中。如果尚未被开采,则内存池会在2周后将其淘汰。

不包含该区块的另一条链可能会增长得更快,但可能性极小,因为每个区块平均需要10分钟,并且激励矿工在主链上工作(而不是叉链),因此他们会切换当主链开采一个新区块时,立即结束。他们不会在分支链上工作太长时间以致无法超越网络,从而浪费时间和资源。它需要至少51%(平均)的网络哈希能力才能超越主链,这被称为51%攻击。这从未发生在比特币上,但是发生在像比特币黄金这样的较小的链上。