数据层
●数据结构
●数据层包含了底层数据区块、基础数据,以及算法等。通过区块链技术的物理表现形式,实现链式结构,每个区块中都包含了区块随机数、时间戳,以及非对称加密算法生成的公私钥数据等。
●从数据结构的角度看,区块链就是将记录交易的区块按照其产生的时间顺序,由远及近地链接,形成一条链式结构的数据存储。
●区块结构
●不同的区块链,均会包含“区块头”和“交易”两个部分。
●区块头用于存放区块自身的元数据,是区块功能性信息的存储地;
●交易部分存放加密后的交易信息,是区块内容性信息的存储地。
●比特币——幻数、区块大小、区块头、交易计数和交易

●以太坊—— 区块头、交易、区块头哈希
●区块头
●一般包含前块哈希、默克尔根、时间戳等信息。
●前块哈希是指向前一个区块的指针,通过这个指针能将孤立的区块串联在一起形成区块链。
●Merkle根存放着基于交易信息生成的哈希值,可用于交易信息的快速比对,并保证块内的交易信息不可被篡改。
●时间戳记录了当前区块产生的近似时间。

●Merkle树
●区块链中基于merkle树的数据结构记录交易数据。
●Merkle 树由一个根节点、一组中间节点和一组叶节点组成。叶节点包含存储数据或其哈希值,中间节点是它的两个孩子节点内容的哈希值,根节点也由它的两个子节点内容的哈希值组成。所以,Merkle 树也被称为哈希树。
●在一个完整的 Merkle 树中,底层(叶子节点)数据的任何变动都会逐级向上传递到其父节点,一直到根节点,使得根节点的哈希值发生变化。
●Merkle树的结构特点
●易校验
●扩展性强
●证明成本低
●典型的Merkle树结构

●区块链
●区块链的形成
●“前块哈希”的数据域,将父区块的区块头做哈希运算得到,将区块有序连接成区块链。
●特点
●增加了篡改难度
●无法避免产生分叉
●数据模型
●交易模型
●交易模型记录过程和动作
●未被使用的交易输出(Unspent Transaction Output, UTXO)模型,UTXO以“交易”为单位进行追踪和记录。比特币为代表,每笔交易有一个或者多个交易输出或输入。

●输入:交易的每一个输入即为前序交易的某个UTXO,所有交易的最初输入可以追溯了铸币奖励。
●输出:交易的每一个输出即为一个新的UTXO,一个用户所拥有的比特余额为该用户的所有UTXO之和,这些UTXO零散地记录在不同的交易区块中。
●每笔交易的输入与输出可以并行处理,并且一一对应。
●账户模型
●账户模型不记录交易过程,只记录余额状态。
●特点
●1. 区块体积小,网络传输量小,空间利用率高
●2. 相比与UTXO模型,账户模型让网络中的轻节点更容易验证;
●3.并发处理能力比UTXO差。
●以太坊为代表,账户模型中包含了:
●外部账户
● 给用户操作,通过私钥信息操作账户实现转账、智能合约的创建,调用等功能
●合约账户
● 不能自主发起交易,只能被外部账户调用
●数据存储
●区块链:分布式存储,每个节点都能够存储全量账本。
●区块链项目面临着严峻的存储问题,需要新的技术手段,例如云平台、侧链、闪电网络等。
●每笔交易都使用发件人钱包的私钥进行“数字签名”。只有发送者才能访问此密钥,从而确保数据不会被其他任何人访问或篡改。这在区块链术语中称为“最终性”。数字签名还可以保护所有者的身份,该身份本身是加密的,从而确保了最大的安全性.