网络结构演变
- 中心化
- 分布式(服务拆分,微服务,横向扩展 ... 服务提供方仍然依赖中心机构)
- 去中心化
p2p 网络协议
没有中心服务器,每个节点都是网络的一部分
P2P 网络实现
- Hyperledger Fabric -> gRPC 对等服务
- gRPC 性能较低,不能满足类似公有链的大量连接
- Ethereum -> Kad DHT 技术
- 利用数学方法,计算逻辑距离,而非空间物理距离
密码学 - 哈希(HASH)
- 定长输出
- MD5, SHA1,SHA2(SHA2-256)
- 好的HASH算法需要满足,正向快速,逆向困难
- 输入敏感
- 抗碰撞
密码学 - 加解密算法
- 对称加密 : 秘钥相同,容易泄露 (AES, DES等)
- 非对称加密 : 公钥\私钥,效率低(RSA, 椭圆曲线等)
共识算法(分布式一致性算法)
- 强一致性(难以实现,或者实现后性能差)
- 最终一致性
共识算法 - CAP 原理 (一个分布式系统无法同时满足以下,只能取其二)
- 一致性(Consistency)
- 可用性(Availablity)
- 分区容忍性(Partition Tolerance)
共识算法 - ACID 原理
- 原子性
- 一致性
- 隔离性
- 持久性
共识算法
- Paxos (假设只有故障节点,没有恶意节点)
- 拜占庭容错(既容纳故障,又容纳恶意)
联盟链和公有链的不同主要是由于共识算法不同导致,因为联盟链有准入控制采用拜占庭容错必要性较低,而在公有链中则需要假定存在恶意节点
\ | POW | DPos/Pos | PBFT | Raft |
---|---|---|---|---|
场景 | 公链 | 公链 | 联盟链 | 联盟链 |
去中心化 | 完全 | 完全 | 多中心 | 多中心 |
响应时间 | 10min | 1min | 秒级 | 秒级 |
容错 | 50% | 50% | 33% | 50% |
拓展阅读
- 比特币表皮书 - 一种点对点的电子现金系统
- 区块链技术指南 杨宝华
- Hyperledger Fabric 官方文档