概念-核心
区块链的核心在于: 去中心化的共识
1. 共识算法
即多个节点如何就一个事件达成共识,Tendermint 就是一个共识算法
不可能三角理论认为: 去中心化, 安全性, 可扩展性无法同时达到最优
共识机制解决的核心问题
在分布式网络中, 节点之间如何在没有中心权威的情况下对某个值或状态达成一致
解决了三个核心问题: 由谁来验证, 由谁来记账, 保障节点数据的一致性
6 种主流共识机制的关键特点
- POW(工作量证明): 通过算力竞争达成共识, 比特币
- POS(权益证明): 通过持币权重决定出块权, 以太坊 2.0
- PoH(历史证明): Solana 的创新, 通过时间戳优化性能
- DPOS(委托权益证明): 代表投票制, EOS 等链的核心
- PBFT(实用拜占庭容错): 容忍恶意节点, 联盟链的安全选择
- Raft: 强一致性算法, 分布式系统的经典选择, 私有链和企业内部系统常用
算法简介
PoW(Proof of Work) 工作量证明
- 即能不能出块, 取决于此节点的工作量(计算能力/运行速度)
- 缺点: 速度慢, 能耗大
- 使用者: Bitcoin, Ethereum(早期), Litecoin, Dogecoin 等
POS(Proof of Stake) 权益证明
- 即按拥有投票权的比例进行共识, 多数投票有效:
- 投票权一般按质押的代币比例计算
- 出块后节点会有一定代币奖励, 验证者离线或恶意行为, 会被惩罚, 即扣除一定的质押代币
DPOS(Delegated Proof-of-Stake) 抵押授权证明
代议制民主(议会制),通过投票选举出少数代表来负责出块。
- 本质实际上是一个中心化的共识机制,分为验证者节点和观测节点
- 共识速度非常快, 少量验证者可以出块;
- 验证者节点质押金额的比例, 决定了出块的概率
BFT(Byzantine Fault Tolerance) 一种基于拜占庭容错的共识算法
是一种分布式系统中的一致性算法, 能够在节点故障和网络分区等情况下仍然保持系统的一致性和可用性
PoH(Proof of History) 历史证明
- 是 Solana 的核心创新, 通过可验证延迟函数创建时间序列, 实现高性能
- PoH 本身不是完整的共识算法, 而是一种时间排序机制, Solana 将其与 PoS 结合使用
- 原理: 连续 n 次 hash 计算的顺序性, 来代表一种时间序列
PBFT(Practical Byzantine Fault Tolerance) 拜占庭容错
- 广泛用于联盟链
- 必须达成绝对一致
Raft
- 非区块链的去中心化项目也常用这个算法,性能很高。
- 将一致性问题分解为领导者选举, 日志复制, 安全性三个子问题;
2. 分层网络
四层划分
-
执行层
处理交易, 并负责更新链上的状态;
需要快速的吞吐量, 它是否"去中心化和安全"不太重要, 并不会对网络安全或数据可信有影响, 所以比较适合 Rollup -
结算层和桥接层
负责完成交易, 或者更确切地说, 毫无疑问地确认交易是有效的 结算层: 用于确认数据是真的 -
共识层
是多方就区块包含的内容及其交易的排序方式达成协议的地方; -
数据可用性层
负责确保每个人都可以访问已提交到网络的正确交易;
二层网络
-
layer1
例如 BTC ETH 这种基础公链网络; 主要用于确认最终正确交易数据; -
layer2
一些较为中心化的业务可以单独拆出来做, 例如 执行层, Rollup 通常被称为第 2 层
数据可用性网络 Rollups 早期是将交易处理完成后将区块批量提交到主链, 虽然提高了吞吐量, 但也增大了主链的压力。 后来设计为将区块提交到另外一个低成本的一层网络中, 只把结果hash提交到主链的方式, 降低主链的成本和压力
多层网络的一般数据流
- 交易被发送到 执行层应用, 一般是具有单个排序器的 Rollup 程序;
- Rollup 的执行结果数据被批量提交到数据可用网络 DA 中
- Rollup 的执行结果hash(已经被提交到da的rollapp区块hash和da上的hash)被批量提交到结算层 hub 中;
提交到hub是为了确保交易有正常提交到 DA
优点
- 中心化的 Rollup 保障的交易吞吐量大和性能。
- DA 网络保障数据能以较为方便的形式访问。
- 结果hash在 layer1 网络中, 保证数据的真实性和不被篡改。