繁体   English   中英

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

[英]How a transaction is verified in a blockchain?

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

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

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

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

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

如果区块 B 先被挖出,交易 A 会回到节点的内存池(内存)中,并有可能被包含在下一个区块中。 如果交易尚未被挖掘,内存池会在 2 周后将交易踢出。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM