2. 区块链的基础模型与关键技术
本节将结合比特币系统的技术与应用现状,阐述区块链技术的基础模型、基本原理和关键技术,以及区块链在比特币系统之外的若干创新模式。现存的其他区块链应用大多都与比特币类似,仅在某些特定的环节或多或少地采用比特币模式的变种。

图 2 区块链基础架构模型
区块链技术的基础架构模型如图 2 所示。一般说来,区块链系统由数据层、网络层、共识层、激励层、合约层和应用层组成。其中,
数据层封装了底层数据区块以及相关的数据加密和时间戳等技术;
网络层则包括分布式组网机制、数据传播机制和数据验证机制等;
共识层主要封装网络节点的各类共识算法;
激励层将经济因素集成到区块链技术体系中来,主要包括经济激励的发行机制和分配机制等;
合约层主要封装各类脚本、算法和智能合约,是区块链可编程特性的基础;
应用层则封装了区块链的各种应用场景和案例。
该模型中,基于时间戳的链式区块结构、分布式节点的共识机制、基于共识算力的经济激励和灵活可编程的智能合约是区块链技术最具代表性的创新点。
2.1 数据层
狭义的区块链即是去中心化系统各节点共享的数据账本。每个分布式节点都可以通过特定的哈希算法和 Merkle 树数据结构,将一段时间内接收到的交易数据和代码封装到一个带有时间戳的数据区块中,并链接到当前最长的主区块链上,形成最新的区块。该过程涉及区块、链式结构、哈希算法、 Merkle 树和时间戳等技术要素。
数据区块

图 3 区块结构
如图 3 所示,每个数据区块一般包含区块头(Header)和区块体(Body)两部分。区块头封装了当前版本号(Version)、前一区块地址(Prev-block)、当前区块的目标哈希值(Bits)、当前区块 PoW 共识过程的解随机数(Nonce)、Merkle 根(Merkle-root)以及时间戳(Timestamp)等信息 [21]。
比特币网络可以动态调整 PoW 共识过程的难度值,最先找到正确的解随机数 Nonce 并经过全体矿工验证的矿工将会获得当前区块的记账权。区块体则包括当前区块的交易数量以及经过验证的、区块创建过程中生成的所有交易记录。这些记录通过 Merkle 树的哈希过程生成唯一的 Merkle 根并记入区块头。
链式结构
取得记账权的矿工将当前区块链接到前一区块,形成最新的区块主链。各个区块依次环环相接,形成从创世区块到当前区块的一条最长主链,从而记录了区块链数据的完整历史,能够提供区块链数据的溯源和定位功能,任意数据都可以通过此链式结构顺藤摸瓜、追本溯源。
需要说明的是,如果短时间内有两个矿工同时「挖出」两个新的区块加以链接的话,区块主链可能会出现暂时的「分叉」现象,其解决方法是约定矿工总是选择延长累计工作量证明最大的区块链。因此,当主链分叉后,后续区块的矿工将通过计算和比较,将其区块链接到当前累计工作量证明最大化的备选链上,形成更长的新主链,从而解决分叉问题 [19]。
时间戳
区块链技术要求获得记账权的节点必须在当前数据区块头中加盖时间戳,表明区块数据的写入时间。因此,主链上各区块是按照时间顺序依次排列的。时间戳技术本身并不复杂,但其在区块链技术中的应用是具有重要意义的创新。
时间戳可以作为区块数据的存在性证明(Proof of Existence),有助于形成不可篡改和不可伪造的区块链,从而为区块链应用于公证、知识产权注册等时间敏感的领域奠定了基础。更为重要的是,时间戳为未来基于区块链的互联网和大数据增加了时间维度,使得通过区块数据和时间戳来重现历史成为可能。
哈希函数
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-87886-4.html
但是偏偏三哥就是不开窍
是可以做到底
期待
牢记
期待