区块链小知识:拜占庭容错与共识算法
区块链的核心架构是去中心化的节点网络,经济体系的机制是建立在无需中间人的信任机制-分布式帐本之上,透过分布式的节点来验证与同步交易资料。
那大家有没有想过一个问题,当有错误的交易资料、故障或是恶意的资料(黑客攻击)出现的话,区块链的机制是如何解决此问题呢这个问题的概念就涉及到拜占庭将军问题(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等公链。
声明:本站所提供的资讯信息不代表任何投资暗示, 本站所发布文章仅代表个人观点,仅供参考。