区块链技术基础知识

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/huaishu/article/details/79422504


逻辑分层 比特币 以太坊
应用(合约)层 记账、转账 EVM、DAPP
激励层 挖矿、交易 发行,分配机制
共识层 工作量 POW,POS,DPOS,PBFT
网络层 P2P P2P、传播机制、验证机制
数据层

区块数据、链式结构、数字签名

哈希函数、Merkle树、非对称加密

区块数据、链式结构、数字签名

哈希函数、Merkle树、非对称加密等优化


分叉

软分叉和硬分叉(向前兼容、向后兼容)


用户余额

UTXO模型    Unspent Transaction Output, 表示未花费的输出。

账户模型  记录账户余额。 

UTXO优点

  • 私密性比较强,理论上可以为每一笔输出设置一个地址。
  • 无需维护余额等状态值。
  • UTXO是独立数据记录,可以通过并行极大的提升区块链交易验证速度。
  • 无需关心事务问题,只需要关心输出脚本即可。
  • UTXO无法分割,每次交易都需要多个输出,分别为支出与找零。

账户模型优点

  • 可以快速获取账户的余额,而比特币需要将指定地址所拥有的所有UTXO中的未花费交易总值整合。
  • 节省空间,因为每笔交易只有一个输入一个输出。
  • 可以较容易的实现图灵完备的智能合约。

P2P 网络

NAT 网络地址转换
NAT原理与NAT穿透


数据验证

SPV Simplified Payment Verification 简单支付验证

merkle tree算法

BASE58 基于BASE64升级

SHA256  安全散列算法

非对称加密


共识算法

POW: power of work  表示工作量(公有链)

POS:Proof of Stake,股权证明 (公有链)

DPOS:Delegated Proof of Stake,委任权益证明(公有链)

PBFT:Practical Byzantine Fault Tolerance,实用拜占庭容错算法 (联盟链 私有链)

Raft,paxos 协议

参考:共识算法


比特币交易数据结构

数据区块的交易记录中,详细记载了比特币的交易记录和相关细节。其中在比特币收支详情里面,记录了收支的比特币地址和merkle节点值等情况,因此收支详情是交易记录中最重要的部分。
完整的交易记录结构如下表格:

版本变更过程




比特币支出和接收交易的结构
在数据块中,比特币支出和接收交易是写在一起的,整个收支记录包括很多比记录。每一比记录都有自己的索引编号以供查询。

每一比记录中包括了生成时间、引用交易的哈希值、交易记录索引编号、比特币支出地址、支出地址数量等细节。每一比收支交易记录都有一个Merkle节点值,这个hash节点值是整个Merkle树的一部分,决定了每一个地址都不能重复交易和被伪造。
收支交易结构图如下:

数据区块结构

hexdump程序把数据区块文件转化为十六进制+ASCII表示,编者解释一下:每一个数据区块记录了六个内容:神奇数、区块大小、数据区块头部信息、交易计数、交易详情。在这当中, 数据区块头部信息 的HASH值是下一个新区块的HASH值的参考目标数,最后一项 交易详情 记录了该区块中所有的交易记录(编者会在以后详细说明交易记录的结构)。
数据区块结构如下图:

数据区块头部结构
数据区块头部结构中记录了:版本号、前一个区块的记录、Merkle树的根值、时间戳、目标特征值、随机数。
在比特币矿工挖矿的过程就是产生新的数据区块的过程,这个过程需要对比前一个数据区块头部的HASH值和随机数,如果满足一定条件则生成新的区块。 Merkle树 的根值为该区块中所有被记录交易的根节点HASH值,中本聪用一个HASH树来对每一比交易进行数字签名,以确保每一比交易都不可伪造和没有重复交易,Merkle树就是HASH树的一种。数据区块头部结构如下图:





猜你喜欢

转载自blog.csdn.net/huaishu/article/details/79422504