美文网首页
【区块链】比特币区块结构

【区块链】比特币区块结构

作者: 一个测试员的日常 | 来源:发表于2018-05-15 08:48 被阅读0次

    在币圈里混的人,或多或少听过区块链概念,区块链的最简洁、最核心的定义:区块链是不可篡改的账簿。

    这句话点明区块链具有不可篡改的特性,但没说明区块链是怎样组成,或者区块链的结构是怎样的?

    在《精通比特币》第7章对区块链定义:

    区块链是由包含交易信息的区块从后向前有序链接起来的数据结构。

    这是从软件设计的角度来解释。如果没了解过数据结构的小伙伴,看到定义后半部分可能会产生疑惑。下面我给出比较简洁定义:区块链是有序地把一个个区块链接起来。

    根据上面定义,关键词包括:有序区块链接。画出简洁区块链的图(如下图1)。

    区块链接.png

    有序是指按照产生区块时间来排序,越早产生的区块,越排在前面。比特币是平均十分钟产生一个区块。

    区块

    区块是本文章重点讲述的内容,每个区块主要用于存储交易信息。区块结构如下:

    大小 字段名称 描述
    4字节 区块大小 用字节表示区块大小
    80字节 区块头 组成区块头所包含的字段
    1-9字节(不固定) 交易数量 交易数量
    不固定 交易信息 记录当前区块里的交易信息

    区块头结构如下:

    大小 字段 描述
    4字节 版本 版本号,跟踪使用软件/协议
    32字节 父区块哈希值 上一个区块哈希值
    32字节 Merkle根 该区块中交易的Merkle树根的哈希值
    4字节 时间戳 该区块产生时间
    4字节 难度目标 该区块工作量证明的难度目标
    4字节 Nonce 工作量证明的计数器

    用表格描述区块结构是清晰的,但不够直观。下面使用一张图来表示区块结构:

    区块结构.png

    这张图清晰明了介绍区块包含信息和组成。

    区块是通过什么链接起来的?区块头的父区块哈希,就是使用它把一个个链接起来。一直连到创世区块,创世区块也就是第一个区块

    每个区块都有父区块哈希值,有没有想过当前区块哈希是产生的?

    当前区块哈希值不包含在区块的结构,当从比特币网络被接收到该区块时,再由每个节点计算出区块哈希值。区块的哈希值可能存储到某个设备或者数据库,以便于索引和更快地从磁盘检索区块。

    结语

    从区块结构的角度,讲解区块链的定义:区块链是有序地把一个个区块链接起来。区块结构包括:区块大小、区块头、交易数量、交易笔数。区块头包含字段有:版本号、父区块哈希值、Merkle根、时间戳、Nonce、难度目标。还有当前区块哈希值不包含在区块的结构。

    相关文章

      网友评论

          本文标题:【区块链】比特币区块结构

          本文链接:https://www.haomeiwen.com/subject/jfxedftx.html