時間:2023-07-06|瀏覽:207
本課堂用通俗易懂的系列內(nèi)容為大家呈現(xiàn)區(qū)塊鏈與密碼學(xué)領(lǐng)域相關(guān)知識。這里有知識也有故事,從感興趣到有樂趣,點寬課堂等你來學(xué)。
這個系列中的課程內(nèi)容首先從比特幣著手進行入門介紹,再延伸至區(qū)塊鏈的相關(guān)技術(shù)原理與發(fā)展趨勢,然后深入淺出地依次介紹在區(qū)塊鏈中應(yīng)用的各類密碼學(xué)技術(shù)。歡迎大家訂閱本公眾號,持續(xù)進行學(xué)習(xí)。
【本課堂內(nèi)容全部選編自PlatON首席密碼學(xué)家、武漢大學(xué)國家網(wǎng)絡(luò)安全學(xué)院教授、博士生導(dǎo)師何德彪教授的《區(qū)塊鏈與密碼學(xué)》授課講義、教材及互聯(lián)網(wǎng),版權(quán)歸屬其原作者所有,如有侵權(quán)請立即與我們聯(lián)系,我們將及時處理?!?p>2.4.5
共識算法(二)
新一期區(qū)塊鏈與密碼學(xué)課堂來啦,這一期我們繼續(xù)共識算法的學(xué)習(xí),講述在共識算法中獨特的存在——BFT類算法和結(jié)合可信環(huán)境的共識算法。
BFT類算法
無論是PoW類算法還是Po*類算法,其中心思想都是將所有節(jié)點視作競爭對手,每個節(jié)點都需要進行一些計算或提供一些憑證來競爭出塊的權(quán)利(以獲取相應(yīng)的出塊好處)。BFT類算法則采取了不同的思路,它希望所有節(jié)點協(xié)同工作,通過協(xié)商的方式來產(chǎn)生能被所有(誠實)節(jié)點認(rèn)可的區(qū)塊。這就是我們俗話說的:有事好商量。
拜占庭容錯問題最早由LeslieLamport等學(xué)者于1982年在論文《TheByzantineGeneralsProblem》中正式提出,主要描述分布式網(wǎng)絡(luò)節(jié)點通信的容錯問題。
從20世紀(jì)80年代起,提出了很多解決該問題的算法,這類算法被統(tǒng)稱為BFT算法。實用拜占庭容錯(PracticalBFT,PBFT)算法是最經(jīng)典的BFT算法,由MiguelCastro和BarbaraLiskov于1999年提出。PBFT算法解決了之前BFT算法容錯率較低的問題,且降低了算法復(fù)雜度,使BFT算法可以實際應(yīng)用于分布式系統(tǒng)。
那么為什么叫拜占庭問題呢?
拜占庭是東羅馬帝國的首都,位于如今的土耳其的伊斯坦布爾。由于當(dāng)時拜占庭羅馬帝國國土遼闊,軍隊之間分隔很遠,軍隊之間只能靠信差傳消息。然而,當(dāng)發(fā)生戰(zhàn)爭時,必須所有的拜占庭軍隊達成一致共識,才能決定是否去攻打敵人,任意部分軍隊攻打敵軍,都無法取勝。如果軍隊中出現(xiàn)叛徒或間諜,左右各軍隊將軍的決定,達成的共識可能不代表大多數(shù)人意見。這時,在已知有間諜的情況下,其余忠誠的將軍在不受叛徒的影響下如何達成一致的協(xié)議,就是“拜占庭將軍問題”。
拜占庭問題是一個協(xié)議問題,拜占庭軍隊必須全體一致決定是否攻擊敵軍。問題是:
軍隊之間分隔遠,無法同時一起商議,只能通過信使。
信使或?qū)④娪锌赡艽嬖谂淹?,干擾共識過程。
叛徒可以任意行動達到以下目標(biāo):
迷惑部分將軍,使他們無法做出決定。
欺騙將軍,采取相反決定,如將軍們不希望進攻,但叛徒促成進攻行動。
叛徒只要完成任意目標(biāo),都代表攻擊行動的結(jié)果失敗。
看似是一部諜戰(zhàn)片,其背后卻有深刻的數(shù)學(xué)原理。LeslieLamport證明了在將
熱點:區(qū)塊鏈