风险提示:理性看待区块链,提高风险意识!
什么是NEO的dBFT算法?dBFT算法机制如何工作?
首页 > 币界资讯 > 区块链知识 2019-06-18 14:18:58
币界网报道:

拜占庭将军问题

大家最为熟知的两种共识机制分别是PoS(工作证明机制)与PoW(权益证明机制)。NEO在其基础上进行改进,拟定了一种新的共识机制,称为dBFT。

大家可以阅读NEO白皮书(https://github.com/neo-project/docs/blob/master/en-us/index.md)、NEO文档汇总(docs.neo.org)等了解NEOdBFT模型框架的详细介绍。

在对投票的正确结果进行判定时,拜占庭将军问题总会出现。假设拜占庭帝国的9位将军带领军队包围了古罗马,为了成功占领古罗马城,将军们面临两个选择,一是全体进攻,一是全体撤退,如有任何将军违背了共识决定,就会导致全军覆没。

他们每天进行一次投票决定是进攻还是撤退,若某一决定的赞成率超过50%,便达成共识。因为每位将军所处的地理位置不同,因此他们会让信使将各自的投票通报给其他将军。

这个体系存在固有缺陷。

首先,任意数量的拜占庭将军都可能受罗马人的贿赂成为拜占庭军队的叛徒,这些将军就称为叛变的将军。

其次,任何将军都可能做出不合适的决定,这些将军就称为判断不当的将军。

再者,通报将军指令的信使也可能受罗马人的贿赂叛变篡改投票结果,而且信使也可能无法通报信息或通报错误的信息。

拜占庭将军的情形可用来类比分布式计算系统所面临的问题:系统存在可能会造成生态瘫痪的不可信及不能正常工作的节点时怎样达成共识?

dBFT算法

有很多协议想要解决拜占庭将军的问题。如Hyperledger的工作证明机制就使用了PBFT算法。而NEO则使用dBFT算法来解决拜占庭将军的问题。NEO创始人之所以选择这个协议是因为与其他现有方案相比,它的可扩容性与性能更强。

可扩容性对于任何区块链来说都是一个主要问题。随着交易数量的增加以及网络规模的扩大,区块链必须相应地扩容。如果区块链不能根据需求扩容,就会导致交易延迟或交易无法处理。

类比一下:假设有个国家叫NEO,这个国家的每位公民都有权选举领袖,也称为代表。代表负责制定国家法律。如果公民不同意代表对某部法律的投票决定,可以下次票选另一位代表。公民会告诉所有代表怎样做能让他们最为满意。每位代表必须追踪了解所有公民的需求并在账本上做好记录。满足公民的所有需求后才能通过法律,目的在于让公民满意。

需要通过法律时,就会从代表中随机选出一名发言人,这位发言人将根据公民的需求拟定法律。拟定法律时他会计算这部法律对国家的幸福指数(衡量幸福程度的指标)有何影响。接着,发言人将拟好的法律交给每位代表,每位代表先判断发言人的计算结果与它们的是否一致,再与其它代表商讨验证幸福指数的计算结果是否正确。如果66%的代表一致表示发言人计算的幸福指数是正确的,那么法律就此通过,大功告成。

全体节点都是诚实的,达成100%共识,将对法律A(区块)进行验证。

如果只有不到66%的代表达成共识,将随机选出一名新的发言人,再重复上述流程。这个体系旨在保护系统不受叛徒/坏人及无法行使职能的领袖(即没有恶意只是无法正确计算幸福指数的领袖)影响。

以此类推,对于NEO区块链而言,公民就是NEO持有者,大多数NEO持有者都是普通节点,他们只能转移或交易资产。

就像NEO国的公民一样,他们不能参与区块验证。公民选出的代表就是NEO智能经济的记账节点。记账节点负责验证区块链上写入的每个区块。

公民的需求就是NEO持有者进行的交易,法律代表区块链当前生成的区块,而幸福指数代表当前区块的哈希值。下面我们来了解下系统是如何实施保护的。

不诚实的发言人

鉴于发言人是随机选出的一名代表,因此他可能会不诚实或出现故障。在下文的案例中,发言人就给3名代表中的2名发送了恶意信息(法律B),同时给1名代表发送了正确信息(法律A)。

不诚实的发言人向左边的节点发送了正确信息(A),但向中间和右边的节点发送了恶意信息(B)

在这种情况下该法律议案无法通过。中间与右边的代表计算的幸福指数与发言人发送的不一致,因此就不能验证发言人拟定的法律,导致2人拒绝通过法律。左边的代表因接收了准确的法律,因此能确认幸福指数,继而成功完成1次验证。但本提议仍无法通过,因为不足66%的达成共识(还需要2票)。接着将随机选出一名新发言人,重新开始共识流程。

不诚实的代表

在此情况下,发言人是诚实的,但其中一名代表出现了异常。

右边的代表向其他代表发送了不正确的信息(B)

这样,发言人拟定的法律A就可以获得验证,因为(左边与中间)诚实的代表都可以验证由诚实的发言人拟定的法律A,达成66%的共识。代表也可以判断到底是发言人向右边的节点说谎还是右边的节点不诚信。这点现在还不清楚,但公民可以根据相关数据审核各节点是否诚信/正常运作。这些信息有助于投票人判断哪个代表最信得过,继而选择把票投给哪个代表。

上一篇: 如何用C#语言编写NEO智能合约?
下一篇: NeoContract智能合约与NeoVM的技术细节
推荐专栏
Boss Wallet Web3 Econom Pass
专注币圈最新资讯
通俗浅显地聊透Web3大事小情
读懂区块链生态与未来,尽在币界网!
热门币种
更多
币种
美元价格
24H涨跌幅
BTC比特币
60,963.61 USDT
¥435,103.38
-2.72%
ETH以太坊
3,368.69 USDT
¥24,042.67
-0.3%
BNB币安币
570.68 USDT
¥4,073.00
-0.28%
USDT泰达币
1.02 USDT
¥7.25
-0.19%
SOL
135.96 USDT
¥970.36
+7.66%
USDC
1.00 USDT
¥7.15
-0.01%
TON
7.59 USDT
¥54.14
+4.55%
XRP瑞波币
0.47720 USDT
¥3.41
+0.48%
DOGE狗狗币
0.12210 USDT
¥0.87140
+2.43%
ADA艾达币
0.39050 USDT
¥2.79
+3.88%
热搜币种
更多
币种
美元价格
24H涨跌幅
比特币
61034.17 USDT
¥443,407.14
-1.54%
Solana
137.36 USDT
¥997.91
-0.91%
Filecoin
4.3477 USDT
¥31.59
-2.19%
Curve
0.296 USDT
¥2.15
-6.71%
柚子
0.5733 USDT
¥4.16
-0.28%
Terra Classic
8.173E-5 USDT
¥0.00
-1.28%
Shiba Inu
1.72E-5 USDT
¥0.00
-3.75%
Conflux
0.1558 USDT
¥1.13
-1.64%
狗狗币
0.1223 USDT
¥0.89
-3.78%
dYdX
1.3774 USDT
¥10.01
-1.18%
Arweave
25.8768 USDT
¥187.99
-10.03%
Uniswap
9.2944 USDT
¥67.52
-2.17%
最新快讯
更多
新SwellrswETH池已上线Penpie
2024-06-27 11:34:46
Custodia要求上诉法院指示地区法院撤销对Custodia主账户的拒绝
2024-06-27 11:26:52
Custodia寻求法官撤回授权美联储拒绝其主账户申请的决定
2024-06-27 11:26:52
XT即将上线新一期鲨鱼鳍理财
2024-06-27 11:26:33
WEEX唯客将于7月1日开启第二期Launchpool,投入WXT瓜分37,000ZK
2024-06-27 11:25:57
币界网实时价格午报:PEPE站上0.000012722美元/枚,涨幅达3.03%
2024-06-27 11:23:47
数字资产银行Custodia寻求法官撤回授权美联储拒绝其主账户申请的决定
2024-06-27 11:22:40
下载币界网APP