新闻资讯
 
  新闻详情Introduction
当前位置: 首页- 新闻详情

区块的结构

作者:大大中彩票-大大中彩票官网-大大中彩票app-大大中彩票下载    发布时间:2020-04-28 17:39:54    来源:大大中彩票-大大中彩票官网-大大中彩票app-大大中彩票下载    浏览:39
  

  网络活动不断产生新交易,不断“整理”出新区块来记录“这一段时间内”的交易。

  为了能彼此关联,每个区块都会记录它的前一个区块是什么,这相当于,区块按先来后到的顺序被“摞”在一起,形成了一条“链”。

  随着时间的推移,链不断延长,这条区块链,记录了截至目前为止所有的比特币交易,是比特币网络的总账本。

  我们说一笔交易被写入账本,就是说这笔交易通过了验证,已经被“整理”进区块,并得到了全网络的认可。

  当你托运行李的时候,航空公司会在你的箱上贴一个标签,记录一些必要的基本信息,方便快速识别。

  用区块存储交易也是类似的,代码见block.h#L61,区块结构(序列化后)为

  这个哈希标识,可以直接用收到的区块数据计算出来,并不需要传输。通过下面的过程,计算区块的哈希。

  Merkle 树是一棵二叉树,用于归纳一个区块中的所有交易,代码见 merkle.cpp。

  交易会被放在 Merkle 树最底层的叶子节点上,如图所示,如果交易的个数是奇数,会复制最后一笔交易补齐,其中:

  不管区块中有多少交易,都使用 Merkle 树结构进行归纳,最顶上的树根Merkle Root的值,会放到区块头的hashMerkleRoot字段中。

  Merkle 树将区块头和区块中的交易关联了起来,如果区块中的交易发生了变化,Merkle 树根的值就会变化,从而改变区块头,改变整个区块的哈希标识。

  使用 Merkle 树的另一个好处是,它提供了一种校验区块是否存在某笔交易的高效途径。对于下面这棵 Merkle 树,

  这四个哈希值构造一条“Merkle 路径”,只需 128 字节,任何人都可以用这条路径,验证区块包含交易 K。

  一个区块最多只能有一笔 Coinbase 交易(一般是区块中的第一笔交易),它没有输入,“无中生有”的产生输出,即会发行新的比特币。

  一个要注意的点是,因为 Coinbase 交易不需要输入,所以你可以在解锁脚本里填写任意值(2 ~ 100 字节),这个值被称为 Coinbase 数据。

  开头的0x03表示,区块高度数据紧跟其后有 3 字节,值为0x0659ec(小端模式),即 416236。

  如果链中的某个区块数据发生了变化(例如区块中的交易被替换),那么这个区块的哈希也会发生变化(Merkle 树根发生了变化),同时改变下一个区块的区块头数据及区块哈希,带来一连串的连锁反应。

  一段时间内产生的交易通过验证后,会被打包(整理)进区块并“告知”全网,网络中的节点根据规则,选择接受(跟随)这个区块(把这个区块纳入总帐本),或者拒绝(丢弃)这个区块。

足球头条 |

版权所有:仁懋半导体有限公司 Copyright © 2016 lnmark Co., Ltd. 大大中彩票-大大中彩票官网-大大中彩票app-大大中彩票下载