区块链入门:一文看懂比特币新区块产生的过程

比特币交易的过程实质上是一堆UTXO消耗和产生的过程,这些过程由交易发起方按照比特币协议规定的方式构造交易信息,并由比特币网络产生的新区块记录和确认,一旦交易信息由比特币区块记录并确认,交易便完成了,比特币网络也就实现了价值的转移。

在“比特币交易的过程”一文中,我们已经知道比特币的交易信息是如何构造的,但是这些信息又是如何进入比特币新区块的呢?

接下来博主将通过比特币新区块产生的过程来具体说明比特币区块是如何记录并确认交易信息的。

这里需要先安利几个知识点:

交易池,英文名称:mempool,又叫内存池,是用来存储待确认交易的地方,每个比特币挖矿节点均有自己独立的交易池,因交易池体积,最低交易费比例限制等不同,各节点的交易池也不相同。矿工在构造预备区块时,需要从交易池中选择要打包的交易。由于交易池经常被调用,它的数据被存放在节点服务器的RAM中,这就意味着交易池的体积不会太大。

浙江宁波:区块链新型信息基础设施“甬链”正式发布:金色财经报道,9月2日,2022世界数字经济大会的高层次论坛活动之一——“链上甬城链接未来”宁波市区块链应用技术创新峰会暨区块链“百业应用上链”联合行动启动仪式在宁波举行,正式发布宁波市区块链新型信息基础设施“甬链”。

据悉,“甬链”是在宁波市委网络安全和信息化委员会办公室、宁波市发展和改革委员会、宁波市经济和信息化局、宁波市大数据发展管理局、中国移动浙江公司等单位指导下,由宁波区块链专委会的主任单位——中国移动宁波分公司(以下简称“宁波移动”),联合BSN发展联盟牵头实施建设,以完全开放、兼容、共享、安全、可监管的模式,为宁波全市区块链产业发展做好基础设施赋能。[2022/9/4 13:07:04]

挖矿节点,在比特币网络中,参与记录和验证比特币交易和区块的是一个个保存比特币数据的节点。其中有一部分节点,不仅参与记录和验证的工作,还参与比特币新区块的创建工作,他们构造新区块,并通过PoW工作量证明竞争记账权,进而获得创建新区块的权限,这部分节点是挖矿节点。早期的挖矿节点有矿工,也有矿池,但当前由于比特币挖矿难度太高,单个矿工很难赢取记账权,创建新区块。目前主要的比特币挖矿节点,是各家矿池,如F2Pool,Poolin,BTC,Antpool,Slushpool等。

BIS报告:到2026年全球区块链在农业和食品市场将达到14.8亿美元:金色财经报道,根据BIS 市场情报研究,到 2026年,全球农业和食品市场区块链?的收入?预计将达到14.8 亿美元,复合年增长率为 51%。农业和食品市场需要大量不一致的文书工作和对纸质文件的依赖。区块链提供了一个系统的数字分类账,用于存储土地记录和其他数据,在自然灾害期间保持安全。

区块链技术将是一场革命性的变革,因为它提供了关于农场、库存、信用评分和食品跟踪的防篡改、精确统计数据。(prnewswire)[2022/2/25 10:16:27]

UTXO库,比特币节点通过扫描节点所有交易信息,构建的UTXO集群。它包含所有未被消耗的UTXO。每当新区块产生后,UTXO库会将新区块中消耗掉的UTXO从自己的列表中删除,将新产生的UTXO加入到自己的列表中。

动态 | 区块链搜索指数暴涨 90后男性最关注:根据百度指数,近7天,区块链的搜索指数暴涨,整体日均值达到97718,同比上升939%,环比上升2017%。根据需求图谱,“区块链是什么”、“区块链技术”、“比特币”、“区块链怎么赚钱”等等基础概念是人们关注的重点。从年龄分布来看,关注区块链的人群中,20-29岁的90后用户占比最高,达到50%左右,占据半壁江山。从性别分布来看,男性人群占比高达65%,显著高于女性。[2019/10/30]

