区块链共识算法,如何理解区块链的共识算法

区块链系统的本质就是一个分布式应用软件。分布式系统的首要问题就是如何解决一致性的问题区块链共识算法,也就是如何在多个独立的节点之间达成共识。

在有错误的进程存在并且有可能出现网络分区的情况下,FLP 定理彻底关闭了在传统计算机算法体系下提出解决方案的大门。由社会学和博弈论得到启发,我们尝试引入以下机制。

(1)激励机制。比如,在拜占庭将军问题中给忠诚的将军以奖励。我们引进博弈论概念:不再把节点或者说将军分成公正/恶意(忠诚/ 背叛)两方,认为每一个节点的行为是由激励机制决定。我们认为, 人之初,性无善无恶。性的善恶由后台的激励机制决定,如果激励机制设置得当,考虑到每个节点都有最大化自己的利益的倾向,大部分的节点都会遵守规则,成为公正的节点。

(2)随机性。在拜占庭将军问题中,决定下一步行动需要将军们协调一致,确定统一的下一步计划。在传统的中心化系统中,由权威性的将军做决定。在去中心化的系统中,根据什么规则决定谁有记账权呢?

1)根据每个节点(将军)的计算力(computing power)来决定。谁的计算力强,解开某个谜题,就可以获得记账权(在拜占庭将军问题里是指挥权)。这是 PoW 共识协议。

2)根据每个节点(将军)具有的资源(stake)来决定。所用到的资源不能被垄断,谁投入的资源多,谁就可以获得记账权。这是 PoS 共识协议。

出于上面的考虑,我们引入上诉两种共识算法,试图更好的解决拜占庭将军问题。分布式共识协议具有以下两点属性:

1.如果所有公正节点达到共识,共识过程终止;

2.最后达成的共识必须是公正的。

目前主要几类共识算法如下:PoW、PoS、DPos、Ripple Consensus、PBFT

1、PoW(工作量证明)

通过与或运算,计算出一个满足规则的随机数,即获得本次记账权,发出本轮需要记录的数据,全网其它节点验证后一起存储;

优点:易实现,节点间无需交换额外的信息即可达成共识,破坏系统需要投入极大的成本。

缺点:浪费能源,区块的确认时间难以缩短;共识达成的周期较长,不适合商业应用

2、PoS(权益证明)

PoW的一种升级共识机制,本质上是采用权益证明来代替PoW的算力证明,记账权由最高权益的节点获得,而不是最高算力的节点。根据每个节点所占代币的比例和时间;等比例的降低挖矿难度,从而加快找随机数的速度。

优点:,解决了PoW 消耗算力的问题,在一定程度上缩短了共识达成的时间

缺点:拥有权益 的参与者未必希望参与记账,还是需要挖矿。

3、DPos(股份授权证明机制)

类似于董事会投票,持币者投出一定数量的节点,代理他们进行验证和记账。

优点:大幅缩小参与验证和记账节点的数量,可以达到秒级的共识验证。

缺点:整个共识机制还是依赖于代币,很多商业应用是不需要代币存在的。

4、Ripple Consensus(瑞波共识算法)

使一组节点能够基于特殊节点列表达成共识。初始特殊节点列表就像一个俱乐部,要接纳一个新成员,必须由51%的该俱乐部会员投票通过。共识遵循这核心成员的51%权力,外部人员则没有影响力。由于该俱乐部由“中心化”开始,它将一直是“中心化的”,而如果它开始腐化,股东们什么也做不了。

5、PBFT:Practical Byzantine Fault Tolerance(实用拜占庭容错算法)

PBFT是一种状态机副本复制算法,即服务作为状态机进行建模,状态机在分布式系统的不同节点进行副本复制。每个状态机的副本都保存了服务的状态,同时也实现了服务的操作。将所有的副本组成的集合使用大写字母R表示,使用0到|R|-1的整数表示每一个副本。为了描述方便,假设|R|=3f+1,这里f是有可能失效的副本的最大个数。尽管可以存在多于3f+1个副本,但是额外的副本除了降低性能之外不能提高可靠性。

