主页 > imtoken授权管理系统 > 比特币交易如何独立验证? 独立验证比特币交易的条件是什么?

比特币交易如何独立验证? 独立验证比特币交易的条件是什么?

imtoken授权管理系统 2023-03-22 06:13:06

由 xinchaincaijing.com 共享,比特币交易由矿工验证,或者更准确地说,由在这些机器上运行的代码验证。 这个想法是通过让至少 x 数量的矿工确认数据有效来保持数据有效。 如果没有这种机制,无效数据可能会添加到链中。 下面详细介绍比特币中独立验证的交易。

比特币交易如何独立验证?

1.交易的独立验证

钱包软件通过收集 UTXO、提供适当的解锁脚本、然后构建分配给新所有者的新输出来创建交易。 然后将生成的交易发送到比特币网络中的相邻节点,以便它可以在整个比特币网络中传播。 然而,每个收到交易的比特币节点在将交易转发给它的邻居之前首先验证交易。 这确保只有有效的交易通过网络传播,而无效的交易在遇到它们的第一个节点被丢弃。

2. 每个节点检查每笔交易的标准

比特币节点谁维护的_比特币源代码谁在维护_比特币怎么比特币钱包

1. 交易的语法和数据结构必须正确。

2.输入和输出列表都不为空。

3. 以字节为单位的事务大小小于 MAX_BLOCK_SIZE。

4.每次输出值和总和必须在允许值范围内(小于21m硬币,大于0)。

比特币怎么比特币钱包_比特币源代码谁在维护_比特币节点谁维护的

5. 所有输入都没有hash=0, N=–1。

6. nLockTime 小于或等于 INT_MAX。

7.交易大小大于或等于100字节。

8.交易包含的签名操作数小于签名操作限制。

比特币怎么比特币钱包_比特币节点谁维护的_比特币源代码谁在维护

9、解锁脚本(scriptSig)只能将数字压栈,而锁定脚本(scriptPubkey)必须匹配isStandard形式,但这会拒绝“非标准”交易。

10. 匹配交易必须存在于池中或主分支的块中。

11. 对于每个输入,如果引用的输出存在于池中的任何其他交易中,则该交易必须被拒绝。

12.对于每个输入,在主分支和交易池中查找引用的输出交易。 如果任何输入缺少输出交易,它将是一个孤立交易。 如果池中不存在匹配的交易,则将其添加到孤立交易池中。

比特币源代码谁在维护_比特币节点谁维护的_比特币怎么比特币钱包

13.如果每个输入引用的输出交易是coinbase输出,至少需要100个COINBASE_MATURITY确认。

14. 对于每个输入,引用的输出必须存在并且不能被花费。

15.使用引用的输出交易获取输入值,检查每个输入值以及总和是否在允许值范围内(小于2100万币,大于0)。

16.如果输入值之和小于输出值之和则拒绝。

比特币源代码谁在维护_比特币节点谁维护的_比特币怎么比特币钱包

17. 如果交易手续费太低无法进入空区块,则拒绝。

18. 每个输入解锁脚本必须针对相应的输出锁定脚本进行验证。

这些条件可以在比特币参考客户端的 AcceptToMemoryPool、CheckTransaction 和 CheckInputs 函数中详细查看。 请注意,条件会随着时间的推移而变化比特币节点谁维护的,以应对新型拒绝服务攻击,或者有时会放宽规则以包含更多类型的交易。 通过在收到交易时和传播之前独立验证每笔交易,每个节点都会构建一个有效(但未确认)交易池比特币节点谁维护的,称为交易池、内存池或内存池。

总结

以上内容介绍了比特币交易的独立验证和验证标准的条件。 一般来说,交易是由矿工验证的,他们通过接收交易的一部分作为奖励来做到这一点,这个数额越高,你的区块被确认的速度就越快,因为会有更多的人想要挖它来获得这个奖励,一旦发生,交易就会被验证。

标签: 比特币 交易 比特币