区块链小知识:拜占庭容错与共识算法

区块链的核心架构是去中心化的节点网络,经济体系的机制是建立在无需中间人的信任机制-分布式帐本之上,透过分布式的节点来验证与同步交易资料。

那大家有没有想过一个问题,当有错误的交易资料、故障或是恶意的资料(黑客攻击)出现的话,区块链的机制是如何解决此问题呢?这个问题的概念就涉及到拜占庭将军问题(Byzantine Generals Problem)。

关于拜占庭将军问题

拜占庭将军问题是一种逻辑上的困境,是由美国计算机科学家莱斯利·兰波特(Leslie Lamport)在1982年提出的,核心概念是说有多位将军要一同进攻一座城市,假设只有2种作战策略的情况:

(1)必须全部的将军决定都一起进攻或一起撤退,才能达成胜利或是安全撤退。

(2)如果有部分将军决定进攻、部分将军决定撤退,那就会导致灾难性的结果。

每个将军只能透过信使传达决策给另一个将军,这过程有可能信使发生问题,或是某位将军是叛徒等状况。

这个逻辑上的困境,如果发生在现实生活中,当系统决策延迟、故障或发生错误时,就有可能导致可怕的结果,像是飞机航空系统的运作、太空船的系统运作,如果因为故障、资料错误造成决策延迟或系统故障而无法运行,那都是一场灾难!

最著名的拜占庭容错系统就是马斯克(Elon Reeve Musk)的SpaceX太空船公司的火星计划,该公司主要负责太空运输与航太制造。

而在分布式对等网络(P2P)中需要按照共同一致策略协同运作的成员电脑即为问题中的将军,而各成员电脑赖以进行通讯的网路链路即为信使。

拜占庭将军问题描述的就是某些成员电脑或网路链路出现错误、甚至被蓄意破坏者控制的情况。

拜占庭将军问题与拜占庭容错

解决拜占庭将军问题的方式就是拜占庭容错(BFT),就是一种少数要服从多数的机制,在此拜占庭将军问题下依然能让系统正确的运行,在区块链的世界中就产生了共识算法来解决此问题。

在区块链的世界中,拜占庭容错采用共识算法来解决

关于区块链的共识算法目前主要有以下4种:

  • PoW工作量证明:拥有越多算力的人的决定。

应用:比特币、以太坊,运行算力的人为矿工,验证资料的流程称作挖矿。

  • PoS权益证明:最有钱的人决定。

应用:以太坊2.0、Cardano艾达币(ADA)、Algorand(ALGO)等。

  • PoA权威证明:老大做决定,且一开始就决定谁是老大。

应用:如一些测试链,不想花费太多时间资源做验证,仅需要快速的测试智能合约的部署、交易及其他功能等等。

  • DPoS代理权益证明:由投票选出的代理人做决定,做的不好下一次就会被换掉!

应用:EOS、Solana等公链。

本文链接地址:https://www.wwsww.cn/jishu/15471.html
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。