PBFT算法主要特点如下:客户端向主节点发送请求调用服务操作;主节点通过广播将请求发送给其他副本;所有副本都执行请求并将结果发回客户端;客户端需要等待f+1个不同副本节点发回相同的结果,作为整个操作的最终结果。

区块链的共识机制一定会越来越清晰,在现实当中起到的作用也会越来越大,并受到众多机构的支持,从而让区块链在现实当中的普及进入到一个全新的应用阶段。

再次从区块链的最原始应用说起,再次从《纽约时报》谈起。

据说,中本聪就是受到《纽约时报》的启发,也就是说,中本聪是从《纽约时报》得来的灵感,以此为底层技术,研究出了区块链。到底怎么回事?

     区块链技术的本质,是一种基于密码学技术、并通过用户网络维持运行的数据库。每当有新信息进入数据库,就会被存放在一个“区块”中,这种区块即可被视为储存数据的容器。新形成的区块会与原有区块相连结,形成一个近似链状结构。这也是“区块链”一词的由来。

    值得注意的是,每个区块都拥有专属ID,称为“散列”(音译:哈希)。运行前一个区块散列方能产生新的区块散列,并通过加密算法将数据储存在区块中。这些区块之间因而存在着一种因果联系,任一区块中的数据遭到篡改,都会对其他区块的散列产生连带影响。这种牵一发而动全身的机制保障了区块链中数据的完整性。

      数据链技术最初设想很简单:他们用来永久留存数字文件的创建时间、最后修改时间,便于解决知识产权归属等纠纷。他们认为,数字文件时间戳技术需要解决两个问题:

       第一,数据本身需要携带时间戳,旁人无法对数据做出微小的、不使人察觉的改变。

     第二,时间戳本身无法更改。

     一个办法是存储在金融机构开设的保险箱服务中,但是交易双方容易失去隐私,而且金融机构道德风险导致的窃取破坏无法解决。怎么办?

    区块链技术信任核心在于时间戳。如何才能确保Surety时间戳系统中的永久记录是值得信任的呢?

       密码学专家Stuart Haber与Scott Stornetta 极富创造性地选择了《纽约时报》作为公开账本的替代品。Surety时间戳系统将每周内新产生的封条散列集中在一处,并计算出一个汇总过的散列值,刊载于“失物招领告示”板块下的一个小广告中。而这个“固定栏目”,自1995年后始终保持着每周一次的更新频率。

      想想看,《纽约时报》作为当时世界销量第一的报纸,日发行量可达57万份——倘若有人蓄意篡改历史时间戳,或是伪造数据记录,便意味着“发行一份印刷着假散列的假报纸,并使其阅读量超过《纽约时报》”,这真可以说是“不可能完成的任务”了。

这里面必须注意57万份《纽约时报》这个概念。区块链信用机制在于不可改变或无法改变,“不可”与“无法”改变的前提是区块或公开账本足够多,足够多到海量比如57万份《纽约时报》,这也才能够保证“这些区块之间因存在着一种因果联系,任一区块中的数据遭到篡改,都会对其他区块的散列产生连带影响。这种牵一发而动全身的机制保障了区块链中数据的完整性”机制运行实现的前提。

虽然足够多、海量区块或公开账本至今没有一个具体数量级要求,但“质”上要求是非常明确的,那就是海量到无法改变,根本不可能改变。

而目前无论是国际还是中国国内的所谓区块链项目打出研发成功的旗号,其他我们暂且不谈,仅区块的海量要求就差的很远。因此,区块链技术项目,技术开发上要依托IBM等三大平台,而获客上依然要依靠综合和专业性的海量客户互联网平台。

中国国内一些号称成功开发出区块链项目的企业基本都是忽悠或者噱头,仅仅海量“区块或公开账本”这一项就达不到。一些项目仅仅几个区块或者几十个区块就宣扬成功开发出了区块链项目,既保证不了不被篡改,也无法确信。

我暂且不谈去中心化与分布式账本,仅仅全员信用证明这一块其量级就差十万八千里。其实,去中心化、分布式账本、全员信用证明是相互联系,不可分割的。

因此,可以说中国国内截至目前所有号称成功开发出的区块链项目都是假的,都是忽悠,都不是真正的区块链!

投资者还是要多长一个心眼!

2022-06-11

2022-06-11