区块链基础理念
去中心化
公链是什么?
联盟链是什么?
公链和联盟链是否去中心化?
共识
怎么达成共识?区块链的共识机制
在区块链中所谓的达成共识是指大家都遵守软件层面的统一规则。
PoW 和 DPoS 的共识
并非人和人在现实中的共识。
共识机制是区块链系统能够稳定、可靠运行的核心关键技术。不同于传统的中心化系统,区块链系统中所有网络节点是自由参与、自主维护的,不存在一个可信的中心节点承担网络维护、数据存储等任务。因此,如何使众多地理位置分散、信任关系薄弱的区块链节点维持一致性的可信数据副本,并实现系统稳定运行,是区块链共识机制必须解决的难题。
共识机制的主要功能是解决两个基本问题: (1)谁有权写入数据。区块链系统中,每一个骨干网络节点都将各自独立维护一份区块链账本(即区块链系统中的数据库)。为了避免不同的区块链账本出现数据混乱的问题,必须要设计公平的挑选机制,每次只挑选一个网络节点负责写入数据; (2)其他人如何同步数据。当被挑选的网络节点写入数据后,其他网络节点必须能够准确及时的同步这些数据。为了避免网络中出现伪造、篡改新增数据的情况,必须设计可靠的验证机制,使所有网络节点能够快速验证接收到的数据是由被挑选的网络节点写入的数据。
一旦解决这两个问题,区块链分布式网络中的节点就可以自发的建立一致性的可信数据副本。
首先,每隔一定时间,经过共识机制挑选的节点将挑选待入库的交易,构造最小的区块链数据存储结构“区块”,然后将区块数据广播到区块链网络。
其次,全网所有节点将对接收到的区块数据进行检测,根据共识机制判断区块数据是否是由合法的授权节点发布。如果区块数据满足共识机制和其他格式需求,将会被节点追加在各自维护的区块链账本中,完成一次数据同步。
通过重复这两项过程,区块链账本就可以稳定、可靠的实现更新和同步,避免数据混乱、数据伪造等问题。
共识机制是区块链的核心技术,与区块链系统的安全性、可扩展性、性能效率、资源消耗密切相关。迄今为止,研究者已经在共识相关领域做了大量研究工作,提出了众多不同的共识机制。从如何选取记账节点的角度,现有的区块链共识机制可以分为选举类、证明类、随机类、联盟类和混合类共5种类型:
选举类共识: 即矿工节点在每一轮共识过程中通过“ 投票选举" 的方式选出当前轮次的记账节点,首先获得半数以上选票的矿工节点将会获得记账权;多见于传统分布式一致性算法, 例如 Paxos 和 Raft等.
证明类共识: 也可称为“ Proof of X" 类共识,即矿工节点在每一轮共识过程中必须证明自己具有某种特定的能力, 证明方式通常是竞争性地完成某项难以解决但易于验证的任务, 在竞争中胜出的矿工节点将获得记账权;例如 PoW 和 PoS 等共识算法是基于矿工的算力或者权益来完成随机数搜索任务, 以此竞争记账权.
随机类共识: 即矿工节点根据某种随机方式直接确定每一轮的记账节点, 例如下文将要提到的Algorand 和 PoET 共识算法等.
联盟类共识: 即矿工节点基于某种特定方式首先选举出一组代表节点, 而后由代表节点以轮流或者选举的方式依次取得记账权. 这是一种以“ 代议制" 为特点的共识算法, 例如 DPoS 等. DPoS不仅能够很好地解决PoW浪费能源和联合挖矿对系统的去中心化构成威胁的问题,也能够弥补PoS中拥有记账权益的参与者未必希望参与记账的缺点。
混合类共识: 即矿工节点采取多种共识算法的混合体来选择记账节点, 例如 PoW+PoS 混合共识、 DPoS+BFT 共识等.

分布式
参考链接
Last updated