1 区块链说起
普遍有狭义或者广义,各类定义。一种数据结构?一种分布式计算的基础框架或范式。我们可以参考计算机网络的ISO协议族做一个对比。
)
一般来讲,区块链有四大核心技术:分布式账本、加密技术、共识机制和智能合约。无共识,不区块链
共识(Consensus),很多时候会见到与一致性(Consistency)术语放在一起讨论。共识算法主要是保障系统能够满足不同程度的一致性。共识算法解决的是对某个提案大家达成一致的过程。共识算法主要面临的问题是不存在完美性能的分布式系统,一般地,把故障(不响应)的情况称为“非拜占庭错误”,恶意响应的情况称为“拜占庭错误”(对应节点为拜占庭节点)。我们可以通过一些算法包括Paxos/Raft等来解决非拜占庭错误。对于拜占庭错误,则使用PBFT 系列、PoW 系列算法等。
2 共识机制
协同各个节点的信任、一致性工作,达成某种信任的关系、持续性等。共识需要解决的几个核心问题是:
- 谁在这个网络里有记账权,也就是做为leader发起一次记账。
- 做为互相不信任的参与者,为什么要采纳和相信某一个人给出的记账。
- 怎么保证大家最终收到的结果都是一致的,无错的。
共识算法一般在公有链和私有链的表现不同,一般算法有其较适用的区块链类型。
CAP原理:一致、可用、容错