Transactions 获取离线比特币交易id,链接多个离线交易

Transactions 获取离线比特币交易id,链接多个离线交易,transactions,offline,bitcoin,Transactions,Offline,Bitcoin,假设我创建了一个有效的事务(脱机而不发送它,例如:。我们将其称为“a” a) 在发送a之前,我可以获取a的交易ID吗 b) 我希望创建一个新的离线交易(称为b),使用a的输出作为b的输入。但a尚未发送到比特币网络。这可能吗 c) 如果b)部分是可能的,并且我发送了A,那么立即将b发送到比特币网络。会发生什么情况?比特币协议中没有交易ID,只有交易哈希。 为了更清楚,您需要了解事务有输入和输出 输入由上一笔交易的哈希值和签名脚本组成,签名脚本将证明您是硬币的所有者。正如您所注意到的,没有输入金额

假设我创建了一个有效的事务(脱机而不发送它,例如:。我们将其称为“a

a) 在发送a之前,我可以获取a的交易ID吗

b) 我希望创建一个新的离线交易(称为b),使用a的输出作为b的输入。但a尚未发送到比特币网络。这可能吗


c) 如果b)部分是可能的,并且我发送了A,那么立即将b发送到比特币网络。会发生什么情况?

比特币协议中没有交易ID,只有交易哈希。 为了更清楚,您需要了解事务有输入和输出

  • 输入由上一笔交易的哈希值和签名脚本组成,签名脚本将证明您是硬币的所有者。正如您所注意到的,没有输入金额,因为地址的整个提供都将花费。更改将在事务输出中发送回您

  • 输出由金额和签名脚本组成。在这种情况下,签名脚本给出了解锁硬币所需的条件

因此,是的,您可以创建B,而不必将A发送到网络

如果同时发送AB会发生什么? 交易A肯定会完成。之后至少3个新区块B可能也会完成,但这不是100%确定的,因为矿工可能会从他们的记忆中删除B,直到A没有花费

您可以在此处获得有关交易的更多详细信息:

关于事务脚本,请参见:

在根据另一个未确认(甚至离线)事务创建新事务之前,您必须记住,在挖掘过程中,您的事务哈希(id)可能会更改

因此,您可以随时将所有A和B事务发送到网络,但有几个选项:

  • 事务A将包含在下一个块中并确认,因此当事务B包含在下一个块中时,一切都将正常
  • 您的事务A将在挖掘过程中更改其哈希(请参阅事务延展性),并以不同的哈希(id)包含在下一个块中。在这种情况下,网络将永远不会接受您的事务B(它取决于事务A的脱机计算哈希,该哈希不再有效)

  • 您应该在比特币堆栈交换上发布与比特币相关的问题。