区块链主流共识算法分析
区块链主流共识算法分析 区块链可以概括为一个分布式的高频交易系统,其核心的技术可以总结为四个部分:分布式的数据库,密码学相关理论,共识机制和P2P网络。本文将详细探讨目前主流的区块链共识算法。 共识算法与CAP理论 要探讨共识算法,首先就需要了解计算机中的 CAP 理论。 CAP 是由 Eric Brewer 在2000年PODC会议上,提出分布式系统不能同时完全满足三个要求的假设,其中包括以下三个方面: Consistency : 一致性,是指在分布式系统中的所有数据备份,在同一时刻是否具有同样的值。 Avaliability :可用性,是指在集群中一部分节点故障后,集群群体是否还能响应客户端的读写请求。 Partition tolerance :分区容错性,以实际效果而言,分区相当于对通信的时限要求。系统如果不能在时限内达成数据一致性,就意味着发生了分区的情况,必须就当前操作在C和A之间做出选择。 和所有的分布式系统一样,区块链共识算法设计也是在权衡上面的三个因素。假设区块链中的节点能够立即确认交易数据,这就满足了 CAP 理论中的 AP ,可风险是失去了数据的强一致性,因为其他节点可能丢弃这个区块,因为区块所在的区块链分叉在竞争性的选举中失败了;如果是为了获得强一致性,即满足 CP 的话,那么客户端应该等待区块链中的大多数节点都接受了这笔交易后才能真正的接收它