比特币挖矿过程中,区块是如何记录并确认交易信息的? 原文标题:《比特币新区块产生的过程》 撰文:闲话挖矿 这是博主挖矿科普专辑的第二篇内容,承接上一篇「比特币交易的过程」,继续通过分析比特币交易从发起到确认的全过程来一睹比特币挖矿的全貌。 比特币交易的过程实质上是一堆 UTXO 消耗和产生的过程,这些过程由交易发起方按照比特币协议规定的方式构造交易信息,并由比特币网络产生的新区块记录和确认,一旦交易信息由比特币区块记录并确认,交易便完成了,比特币网络也就实现了价值的转移。 在「比特币交易的过程」一文中,我们已经知道比特币的交易信息是如何构造的,但是这些信息又是如何进入比特币新区块的呢? 接下来博主将通过比特币新区块产生的过程来具体说明比特币区块是如何记录并确认交易信息的。 这里需要先安利几个知识点 交易池,英文名称:mempool,又叫内存池,是用来存储待确认交易的地方。每个比特币挖矿节点均有自己独立的交易池,因交易池体积,最低交易费比例(本文所指交易费比例,均为单位体积交易包含的手续费,单位是 Sat/B,即每 B 字节交易的手续费为 x 聪比特币,下同)限制等不同,各节点的交易池也不相同。矿工(矿池)在构造预备区块时,需要从交易池中选择要打包的交易。由于交易池经常被调用,它的数据被存放在节点服务器的 RAM 中,这就意味着交易池的体积不会太大。 挖矿节点,在比特币网络中,参与记录和验证比特币交易和区块的是一个个保存比特币数据的节点。其中有一部分节点,不仅参与记录和验证的工作,还参与比特币新区块的创建工作,他们构造新区块,并通过 PoW 工作量证明竞争记账权,进而获得创建新区块的权限,这部分节点是挖矿节点。早期的挖矿节点有矿工,也有矿池,但当前由于比特币挖矿难度太高,单个矿工很难赢取记账权,创建新区块。目前主要的比特币挖矿节点,是各家矿池,如 F2Pool,Poolin,BTC.com,Antpool,Slushpool 等。 UTXO 库,比特币节点通过扫描节点所有交易信息,构建的UTXO 集群。它包含所有未被消耗的 UTXO。每当新区块产生后,UTXO 库会将新区块中消耗掉的 UTXO 从自己的列表中删除,将新产生的 UTXO 加入到自己的列表中。 Coinbase 奖励,又叫创币交易。比特币协议规定,每产生一个新的比特币区块,比特币网络就会产生 N 个比特币,作为维护比特币网络的奖励支付给创建这个区块的矿工。同时,此区块中 Coinbase 奖励之外的其他交易包含的所有交易费,也会合并在 Coinbase 奖励中,一起支付给创建这个区块的矿工。其中,N 的数值在比特币诞生时为 50,此后大约每 4 年减半一次, (责任编辑:admin1) |