Coinbase奖励,又叫创币交易。比特币协议规定,每产生一个新的比特币区块,比特币网络就会产生N个比特币,作为维护比特币网络的奖励支付给创建这个区块的矿工。同时,此区块中Coinbase奖励之外的其他交易包含的所有交易费,也会合并在Coinbase奖励中,一起支付给创建这个区块的矿工。其中,N的数值在比特币诞生时为50,此后大约每4年减半一次,目前为6.25,比特币网络以这种减半的方式来控制比特币的总量。Coinbase奖励是每个区块记录的第一笔交易。

动态 | 韩国欢迎储蓄银行开展对区块链等创业公司进行支援投资项目:韩国欢迎储蓄银行(welcome saving bank)今日表示,将通过和风投公司Loa Invitation Lab合作运营一个名为“欢迎创业”的创业培训项目,对于被选为支援对象的创业项目,最多将投资五千万韩元,具有数据分析、区块链技术的创业公司均可以进行申请(韩国经济)[2019/2/12]

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

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

交易是否包含有效的输入和输出钱包地址;交易体积是否小于区块的最大体积;输入的UTXO是否合法;交易输入总额和输出总额是否合理;判断交易的输入是否有来自Coinbase的奖励,该奖励对应的币需至少有100个区块确认才能可以使用;确认交易池中没有重复交易;交易设置的交易费高于mempool的交易费比例限制,以及其他验证。

五粮液牵手IBM 将在区块链等方面展开深入合作:近日,在宜宾举行的五粮液(000858.SZ)数字化转型项目启动大会上,五粮液和IBM双方表示,将在区块链、云计算、人工智能等领先科技方面进行深入的合作应用,借用IBM丰富的行业数字化转型经验和技术,按照“年轻化”“低度化”“数字化”“国际化”的创新思维,带动酒业乃至及“大机械、大物流、大包装、大金融、大健康”五大板块快速有序发展,助力五粮液构建“智慧商业”模式,实现高质量发展。[2018/4/29]

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

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

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

图2比特币区块的结构

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

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

区块版本号。创建区块的比特币节点的版本信息,用于追踪比特币协议的升级和更新情况;前一个区块的哈希值。又叫做父区块哈希,用来定位上一个区块。每一个区块都包含它的上一个区块的哈希值,针对任何一个区块的任何一个微小的改动,都会使后续区块的哈希值产生巨大的变化,如此环环相扣,确保比特币所有区块形成一条单一的链式结构,可以有效防止恶意篡改比特币区块数据的行为。MerkleRoot哈希。在区块的交易数据列表中,取所有交易数据的哈希值,构建Merkle树,这个Merkle树的根哈希值,即为MerkleRoot哈希。如下图:

由于哈希算法的敏感性,整个交易的Merkle树中任何一个交易数据有微小的改动,都会产生联动效果,导致Merkle树的根哈希值出现巨大变化。因此交易数据的Merkle树根哈希值可以看作是整个交易的指纹,用来指代区块中的交易数据。时间戳。创建预备区块的时间。当前目标哈希值。比特币协议规定,矿工创建的预备区块的哈希值小于目标哈希值时,这个区块才算有效。目标哈希值由挖矿难度确定,当挖矿难度变大时,目标哈希值变小,矿工要找到符合比特币网络要求的哈希值就越困难。按照当前的挖矿难度,要找到低于目标哈希值的哈希值,理论上需要一台S17矿机连续工作42年时间。因此,现在基本不存在个人自建节点挖比特币的情况。随机数。又叫Nonce。我们可以发现,区块头信息中,区块版本号,前一个区块的哈希值,MerkleRoot哈希值,时间戳,以及当前目标哈希,都是已知信息,相对固定,不便随意更改。因此,如果要调整预备区块的哈希值,就需要引入一个可变的数据——随机数。修改随机数,就可以调整预备区块的哈希值。挖矿节点构建好预备区块后,就会将区块头信息下发给矿工,矿工通过不断调整区块头中的随机数来变更预备区块的哈希值,当预备区块的哈希值低于比特币网络当前目标哈希值时,这个区块就是一个合法新区块。

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

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

银河链

[0:0ms0-1:981ms