快速看懂比特币新区块产生的过程

  发布时间:2023-10-02 13:20:01   作者:手工客  
比特币交易的过程实质上是一堆UTXO消耗和产生的过程,这些过程由交易发起方按照比特币协议规定的方式构造交易信息,并由比特币网络产生的新区块记录和确认,一旦交易信息由比特币区块记录并确认,交易便完成了,比特币网络也就实现了价值的转移。

比特币交易的过程实质上是一堆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年减半一次,目前为6.25.比特币网络以这种减半的方式来控制比特币的总量。Coinbase奖励是每个区块记录的第一笔交易。

待确认的交易会先进入交易池中

当我们要发起一笔比特币交易时,交易发起方构造好交易信息,此时的交易信息是待确认的交易,它包含交易输入信息(未使用的UTXO和正确私钥签名)和交易输出信息(锁定新的钱包地址的待确认UTXO)。

待确认交易在经过验证后,由交易发起方向比特币网络广播,比特币网络中的节点,均可验证和收录广播的信息。其中,挖矿节点会在收到广播后,验证待确认交易信息,验证通过后,挖矿节点会将待确认交易加入到自己的交易池中。

快速看懂比特币新区块产生的过程

图1 待确认交易进入交易池

需要验证的交易信息包括:

交易是否包含有效的输入和输出钱包地址;

交易体积是否小于区块的最大体积(比特币区块的最大体积目前是1M);

输入的UTXO是否合法(对照节点的UTXO库,输入UTXO未被使用过);

交易输入总额和输出总额是否合理(输入总额≥输出总额);

判断交易的输入是否有来自Coinbase的奖励,该奖励对应的币需至少有100个区块确认才能可以使用;

确认交易池中没有重复交易;

交易设置的交易费高于mempool的交易费比例(Sat/B)限制,以及其他验证(如孤立交易的验证和追踪等)。

挖矿节点从交易池中选择交易,构造预备区块

当挖矿节点要构造预备区块,准备生成新区块时,会按照优先级排序,从交易池中取待确认交易。预备区块通常会预留一定空间给高优先级的交易,剩下的空间会按照交易费比例(Sat/B)由高到低顺序一直把区块加满或者把交易池的交易用光。

但比特币区块中不仅仅包含从交易池中取的待确认交易。按照比特币协议规定,比特币的区块主要包括五个部分:魔数,区块大小,区块头,交易计数器和交易信息。如下图:

快速看懂比特币新区块产生的过程

图2 比特币区块的结构

其中,“魔数”是一个值为0xD9B4BEF9的常数;“区块体积”是本区块所有数据的总体积;“区块头”是可以看作是整个区块的缩略信息,挖矿用到的区块信息就是区块头;“交易计数器”用来记录区块中交易的数量;“交易数据”是区块所包含的所有交易信息,包括Coinbase奖励部分,一般来说,这部分数据占了整个区块绝大部分空间。

在比特币区块中,区块头是最为关键的一个信息。它包含整个区块的所有特征信息:

区块版本号。创建区块的比特币节点的版本信息,用于追踪比特币协议的升级和更新情况;

前一个区块的哈希值。又叫做父区块哈希,用来定位上一个区块。每一个区块都包含它的上一个区块的哈希值,针对任何一个区块的任何一个微小的改动,都会使后续区块的哈希值产生巨大的变化,如此环环相扣,确保比特币所有区块形成一条单一的链式结构,可以有效防止恶意篡改比特币区块数据的行为。

MerkleRoot哈希。在区块的交易数据列表中,取所有交易数据的哈希值,构建Merkle树,这个Merkle树的根哈希值,即为MerkleRoot哈希。如下图:

快速看懂比特币新区块产生的过程

图3 交易数据的Merkle树结构

由于哈希算法的敏感性,整个交易的Merkle树中任何一个交易数据有微小的改动,都会产生联动效果,导致Merkle树的根哈希值出现巨大变化。因此交易数据的Merkle树根哈希值(MerkleRoot Hash)可以看作是整个交易的指纹,用来指代区块中的交易数据。

时间戳。创建预备区块的时间。

当前目标哈希值。比特币协议规定,矿工创建的预备区块的哈希值小于目标哈希值时,这个区块才算有效。目标哈希值由挖矿难度确定,当挖矿难度变大时,目标哈希值变小,矿工要找到符合比特币网络要求的哈希值就越困难。按照当前的挖矿难度,要找到低于目标哈希值的哈希值,理论上需要一台S17矿机连续工作42年时间。因此,现在基本不存在个人自建节点挖比特币的情况。

随机数。又叫Nonce。我们可以发现,区块头信息中,区块版本号,前一个区块的哈希值,MerkleRoot哈希值,时间戳,以及当前目标哈希,都是已知信息,相对固定,不便随意更改。因此,如果要调整预备区块的哈希值,就需要引入一个可变的数据——随机数。修改随机数,就可以调整预备区块的哈希值。

挖矿节点构建好预备区块后,就会将区块头信息下发给矿工,矿工通过不断调整区块头中的随机数来变更预备区块的哈希值,当预备区块的哈希值低于比特币网络当前目标哈希值时,这个区块就是一个合法新区块。

