目前为 6.25,比特币网络以这种减半的方式来控制比特币的总量。Coinbase 奖励是每个区块记录的第一笔交易。
待确认的交易会先进入交易池中 当我们要发起一笔比特币交易时,交易发起方构造好交易信息,此时的交易信息是待确认的交易,它包含交易输入信息(未使用的 UTXO 和正确私钥签名)和交易输出信息(锁定新的钱包地址的待确认 UTXO)。 待确认交易在经过验证后,由交易发起方向比特币网络广播,比特币网络中的节点,均可验证和收录广播的信息。其中,挖矿节点会在收到广播后,验证待确认交易信息,验证通过后,挖矿节点会将待确认交易加入到自己的交易池中。 需要验证的交易信息包括: 交易是否包含有效的输入和输出钱包地址; 交易体积是否小于区块的最大体积(比特币区块的最大体积目前是 1M); 输入的 UTXO 是否合法(对照节点的 UTXO 库,输入 UTXO 未被使用过); 交易输入总额和输出总额是否合理(输入总额≥输出总额); 判断交易的输入是否有来自 Coinbase 的奖励,该奖励对应的币需至少有 100 个区块确认才能可以使用; 确认交易池中没有重复交易; 交易设置的交易费高于 mempool 的交易费比例(Sat/B)限制,以及其他验证(如孤立交易的验证和追踪等) 挖矿节点从交易池中选择交易,构造预备区块 当挖矿节点要构造预备区块,准备生成新区块时,会按照优先级排序,从交易池中取待确认交易。预备区块通常会预留一定空间给高优先级的交易,剩下的空间会按照交易费比例(Sat/B)由高到低顺序一直把区块加满或者把交易池的交易用光。 但比特币区块中不仅仅包含从交易池中取的待确认交易。 按照比特币协议规定,比特币的区块主要包括五个部分:魔数,区块大小,区块头,交易计数器和交易信息。如下图: 其中,「魔数」是一个值为 0xD9 B4 BEF9 的常数;「区块体积」是本区块所有数据的总体积;「区块头」是可以看作是整个区块的缩略信息,挖矿用到的区块信息就是区块头;「交易计数器」用来记录区块中交易的数量;「交易数据」是区块所包含的所有交易信息,包括 Coinbase 奖励部分,一般来说,这部分数据占了整个区块绝大部分空间。 (责任编辑:admin1) |