区块链技术基础知识

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

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

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

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

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

 

分叉

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

 

用户余额

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

账户模型  记录账户余额。 

UTXO优点

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

账户模型优点

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

 

P2P 网络

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树的一种。数据区块头部结构如下图:

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值