挖矿节点会及时地向比特币网络广播新区块,比特币网络中其他比特币节点在接到广播信息后,对新区块进行验证,验证通过后,将新区块加入本地,并延长节点的区块链。此时,新区块创建并确认完毕,对应交易也完成了。

相关文章

  • 买卖莱特币用什么软件?常用莱特币交易app推荐

    买卖莱特币用什么软件?常用莱特币交易app推荐

    说起莱特币,大家不会像比特币(BTC)那样频繁地在头条新闻中看到莱特币,但是它仍然是最受欢迎的加密货币之一,也是继比特币之后最古老的加密货币。顾名思义,莱特币最初是为了改善比特币的几个明显缺点而创建的,例如交易处理速度慢和
    07-02
  • 币圈子解析:硬分叉对比特币有什么影响?

    币圈子解析:硬分叉对比特币有什么影响?

    市场关于比特币硬分叉的担忧究竟来自于哪里?为什么比特币硬分叉那么可怕?硬分叉后币价会大幅下跌是真的吗? 近期,市场对比特币扩容技术的争论以及对比特币硬分叉的担忧不断增加,然而仍然有很多用户弄不清硬分叉是什么,为什么硬分叉会引起担忧。为了避
    07-01
  • 核心开发人员认为,如果不增加集中化,就无法修复对比特币的51%攻击

    核心开发人员认为,如果不增加集中化,就无法修复对比特币的51%攻击

    51%攻击比特币的能力表明它是去中心化的。Litecoin创始人查理·李(Charlie Lee)和比特币核心开发人员格雷戈里·麦克斯韦(Gregory Maxwell)认为 ,不增加集中化就不可能修复此漏洞。
    07-04
  • 虚拟币代币排行榜最新(2023年虚拟币代币排行榜,探究市值、技术和应用领域)

    虚拟币代币排行榜最新(2023年虚拟币代币排行榜,探究市值、技术和应用领域)

    虚拟币代币排行榜最新(2023年虚拟币代币排行榜,探究市值、技术和应用领域)
    07-04
  • 深度解析比特币使用的区块链属于什么链

    深度解析比特币使用的区块链属于什么链

    在过去几年中,每隔几个月,有关比特币等加密货币的故事就会成为新闻。无论从正面还是负面的意义上说,这项新技术都是一个令人着迷且发展迅速的前景。区块链这项技术是许多加密货币的核心,包括比特币。更重要的是,区块链技术的用
    06-25
  • 泰达币交易平台哪个最安全最可靠?

    泰达币交易平台哪个最安全最可靠?

    众所周知,USDT是于2014年7月以Realcoin的名称发行的,USDT是通过使用Omni平台,并基于比特币区块链之上的第二层加密货币代币,以后,它被改名为 "USTether ",并于晚些时候更名为Tether,在币圈,泰达币有着不可或缺的作用
    07-04
  • 比特币交易平台有哪些?2023比特币交易平台一览

    比特币交易平台有哪些?2023比特币交易平台一览

    众所周知,比特币可以说是2023年投资界的当红炸子鸡,投资回报率高达908 99万倍,这也使得投资比特币的越来越多,而对于投资者来说,比特币交易平台的选择是最为重要的,毕竟市面上的比特币交易平台层出不穷
    07-04
  • 2023年世界主流数字货币有哪些?

    2023年世界主流数字货币有哪些?

    近年来,比特币时常霸占着热搜,就比如说这次比特币价格再次突破十万元,让人们对比特币越来越期待,也正是因为如此,数字货币也随之成为了最火的投资项目之一,众所周知
    06-21
  • 比特币正规的平台有哪些?数字货币交易正规平台盘点

    比特币正规的平台有哪些?数字货币交易正规平台盘点

    根据行情数据显示,比特币目前流通市值为9978 11亿美元,流通数量为1868 4万,24小时成交额为406 45亿美元,至截稿为止,比特币价格为53601 9美元,也就是人民币34 82万元,24小时成交量为76 07万,由此可以看出,目前选择比特币交易的投资者还是有很多的
    06-28
  • 2023年比特币买涨买跌平台有哪些?

    2023年比特币买涨买跌平台有哪些?

    如今的比特币被炒的愈发的火爆,而比特币的投资者也变得越来越多,很多投资者开始将大笔的资金投入到比特币中。那么我们标题中的比特币买涨买跌是什么意思呢,这就要从比特币的两种交易方式说起了,比特币的交易分为现货交易和合
    07-03
  • 什么是比特币分叉?比特币为何要分叉?

    什么是比特币分叉?比特币为何要分叉?

    什么是比特币分叉?比特币为何要分叉?比特币分叉的意思就是说有两种。硬分叉意思就是说,当比特币的代码发生了一系列的变化之后,旧的相关节点不接受新创造的区块。软分叉的意思就是说,与硬分叉相反,它可以接受。很多朋友都在问什么是比特币分叉?比特币为何要分叉?那么本篇文章就详细的来给大家介绍一下,希望您阅读完本篇文章之后您有一定的了解。
    06-24
微信 投稿 脚本任务 在线工具