参考书籍:《深度探索区块链:Hyperledger技术与应用》 @著 张增骏 董宁 朱轩彤 陈剑雄
1、 概述
概括来说,区块链技术让参与在系统中任意多个节点,通过密码学算法把一段时间内系统中的交流数据 计算和记录到一个区块(Block)中,并生成该区块(Block)的指纹,用于链接(Chain)下个区块和共识校验。
2、本质
区块链, 实质上是由多方参与共同维护的一个持续增长的分布式数据库,也称为分布式共享账本(Distributed Shared Ledger)。
核心在于,通过分布式网络、时序不可篡改的密码学账本以及分布式共识机制 建立节点间彼此信任关系,利用由自动化脚本组成的只能合约来编程和操作数据,最终实现 信息互联网到价值互联网的转变。
3、工作原理
class Block {
// 区块索引
private Integer index;
// 区块hash
private String hash;
// 区块时间戳
private Long timestamp;
// 前一个区块的hash
private String previousHash;
// 区块中保存的数据
private String data;
// 区块的工作量
private Long nonce;
}
在数字货币中,节点之间通过工作量证明(PoW)来达成共识。
这里假设 difficulty(难度系数)=3 即 hash值以3个0开头
在blcok中
hash= SHA256( index , preHash ,timestamp , data , nonce)
其中 nonce 从0开始 一直递增
当某一个节点产生一笔交易后,需要其他节点来帮忙记账。当其他节点接收到交易数据后,就会去寻找符合难度系数的hash值来争取记账机会,这个过程就是挖矿过程。
在nonce不断变化的过程中 hash也不断变化,最终会找到符合难度系数的hash。并新产生一个区块 添加到本地链上 同时广播最新的区块到其他节点 其他节点验证区块的合法性并同步区块。
验证区块合法性的几个关键点:
- index 必须是区块链中最后一个block的 index + 1
- 新block 的preHash 是不是最后一个block的hash
- 从新计算一下hash 判定是不是计算错误
- 判定难度系数
因为在p2p的网络中,并且是分布式存储的,所以不可避免的要权衡CAP,区块链是牺牲了部分的一致性,每个节点都保存有一份本地区块链的数据,规定了最长链机制,来保证付出最多计算量的区块链被一直保存。
最长链机制:
当节点接收到的区块index 比本地链的最新的block的index大超过1时,说明本地链已经明显落后于最新链的数据,则向发送该区块的节点请求其全部的区块数据。覆盖本地链。这导致了在短链上工作的矿工无收益,但是保证了大多数在长链上工作的矿工的收益。
4、技术特点
- 分布式存储
- 信任机制
- 公开透明
- 时序不可篡改
分布式存储:区块链程序是建立在p2p网络环境中,并不是集中存放到某个服务中。每个节点中都有一个账本,所有的账本达到最终的一致性。
信任机制:区块链通过数据和程序算法,使系统运作规则公开透明。实现交易双方在不需要借助三方权威机构背书的情况下达成信用共识,建立信任。
公开透明:网络中的节点 上链之后 都是 开放 透明的。任何人都可以加入到区块链网络中。都能看到账本信息
时序不可篡改:区块链在计算hash时,添加时间戳做入参,所以其时序不可篡改。并且可溯源可验证。
5、区块链的层次模型
区块链的技术模型 自下而上一共分为六层
- 数据层:封装了区块的数据存储结构 以及区块链的数据存储结构。
- 网络层:P2P网络机制,数据传播机制,数据验证机制
- 共识层:为保证数据在节点之间的一致性,而制定的共识算法。
- 激励层:将经济因素集成到区块链体系中,对于付出的节点予以奖励。促进区块链的良性发展,比特币就实现到这一层
- 合约层:封装 各类脚本,算法,和智能合约。以太坊 封装了这一层
- 应用层:封装 各种应用场景和案例。
在以上的六层模型中 数据层 网络层 共识层 是必须的。激励层 合约层 应用层 可根据实际情况实现。
6、共识算法
共识算法是区块链的核心技术,这决定了由谁来记账,记账方式也会影响整个系统的安全性和可靠性。目前有很多种共识算法。较为有名的
- PoW(工作量证明):就是挖矿,主要运用在比特币,依赖机器进行加密运算来获取记账权,得到符合难度系数的 hash结果后。打包成区块,通知到网络中,其他节点得到后验证并记录。优点是完全去中心化,节点自由进出,缺点是计算资源消耗高,可监管性差,每次达成共识都需要全网参与,性能低下,达成共识周期长,不适合商用。
- PoS(权益证明):根据每个节点拥有代币的比例和时间,等比例降低挖矿的难度,从而加快得到hash结果。它只是在PoW的基础上优化了性能,但是仍然需要挖矿。
- DPoS(股份授权证明):DPoS不再需要挖矿,而是类似董事会投票,持币者投出一定数量的节点,代理他们精心验证和记账,持股人由于所持股份对应的表决权。有点是大幅度缩小了参与验证和记账的节点数量,可以达到秒级的共识,缺点是共识机制依然依靠代币,很多商业应用是不需要代币的。
7、去中心化
理想中的区块链网络中,似乎是不需要中心的。每个节点独立自治。
但是区块链是不一定要去中心化的。在网络架构中,一般有三种模式
- 单中心
- 多中心
- 分布式
- decentralized(去中心)
其实decentralized的 意义是下方权限,分散。早起翻译为 去中心化。
信息的不对称性,强化了中心化的强权组织和阶级分化。虽然信息网络改善了信息传播的速度。但是仍然无法解决信息不对称的问题。区块链技术 致力于解决信息不对称的问题。但是完全的去中心化在当前社会是不现实的,我们是为了实现信息对称的良性社会关系做努力和尝试。