主页 > imtoken钱包苹果 > 比特币交易流程全解析

比特币交易流程全解析

imtoken钱包苹果 2023-01-17 09:29:35

整个比特币网络的运行目的相同:比特币交易比特币的交易流程图,这是比特币系统中最重要的部分。比特币交易的本质是包含比特币交易参与者价值转移信息的数据结构。

比特币交易

比特币系统的任何部分都旨在确保比特币交易可以生成、在比特币网络中传播、验证并最终添加到比特币交易的全球账本(比特币区块链)中。

交易类型

共有三种常见的交易类型:输出交易(Generation)、合成地址交易(Hash)和通用地址交易(Pubkey Hash)。

Generation TX:每个区块对应一个生成交易(Generation TX)。此类交易无输入交易,新挖出的币是所有币的来源。

Hash TX:多重签名交易,地址以3开头,三对公私钥可以生成合成地址。在生成过程中指定 n in n of 3。n 的范围是 [1, 3]。如果 n=1,则只需一个私钥签名即可花费地址的币。如果 n=3,则需要三个硬币。私钥可以依次签名。

Pubkey Hash TX:此类是最常见的交易类型,由 N 个输入和 M 个输出组成。

交易流程

比特币交易创建后,会通过一个或多个签名进行加密,即获得使用比特币资金的权限。然后将交易广播到比特币网络。在比特币网络中,每个节点都会验证并广播网络中的交易比特币的交易流程图,直到交易被网络中的大多数节点接收。交易经过挖矿节点验证后被添加到区块链中。

实际交易

比特币交易是在没有连接到比特币网络的情况下创建和签名的。只有在交易执行时才需要将交易发送到网络。用户在交易比特币时,只需要设置交易的目的地址和金额,其余由钱包程序完成。比特币还可以使用延迟发送交易的能力。

交易结构

比特币交易是一个包含 Tx_in(交易输入)和 Tx_out(交易输出)的数据结构。每个事务 TX 包含几个 Tx_in 和几个 Tx_out。除了创世区块中的交易外,每笔交易都必须有一个来源:一个是挖矿奖励(币基),在每个区块的第一笔交易中;另一个是之前交易中没有用到的交易输出,即UTXO。花费者通过私钥签名证明其所有权,而比特币系统则验证它没有被花费及其所有权。

交易结构

大小字段数据类型描述4字节版本版本uint32_t数据结构版本号,指定本次交易所指的规则1-9字节tx_in计数输入数量var_int输入地址数量41+字节tx_out计数输入tx_in[]一个或多个交易输入地址,每个输入 >= 41 字节 1-9 字节 tx_out 计数输出数 var_int 输出地址数 9+ 字节 tx_out 输出 tx_out[] 一个或多个事务输出地址,每个输入 >= 9 字节 4 字节 lock_time 锁定时间 uint32_t UNIX 时间戳或者区块号lock_time是一个多义字段,表示该交易在某个高度的区块之前或某个时间点之前被锁定,不能被包含在该区块中。

value 含义 0 立即生效 < 500000000 表示区块高度,在区块被锁定之前(不生效) >= 500000000 表示 Unix 时间戳,在这个时间被锁定之前(不生效) 如果事务的所有输入事务都是sequence 字段为 INT32 (0xffffffff) 的最大值,lock_time 字段被忽略。否则,交易直到达到区块高度或达到一定时间才会被包含在区块中。

完整的序列化交易订单(Raw Transaction)的十六进制代码(包括签名数据)

交易查询

交易是否确认可以在区块链查询器中查看。主流币常用的区块链查询器:

对于比特币:

仅限密件抄送:

对于 ETH:

对于 ETC:

BTC+BCC 通用:

BTC+ETH+ETC 通用:

交易未确认

未确认的交易可能是:

1.矿工费不足,导致打包优先级不足,所以确认慢,可以耐心等待;您还可以使用矿工的加速服务来提高内存池排队和打包优先级。

2.矿工费严重不足,难以打包,超时(24h)后会被内存池清空。矿工加速费可以及时补充。