HOME 首頁
SERVICE 服務(wù)產(chǎn)品
XINMEITI 新媒體代運(yùn)營(yíng)
CASE 服務(wù)案例
NEWS 熱點(diǎn)資訊
ABOUT 關(guān)于我們
CONTACT 聯(lián)系我們
創(chuàng)意嶺
讓品牌有溫度、有情感
專注品牌策劃15年

    區(qū)塊鏈斷鏈丟棄(區(qū)塊鏈斷鏈丟棄怎么辦)

    發(fā)布時(shí)間:2023-04-10 17:37:26     稿源: 創(chuàng)意嶺    閱讀: 123        

    大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關(guān)于區(qū)塊鏈斷鏈丟棄的問題,以下是小編對(duì)此問題的歸納整理,讓我們一起來看看吧。

    開始之前先推薦一個(gè)非常厲害的Ai人工智能工具,一鍵生成原創(chuàng)文章、方案、文案、工作計(jì)劃、工作報(bào)告、論文、代碼、作文、做題和對(duì)話答疑等等

    只需要輸入關(guān)鍵詞,就能返回你想要的內(nèi)容,越精準(zhǔn),寫出的就越詳細(xì),有微信小程序端、在線網(wǎng)頁版、PC客戶端

    官網(wǎng):https://ai.de1919.com。

    創(chuàng)意嶺作為行業(yè)內(nèi)優(yōu)秀的企業(yè),服務(wù)客戶遍布全球各地,如需了解相關(guān)業(yè)務(wù)請(qǐng)撥打電話175-8598-2043,或添加微信:1454722008

    本文目錄:

    區(qū)塊鏈斷鏈丟棄(區(qū)塊鏈斷鏈丟棄怎么辦)

    一、區(qū)塊鏈的共識(shí)機(jī)制

    一、區(qū)塊鏈共識(shí)機(jī)制的目標(biāo)

    區(qū)塊鏈?zhǔn)鞘裁???jiǎn)單而言,區(qū)塊鏈?zhǔn)且环N去中心化的數(shù)據(jù)庫,或可以叫作分布式賬本(distributed ledger)。傳統(tǒng)上所有的數(shù)據(jù)庫都是中心化的,例如一間銀行的賬本就儲(chǔ)存在銀行的中心服務(wù)器里。中心化數(shù)據(jù)庫的弊端是數(shù)據(jù)的安全及正確性全系于數(shù)據(jù)庫運(yùn)營(yíng)方(即銀行),因?yàn)槿魏文軌蛟L問中心化數(shù)據(jù)庫的人(如銀行職員或黑客)都可以破壞或修改其中的數(shù)據(jù)。

    而區(qū)塊鏈技術(shù)則容許數(shù)據(jù)庫存放在全球成千上萬的電腦上,每個(gè)人的賬本通過點(diǎn)對(duì)點(diǎn)網(wǎng)絡(luò)進(jìn)行同步,網(wǎng)絡(luò)中任何用戶一旦增加一筆交易,交易信息將通過網(wǎng)絡(luò)通知其他用戶驗(yàn)證,記錄到各自的賬本中。區(qū)塊鏈之所以得其名是因?yàn)樗怯梢粋€(gè)個(gè)包含交易信息的區(qū)塊(block)從后向前有序鏈接起來的數(shù)據(jù)結(jié)構(gòu)。

    很多人對(duì)區(qū)塊鏈的疑問是,如果每一個(gè)用戶都擁有一個(gè)獨(dú)立的賬本,那么是否意味著可以在自己的賬本上添加任意的交易信息,而成千上萬個(gè)賬本又如何保證記賬的一致性? 解決記賬一致性問題正是區(qū)塊鏈共識(shí)機(jī)制的目標(biāo) 。區(qū)塊鏈共識(shí)機(jī)制旨在保證分布式系統(tǒng)里所有節(jié)點(diǎn)中的數(shù)據(jù)完全相同并且能夠?qū)δ硞€(gè)提案(proposal)(例如是一項(xiàng)交易紀(jì)錄)達(dá)成一致。然而分布式系統(tǒng)由于引入了多個(gè)節(jié)點(diǎn),所以系統(tǒng)中會(huì)出現(xiàn)各種非常復(fù)雜的情況;隨著節(jié)點(diǎn)數(shù)量的增加,節(jié)點(diǎn)失效或故障、節(jié)點(diǎn)之間的網(wǎng)絡(luò)通信受到干擾甚至阻斷等就變成了常見的問題,解決分布式系統(tǒng)中的各種邊界條件和意外情況也增加了解決分布式一致性問題的難度。

    區(qū)塊鏈又可分為三種:

    公有鏈:全世界任何人都可以隨時(shí)進(jìn)入系統(tǒng)中讀取數(shù)據(jù)、發(fā)送可確認(rèn)交易、競(jìng)爭(zhēng)記賬的區(qū)塊鏈。公有鏈通常被認(rèn)為是“完全去中心化“的,因?yàn)闆]有任何人或機(jī)構(gòu)可以控制或篡改其中數(shù)據(jù)的讀寫。公有鏈一般會(huì)通過代幣機(jī)制鼓勵(lì)參與者競(jìng)爭(zhēng)記賬,來確保數(shù)據(jù)的安全性。

    聯(lián)盟鏈:聯(lián)盟鏈?zhǔn)侵赣腥舾蓚€(gè)機(jī)構(gòu)共同參與管理的區(qū)塊鏈。每個(gè)機(jī)構(gòu)都運(yùn)行著一個(gè)或多個(gè)節(jié)點(diǎn),其中的數(shù)據(jù)只允許系統(tǒng)內(nèi)不同的機(jī)構(gòu)進(jìn)行讀寫和發(fā)送交易,并且共同來記錄交易數(shù)據(jù)。這類區(qū)塊鏈被認(rèn)為是“部分去中心化”。

    私有鏈:指其寫入權(quán)限是由某個(gè)組織和機(jī)構(gòu)控制的區(qū)塊鏈。參與節(jié)點(diǎn)的資格會(huì)被嚴(yán)格的限制,由于參與的節(jié)點(diǎn)是有限和可控的,因此私有鏈往往可以有極快的交易速度、更好的隱私保護(hù)、更低的交易成本、不容易被惡意攻擊、并且能夠做到身份認(rèn)證等金融行業(yè)必須的要求。相比中心化數(shù)據(jù)庫,私有鏈能夠防止機(jī)構(gòu)內(nèi)單節(jié)點(diǎn)故意隱瞞或篡改數(shù)據(jù)。即使發(fā)生錯(cuò)誤,也能夠迅速發(fā)現(xiàn)來源,因此許多大型金融機(jī)構(gòu)在目前更加傾向于使用私有鏈技術(shù)。

    二、區(qū)塊鏈共識(shí)機(jī)制的分類

    解決分布式一致性問題的難度催生了數(shù)種共識(shí)機(jī)制,它們各有其優(yōu)缺點(diǎn),亦適用于不同的環(huán)境及問題。被眾人常識(shí)的共識(shí)機(jī)制有:

    l PoW(Proof of Work)工作量證明機(jī)制

    l PoS(Proof of Stake)股權(quán)/權(quán)益證明機(jī)制

    l DPoS(Delegated Proof of Stake)股份授權(quán)證明機(jī)制

    l PBFT(Practical Byzantine Fault Tolerance)實(shí)用拜占庭容錯(cuò)算法

    l DBFT(Delegated Byzantine Fault Tolerance)授權(quán)拜占庭容錯(cuò)算法

    l SCP (Stellar Consensus Protocol ) 恒星共識(shí)協(xié)議

    l RPCA(Ripple Protocol Consensus Algorithm)Ripple共識(shí)算法

    l Pool驗(yàn)證池共識(shí)機(jī)制

    (一)PoW(Proof of Work)工作量證明機(jī)制

    1. 基本介紹

    在該機(jī)制中,網(wǎng)絡(luò)上的每一個(gè)節(jié)點(diǎn)都在使用SHA256哈希函數(shù)(hash function) 運(yùn)算一個(gè)不斷變化的區(qū)塊頭的哈希值 (hash sum)。 共識(shí)要求算出的值必須等于或小于某個(gè)給定的值。 在分布式網(wǎng)絡(luò)中,所有的參與者都需要使用不同的隨機(jī)數(shù)來持續(xù)計(jì)算該哈希值,直至達(dá)到目標(biāo)為止。當(dāng)一個(gè)節(jié)點(diǎn)的算出確切的值,其他所有的節(jié)點(diǎn)必須相互確認(rèn)該值的正確性。之后新區(qū)塊中的交易將被驗(yàn)證以防欺詐。

    在比特幣中,以上運(yùn)算哈希值的節(jié)點(diǎn)被稱作“礦工”,而PoW的過程被稱為“挖礦”。挖礦是一個(gè)耗時(shí)的過程,所以也提出了相應(yīng)的激勵(lì)機(jī)制(例如向礦工授予一小部分比特幣)。PoW的優(yōu)點(diǎn)是完全的去中心化,其缺點(diǎn)是消耗大量算力造成了的資源浪費(fèi),達(dá)成共識(shí)的周期也比較長(zhǎng),共識(shí)效率低下,因此其不是很適合商業(yè)使用。

    2. 加密貨幣的應(yīng)用實(shí)例

    比特幣(Bitcoin) 及萊特幣(Litecoin)。以太坊(Ethereum) 的前三個(gè)階段(Frontier前沿、Homestead家園、Metropolis大都會(huì))皆采用PoW機(jī)制,其第四個(gè)階段 (Serenity寧靜) 將采用權(quán)益證明機(jī)制。PoW適用于公有鏈。

    PoW機(jī)制雖然已經(jīng)成功證明了其長(zhǎng)期穩(wěn)定和相對(duì)公平,但在現(xiàn)有框架下,采用PoW的“挖礦”形式,將消耗大量的能源。其消耗的能源只是不停的去做SHA256的運(yùn)算來保證工作量公平,并沒有其他的存在意義。而目前BTC所能達(dá)到的交易效率為約5TPS(5筆/秒),以太坊目前受到單區(qū)塊GAS總額的上限,所能達(dá)到的交易頻率大約是25TPS,與平均千次每秒、峰值能達(dá)到萬次每秒處理效率的VISA和MASTERCARD相差甚遠(yuǎn)。

    3. 簡(jiǎn)圖理解模式

    (ps:其中A、B、C、D計(jì)算哈希值的過程即為“挖礦”,為了犒勞時(shí)間成本的付出,機(jī)制會(huì)以一定數(shù)量的比特幣作為激勵(lì)。)

    (Ps:PoS模式下,你的“挖礦”收益正比于你的幣齡(幣的數(shù)量*天數(shù)),而與電腦的計(jì)算性能無關(guān)。我們可以認(rèn)為任何具有概率性事件的累計(jì)都是工作量證明,如淘金。假設(shè)礦石含金量為p% 質(zhì)量, 當(dāng)你得到一定量黃金時(shí),我們可以認(rèn)為你一定挖掘了1/p 質(zhì)量的礦石。而且得到的黃金數(shù)量越多,這個(gè)證明越可靠。)

    (二)PoS(Proof of Stake)股權(quán)/權(quán)益證明機(jī)制

    1.基本介紹

    PoS要求人們證明貨幣數(shù)量的所有權(quán),其相信擁有貨幣數(shù)量多的人攻擊網(wǎng)絡(luò)的可能性低?;谫~戶余額的選擇是非常不公平的,因?yàn)閱我蛔罡挥械娜藙?shì)必在網(wǎng)絡(luò)中占主導(dǎo)地位,所以提出了許多解決方案。

    在股權(quán)證明機(jī)制中,每當(dāng)創(chuàng)建一個(gè)區(qū)塊時(shí),礦工需要?jiǎng)?chuàng)建一個(gè)稱為“幣權(quán)”的交易,這個(gè)交易會(huì)按照一定比例預(yù)先將一些幣發(fā)給礦工。然后股權(quán)證明機(jī)制根據(jù)每個(gè)節(jié)點(diǎn)持有代幣的比例和時(shí)間(幣齡), 依據(jù)算法等比例地降低節(jié)點(diǎn)的挖礦難度,以加快節(jié)點(diǎn)尋找隨機(jī)數(shù)的速度,縮短達(dá)成共識(shí)所需的時(shí)間。

    與PoW相比,PoS可以節(jié)省更多的能源,更有效率。但是由于挖礦成本接近于0,因此可能會(huì)遭受攻擊。且PoS在本質(zhì)上仍然需要網(wǎng)絡(luò)中的節(jié)點(diǎn)進(jìn)行挖礦運(yùn)算,所以它同樣難以應(yīng)用于商業(yè)領(lǐng)域。

    2.數(shù)字貨幣的應(yīng)用實(shí)例

    PoS機(jī)制下較為成熟的數(shù)字貨幣是點(diǎn)點(diǎn)幣(Peercoin)和未來幣(NXT),相比于PoW,PoS機(jī)制節(jié)省了能源,引入了" 幣天 "這個(gè)概念來參與隨機(jī)運(yùn)算。PoS機(jī)制能夠讓更多的持幣人參與到記賬這個(gè)工作中去,而不需要額外購買設(shè)備(礦機(jī)、顯卡等)。每個(gè)單位代幣的運(yùn)算能力與其持有的時(shí)間長(zhǎng)成正相關(guān),即持有人持有的代幣數(shù)量越多、時(shí)間越長(zhǎng),其所能簽署、生產(chǎn)下一個(gè)區(qū)塊的概率越大。一旦其簽署了下一個(gè)區(qū)塊,持幣人持有的幣天即清零,重新進(jìn)入新的循環(huán)。

    PoS適用于公有鏈。

    3.區(qū)塊簽署人的產(chǎn)生方式

    在PoS機(jī)制下,因?yàn)閰^(qū)塊的簽署人由隨機(jī)產(chǎn)生,則一些持幣人會(huì)長(zhǎng)期、大額持有代幣以獲得更大概率地產(chǎn)生區(qū)塊,盡可能多的去清零他的"幣天"。因此整個(gè)網(wǎng)絡(luò)中的流通代幣會(huì)減少,從而不利于代幣在鏈上的流通,價(jià)格也更容易受到波動(dòng)。由于可能會(huì)存在少量大戶持有整個(gè)網(wǎng)絡(luò)中大多數(shù)代幣的情況,整個(gè)網(wǎng)絡(luò)有可能會(huì)隨著運(yùn)行時(shí)間的增長(zhǎng)而越來越趨向于中心化。相對(duì)于PoW而言,PoS機(jī)制下作惡的成本很低,因此對(duì)于分叉或是雙重支付的攻擊,需要更多的機(jī)制來保證共識(shí)。穩(wěn)定情況下,每秒大約能產(chǎn)生12筆交易,但因?yàn)榫W(wǎng)絡(luò)延遲及共識(shí)問題,需要約60秒才能完整廣播共識(shí)區(qū)塊。長(zhǎng)期來看,生成區(qū)塊(即清零"幣天")的速度遠(yuǎn)低于網(wǎng)絡(luò)傳播和廣播的速度,因此在PoS機(jī)制下需要對(duì)生成區(qū)塊進(jìn)行"限速",來保證主網(wǎng)的穩(wěn)定運(yùn)行。

    4.簡(jiǎn)圖理解模式

    (PS:擁有越多“股份”權(quán)益的人越容易獲取賬權(quán)。是指獲得多少貨幣,取決于你挖礦貢獻(xiàn)的工作量,電腦性能越好,分給你的礦就會(huì)越多。)

    (在純POS體系中,如NXT,沒有挖礦過程,初始的股權(quán)分配已經(jīng)固定,之后只是股權(quán)在交易者之中流轉(zhuǎn),非常類似于現(xiàn)實(shí)世界的股票。)

    (三)DPoS(Delegated Proof of Stake)股份授權(quán)證明機(jī)制

    1.基本介紹

    由于PoS的種種弊端,由此比特股首創(chuàng)的權(quán)益代表證明機(jī)制 DPoS(Delegated Proof of Stake)應(yīng)運(yùn)而生。DPoS 機(jī)制中的核心的要素是選舉,每個(gè)系統(tǒng)原生代幣的持有者在區(qū)塊鏈里面都可以參與選舉,所持有的代幣余額即為投票權(quán)重。通過投票,股東可以選舉出理事會(huì)成員,也可以就關(guān)系平臺(tái)發(fā)展方向的議題表明態(tài)度,這一切構(gòu)成了社區(qū)自治的基礎(chǔ)。股東除了自己投票參與選舉外,還可以通過將自己的選舉票數(shù)授權(quán)給自己信任的其它賬戶來代表自己投票。

    具體來說, DPoS由比特股(Bitshares)項(xiàng)目組發(fā)明。股權(quán)擁有著選舉他們的代表來進(jìn)行區(qū)塊的生成和驗(yàn)證。DPoS類似于現(xiàn)代企業(yè)董事會(huì)制度,比特股系統(tǒng)將代幣持有者稱為股東,由股東投票選出101名代表, 然后由這些代表負(fù)責(zé)生成和驗(yàn)證區(qū)塊。 持幣者若想稱為一名代表,需先用自己的公鑰去區(qū)塊鏈注冊(cè),獲得一個(gè)長(zhǎng)度為32位的特有身份標(biāo)識(shí)符,股東可以對(duì)這個(gè)標(biāo)識(shí)符以交易的形式進(jìn)行投票,得票數(shù)前101位被選為代表。

    代表們輪流產(chǎn)生區(qū)塊,收益(交易手續(xù)費(fèi))平分。DPoS的優(yōu)點(diǎn)在于大幅減少了參與區(qū)塊驗(yàn)證和記賬的節(jié)點(diǎn)數(shù)量,從而縮短了共識(shí)驗(yàn)證所需要的時(shí)間,大幅提高了交易效率。從某種角度來說,DPoS可以理解為多中心系統(tǒng),兼具去中心化和中心化優(yōu)勢(shì)。優(yōu)點(diǎn):大幅縮小參與驗(yàn)證和記賬節(jié)點(diǎn)的數(shù)量,可以達(dá)到秒級(jí)的共識(shí)驗(yàn)證。缺點(diǎn):投票積極性不高,絕大部分代幣持有者未參與投票;另整個(gè)共識(shí)機(jī)制還是依賴于代幣,很多商業(yè)應(yīng)用是不需要代幣存在的。

    DPoS機(jī)制要求在產(chǎn)生下一個(gè)區(qū)塊之前,必須驗(yàn)證上一個(gè)區(qū)塊已經(jīng)被受信任節(jié)點(diǎn)所簽署。相比于PoS的" 全民挖礦 ",DPoS則是利用類似" 代表大會(huì) "的制度來直接選取可信任節(jié)點(diǎn),由這些可信任節(jié)點(diǎn)(即見證人)來代替其他持幣人行使權(quán)力,見證人節(jié)點(diǎn)要求長(zhǎng)期在線,從而解決了因?yàn)镻oS簽署區(qū)塊人不是經(jīng)常在線而可能導(dǎo)致的產(chǎn)塊延誤等一系列問題。 DPoS機(jī)制通常能達(dá)到萬次每秒的交易速度,在網(wǎng)絡(luò)延遲低的情況下可以達(dá)到十萬秒級(jí)別,非常適合企業(yè)級(jí)的應(yīng)用。 因?yàn)楣艑殧?shù)據(jù)交易所對(duì)于數(shù)據(jù)交易頻率要求高,更要求長(zhǎng)期穩(wěn)定性,因此DPoS是非常不錯(cuò)的選擇。

    2. 股份授權(quán)證明機(jī)制下的機(jī)構(gòu)與系統(tǒng)

    理事會(huì)是區(qū)塊鏈網(wǎng)絡(luò)的權(quán)力機(jī)構(gòu),理事會(huì)的人選由系統(tǒng)股東(即持幣人)選舉產(chǎn)生,理事會(huì)成員有權(quán)發(fā)起議案和對(duì)議案進(jìn)行投票表決。

    理事會(huì)的重要職責(zé)之一是根據(jù)需要調(diào)整系統(tǒng)的可變參數(shù),這些參數(shù)包括:

    l 費(fèi)用相關(guān):各種交易類型的費(fèi)率。

    l 授權(quán)相關(guān):對(duì)接入網(wǎng)絡(luò)的第三方平臺(tái)收費(fèi)及補(bǔ)貼相關(guān)參數(shù)。

    l 區(qū)塊生產(chǎn)相關(guān):區(qū)塊生產(chǎn)間隔時(shí)間,區(qū)塊獎(jiǎng)勵(lì)。

    l 身份審核相關(guān):審核驗(yàn)證異常機(jī)構(gòu)賬戶的信息情況。

    l 同時(shí),關(guān)系到理事會(huì)利益的事項(xiàng)將不通過理事會(huì)設(shè)定。

    在Finchain系統(tǒng)中,見證人負(fù)責(zé)收集網(wǎng)絡(luò)運(yùn)行時(shí)廣播出來的各種交易并打包到區(qū)塊中,其工作類似于比特幣網(wǎng)絡(luò)中的礦工,在采用 PoW(工作量證明)的比特幣網(wǎng)絡(luò)中,由一種獲獎(jiǎng)概率取決于哈希算力的抽彩票方式來決定哪個(gè)礦工節(jié)點(diǎn)產(chǎn)生下一個(gè)區(qū)塊。而在采用 DPoS 機(jī)制的金融鏈網(wǎng)絡(luò)中,通過理事會(huì)投票決定見證人的數(shù)量,由持幣人投票來決定見證人人選。入選的活躍見證人按順序打包交易并生產(chǎn)區(qū)塊,在每一輪區(qū)塊生產(chǎn)之后,見證人會(huì)在隨機(jī)洗牌決定新的順序后進(jìn)入下一輪的區(qū)塊生產(chǎn)。

    3. DPoS的應(yīng)用實(shí)例

    比特股(bitshares) 采用DPoS。DPoS主要適用于聯(lián)盟鏈。

    4.簡(jiǎn)圖理解模式

    (四)PBFT(Practical Byzantine Fault Tolerance)實(shí)用拜占庭容錯(cuò)算法

    1. 基本介紹

    PBFT是一種基于嚴(yán)格數(shù)學(xué)證明的算法,需要經(jīng)過三個(gè)階段的信息交互和局部共識(shí)來達(dá)成最終的一致輸出。三個(gè)階段分別為預(yù)備 (pre-prepare)、準(zhǔn)備 (prepare)、落實(shí) (commit)。PBFT算法證明系統(tǒng)中只要有2/3比例以上的正常節(jié)點(diǎn),就能保證最終一定可以輸出一致的共識(shí)結(jié)果。換言之,在使用PBFT算法的系統(tǒng)中,至多可以容忍不超過系統(tǒng)全部節(jié)點(diǎn)數(shù)量1/3的失效節(jié)點(diǎn) (包括有意誤導(dǎo)、故意破壞系統(tǒng)、超時(shí)、重復(fù)發(fā)送消息、偽造簽名等的節(jié)點(diǎn),又稱為”拜占庭”節(jié)點(diǎn))。

    2. PBFT的應(yīng)用實(shí)例

    著名聯(lián)盟鏈Hyperledger Fabric v0.6采用的是PBFT,v1.0又推出PBFT的改進(jìn)版本SBFT。PBFT主要適用于私有鏈和聯(lián)盟鏈。

    3. 簡(jiǎn)圖理解模式

    上圖顯示了一個(gè)簡(jiǎn)化的PBFT的協(xié)議通信模式,其中C為客戶端,0 – 3表示服務(wù)節(jié)點(diǎn),其中0為主節(jié)點(diǎn),3為故障節(jié)點(diǎn)。整個(gè)協(xié)議的基本過程如下:

    (1) 客戶端發(fā)送請(qǐng)求,激活主節(jié)點(diǎn)的服務(wù)操作;

    (2) 當(dāng)主節(jié)點(diǎn)接收請(qǐng)求后,啟動(dòng)三階段的協(xié)議以向各從節(jié)點(diǎn)廣播請(qǐng)求;

    (a) 序號(hào)分配階段,主節(jié)點(diǎn)給請(qǐng)求賦值一個(gè)序號(hào)n,廣播序號(hào)分配消息和客戶端的請(qǐng)求消息m,并將構(gòu)造pre-prepare消息給各從節(jié)點(diǎn);

    (b) 交互階段,從節(jié)點(diǎn)接收pre-prepare消息,向其他服務(wù)節(jié)點(diǎn)廣播prepare消息;

    (c) 序號(hào)確認(rèn)階段,各節(jié)點(diǎn)對(duì)視圖內(nèi)的請(qǐng)求和次序進(jìn)行驗(yàn)證后,廣播commit消息,執(zhí)行收到的客戶端的請(qǐng)求并給客戶端響應(yīng)。

    (3) 客戶端等待來自不同節(jié)點(diǎn)的響應(yīng),若有m+1個(gè)響應(yīng)相同,則該響應(yīng)即為運(yùn)算的結(jié)果;

    (五)DBFT(Delegated Byzantine Fault Tolerance)授權(quán)拜占庭容錯(cuò)算法

    1. 基本介紹

    DBFT建基于PBFT的基礎(chǔ)上,在這個(gè)機(jī)制當(dāng)中,存在兩種參與者,一種是專業(yè)記賬的“超級(jí)節(jié)點(diǎn)”,一種是系統(tǒng)當(dāng)中不參與記賬的普通用戶。普通用戶基于持有權(quán)益的比例來投票選出超級(jí)節(jié)點(diǎn),當(dāng)需要通過一項(xiàng)共識(shí)(記賬)時(shí),在這些超級(jí)節(jié)點(diǎn)中隨機(jī)推選出一名發(fā)言人擬定方案,然后由其他超級(jí)節(jié)點(diǎn)根據(jù)拜占庭容錯(cuò)算法(見上文),即少數(shù)服從多數(shù)的原則進(jìn)行表態(tài)。如果超過2/3的超級(jí)節(jié)點(diǎn)表示同意發(fā)言人方案,則共識(shí)達(dá)成。這個(gè)提案就成為最終發(fā)布的區(qū)塊,并且該區(qū)塊是不可逆的,所有里面的交易都是百分之百確認(rèn)的。如果在一定時(shí)間內(nèi)還未達(dá)成一致的提案,或者發(fā)現(xiàn)有非法交易的話,可以由其他超級(jí)節(jié)點(diǎn)重新發(fā)起提案,重復(fù)投票過程,直至達(dá)成共識(shí)。

    2. DBFT的應(yīng)用實(shí)例

    國(guó)內(nèi)加密貨幣及區(qū)塊鏈平臺(tái)NEO是 DBFT算法的研發(fā)者及采用者。

    3. 簡(jiǎn)圖理解模式

    假設(shè)系統(tǒng)中只有四個(gè)由普通用戶投票選出的超級(jí)節(jié)點(diǎn),當(dāng)需要通過一項(xiàng)共識(shí)時(shí),系統(tǒng)就會(huì)從代表中隨機(jī)選出一名發(fā)言人擬定方案。發(fā)言人會(huì)將擬好的方案交給每位代表,每位代表先判斷發(fā)言人的計(jì)算結(jié)果與它們自身紀(jì)錄的是否一致,再與其它代表商討驗(yàn)證計(jì)算結(jié)果是否正確。如果2/3的代表一致表示發(fā)言人方案的計(jì)算結(jié)果是正確的,那么方案就此通過。

    如果只有不到2/3的代表達(dá)成共識(shí),將隨機(jī)選出一名新的發(fā)言人,再重復(fù)上述流程。這個(gè)體系旨在保護(hù)系統(tǒng)不受無法行使職能的領(lǐng)袖影響。

    上圖假設(shè)全體節(jié)點(diǎn)都是誠(chéng)實(shí)的,達(dá)成100%共識(shí),將對(duì)方案A(區(qū)塊)進(jìn)行驗(yàn)證。

    鑒于發(fā)言人是隨機(jī)選出的一名代表,因此他可能會(huì)不誠(chéng)實(shí)或出現(xiàn)故障。上圖假設(shè)發(fā)言人給3名代表中的2名發(fā)送了惡意信息(方案B),同時(shí)給1名代表發(fā)送了正確信息(方案A)。

    在這種情況下該惡意信息(方案B)無法通過。中間與右邊的代表自身的計(jì)算結(jié)果與發(fā)言人發(fā)送的不一致,因此就不能驗(yàn)證發(fā)言人擬定的方案,導(dǎo)致2人拒絕通過方案。左邊的代表因接收了正確信息,與自身的計(jì)算結(jié)果相符,因此能確認(rèn)方案,繼而成功完成1次驗(yàn)證。但本方案仍無法通過,因?yàn)椴蛔?/3的代表達(dá)成共識(shí)。接著將隨機(jī)選出一名新發(fā)言人,重新開始共識(shí)流程。

    上圖假設(shè)發(fā)言人是誠(chéng)實(shí)的,但其中1名代表出現(xiàn)了異常;右邊的代表向其他代表發(fā)送了不正確的信息(B)。

    在這種情況下發(fā)言人擬定的正確信息(A)依然可以獲得驗(yàn)證,因?yàn)樽筮吪c中間誠(chéng)實(shí)的代表都可以驗(yàn)證由誠(chéng)實(shí)的發(fā)言人擬定的方案,達(dá)成2/3的共識(shí)。代表也可以判斷到底是發(fā)言人向右邊的節(jié)點(diǎn)說謊還是右邊的節(jié)點(diǎn)不誠(chéng)實(shí)。

    (六)SCP (Stellar Consensus Protocol ) 恒星共識(shí)協(xié)議

    1. 基本介紹

    SCP 是 Stellar (一種基于互聯(lián)網(wǎng)的去中心化全球支付協(xié)議) 研發(fā)及使用的共識(shí)算法,其建基于聯(lián)邦拜占庭協(xié)議 (Federated Byzantine Agreement) 。傳統(tǒng)的非聯(lián)邦拜占庭協(xié)議(如上文的PBFT和DBFT)雖然確??梢酝ㄟ^分布式的方法達(dá)成共識(shí),并達(dá)到拜占庭容錯(cuò) (至多可以容忍不超過系統(tǒng)全部節(jié)點(diǎn)數(shù)量1/3的失效節(jié)點(diǎn)),它是一個(gè)中心化的系統(tǒng) — 網(wǎng)絡(luò)中節(jié)點(diǎn)的數(shù)量和身份必須提前知曉且驗(yàn)證過。而聯(lián)邦拜占庭協(xié)議的不同之處在于它能夠去中心化的同時(shí),又可以做到拜占庭容錯(cuò)。

    […]

    (七)RPCA(Ripple Protocol Consensus Algorithm)Ripple共識(shí)算法

    1. 基本介紹

    RPCA是Ripple(一種基于互聯(lián)網(wǎng)的開源支付協(xié)議,可以實(shí)現(xiàn)去中心化的貨幣兌換、支付與清算功能)研發(fā)及使用的共識(shí)算法。在 Ripple 的網(wǎng)絡(luò)中,交易由客戶端(應(yīng)用)發(fā)起,經(jīng)過追蹤節(jié)點(diǎn)(tracking node)或驗(yàn)證節(jié)點(diǎn)(validating node)把交易廣播到整個(gè)網(wǎng)絡(luò)中。追蹤節(jié)點(diǎn)的主要功能是分發(fā)交易信息以及響應(yīng)客戶端的賬本請(qǐng)求。驗(yàn)證節(jié)點(diǎn)除包含追蹤節(jié)點(diǎn)的所有功能外,還能夠通過共識(shí)協(xié)議,在賬本中增加新的賬本實(shí)例數(shù)據(jù)。

    Ripple 的共識(shí)達(dá)成發(fā)生在驗(yàn)證節(jié)點(diǎn)之間,每個(gè)驗(yàn)證節(jié)點(diǎn)都預(yù)先配置了一份可信任節(jié)點(diǎn)名單,稱為 UNL(Unique Node List)。在名單上的節(jié)點(diǎn)可對(duì)交易達(dá)成進(jìn)行投票。共識(shí)過程如下:

    (1) 每個(gè)驗(yàn)證節(jié)點(diǎn)會(huì)不斷收到從網(wǎng)絡(luò)發(fā)送過來的交易,通過與本地賬本數(shù)據(jù)驗(yàn)證后,不合法的交易直接丟棄,合法的交易將匯總成交易候選集(candidate set)。交易候選集里面還包括之前共識(shí)過程無法確認(rèn)而遺留下來的交易。

    (2) 每個(gè)驗(yàn)證節(jié)點(diǎn)把自己的交易候選集作為提案發(fā)送給其他驗(yàn)證節(jié)點(diǎn)。

    (3) 驗(yàn)證節(jié)點(diǎn)在收到其他節(jié)點(diǎn)發(fā)來的提案后,如果不是來自UNL上的節(jié)點(diǎn),則忽略該提案;如果是來自UNL上的節(jié)點(diǎn),就會(huì)對(duì)比提案中的交易和本地的交易候選集,如果有相同的交易,該交易就獲得一票。在一定時(shí)間內(nèi),當(dāng)交易獲得超過50%的票數(shù)時(shí),則該交易進(jìn)入下一輪。沒有超過50%的交易,將留待下一次共識(shí)過程去確認(rèn)。

    (4) 驗(yàn)證節(jié)點(diǎn)把超過50%票數(shù)的交易作為提案發(fā)給其他節(jié)點(diǎn),同時(shí)提高所需票數(shù)的閾值到60%,重復(fù)步驟(3)、步驟(4),直到閾值達(dá)到80%。

    (5) 驗(yàn)證節(jié)點(diǎn)把經(jīng)過80%UNL節(jié)點(diǎn)確認(rèn)的交易正式寫入本地的賬本數(shù)據(jù)中,稱為最后關(guān)閉賬本(last closed ledger),即賬本最后(最新)的狀態(tài)。

    在Ripple的共識(shí)算法中,參與投票節(jié)點(diǎn)的身份是事先知道的,因此,算法的效率比PoW等匿名共識(shí)算法要高效,交易的確認(rèn)時(shí)間只需幾秒鐘。這點(diǎn)也決定了該共識(shí)算法只適合于聯(lián)盟鏈或私有鏈。Ripple共識(shí)算法的拜占庭容錯(cuò)(BFT)能力為(n-1)/5,即可以容忍整個(gè)網(wǎng)絡(luò)中20%的節(jié)點(diǎn)出現(xiàn)拜占庭錯(cuò)誤而不影響正確的共識(shí)。

    2. 簡(jiǎn)圖理解模式

    共識(shí)過程節(jié)點(diǎn)交互示意圖:

    共識(shí)算法流程:

    (八)POOL驗(yàn)證池共識(shí)機(jī)制

    Pool驗(yàn)證池共識(shí)機(jī)制是基于傳統(tǒng)的分布式一致性算法(Paxos和Raft)的基礎(chǔ)上開發(fā)的機(jī)制。Paxos算法是1990年提出的一種基于消息傳遞且具有高度容錯(cuò)特性的一致性算法。過去, Paxos一直是分布式協(xié)議的標(biāo)準(zhǔn),但是Paxos難于理解,更難以實(shí)現(xiàn)。Raft則是在2013年發(fā)布的一個(gè)比Paxos簡(jiǎn)單又能實(shí)現(xiàn)Paxos所解決問題的一致性算法。Paxos和Raft達(dá)成共識(shí)的過程皆如同選舉一樣,參選者需要說服大多數(shù)選民(服務(wù)器)投票給他,一旦選定后就跟隨其操作。Paxos和Raft的區(qū)別在于選舉的具體過程不同。而Pool驗(yàn)證池共識(shí)機(jī)制即是在這兩種成熟的分布式一致性算法的基礎(chǔ)上,輔之以數(shù)據(jù)驗(yàn)證的機(jī)制。

    二、區(qū)塊鏈中現(xiàn)代密碼學(xué)

    1983年 - David Chaum描述的盲簽

    1997年 - Adam Back發(fā)明的HashCash(工作證明制度的一個(gè)例子)

    2001年 - Ron Rivest,Adi Shamir和Yael Tauman向加密社區(qū)提出了環(huán)簽名

    2004年 - Patrick P. Tsang和Victor K.提出使用環(huán)簽名系統(tǒng)進(jìn)行投票和電子現(xiàn)金;

    2008年 - 由Satoshi Nakamoto出版的Bitcoin白皮書

    2011年 - 比特幣系統(tǒng)中的匿名分析,F(xiàn)ergal Reid和Martin Harrigan

    2012 - 目的地址比特幣匿名(CryptoNote中的一次性地址)。

    安全多方計(jì)算起源于1982年姚期智的百萬富翁問題。后來Oded Goldreich有比較細(xì)致系統(tǒng)的論述。

    姚氏百萬富翁問題是由華裔計(jì)算機(jī)科學(xué)家、圖靈獎(jiǎng)獲得者姚啟智教授首先提出的。該問題表述為:兩個(gè)百萬富翁Alice和Bob想知道他們兩個(gè)誰更富有,但他們都不想讓對(duì)方知道自己財(cái)富的任何信息。該問題有一些實(shí)際應(yīng)用:假設(shè)Alice希望向Bob購買一些商品,但她愿意支付的最高金額為x元;Bob希望的最低賣出價(jià)為y元。Alice和Bob都非常希望知道x與y哪個(gè)大。如果x>y,他們都可以開始討價(jià)還價(jià);如果z<y,他們就不用浪費(fèi)口舌。但他們都不想告訴對(duì)方自己的出價(jià),以免自己在討價(jià)還價(jià)中處于不利地位。

    該方案用于對(duì)兩個(gè)數(shù)進(jìn)行比較,以確定哪一個(gè)較大。Alice知道一個(gè)整數(shù)i;Bob知道一個(gè)整數(shù)j, Alice與B0b希望知道究竟i>=j還是j>i,但都不想讓對(duì)方知道自己的數(shù)。為簡(jiǎn)單起見,假設(shè)j與i的范圍為[1,100】。Bob有一個(gè)公開密鑰Eb和私有密鑰Db。

    安全多方計(jì)算(Secure Multi-Party Computation)的研究主要是針對(duì)無可信第三方的情況下, 如何安全地計(jì)算一個(gè)約定函數(shù)的問題. 安全多方計(jì)算在電子選舉、電子投票、電子拍賣、秘密共享、門限簽名等場(chǎng)景中有著重要的作用。

    同態(tài)加密(Homomorphic Encryption)是很久以前密碼學(xué)界就提出來的一個(gè)Open Problem。早在1978年,Ron Rivest, Leonard Adleman, 以及Michael L. Dertouzos就以銀行為應(yīng)用背景提出了這個(gè)概念[RAD78]。對(duì),你沒有看錯(cuò),Ron Rivest和Leonard Adleman分別就是著名的RSA算法中的R和A。

    什么是同態(tài)加密?提出第一個(gè)構(gòu)造出全同態(tài)加密(Fully Homomorphic Encryption)[Gen09]的Craig Gentry給出的直觀定義最好:A way to delegate processing of your data, without giving away access to it.

    這是什么意思呢?一般的加密方案關(guān)注的都是數(shù)據(jù)存儲(chǔ)安全。即,我要給其他人發(fā)個(gè)加密的東西,或者要在計(jì)算機(jī)或者其他服務(wù)器上存一個(gè)東西,我要對(duì)數(shù)據(jù)進(jìn)行加密后在發(fā)送或者存儲(chǔ)。沒有密鑰的用戶,不可能從加密結(jié)果中得到有關(guān)原始數(shù)據(jù)的任何信息。只有擁有密鑰的用戶才能夠正確解密,得到原始的內(nèi)容。我們注意到,這個(gè)過程中用戶是不能對(duì)加密結(jié)果做任何操作的,只能進(jìn)行存儲(chǔ)、傳輸。對(duì)加密結(jié)果做任何操作,都將會(huì)導(dǎo)致錯(cuò)誤的解密,甚至解密失敗。

    同態(tài)加密方案最有趣的地方在于,其關(guān)注的是數(shù)據(jù)處理安全。同態(tài)加密提供了一種對(duì)加密數(shù)據(jù)進(jìn)行處理的功能。也就是說,其他人可以對(duì)加密數(shù)據(jù)進(jìn)行處理,但是處理過程不會(huì)泄露任何原始內(nèi)容。同時(shí),擁有密鑰的用戶對(duì)處理過的數(shù)據(jù)進(jìn)行解密后,得到的正好是處理后的結(jié)果。

    有點(diǎn)抽象?我們舉個(gè)實(shí)際生活中的例子。有個(gè)叫Alice的用戶買到了一大塊金子,她想讓工人把這塊金子打造成一個(gè)項(xiàng)鏈。但是工人在打造的過程中有可能會(huì)偷金子啊,畢竟就是一克金子也值很多錢的說… 因此能不能有一種方法,讓工人可以對(duì)金塊進(jìn)行加工(delegate processing of your data),但是不能得到任何金子(without giving away access to it)?當(dāng)然有辦法啦,Alice可以這么做:Alice將金子鎖在一個(gè)密閉的盒子里面,這個(gè)盒子安裝了一個(gè)手套。工人可以帶著這個(gè)手套,對(duì)盒子內(nèi)部的金子進(jìn)行處理。但是盒子是鎖著的,所以工人不僅拿不到金塊,連處理過程中掉下的任何金子都拿不到。加工完成后。Alice拿回這個(gè)盒子,把鎖打開,就得到了金子。

    這里面的對(duì)應(yīng)關(guān)系是:盒子:加密算法盒子上的鎖:用戶密鑰將金塊放在盒子里面并且用鎖鎖上:將數(shù)據(jù)用同態(tài)加密方案進(jìn)行加密加工:應(yīng)用同態(tài)特性,在無法取得數(shù)據(jù)的條件下直接對(duì)加密結(jié)果進(jìn)行處理開鎖:對(duì)結(jié)果進(jìn)行解密,直接得到處理后的結(jié)果同態(tài)加密哪里能用?這幾年不是提了個(gè)云計(jì)算的概念嘛。同態(tài)加密幾乎就是為云計(jì)算而量身打造的!我們考慮下面的情景:一個(gè)用戶想要處理一個(gè)數(shù)據(jù),但是他的計(jì)算機(jī)計(jì)算能力較弱。這個(gè)用戶可以使用云計(jì)算的概念,讓云來幫助他進(jìn)行處理而得到結(jié)果。但是如果直接將數(shù)據(jù)交給云,無法保證安全性??!于是,他可以使用同態(tài)加密,然后讓云來對(duì)加密數(shù)據(jù)進(jìn)行直接處理,并將處理結(jié)果返回給他。這樣一來:用戶向云服務(wù)商付款,得到了處理的結(jié)果;云服務(wù)商掙到了費(fèi)用,并在不知道用戶數(shù)據(jù)的前提下正確處理了數(shù)據(jù);

    聚合簽名由Boneh等人提出,主要是通過聚合多個(gè)簽名為一個(gè)簽名,來提高簽名與驗(yàn)證的效率。要對(duì)多個(gè)用戶的數(shù)據(jù)進(jìn)行簽名,聚合簽名能夠極大地降低簽名計(jì)算復(fù)雜度。CL就是聚合簽名。

    零知識(shí)證明過程有兩個(gè)參與方,一方叫證明者,一方叫驗(yàn)證者。證明者掌握著某個(gè)秘密,他想讓驗(yàn)證者相信他掌握著秘密,但是又不想泄漏這個(gè)秘密給驗(yàn)證者。

    雙方按照一個(gè)協(xié)議,通過一系列交互,最終驗(yàn)證者會(huì)得出一個(gè)明確的結(jié)論,證明者是或不掌握這個(gè)秘密。

    對(duì)于比特幣的例子,一筆轉(zhuǎn)帳交易合法與否,其實(shí)只要證明三件事:

    發(fā)送的錢屬于發(fā)送交易的人

    發(fā)送者發(fā)送的金額等于接收者收到金額

    發(fā)送者的錢確實(shí)被銷毀了

    整個(gè)證明過程中,礦工其實(shí)并不關(guān)心具體花掉了多少錢,發(fā)送者具體是誰,接受者具體是誰。礦工只關(guān)心系統(tǒng)的錢是不是守恒的。

    zcash 就是用這個(gè)思路實(shí)現(xiàn)了隱私交易。

    零知識(shí)證明的三條性質(zhì)對(duì)應(yīng):

    (1)完備性。如果證明方和驗(yàn)證方都是誠(chéng)實(shí)的,并遵循證明過程的每一步,進(jìn)行正確的計(jì)算,那么這個(gè)證明一定是成功的,驗(yàn)證方一定能夠接受證明方。

    (2)合理性。沒有人能夠假冒證明方,使這個(gè)證明成功。

    (3)零知識(shí)性。證明過程執(zhí)行完之后,驗(yàn)證方只獲得了“證明方擁有這個(gè)知識(shí)”這條信息,而沒有獲得關(guān)于這個(gè)知識(shí)本身的任何一點(diǎn)信息。

    只有環(huán)成員,沒有管理者,不需要環(huán)成員之間的合作,簽名者利用自己的私鑰和集合中其他成員的公鑰就能獨(dú)立的進(jìn)行簽名,不需要其他人的幫助,集合中的其他成員可能不知道自己被包含在了其中。

    環(huán)簽名可以被用作成一種泄露秘密的方式,例如,可以使用環(huán)形簽名來提供來自“白宮高級(jí)官員”的匿名簽名,而不會(huì)透露哪個(gè)官員簽署了該消息。 環(huán)簽名適用于此應(yīng)用程序,因?yàn)榄h(huán)簽名的匿名性不能被撤銷,并且因?yàn)橛糜诃h(huán)簽名的組可以被即興創(chuàng)建。

    1)密鑰生成。為環(huán)中每個(gè)成員產(chǎn)生一個(gè)密鑰對(duì)(公鑰PKi,私鑰SKi)

    2)簽名。簽名者用自己的私鑰和任意n個(gè)環(huán)成員的公鑰為消息m生成簽名a

    3)簽名驗(yàn)證。簽名者根據(jù)環(huán)簽名和消息m,驗(yàn)證簽名是否是環(huán)中成員所簽。如果有效就接收,如果無效就丟棄。

    群簽名的一般流程

    盲數(shù)字簽名(Blind Signature)簡(jiǎn)稱盲簽名——是一種數(shù)字簽名的方式,在消息內(nèi)容被簽名之前,對(duì)于簽名者來說消息內(nèi)容是不可見的。1982年大衛(wèi)·喬姆首先提出了盲簽名的概念。盲簽名因?yàn)榫哂忻ば赃@一特點(diǎn),可以有效保護(hù)所簽署消息的具體內(nèi)容,所以在電子商務(wù)和電子選舉等領(lǐng)域有著廣泛的應(yīng)用。

    類比例子:對(duì)文件簽名就是通過在信封里放一張復(fù)寫紙,簽名者在信封上簽名時(shí),他的簽名便透過復(fù)寫紙簽到文件上。

    所謂盲簽名,就是先將隱蔽的文件放進(jìn)信封里,而除去盲因子的過程就是打開這個(gè)信封,當(dāng)文件在一個(gè)信封中時(shí),任何人不能讀它。對(duì)文件簽名就是通過在信封里放一張復(fù)寫紙,簽名者在信封上簽名時(shí),他的簽名便透過復(fù)寫紙簽到文件上。

    一般來說,一個(gè)好的盲簽名應(yīng)該具有以下的性質(zhì):

    不可偽造性。除了簽名者本人外,任何人都不能以他的名義生成有效的盲簽名。這是一條最基本的性質(zhì)。

    不可抵賴性。簽名者一旦簽署了某個(gè)消息,他無法否認(rèn)自己對(duì)消息的簽名。

    盲性。簽名者雖然對(duì)某個(gè)消息進(jìn)行了簽名,但他不可能得到消息的具體內(nèi)容。

    不可跟蹤性。一旦消息的簽名公開后,簽名者不能確定自己何時(shí)簽署的這條消息。

    滿足上面幾條性質(zhì)的盲簽名,被認(rèn)為是安全的。這四條性質(zhì)既是我們?cè)O(shè)計(jì)盲簽名所應(yīng)遵循的標(biāo)準(zhǔn),又是我們判斷盲簽名性能優(yōu)劣的根據(jù)。

    另外,方案的可操作性和實(shí)現(xiàn)的效率也是我們?cè)O(shè)計(jì)盲簽名時(shí)必須考慮的重要

    因素。一個(gè)盲簽名的可操作性和實(shí)現(xiàn)速度取決于以下幾個(gè)方面:

    1,密鑰的長(zhǎng)度;

    2,盲簽名的長(zhǎng)度;

    3,盲簽名的算法和驗(yàn)證算法。

    盲簽名具體步驟

    1,接收者首先將待簽數(shù)據(jù)進(jìn)行盲變換,把變換后的盲數(shù)據(jù)發(fā)給簽名者。

    2,經(jīng)簽名者簽名后再發(fā)給接收者。

    3,接收者對(duì)簽名再作去盲變換,得出的便是簽名者對(duì)原數(shù)據(jù)的盲簽名。

    4,這樣便滿足了條件①。要滿足條件②,必須使簽名者事后看到盲簽名時(shí)不能與盲數(shù)據(jù)聯(lián)系起來,這通常是依靠某種協(xié)議來實(shí)現(xiàn)的。

    三、POA(Proof of Activity)區(qū)塊鏈共識(shí)算法

    POA(Proof of Activity)算法是一個(gè)區(qū)塊鏈的共識(shí)算法,基本原理是結(jié)合POW(Proof of work)和POS(Proof of stake)算法的特點(diǎn)進(jìn)行工作,POW算法和POS算法的具體內(nèi)容可以參考:

    POW算法 : https://www.jianshu.com/p/b23cbafbbad2

    POS算法 : https://blog.csdn.net/wgwgnihao/article/details/80635162

    POA算法相比于其他算法可以改進(jìn)網(wǎng)絡(luò)拓?fù)洌S持在線節(jié)點(diǎn)比例,需求更少的交易費(fèi)同時(shí)減少共識(shí)算法過程中的能量損耗。

    POA算法需求的網(wǎng)絡(luò)中同樣包含兩類節(jié)點(diǎn),礦工和普通參與者,其中普通參與者不一定一直保持在線。POA算法首先由礦工構(gòu)造區(qū)塊頭,由塊頭選出N個(gè)幣,這N個(gè)幣的所有者參與后續(xù)的校驗(yàn)和生成塊的過程。

    從這里可以看到POA算法不僅與算力有關(guān),后續(xù)的N個(gè)參與者的選舉則完全由參與者在網(wǎng)絡(luò)中所擁有的幣的總數(shù)量決定。擁有越多幣的參與者越有機(jī)會(huì)被選為N個(gè)后續(xù)的參與者。而后續(xù)N個(gè)參與者參與的必要條件是這N個(gè)參與者必須在線,這也是POA命名的由來,POA算法的維護(hù)取決于網(wǎng)絡(luò)中的活躍節(jié)點(diǎn)(Active)。

    POA算法的一個(gè)理想的基本流程是,類似于POW協(xié)議,礦工構(gòu)造出一個(gè)符合難度要求的塊頭,通過礦工得到的塊頭計(jì)算衍生出N個(gè)幣的編號(hào),從區(qū)塊鏈中追溯可以得到這幾個(gè)幣目前所述的參與者。礦工將這個(gè)塊頭發(fā)送給這N個(gè)參與者,其中前N-1個(gè)參與者對(duì)這個(gè)塊進(jìn)行校驗(yàn)和簽名,最后第N個(gè)參與者校驗(yàn)并將交易加入到該塊中,將這個(gè)區(qū)塊發(fā)布出去,即完成一個(gè)區(qū)塊的出塊。

    一個(gè)理想過程如下圖所示:

    在實(shí)際運(yùn)行中,無法保證網(wǎng)絡(luò)上所有參與者都在線,而不在線的參與者則無法進(jìn)行校驗(yàn)和簽名,這個(gè)無法被校驗(yàn)和簽名的塊頭則會(huì)被廢棄。

    即在實(shí)際運(yùn)行中,應(yīng)該是一個(gè)礦工構(gòu)造出塊頭后廣播給各個(gè)參與者簽名,同時(shí)繼續(xù)重新構(gòu)造新的塊頭,以免上一個(gè)塊頭衍生的N個(gè)參與者存在有某一個(gè)沒有在線,而導(dǎo)致塊頭被廢棄。

    因此,在這種情況下,一個(gè)塊是否被確認(rèn)不僅與礦工的計(jì)算能力有關(guān)同時(shí)也與網(wǎng)絡(luò)上的在線比例有關(guān)。

    與純POW相比,在與比特幣(POW)同樣10分鐘出一個(gè)塊的情況下,POA由于會(huì)有參與者不在線而產(chǎn)生的損耗,因此,10分鐘內(nèi)礦工可以構(gòu)造的塊的數(shù)量會(huì)更多,即塊頭的難度限制會(huì)降低,那么礦工在挖礦過程中會(huì)造成的能量損耗也會(huì)降低。

    與純POS相比,可以看到POA的出塊流程并不會(huì)將構(gòu)造區(qū)塊過程中的相關(guān)信息上鏈,可以明顯減少區(qū)塊鏈上用于維護(hù)協(xié)議產(chǎn)生的冗余信息的量。

    本節(jié)對(duì)上訴協(xié)議中一些參數(shù)設(shè)置進(jìn)行分析

    在礦工構(gòu)造出塊頭后對(duì)塊頭進(jìn)行校驗(yàn)和區(qū)塊構(gòu)造的N個(gè)參與者的數(shù)量選定比較類似于比特幣中每一個(gè)塊的出塊時(shí)間的選取。比特幣中選擇了10分鐘作為每一個(gè)塊的期望出塊時(shí)間并通過動(dòng)態(tài)調(diào)節(jié)難度來適應(yīng)。

    這里N的取值同樣可以選擇選定值或者動(dòng)態(tài)調(diào)節(jié)。動(dòng)態(tài)調(diào)節(jié)需要更加復(fù)雜的協(xié)議內(nèi)容,同時(shí)可能會(huì)帶來區(qū)塊鏈的數(shù)據(jù)膨脹,而復(fù)雜的協(xié)議也增加了攻擊者攻擊的可能性。另外暫時(shí)沒有辦法證明動(dòng)態(tài)調(diào)節(jié)可以帶來什么好處。靜態(tài)調(diào)節(jié)在后續(xù)的分析(4 安全分析)中可以得到N=3的取值是比較合適的。

    從上面的描述可以看到,構(gòu)造新的區(qū)塊的除了礦工還有從塊頭中衍生出來的N個(gè)幣所有者。在構(gòu)造出一個(gè)新的區(qū)塊后,這些參與者同樣應(yīng)該收到一定的激勵(lì),以維持參與者保持在線狀態(tài)。

    礦工與參與者之間的非配比例與參與者的在線狀態(tài)相關(guān)。給予參與者的激勵(lì)與參與者保持在線狀態(tài)的熱情密切相關(guān),越多參與者保持在線狀態(tài),能更好地維持網(wǎng)絡(luò)的穩(wěn)定。因此,可以在網(wǎng)絡(luò)上在線參與者不夠多的時(shí)候,提高參與者得到的激勵(lì)分成比例,從而激發(fā)更多的參與者上線。

    如何確定當(dāng)前參與者的在線情況呢?可以最后第N個(gè)參與者構(gòu)造區(qū)塊時(shí),將構(gòu)造出來但是被廢棄的塊頭加入到區(qū)塊中,如果被丟棄的塊頭數(shù)量過多,說明在線人數(shù)過低,應(yīng)當(dāng)調(diào)節(jié)分成比例。

    同時(shí)最后第N個(gè)參與者與其他參與者的分成同樣需要考慮,第N個(gè)參與者需要將交易加入?yún)^(qū)塊中,即需要維護(hù)UTXO池,同時(shí)第N個(gè)參與者還需要將被丟棄的塊頭加入新構(gòu)建的區(qū)塊中。

    為了激勵(lì)其將廢棄區(qū)塊頭加入新構(gòu)建的區(qū)塊中,可以按照加入的區(qū)塊頭,適當(dāng)增加一點(diǎn)小的激勵(lì)。雖然加入更多的區(qū)塊頭,可以在下一輪的時(shí)候增加分成的比例,應(yīng)當(dāng)足夠激勵(lì)參與者往區(qū)塊中加入未使用的塊頭了(這里參與者不可能為了增加分成而更多地加入?yún)^(qū)塊頭,每一個(gè)區(qū)塊頭都意味著一位礦工的工作量)。

    一個(gè)參與者如果沒有維護(hù)UTXO池則無法構(gòu)造區(qū)塊,但是可以參與前N-1個(gè)的簽名,因此為了激勵(lì)參與者維護(hù)UTXO池,作為最后一個(gè)構(gòu)造區(qū)塊的參與者,必須給予更多的激勵(lì),比如是其他參與者的兩倍。

    從3.2的描述中可以知道一個(gè)用戶必須在線且維護(hù)UTXO池才可能盡可能地獲得利益。這種機(jī)制勢(shì)必會(huì)導(dǎo)致一些用戶將自己的賬戶托管給一個(gè)中心化的機(jī)構(gòu)。這個(gè)機(jī)構(gòu)一直保持在線,并為用戶維護(hù)其賬戶,在被選為構(gòu)造區(qū)塊的參與者時(shí)參與區(qū)塊的構(gòu)建并獲取利益。最后該機(jī)構(gòu)將收益按照某種形式進(jìn)行分成。

    上面說到參與者必須用自己的密鑰進(jìn)行簽名,而托管給某個(gè)機(jī)構(gòu)后,這個(gè)機(jī)構(gòu)在可以用這個(gè)密鑰簽名構(gòu)造區(qū)塊的同時(shí),也有可能使用這個(gè)密鑰消費(fèi)用戶的財(cái)產(chǎn)。這里可以采用一種有限花銷的密鑰,這個(gè)密鑰有兩個(gè)功能,一個(gè)是將賬戶中的部分財(cái)產(chǎn)消費(fèi)出去,另一個(gè)是將所有財(cái)產(chǎn)轉(zhuǎn)移到一個(gè)指定賬戶。在托管的時(shí)候可以使用這個(gè)密鑰,在被通知部分財(cái)產(chǎn)被花費(fèi)后可以立即將所有財(cái)產(chǎn)轉(zhuǎn)移到自己的另一個(gè)賬戶下,以保證財(cái)產(chǎn)的安全。

    從上面的分析可以看到,POA的安全性與攻擊者所擁有的算力和攻擊者所擁有的股權(quán)有關(guān)。假設(shè)攻擊者擁有的在線股權(quán)占比為 ,則攻擊者的算力需要達(dá)到其他所有算力的 倍才能達(dá)成分叉。假設(shè)攻擊者股權(quán)總占比為 ,網(wǎng)絡(luò)中誠(chéng)實(shí)用戶的在線比例為 ,則攻擊者的算力需要達(dá)到其他所有算力的 倍才能達(dá)成攻擊。

    攻擊的分析表格如下:

    從上文的分析可以看到,POA算法相比于其他算法可以改進(jìn)網(wǎng)絡(luò)拓?fù)?,維持在線節(jié)點(diǎn)比例,需求更少的交易費(fèi)同時(shí)減少共識(shí)算法過程中的能量損耗。同時(shí),PoA協(xié)議的攻擊成本要高于比特幣的純PoW協(xié)議。

    參考文獻(xiàn):Proof of Activity: Extending Bitcoin’s Proof of Work via Proof of Stake

    四、糧食類原料烹飪初加工時(shí)應(yīng)注意哪些問題?

    1)盡量減少淘米次數(shù),一般不應(yīng)該3次,淘米也不宜用力搓。淘米應(yīng)用 涼水,侵泡時(shí)間不宜過長(zhǎng)。

    (2)不要吃“撈飯”即在米煮到半熟后撈出再蒸,扔掉溶于米湯中大量B 族維生素。做米飯應(yīng)采用蒸,煮的方法,如做撈飯,米湯也應(yīng)當(dāng)飲用。

    (3)烹煮時(shí)不要加堿。因?yàn)閴A容易加速維生素C及B族維生素的破壞。一 般在制作面食時(shí),蒸、烤、烙的方法帶來的B簇維生素的損失較小,但用高溫油炸時(shí)損失較大。

    以上就是關(guān)于區(qū)塊鏈斷鏈丟棄相關(guān)問題的回答。希望能幫到你,如有更多相關(guān)問題,您也可以聯(lián)系我們的客服進(jìn)行咨詢,客服也會(huì)為您講解更多精彩的知識(shí)和內(nèi)容。


    推薦閱讀:

    百度旗下的區(qū)塊鏈應(yīng)用(百度旗下的區(qū)塊鏈應(yīng)用有)

    杭州萍水街屬于哪個(gè)區(qū)(杭州萍水街屬于哪個(gè)區(qū)塊)

    景觀設(shè)計(jì)中如何劃分區(qū)塊(景觀設(shè)計(jì)中如何劃分區(qū)塊類型)

    杭州綜合頻道直播在線(杭州綜合頻道直播在線播放)

    年會(huì)感謝老板的文案(年會(huì)感謝老板的文案簡(jiǎn)短)