Ⅰ 區塊鏈論文精讀——Pixel: Multi-signatures for Consensus
論文主要提出了一種針對共識機制PoS的多重簽名演算法Pixel。
所有基於PoS的區塊鏈以及允許的區塊鏈均具有通用結構,其中節點運行共識子協議,以就要添加到分類賬的下一個區塊達成共識。這樣的共識協議通常要求節點檢查阻止提議並通過對可接受提議進行數字簽名來表達其同意。當一個節點從特定塊上的其他節點看到足夠多的簽名時,會將其附加到其分類帳視圖中。
由於共識協議通常涉及成千上萬的節點,為了達成共識而共同努力,因此簽名方案的效率至關重要。此外,為了使局外人能夠有效地驗證鏈的有效性,簽名應緊湊以進行傳輸,並應快速進行驗證。已發現多重簽名對於此任務特別有用,因為它們使許多簽名者可以在公共消息上創建緊湊而有效的可驗證簽名。
補充知識: 多重簽名
是一種數字簽名。在數字簽名應用中,有時需要多個用戶對同一個文件進行簽名和認證。比如,一個公司發布的聲明中涉及財務部、開發部、銷售部、售後服務部等部門,需要得到這些部門簽名認可,那麼,就需要這些部門對這個聲明文件進行簽名。能夠實現多個用戶對同一文件進行簽名的數字簽名方案稱作多重數字簽名方案。
多重簽名是數字簽名的升級,它讓區塊鏈相關技術應用到各行各業成為可能。 在實際的操作過程中,一個多重簽名地址可以關聯n個私鑰,在需要轉賬等操作時,只要其中的m個私鑰簽名就可以把資金轉移了,其中m要小於等於n,也就是說m/n小於1,可以是2/3, 3/5等等,是要在建立這個多重簽名地址的時候確定好的。
本文提出了Pixel簽名方案,這是一種基於配對的前向安全多簽名方案,可用於基於PoS的區塊鏈,可大幅節省帶寬和存儲要求。為了支持總共T個時間段和一個大小為N的委員會,多重簽名僅包含兩個組元素,並且驗證僅需要三對配對,一個乘冪和N -1個乘法。像素簽名幾乎與BLS多重簽名一樣有效,而且還滿足前向安全性。此外,就像在BLS多簽名中一樣,任何人都可以非交互地將單個簽名聚合到一個多簽名中。
有益效果:
為了驗證Pixel的設計,將Pixel的Rust實施的性能與以前的基於樹的前向安全解決方案進行了比較。展示了如何將Pixel集成到任何PoS區塊鏈中。接下來,在Algorand區塊鏈上評估Pixel,表明它在存儲,帶寬和塊驗證時間方面產生了顯著的節省。我們的實驗結果表明,Pixel作為獨立的原語並在區塊鏈中使用是有效的。例如,與一組128位安全級別的N = 1500個基於樹的前向安全簽名(對於T = 232)相比,可以認證整個集合的單個Pixel簽名要小2667倍,並且可以被驗證快40倍。像素簽名將1500次事務的Algorand塊的大小減少了約35%,並將塊驗證時間減少了約38%。
對比傳統BLS多重簽名方案最大的區別是BLS並不具備前向安全性。
對比基於樹的前向安全簽名,基於樹的前向安全簽名可滿足安全性,但是其構造的簽名太大,驗證速度有待提升。 本文設計減小了簽名大小、降低了驗證時間。
補充知識: 前向安全性
是密碼學中通訊協議的安全屬性,指的是長期使用的主密鑰泄漏不會導致過去的會話密鑰泄漏。前向安全能夠保護過去進行的通訊不受密碼或密鑰在未來暴露的威脅。如果系統具有前向安全性,就可以保證在主密鑰泄露時歷史通訊的安全,即使系統遭到主動攻擊也是如此。
構建基於分層身份的加密(HIBE)的前向安全簽名,並增加了在同一消息上安全地聚合簽名以及生成沒有可信集的公共參數的能力。以實現:
1、生成與更新密鑰
2、防止惡意密鑰攻擊的安全性
3、無效的信任設置
對於常見的後攻擊有兩種變體:
1、短程變體:對手試圖在共識協議達成之前破壞委員會成員。解決:通過假設攻擊延遲長於共識子協議的運行時間來應對短距離攻擊。
2、遠程變體:通過分叉選擇規則解決。
前向安全簽名為這兩種攻擊提供了一種干凈的解決方案,而無需分叉選擇規則或有關對手和客戶的其他假設。(說明前向安全簽名的優勢)。
應用於許可的區塊鏈共識協議(例如PBFT)也是許多許可鏈(例如Hyperledger)的核心,在這些區塊鏈中,只有經過批準的方可以加入網路。我們的簽名方案可以類似地應用於此設置, 以實現前向保密性,減少通信帶寬並生成緊湊的塊證書。
傳統Bellare-Miner 模型,消息空間M的前向安全簽名方案FS由以下演算法組成:
1、Setup
pp ←Setup(T), pp為各方都同意的公共參數,Setup(T)表示在T時間段內對於固定參數的分布設置。
2、Key generation
(pk,sk1) ←Kg
簽名者在輸入的最大時間段T上運行密鑰生成演算法,以為第一時間段生成公共驗證密鑰pk和初始秘密簽名密鑰sk1。
3、Key update
skt+1←Upd(skt) 簽名者使用密鑰更新演算法將時間段t的秘密密鑰skt更新為下一個周期的skt + 1。該方案還可以為任何t0> t提供 「快速轉發」更新演算法 skt0←$ Upd0(skt,t0),該演算法比重復應用Upd更有效。
4、Signing
σ ←Sign(skt,M),在輸入當前簽名密鑰skt消息m∈M時,簽名者使用此演算法來計算簽名σ。
5、Verification
b ← Vf(pk,t,M,σ)任何人都可以通過運行驗證演算法來驗證消息M在公共密鑰pk下的時間段t內的簽名M的簽名,該演算法返回1表示簽名有效,否則返回0。
1、依靠非對稱雙線性組來提高效率,我們的簽名位於G2×G1中而不是G2 ^2中。這樣,就足以給出公共參數到G1中(然後我們可以使用散列曲線實例化而無需信任設置),而不必生成「一致的」公共參數(hi,h0 i)=(gxi 1,gxi 2)∈G1× G2。
2、密鑰生成演算法,公鑰pk更小,參數設置提升安全性。
除了第3節中的前向安全簽名方案的演算法外,密鑰驗證模型中的前向安全多重簽名方案FMS還具有密鑰生成,該密鑰生成另外輸出了公鑰的證明π。
新增Key aggregation密鑰匯總、Signature aggregation簽名匯總、Aggregate verification匯總驗證。滿足前向安全的多重簽名功能的前提下也證明了其正確性和安全性。
1、PoS在後繼損壞中得到保護
後繼損壞:後驗證的節點對之前的共識驗證狀態進行攻擊破壞。
在許多用戶在同一條消息上傳播許多簽名(例如交易塊)的情況下,可以將Pixel應用於所有這些區塊鏈中,以防止遭受後繼攻擊並潛在地減少帶寬,存儲和計算成本。
2、Pixel整合
為了對區塊B進行投票,子協議的每個成員使用具有當前區塊編號的Pixel簽署B。當我們看到N個委員會成員在同一塊B上簽名的集合時,就達成了共識,其中N是某個固定閾值。最後,我們將這N個簽名聚合為單個多重簽名Σ,而對(B,Σ)構成所謂的 區塊證書 ,並將區塊B附加到區塊鏈上。
3、注冊公共密鑰
希望參與共識的每個用戶都需要注冊一個參與簽名密鑰。用戶首先採樣Pixel密鑰對並生成相應的PoP。然後,用戶發出特殊交易(在她的消費密鑰下簽名), 注冊新的參與密鑰 。交易包括PoP。選擇在第r輪達成協議的PoS驗證者,檢查(a)特殊交易的有效性和(b)PoP的有效性。如果兩項檢查均通過,則 使用新的參與密鑰更新用戶的帳戶 。從這一點來看,如果選中,則用戶將使用Pixel登錄塊。
即不斷更換自己的參與密鑰,實現前向安全性。
4、傳播和聚集簽名
各個委員會的簽名將通過網路傳播,直到在同一塊B上看到N個委員會成員的簽名為止。請注意,Pixel支持非互動式和增量聚合:前者意味著簽名可以在廣播後由任何一方聚合,而無需與原始簽名者,而後者意味著我們可以將新簽名添加到多重簽名中以獲得新的多重簽名。實際上,這意味著傳播的節點可以對任意數量的委員會簽名執行中間聚合並傳播結果,直到形成塊證書為止。或者,節點可以在將塊寫入磁碟之前聚合所有簽名。也就是說,在收到足夠的區塊證明票後,節點可以將N個委員會成員的簽名聚集到一個多重簽名中,然後將區塊和證書寫入磁碟。
5、密鑰更新
在區塊鏈中使用Pixel時,時間對應於共識協議中的區塊編號或子步驟。將時間與區塊編號相關聯時,意味著所有符合條件的委員會成員都應在每次形成新區塊並更新輪回編號時更新其Pixel密鑰。
在Algorand 項目上進行實驗評估,與Algorand項目自帶的防止後腐敗攻擊的解決方案BM-Ed25519以及BLS多簽名解決方案做對比。
存儲空間上:
節省帶寬:
Algorand使用基於中繼的傳播模型,其中用戶的節點連接到中繼網路(具有更多資源的節點)。如果在傳播過程中沒有聚合,則中繼和常規節點的帶寬像素節省來自較小的簽名大小。每個中繼可以服務數十個或數百個節點,這取決於它提供的資源。
節省驗證時間
Ⅱ 區塊鏈的共識機制
一、區塊鏈共識機制的目標
區塊鏈是什麼?簡單而言,區塊鏈是一種去中心化的資料庫,或可以叫作分布式賬本(distributed ledger)。傳統上所有的資料庫都是中心化的,例如一間銀行的賬本就儲存在銀行的中心伺服器里。中心化資料庫的弊端是數據的安全及正確性全系於資料庫運營方(即銀行),因為任何能夠訪問中心化資料庫的人(如銀行職員或黑客)都可以破壞或修改其中的數據。
而區塊鏈技術則容許資料庫存放在全球成千上萬的電腦上,每個人的賬本通過點對點網路進行同步,網路中任何用戶一旦增加一筆交易,交易信息將通過網路通知其他用戶驗證,記錄到各自的賬本中。區塊鏈之所以得其名是因為它是由一個個包含交易信息的區塊(block)從後向前有序鏈接起來的數據結構。
很多人對區塊鏈的疑問是,如果每一個用戶都擁有一個獨立的賬本,那麼是否意味著可以在自己的賬本上添加任意的交易信息,而成千上萬個賬本又如何保證記賬的一致性? 解決記賬一致性問題正是區塊鏈共識機制的目標 。區塊鏈共識機制旨在保證分布式系統里所有節點中的數據完全相同並且能夠對某個提案(proposal)(例如是一項交易紀錄)達成一致。然而分布式系統由於引入了多個節點,所以系統中會出現各種非常復雜的情況;隨著節點數量的增加,節點失效或故障、節點之間的網路通信受到干擾甚至阻斷等就變成了常見的問題,解決分布式系統中的各種邊界條件和意外情況也增加了解決分布式一致性問題的難度。
區塊鏈又可分為三種:
公有鏈:全世界任何人都可以隨時進入系統中讀取數據、發送可確認交易、競爭記賬的區塊鏈。公有鏈通常被認為是「完全去中心化「的,因為沒有任何人或機構可以控制或篡改其中數據的讀寫。公有鏈一般會通過代幣機制鼓勵參與者競爭記賬,來確保數據的安全性。
聯盟鏈:聯盟鏈是指有若干個機構共同參與管理的區塊鏈。每個機構都運行著一個或多個節點,其中的數據只允許系統內不同的機構進行讀寫和發送交易,並且共同來記錄交易數據。這類區塊鏈被認為是「部分去中心化」。
私有鏈:指其寫入許可權是由某個組織和機構控制的區塊鏈。參與節點的資格會被嚴格的限制,由於參與的節點是有限和可控的,因此私有鏈往往可以有極快的交易速度、更好的隱私保護、更低的交易成本、不容易被惡意攻擊、並且能夠做到身份認證等金融行業必須的要求。相比中心化資料庫,私有鏈能夠防止機構內單節點故意隱瞞或篡改數據。即使發生錯誤,也能夠迅速發現來源,因此許多大型金融機構在目前更加傾向於使用私有鏈技術。
二、區塊鏈共識機制的分類
解決分布式一致性問題的難度催生了數種共識機制,它們各有其優缺點,亦適用於不同的環境及問題。被眾人常識的共識機制有:
l PoW(Proof of Work)工作量證明機制
l PoS(Proof of Stake)股權/權益證明機制
l DPoS(Delegated Proof of Stake)股份授權證明機制
l PBFT(Practical Byzantine Fault Tolerance)實用拜占庭容錯演算法
l DBFT(Delegated Byzantine Fault Tolerance)授權拜占庭容錯演算法
l SCP (Stellar Consensus Protocol ) 恆星共識協議
l RPCA(Ripple Protocol Consensus Algorithm)Ripple共識演算法
l Pool驗證池共識機制
(一)PoW(Proof of Work)工作量證明機制
1. 基本介紹
在該機制中,網路上的每一個節點都在使用SHA256哈希函數(hash function) 運算一個不斷變化的區塊頭的哈希值 (hash sum)。 共識要求算出的值必須等於或小於某個給定的值。 在分布式網路中,所有的參與者都需要使用不同的隨機數來持續計算該哈希值,直至達到目標為止。當一個節點的算出確切的值,其他所有的節點必須相互確認該值的正確性。之後新區塊中的交易將被驗證以防欺詐。
在比特幣中,以上運算哈希值的節點被稱作「礦工」,而PoW的過程被稱為「挖礦」。挖礦是一個耗時的過程,所以也提出了相應的激勵機制(例如向礦工授予一小部分比特幣)。PoW的優點是完全的去中心化,其缺點是消耗大量算力造成了的資源浪費,達成共識的周期也比較長,共識效率低下,因此其不是很適合商業使用。
2. 加密貨幣的應用實例
比特幣(Bitcoin) 及萊特幣(Litecoin)。以太坊(Ethereum) 的前三個階段(Frontier前沿、Homestead家園、Metropolis大都會)皆採用PoW機制,其第四個階段 (Serenity寧靜) 將採用權益證明機制。PoW適用於公有鏈。
PoW機制雖然已經成功證明了其長期穩定和相對公平,但在現有框架下,採用PoW的「挖礦」形式,將消耗大量的能源。其消耗的能源只是不停的去做SHA256的運算來保證工作量公平,並沒有其他的存在意義。而目前BTC所能達到的交易效率為約5TPS(5筆/秒),以太坊目前受到單區塊GAS總額的上限,所能達到的交易頻率大約是25TPS,與平均千次每秒、峰值能達到萬次每秒處理效率的VISA和MASTERCARD相差甚遠。
3. 簡圖理解模式
(ps:其中A、B、C、D計算哈希值的過程即為「挖礦」,為了犒勞時間成本的付出,機制會以一定數量的比特幣作為激勵。)
(Ps:PoS模式下,你的「挖礦」收益正比於你的幣齡(幣的數量*天數),而與電腦的計算性能無關。我們可以認為任何具有概率性事件的累計都是工作量證明,如淘金。假設礦石含金量為p% 質量, 當你得到一定量黃金時,我們可以認為你一定挖掘了1/p 質量的礦石。而且得到的黃金數量越多,這個證明越可靠。)
(二)PoS(Proof of Stake)股權/權益證明機制
1.基本介紹
PoS要求人們證明貨幣數量的所有權,其相信擁有貨幣數量多的人攻擊網路的可能性低。基於賬戶余額的選擇是非常不公平的,因為單一最富有的人勢必在網路中佔主導地位,所以提出了許多解決方案。
在股權證明機制中,每當創建一個區塊時,礦工需要創建一個稱為「幣權」的交易,這個交易會按照一定比例預先將一些幣發給礦工。然後股權證明機制根據每個節點持有代幣的比例和時間(幣齡), 依據演算法等比例地降低節點的挖礦難度,以加快節點尋找隨機數的速度,縮短達成共識所需的時間。
與PoW相比,PoS可以節省更多的能源,更有效率。但是由於挖礦成本接近於0,因此可能會遭受攻擊。且PoS在本質上仍然需要網路中的節點進行挖礦運算,所以它同樣難以應用於商業領域。
2.數字貨幣的應用實例
PoS機制下較為成熟的數字貨幣是點點幣(Peercoin)和未來幣(NXT),相比於PoW,PoS機制節省了能源,引入了" 幣天 "這個概念來參與隨機運算。PoS機制能夠讓更多的持幣人參與到記賬這個工作中去,而不需要額外購買設備(礦機、顯卡等)。每個單位代幣的運算能力與其持有的時間長成正相關,即持有人持有的代幣數量越多、時間越長,其所能簽署、生產下一個區塊的概率越大。一旦其簽署了下一個區塊,持幣人持有的幣天即清零,重新進入新的循環。
PoS適用於公有鏈。
3.區塊簽署人的產生方式
在PoS機制下,因為區塊的簽署人由隨機產生,則一些持幣人會長期、大額持有代幣以獲得更大概率地產生區塊,盡可能多的去清零他的"幣天"。因此整個網路中的流通代幣會減少,從而不利於代幣在鏈上的流通,價格也更容易受到波動。由於可能會存在少量大戶持有整個網路中大多數代幣的情況,整個網路有可能會隨著運行時間的增長而越來越趨向於中心化。相對於PoW而言,PoS機制下作惡的成本很低,因此對於分叉或是雙重支付的攻擊,需要更多的機制來保證共識。穩定情況下,每秒大約能產生12筆交易,但因為網路延遲及共識問題,需要約60秒才能完整廣播共識區塊。長期來看,生成區塊(即清零"幣天")的速度遠低於網路傳播和廣播的速度,因此在PoS機制下需要對生成區塊進行"限速",來保證主網的穩定運行。
4.簡圖理解模式
(PS:擁有越多「股份」權益的人越容易獲取賬權。是指獲得多少貨幣,取決於你挖礦貢獻的工作量,電腦性能越好,分給你的礦就會越多。)
(在純POS體系中,如NXT,沒有挖礦過程,初始的股權分配已經固定,之後只是股權在交易者之中流轉,非常類似於現實世界的股票。)
(三)DPoS(Delegated Proof of Stake)股份授權證明機制
1.基本介紹
由於PoS的種種弊端,由此比特股首創的權益代表證明機制 DPoS(Delegated Proof of Stake)應運而生。DPoS 機制中的核心的要素是選舉,每個系統原生代幣的持有者在區塊鏈裡面都可以參與選舉,所持有的代幣余額即為投票權重。通過投票,股東可以選舉出理事會成員,也可以就關系平台發展方向的議題表明態度,這一切構成了社區自治的基礎。股東除了自己投票參與選舉外,還可以通過將自己的選舉票數授權給自己信任的其它賬戶來代表自己投票。
具體來說, DPoS由比特股(Bitshares)項目組發明。股權擁有著選舉他們的代表來進行區塊的生成和驗證。DPoS類似於現代企業董事會制度,比特股系統將代幣持有者稱為股東,由股東投票選出101名代表, 然後由這些代表負責生成和驗證區塊。 持幣者若想稱為一名代表,需先用自己的公鑰去區塊鏈注冊,獲得一個長度為32位的特有身份標識符,股東可以對這個標識符以交易的形式進行投票,得票數前101位被選為代表。
代表們輪流產生區塊,收益(交易手續費)平分。DPoS的優點在於大幅減少了參與區塊驗證和記賬的節點數量,從而縮短了共識驗證所需要的時間,大幅提高了交易效率。從某種角度來說,DPoS可以理解為多中心系統,兼具去中心化和中心化優勢。優點:大幅縮小參與驗證和記賬節點的數量,可以達到秒級的共識驗證。缺點:投票積極性不高,絕大部分代幣持有者未參與投票;另整個共識機制還是依賴於代幣,很多商業應用是不需要代幣存在的。
DPoS機制要求在產生下一個區塊之前,必須驗證上一個區塊已經被受信任節點所簽署。相比於PoS的" 全民挖礦 ",DPoS則是利用類似" 代表大會 "的制度來直接選取可信任節點,由這些可信任節點(即見證人)來代替其他持幣人行使權力,見證人節點要求長期在線,從而解決了因為PoS簽署區塊人不是經常在線而可能導致的產塊延誤等一系列問題。 DPoS機制通常能達到萬次每秒的交易速度,在網路延遲低的情況下可以達到十萬秒級別,非常適合企業級的應用。 因為公信寶數據交易所對於數據交易頻率要求高,更要求長期穩定性,因此DPoS是非常不錯的選擇。
2. 股份授權證明機制下的機構與系統
理事會是區塊鏈網路的權力機構,理事會的人選由系統股東(即持幣人)選舉產生,理事會成員有權發起議案和對議案進行投票表決。
理事會的重要職責之一是根據需要調整系統的可變參數,這些參數包括:
l 費用相關:各種交易類型的費率。
l 授權相關:對接入網路的第三方平台收費及補貼相關參數。
l 區塊生產相關:區塊生產間隔時間,區塊獎勵。
l 身份審核相關:審核驗證異常機構賬戶的信息情況。
l 同時,關繫到理事會利益的事項將不通過理事會設定。
在Finchain系統中,見證人負責收集網路運行時廣播出來的各種交易並打包到區塊中,其工作類似於比特幣網路中的礦工,在採用 PoW(工作量證明)的比特幣網路中,由一種獲獎概率取決於哈希算力的抽彩票方式來決定哪個礦工節點產生下一個區塊。而在採用 DPoS 機制的金融鏈網路中,通過理事會投票決定見證人的數量,由持幣人投票來決定見證人人選。入選的活躍見證人按順序打包交易並生產區塊,在每一輪區塊生產之後,見證人會在隨機洗牌決定新的順序後進入下一輪的區塊生產。
3. DPoS的應用實例
比特股(bitshares) 採用DPoS。DPoS主要適用於聯盟鏈。
4.簡圖理解模式
(四)PBFT(Practical Byzantine Fault Tolerance)實用拜占庭容錯演算法
1. 基本介紹
PBFT是一種基於嚴格數學證明的演算法,需要經過三個階段的信息交互和局部共識來達成最終的一致輸出。三個階段分別為預備 (pre-prepare)、准備 (prepare)、落實 (commit)。PBFT演算法證明系統中只要有2/3比例以上的正常節點,就能保證最終一定可以輸出一致的共識結果。換言之,在使用PBFT演算法的系統中,至多可以容忍不超過系統全部節點數量1/3的失效節點 (包括有意誤導、故意破壞系統、超時、重復發送消息、偽造簽名等的節點,又稱為」拜占庭」節點)。
2. PBFT的應用實例
著名聯盟鏈Hyperledger Fabric v0.6採用的是PBFT,v1.0又推出PBFT的改進版本SBFT。PBFT主要適用於私有鏈和聯盟鏈。
3. 簡圖理解模式
上圖顯示了一個簡化的PBFT的協議通信模式,其中C為客戶端,0 – 3表示服務節點,其中0為主節點,3為故障節點。整個協議的基本過程如下:
(1) 客戶端發送請求,激活主節點的服務操作;
(2) 當主節點接收請求後,啟動三階段的協議以向各從節點廣播請求;
(a) 序號分配階段,主節點給請求賦值一個序號n,廣播序號分配消息和客戶端的請求消息m,並將構造pre-prepare消息給各從節點;
(b) 交互階段,從節點接收pre-prepare消息,向其他服務節點廣播prepare消息;
(c) 序號確認階段,各節點對視圖內的請求和次序進行驗證後,廣播commit消息,執行收到的客戶端的請求並給客戶端響應。
(3) 客戶端等待來自不同節點的響應,若有m+1個響應相同,則該響應即為運算的結果;
(五)DBFT(Delegated Byzantine Fault Tolerance)授權拜占庭容錯演算法
1. 基本介紹
DBFT建基於PBFT的基礎上,在這個機制當中,存在兩種參與者,一種是專業記賬的「超級節點」,一種是系統當中不參與記賬的普通用戶。普通用戶基於持有權益的比例來投票選出超級節點,當需要通過一項共識(記賬)時,在這些超級節點中隨機推選出一名發言人擬定方案,然後由其他超級節點根據拜占庭容錯演算法(見上文),即少數服從多數的原則進行表態。如果超過2/3的超級節點表示同意發言人方案,則共識達成。這個提案就成為最終發布的區塊,並且該區塊是不可逆的,所有裡面的交易都是百分之百確認的。如果在一定時間內還未達成一致的提案,或者發現有非法交易的話,可以由其他超級節點重新發起提案,重復投票過程,直至達成共識。
2. DBFT的應用實例
國內加密貨幣及區塊鏈平台NEO是 DBFT演算法的研發者及採用者。
3. 簡圖理解模式
假設系統中只有四個由普通用戶投票選出的超級節點,當需要通過一項共識時,系統就會從代表中隨機選出一名發言人擬定方案。發言人會將擬好的方案交給每位代表,每位代表先判斷發言人的計算結果與它們自身紀錄的是否一致,再與其它代表商討驗證計算結果是否正確。如果2/3的代表一致表示發言人方案的計算結果是正確的,那麼方案就此通過。
如果只有不到2/3的代表達成共識,將隨機選出一名新的發言人,再重復上述流程。這個體系旨在保護系統不受無法行使職能的領袖影響。
上圖假設全體節點都是誠實的,達成100%共識,將對方案A(區塊)進行驗證。
鑒於發言人是隨機選出的一名代表,因此他可能會不誠實或出現故障。上圖假設發言人給3名代表中的2名發送了惡意信息(方案B),同時給1名代表發送了正確信息(方案A)。
在這種情況下該惡意信息(方案B)無法通過。中間與右邊的代表自身的計算結果與發言人發送的不一致,因此就不能驗證發言人擬定的方案,導致2人拒絕通過方案。左邊的代表因接收了正確信息,與自身的計算結果相符,因此能確認方案,繼而成功完成1次驗證。但本方案仍無法通過,因為不足2/3的代表達成共識。接著將隨機選出一名新發言人,重新開始共識流程。
上圖假設發言人是誠實的,但其中1名代表出現了異常;右邊的代表向其他代表發送了不正確的信息(B)。
在這種情況下發言人擬定的正確信息(A)依然可以獲得驗證,因為左邊與中間誠實的代表都可以驗證由誠實的發言人擬定的方案,達成2/3的共識。代表也可以判斷到底是發言人向右邊的節點說謊還是右邊的節點不誠實。
(六)SCP (Stellar Consensus Protocol ) 恆星共識協議
1. 基本介紹
SCP 是 Stellar (一種基於互聯網的去中心化全球支付協議) 研發及使用的共識演算法,其建基於聯邦拜占庭協議 (Federated Byzantine Agreement) 。傳統的非聯邦拜占庭協議(如上文的PBFT和DBFT)雖然確保可以通過分布式的方法達成共識,並達到拜占庭容錯 (至多可以容忍不超過系統全部節點數量1/3的失效節點),它是一個中心化的系統 — 網路中節點的數量和身份必須提前知曉且驗證過。而聯邦拜占庭協議的不同之處在於它能夠去中心化的同時,又可以做到拜占庭容錯。
[…]
(七)RPCA(Ripple Protocol Consensus Algorithm)Ripple共識演算法
1. 基本介紹
RPCA是Ripple(一種基於互聯網的開源支付協議,可以實現去中心化的貨幣兌換、支付與清算功能)研發及使用的共識演算法。在 Ripple 的網路中,交易由客戶端(應用)發起,經過追蹤節點(tracking node)或驗證節點(validating node)把交易廣播到整個網路中。追蹤節點的主要功能是分發交易信息以及響應客戶端的賬本請求。驗證節點除包含追蹤節點的所有功能外,還能夠通過共識協議,在賬本中增加新的賬本實例數據。
Ripple 的共識達成發生在驗證節點之間,每個驗證節點都預先配置了一份可信任節點名單,稱為 UNL(Unique Node List)。在名單上的節點可對交易達成進行投票。共識過程如下:
(1) 每個驗證節點會不斷收到從網路發送過來的交易,通過與本地賬本數據驗證後,不合法的交易直接丟棄,合法的交易將匯總成交易候選集(candidate set)。交易候選集裡面還包括之前共識過程無法確認而遺留下來的交易。
(2) 每個驗證節點把自己的交易候選集作為提案發送給其他驗證節點。
(3) 驗證節點在收到其他節點發來的提案後,如果不是來自UNL上的節點,則忽略該提案;如果是來自UNL上的節點,就會對比提案中的交易和本地的交易候選集,如果有相同的交易,該交易就獲得一票。在一定時間內,當交易獲得超過50%的票數時,則該交易進入下一輪。沒有超過50%的交易,將留待下一次共識過程去確認。
(4) 驗證節點把超過50%票數的交易作為提案發給其他節點,同時提高所需票數的閾值到60%,重復步驟(3)、步驟(4),直到閾值達到80%。
(5) 驗證節點把經過80%UNL節點確認的交易正式寫入本地的賬本數據中,稱為最後關閉賬本(last closed ledger),即賬本最後(最新)的狀態。
在Ripple的共識演算法中,參與投票節點的身份是事先知道的,因此,演算法的效率比PoW等匿名共識演算法要高效,交易的確認時間只需幾秒鍾。這點也決定了該共識演算法只適合於聯盟鏈或私有鏈。Ripple共識演算法的拜占庭容錯(BFT)能力為(n-1)/5,即可以容忍整個網路中20%的節點出現拜占庭錯誤而不影響正確的共識。
2. 簡圖理解模式
共識過程節點交互示意圖:
共識演算法流程:
(八)POOL驗證池共識機制
Pool驗證池共識機制是基於傳統的分布式一致性演算法(Paxos和Raft)的基礎上開發的機制。Paxos演算法是1990年提出的一種基於消息傳遞且具有高度容錯特性的一致性演算法。過去, Paxos一直是分布式協議的標准,但是Paxos難於理解,更難以實現。Raft則是在2013年發布的一個比Paxos簡單又能實現Paxos所解決問題的一致性演算法。Paxos和Raft達成共識的過程皆如同選舉一樣,參選者需要說服大多數選民(伺服器)投票給他,一旦選定後就跟隨其操作。Paxos和Raft的區別在於選舉的具體過程不同。而Pool驗證池共識機制即是在這兩種成熟的分布式一致性演算法的基礎上,輔之以數據驗證的機制。
Ⅲ 區塊鏈有幾種共識演算法
Ripple Consensus(瑞波共識演算法)
使一組節點能夠基於特殊節點列表達成共識。初始特殊節點列表就像一個俱樂部,要接納一個新成員,必須由51%的該俱樂部會員投票通過。共識遵循這核心成員的51%權力,外部人員則沒有影響力。由於該俱樂部由「中心化」開始,它將一直是「中心化的」,而如果它開始腐化,股東們什麼也做不了。
5、PBFT:Practical Byzantine Fault Tolerance(實用拜占庭容錯演算法)
PBFT是一種狀態機副本復制演算法,即服務作為狀態機進行建模,狀態機在分布式系統的不同節點進行副本復制。每個狀態機的副本都保存了服務的狀態,同時也實現了服務的操作。將所有的副本組成的集合使用大寫字母R表示,使用0到|R|-1的整數表示每一個副本。為了描述方便,假設|R|=3f+1,這里f是有可能失效的副本的最大個數。盡管可以存在多於3f+1個副本,但是額外的副本除了降低性能之外不能提高可靠性。
PBFT演算法主要特點如下:客戶端向主節點發送請求調用服務操作;主節點通過廣播將請求發送給其他副本;所有副本都執行請求並將結果發回客戶端;客戶端需要等待f+1個不同副本節點發回相同的結果,作為整個操作的最終結果。
Ⅳ 區塊鏈的運行原理和發展,你不得不知!
一、為什麼會有區塊鏈的創新?
第一代互聯網的起點是TCP/IP協議,就是執行一個網路上所有節點統一格式對等傳輸信息的開放代碼。但是這樣一個並不復雜的創新對於人類的影響是劃時代的,她把全球統一市場所需要的基本價值觀:「自由、平等、博愛」,給程序化、協議化、可執行化了。進而派生出STMP郵件協議、HTTP域名協議等,去中心化的實現了全球信息傳遞的低成本高效率。正如阿里巴巴副總裁高紅冰所說:
「互聯網就是消滅那個價值很低、成本很高的(信息)供應鏈——它開放、互聯、對等、全球化、去中心化。」
我們知道:市場的本質也是去中心化的,她自動執行也就是「等價交換」的去中心化協議,就像諾貝爾獎金獲得者羅納德科斯總結的:「市場經濟建立在兩個深厚的認知基礎上:承認無知和包容不確定性。」亞當斯密也形容市場是:「看不見的手」!因此,市場一定需要信息去中心化的低成本流動,互聯網正是適應了全球統一市場形成的大氣候下,橫空出世了。
但是,第一代互聯網去中心化的解決了信息的低成本高效率傳輸的問題,她沒有解決信息的信用問題。因此,第二代互聯網必須突破的是:怎樣去中心化的建立全球信用?讓價值傳遞也低成本高效率進行。
那麼原來的中心化信用體系有什麼問題呢?眾所周知:中心化的信用,如各國法幣,信用價值不同,清算體系也各不兼容,給全球貿易增加了很大成本。目前以美元為中心的全球信用體系,在機制上存在「特里芬悖論」(實質就是一國法幣無法同時兼顧解決本國經濟利益和全球經濟需要的沖突),因此2009年中國央行行長周小川呼籲超主權存儲貨幣的產生,同年,中本聰在網上公開了第一代區塊鏈源代碼————「比特幣」。
二、區塊鏈系統是怎樣運行的?
首先,中本聰很清楚建立一個支付系統的信用必須解決防止「重復支付」問題,也就是不能造假幣。中心化的信用系統是靠國家機器防止造假幣。「比特幣」怎麼辦呢?中本聰伍中的偉大創新是給每一筆交易「蓋時間戳」(timestamp)。每十分鍾一個區塊(block:腔弊山相當於網路賬簿),把這十分鍾的全網交易都正確的蓋上時間戳。問題是誰來蓋呢?中本聰並沒有假設互聯網上都是雷鋒,他同意亞當.斯密的觀點:市場上的人是貪婪的。他讓所謂自稱「礦工」的人去競爭這十分鍾一個區塊的記賬權,競爭的規則就是正確記賬的同時要去解SHA256難題,誰能證明自己的計算機算力最快(所謂PROOF OF WORK 機制),ta就能競爭到這十分鍾區塊的合法記賬權,並得到二十五個比特幣的獎勵卜殲。這就是所謂俗稱的「挖礦」過程,實際是建立一個全網總賬——區塊鏈的去中心化信用過程,所以礦工更本質的職能是「記賬員」!
中本聰在其比特幣白皮書中,比較詳盡的敘述了這個信用系統建立的過程:
第一步:每一筆交易為了讓全網承認有效,必須廣播給每個節點(node:也就是礦工);
第二步:每個礦工節點要正確無誤的給這十分鍾的每一筆交易蓋上時間戳並記入那個區塊(block);
第三步:每個礦工節點要通過解SHA256難題去競爭這個十分鍾區塊的合法記賬權,並爭取得到二十五個比特幣的獎勵(頭四年是每十分鍾五十個比特幣,每四年遞減一半);
第四步:如果一個礦工節點解開了這十分鍾的SHA256難題,ta將向全網公布ta這十分鍾區塊記錄的所有蓋時間戳交易,並由全網其他礦工節點核對;
第五步:全網其他礦工節點核對該區塊記賬的正確性(因為他們同時也在蓋時間戳記賬,只是沒有競爭到合法區塊記賬權,因此無獎勵),沒有錯誤後他們將在該合法區塊之後競爭下一個區塊,這樣就形成了一個合法記賬的區塊單鏈,也就是比特幣支付系統的總賬——區塊鏈。
一般來說,每一筆交易,必須經過六次區塊確認,也就是六個十分鍾記賬,才能最終在區塊鏈上被承認合法交易。以下是比特幣的記賬格式:
所以所謂「比特幣」,就是這樣一個賬單系統:它包括所有者用私鑰進行電子簽名並支付給下一個所有者,然後由全網的「礦工」蓋時間戳記賬,形成區塊鏈。
三、比特幣的區塊鏈金融有哪些創新?
類黃金化,嘗試建立全球互聯網去中心化信用,有可能讓價值在全網高速低費率的流轉(目前每筆轉轉費率是萬分之一);
貨幣總量由密碼學協議約定;
比之於黃金,數字貨幣無限可分;
貨幣價值可以建立在大量的P2P交易之上;
財務管理的完全透明(每筆交易都能在區塊鏈上查到)。
比特幣的區塊鏈全網記賬,在全球互聯網上最高建立了市值100億美元的市值。因此,清華五道口金融學院院長吳曉靈點睛指出:區塊鏈實驗建立了分布式信用,是互聯網TCP/IP的升級版,是從信息傳遞升級到價值傳遞;
四、比特幣的區塊鏈系統有哪些內在缺陷?
比特幣的區塊鏈系統自2009年在互聯網上開源運行以來,有成功的地方,但也顯示出一些難以克服的內在缺陷:
總量不能隨著市場的情況變化,必然暴漲暴跌;
挖礦的高碳,只有不到1%的礦工能夠競爭到沒十分鍾區塊的記賬權,其他參與競爭的99%以上的礦工算力浪費;
每年10%左右的通貨膨脹大大增加了比特幣金融生態的成本,甚至威脅到她的生存;
作為去中心化自組織DAC系統,記賬和發行功能部分運行成本過高。
作為全球支付系統,效率遠遠達不到全球貿易的實際要求。比特幣網路每秒目前最多確認7筆交易,對比之下, Visa的網路系統每秒最快可處理10,000筆交易,支付寶的記錄是2014光棍節每秒鍾80,000筆!
五、區塊鏈技術2.0的發展:
作為區塊鏈的2.0升級發展,首先聚焦在解決比特幣記賬的挖礦高碳上:
在我們討論怎麼克服比特幣挖礦記賬高碳時,清華經濟學研究所的劉濤雄教授指出,挖礦靠算力競爭,最後只有一家競爭到合法記賬權,其他99%的礦工節點都白挖了,浪費了資源,顯然不太合理,如果全網透明的知道下一家區塊的合法記賬權,隨機的在全網產生,就免除了競爭記賬的高碳!我們聽後都大贊劉教授主意高明,因為現在比較成功的二代幣NXT正是這種機制,他們的白皮書叫「透明鍛造」,只是記賬權花落誰家的概率是和每個礦工節點錢包的NXT代幣持有量成正比,這個叫股權證明機制(PROOF OF STOCK)。當然,這也引發了NXT把代幣分發給早期投資開發者不公平的爭論!
RIPPLE是一個區塊鏈半去中心化的方案,利用「可信任網關」(trusted gateways)進行區塊鏈記賬,其信用是建立在這些網關不會同時作惡的共識記賬(consensus ledger)協議上。
最有雄心的嘗試是以太坊(Ethereum),她把區塊鏈的技術和圖靈完備結合起來,期望開發出一套未來滿足各種區塊鏈系統建設的基礎性平台,可以支持各種信用貨幣、數字資產、智能協議甚至金融衍生品的開發.其系統設計是ETHERUM平台統一區塊鏈記賬,為所有開發者共同使用,也許她們的正式版本能在不久地將來發布。
六、區塊鏈的創新在其他領域的可能應用:
現在,區塊鏈在建立去中心化信用的嘗試,已經不限於金融界,而被社會各個領域關注,特別是在中國目前一些中心性信用如「紅會」,處於「塌陷」態勢,區塊鏈更能為社會管理提供一種全新的思路和技術選項,以下是我們了解的一些新進展和相關討論:
區塊鏈和物聯網結合,將數字資產和原子資產統一起來,抹平消費資產和現金資產的區別,擴展大眾的信用,加速價值流通;(IBM-三星)
區塊鏈上建立知識產權保護系統,對知識產權的使用全網記賬,建立全球廣告市場;
區塊鏈是否可以為一帶一路的新興經濟體發行協議型密碼學貨幣提供技術支撐;
區塊鏈+雲計算可以發展成去中心化的自媒體和社區系統;
區塊鏈可以搭建去中心化的股權眾籌體系,讓創新項目提前進入流通領域;
區塊鏈可以發展出全透明的財務管理系統;
區塊鏈支持建立全球去中心化公司組織。
總之,在這個信用已經成為緊缺資源的時代,區塊鏈的技術創新,作為一種分布式信用的模式,為全球市場的金融、社會管理、人才評價和去中心化組織建設等,都提供了一個廣闊的發展前景。
Ⅳ 區塊鏈常見的名詞解釋
1.區塊鏈(BlockChain)
區塊鏈是一串通過驗證的區塊,其中每個區塊都與上一個區塊相連,一直連到創世區塊。區塊鏈是比特幣等數字貨幣的底層技術,是一個去中心化的分布式共享賬本。區塊鏈與人工智慧、大數據並稱為金融科技的三大方向。
2.比特幣(Bitcoin)
比特幣是區塊鏈技術的第一個落地應用,最初是一種點對點的電子現金(Bitcoin: A Peer-to-Peer Electronic Cash System)。如今,比特幣已經根據中本聰的思路設計發展成為開源系統,以及構建在其上的數字貨幣網路。
3.中本聰(Satoshi Nakamoto)
中本聰是一個化名,他是比特幣的創始人兼早期開發者,2008年,中本聰在密碼朋克中發表了比特幣的白皮書,Bitcoin: A Peer-to-Peer Electronic Cash System,構建了比特幣系統的基本框架。2009年,他為比特幣系統搭建了一個開源項目,正式宣告了比特幣的誕生。但是當比特幣漸成氣候時,中本聰卻悄然離去,銷聲匿跡於互聯網上。
4.數字貨幣(Token)
區塊鏈最初的應用形式就是數字貨幣,區塊鏈的出現本身也是為數字貨幣服務。目前來說區塊鏈應用最好的領域是金融領域,這是因為區塊鏈技術更適合於為金融場景服務。數字貨幣是電子形式的替代貨幣,它是屬於虛擬世界中的虛擬貨幣。目前全世界發行的數字貨幣有成千上萬種,它們可以通過交易所與現實世界中的貨幣進行交易,或者與其它數字貨幣進行交易。
5.挖礦(Mining)
比特幣被比喻為數字黃金,在網路中,通過競爭計算能力獲得區塊的認可權,進而獲得區塊的代幣獎勵以及交易費的獎勵,而這種方式就是在系統中獲取初始比特幣的方法,就好像當年金銀被從地下開采出來一樣,所以被稱為挖礦。.
6.礦工(Miner)
通過提供算力進行挖礦的節點,就被稱為礦工,當然有時候也是指節點的所有人。
7.公鑰私鑰(Public Keys/Private Keys)
公鑰和私鑰,是非對稱加密演算法的方式,這也是對以前的對稱加密演算法的提高。對稱加密演算法用一套密碼來加解密,知道了加密密碼,也就可以破解密文;而非對稱加密演算法,則是存在兩套密碼,用公鑰來加密,但是用私鑰來解密,這樣就保證了密碼的安全性。在比特幣系統中,私鑰本質上是由32個位元組組成的數組,公鑰和地址的生成都依賴私鑰,有了私鑰就能生成公鑰和地址,就能夠對應使用地址上的比特幣。
8.哈希值(Hash)
哈希演算法將任意長度的二進制值映射為固定長度的較小二進制值, 這個小的二進制值就是哈希值。哈希值是一段數據唯一且極其緊湊的數值表示形式。哪怕只更改一段明文中的一個字母,隨後產生的哈希值都將差別極大。要找到對應同一哈希值的兩個不同的輸入,從計算的角度來說基本上是不可能的。
9.共識機制(Consensus)
區塊鏈作為一種按時間順序存儲數據的數據結構,可支持不同的共識機制。共識機制是區塊鏈技術的重要組件。區塊鏈共識機制的目標是使所有的誠實節點保存一致的區塊鏈視圖,同時滿足兩個性質:
(1)一致性。所有誠實節點保存的區塊鏈的前綴部分完全相同。
(2)有效性。由某誠實節點發布的信息終將被其他所有誠實節點記錄在自己的區塊鏈中
10.錢包(Wallet)
比特幣的錢包不存余額,在比特幣的世界中也沒有「余額」這個概念,這里的錢包是指保存比特幣地址和私鑰的客戶端或者軟體,可以用它來接收、發送和存儲你的比特幣。
Ⅵ 分布式共識包含哪三種方法
PoW 、PoS 、DPOW都是什麼意思?
說到區塊鏈,我們必然會談及它的共識機制。不了解區塊鏈的共識機制,就無法理解區塊鏈的真正意義。那麼,今日份的區塊鏈的共識機制了解一下?
共識機制是什麼?
什麼是共識?直取它的字面意思,就是"共同的認識".
人與人是不同的,這種不同不僅體現在身材、長相、能力,更體現在文化、觀點、想法、利益訴求等等方面。
共識,簡而言之,就是一個群體的成員在某一方面達成的一致意見。
我們了解到,信任是社會運轉中的一大痛點,銀行有自己的信用體系,過去的金融體系服務於只服務於極少的企業家,因為建立信用體系耗資巨大。後來支付寶有了芝麻信用,信用已經關繫到生活的很多方面,信用卡額度、花唄額度,芝麻信用高出國還可以免簽。我們正享受著信用給我們帶來的便捷。
區塊鏈本質是去中心化,去中心化的核心是共識機制,區塊鏈上的共識機制主要解決由誰來構造區塊,以及如何維護區塊鏈統一的問題。
區塊鏈共識機制的目標是使所有的誠實節點保存一致的區塊鏈視圖,同時滿足兩個性質:
1)一致性:所有誠實節點保存的區塊鏈的前綴部分完全相同。
2)有效性:由某誠實節點發布的信息終將被其他所有誠實節點記錄在自己的區塊鏈中。
區塊鏈的自信任主要體現於分布於區塊鏈中的用戶無須信任交易的另一方,也無須信任一個中心化的機構,只需要信任區塊鏈協議下的軟體系統即可實現交易。
共識機制是什麼?PoW 、PoS 、DPOW都是什麼意思?
共識機制的必要性?
分布式系統中,多個主機通過非同步通信方式組成網路集群。在這樣的一個非同步系統中,需要主機之間進行狀態復制,以保證每個主機達成一致的狀態共識。錯誤信息可能出現在非同步系統內並不斷傳播,因此需要在默認不可靠的非同步網路中定義容錯協議,以確保各主機達成安全可靠的狀態共識,這就是共識機制誕生的必要性。
這種自信任的前提是區塊鏈的共識機制(consensus),即在一個互不信任的市場中,要想使各節點達成一致的充分必要條件是每個節點出於對自身利益最大化的考慮,都會自發、誠實地遵守協議中預先設定的規則,判斷每一筆記錄的真實性,最終將判斷為真的記錄記入區塊鏈之中。attachments-2018-08-9yY7VRHa5b738e3d96021.jpg
換句話說,如果各節點具有各自獨立的利益並互相競爭,則這些節點幾乎不可能合謀欺騙你,而當節點們在網路中擁有公共信譽時,這一點體現得尤為明顯。區塊鏈技術正是運用一套基於共識的數學演算法,在機器之間建立"信任"網路,從而通過技術背書而非中心化信用機構來進行全新的信用創造。
當今區塊鏈的幾種共識機制介紹
區塊鏈上的共識機制有多種,但任何一種都不是完美無缺,或者說適用於所有應用場景的。
PoW 工作量證明
整個系統中每個節點為整個系統提供計算能力(簡稱算力),通過一個競爭機制,讓計算工作完成最出色的節點獲得系統的獎勵,即完成新生成貨幣的分配,簡單理解就是多勞多得,bitcoin、LTC等貨幣型區塊鏈就應用POW機制。
優點
完全去中心化節點自由進出,演算法簡單,容易實現破壞系統花費的成本巨大,只要網路破壞者的算力不超過網路總算力的50%,網路的交易狀態就能達成一致
缺點
浪費能源,這是最大的缺點區塊的確認時間難以縮短,如bitcoin每秒只能做7筆交易,不適合商業應用新的區塊鏈必須找到一種不同的散列演算法,否則就會面臨bitcoin的算力攻擊對節點的性能網路環境要求高容易產生分叉,需要等待多個確認無法達成最終一致性
PoS 權益證明
也稱股權證明,類似於你把財產存在銀行,這種模式會根據你持有加密貨幣的數量和時間,分配給你相應的利息。
優點
對節點性能要求低,達成共識時間短
缺點
沒有最終一致性,需要檢查點機制來彌補最終性
DPOW 委託股權證明
DPOW是 PoS 的進化方案,在常規 PoW和 PoS 中,任何一個新加入的區塊,都需要被整個網路所有節點做確認,非常影響效率。
DPoS則類似於現代董事會的投票機制,通過選舉代表來進行投票和決策。被選舉出的n個記賬節點來做新區塊的創建、驗證、簽名和相互監督,這樣就極大地減少了區塊創建和確認所需要消耗的時間和算力成本。
優點
大幅縮小參與驗證和記賬節點的數量,可以達到秒級的共識驗證
缺點
犧牲了去中心化的概念,不適合公有鏈
PBFT 實用拜占庭容錯
實用拜占庭容錯機制是一種採用"許可投票、少數服從多數"來選舉領導者並進行記賬的共識機制,該共識機制允許拜占庭容錯,允許強監督節點參與,具備許可權分級能力,性能更高,耗能更低,而且每輪記賬都會由全網節點共同選舉領導者,允許33%的節點作惡,容錯率為33%.實用拜占庭容錯特別適合聯盟鏈的應用場景。
優點
會背離中心化,加密貨幣的存在及獎勵機制會產生馬太效應,讓社區中的窮者更窮,富者更富共識效率高,可實現高頻交易
缺點
當系統只剩下33%的節點運行時,系統會停止運行
dBFT 授權拜占庭容錯
這種機制是用權益來選出記賬人,然後記賬人之間通過拜占庭容錯演算法達成共識。授權拜占庭容錯機制最核心的一點,就是最大限度地確保系統的最終性,使區塊鏈能夠適用於真正的金融應用場景。
優點
專業化的記賬人可以容忍任何類型的錯誤記賬由多人協同完成,每一個區塊都有最終性,不會分叉演算法的可靠性有嚴格的數學證明
缺點
當三分之一或以上記賬人停止工作後,系統將無法提供服務當三分之一或以上記賬人聯合作惡,可能會使系統出現分叉
Pool 驗證池
基於傳統的分布式一致性技術,加上數據驗證機制。
優點
不需要加密貨幣也可以工作,在成熟的分布式一致性演算法(Pasox、Raft)基礎上,實現秒級共識驗證。
缺點
去中心化程度不如bitcoin,更適合多方參與的多中心商業模式。
Paxos
這是一種傳統的分布式一致性演算法,是一種基於選舉領導者的共識機制。領導者節點擁有絕對許可權,並允許強監督節點參與,其性能高,資源消耗低。所有節點一般有線下准入機制,但選舉過程中不允許有作惡節點,不具備容錯性。
Paxos演算法中將節點分為三種類型:
proposer:提出一個提案,等待大家批准為結案。往往是客戶端擔任該角色
acceptor:負責對提案進行投票。往往是服務端擔任該角色
learner:被告知結案結果,並與之統一,不參與投票過程。可能為客戶端或服務端
Paxos 能保證在超過50%的正常節點存在時,系統能達成共識。
瑞波共識機制
瑞波共識演算法使一組節點能夠基於特殊節點列表形成共識,初始特殊節點列表就像一個俱樂部,要接納一個新成員,必須由該俱樂部51%的會員投票通過。共識遵循這些核心成員的"51%權利",外部人員則沒有影響力。由於該俱樂部由中心化開始,它將一直是中心化的,而如果它開始腐化,股東們什麼也做不了。與bitcoin及Peercoin一樣,瑞波系統將股東們與其投票權隔開,因此,它比其他系統更中心化。
Peercoin
Peercoin(點點幣,PPC),混合了POW工作量證明及POS權益證明方式,其中POW主要用於發行貨幣,未來預計隨著挖礦難度上升,產量降低,系統安全主要由POS維護。
在區塊鏈網路中,由於應用場景的不同,所設計的目標各異,不同的區塊鏈系統採用了不同的共識演算法。每種共識演算法都不是完美的,都有其優點和局限性。
區塊鏈解決了在不可信信道上傳輸可信信息、價值轉移的問題,而共識機制解決了區塊鏈如何分布式場景下達成一致性的問題。
雖然區塊鏈目前還處於發展的早期,行業發展還面臨著一些阻礙,但社會已經足夠多地認識到區塊鏈的價值,區塊鏈發展的腳步絕不會停滯不前,行業發展也定會找到突破阻礙的方法。
Ⅶ 區塊鏈是什麼怎麼理解區塊鏈應用呢
區塊鏈毋庸置疑的有發展前景,而有發展前景的必要條件,就是進入主流市場。
北美區塊鏈基礎設施The OAN(前Aion Network)創始人及CEO Matt Spoke 7月24日在福布斯發表了一篇標題為《為了成功進入主流市場,區塊鏈項目必須「吃狗糧」》的文章,Matt在文中提到了自己對區塊鏈該如何進入主流市場的看法——"吃狗糧"。
在科技圈中,有一句行話叫"吃狗糧"(dogfooding,也稱為吃自己的狗糧),指的是公司使用自己的產品,成為自己產品的用戶。許多高增長公司(如微軟、Facebook、亞馬遜、蘋果、Netflix和谷歌)也都會通過「吃狗糧」的方式進行產品測試,或幫助產品建立信譽。「吃狗糧」雖經常被用來發現和修復bug,但它還有另一個價值:為公司的產品創造可靠的用例。
這一點很值得區塊鏈項目學習,因為區塊鏈項目常常抱著"建好了,他們(用戶)自然會來"的想法,習慣性地把創造新鮮、有趣的區塊鏈應用的責任交給第三方。
這種態度極為普遍,就連知名的區塊鏈峰會Consensus 2019(2019共識大會)也舉辦了題為 "建好了,他們(用戶)自然會來:打造一個全球區塊鏈中心"的圓桌論壇,討論世界各國政府如何在平衡監管、投資和創新需求的同時,為吸引區塊鏈項目做出努力。
平心而論,這種策略對於僅以幣圈人士為受眾的區塊鏈來說可能是有效的。對於證券型代幣,特別是交易這類代表的交易所來說,就更加說得通——「供給創造需求」在這里是慣常的思路,尤其是考慮到實現這些交易需要搭建復雜的基礎設施。
相比之下,「吃狗糧」更有可能被那些尋求主流受眾(比如金融業、製造和供應鏈、身份管理等領域的受眾)的區塊鏈項目開發者所採用。區塊鏈技術要想打入這些主流領域,區塊鏈公司必須先「吃狗糧」。這樣不僅可以清楚地證明區塊鏈技術在幣圈之外也是可行的,還可以凸顯出區塊鏈不光優化現有用例,也能創造新用例。
而The OAN團隊就是一直秉持著這一理念,並依靠著多年來打造的The OAN和Aion的技術棧,開發出了面向獨立工作者的金融科技平台Moves。
Matt表示,在開發和發展Moves這款產品時,團隊希望The OAN區塊鏈網路的相關功能可以得到充分的發揮,所以重點將從以下三個方面進行考量:
1. 如何使用The OAN區塊鏈網路來提高產品的信貸效率。
提高信貸效率主要考量的點有兩個:1)可仔鄭陸否借鑒DeFi市場的機制降低資金成本;2)可否利用區塊鏈技術來增加外界對於Moves的授信過程的信任。在這里,Moves將形成一種「匯集眾智」的機制,讓所有人都能夠為降低信用風險和增加授信過程的可信度做出貢獻,甚至可能在未來發展出一種微擔保機制。因此,用戶將可以作為借方、貸方或者擔保方參與到平台建立的市場中。
2. 如何使產品與用戶的利益一致化。
具體來說,就是通過將Moves與The OAN網路相連接,藉助數字資產Aion,在產品和用戶之間形成一種利益一致化的關系,從而讓用戶能夠切身體會到Moves產品開展的成功與否,同時也能直接參與到支持Moves的區塊鏈網路——The OAN之中。
3. 如何以Moves開創金融信譽數據開放系統的先河。
這種開放系統可能會成為傳統信貸分數或者相關機制的替代品。多年來,銀行和金融機構一直將Equifax,FICO或者其他類似機構的評分作為風險指標,而Moves團隊認為其正在打造的產品將會是一個很好的開端——一個更完善的、更現代化的金融信譽系統的開端。這是一個長期目標。
Moves支持北美主流拼車、外賣等零工經濟念頃平台,將是The OAN在其區塊鏈網路上開發的旗艦版開放應用程序。在6月,Moves的業務運營范圍已經從最初的安大略省再擴大兩地——亞伯達省和不列顛哥倫比亞省,挺進加拿大西部。
The OAN團隊的種種舉措,都叢滑是秉持著「吃狗糧」精神,為了讓區塊鏈技術能盡快進入主流市場而努力。區塊鏈並不是面向小眾,而是面向主流,除了The OAN團隊,區塊鏈業內的很多項目、機構也都是朝著這一目標,這么優秀、這么有目標的區塊鏈,你能說沒發展前景嗎?
Ⅷ 區塊鏈的基本要素包括
1-包含一個分布式資料庫
2-分布式資料庫是區塊鏈的物理載體,區塊鏈是交易的邏輯載體,所有核心節點都應包含該條區塊鏈數據的全副本
3-區塊鏈按時間序列化區塊,且區塊鏈是整個網路交易數據的唯一主體
4-區塊鏈只對添加有效,對其他操作無效
5-基於非對稱加密的公私鑰驗證
6-記賬節點要求拜占庭將軍問題可解/避免
7-共識過程(consensus progress)是演化穩定的,即面對一定量的不同節點的矛盾數據不會崩潰。
8-共識過程能夠解決double-spending問題。
區塊鏈的五個特點:
去中心化
由於使用分布式核算和存儲,不存在中心化的硬體或管理機構,任意節點的權利和義務都是均等的,系統中的數據塊由整個系統中具有維護功能的節點來共同維護。
得益於區塊鏈的去中心化特徵,比特幣也擁有去中心化的特徵 [6] 。
開放性
系統是開放的,除了交易各方的私有信息被加密外,區塊鏈的數據對所有人公開,任何人都可以通過公開的介面查詢區塊鏈數據和開發相關應用,因此整個系統信息高度透明。
自治性
區塊鏈採用基於協商一致的規范和協議(比如一套公開透明的演算法)使得整個系統中的所有節點能夠在去信任的環境自由安全的交換數據,使得對「人」的信任改成了對機器的信任,任何人為的干預不起作用。
信息不可篡改
一旦信息經過驗證並添加至區塊鏈,就會永久的存儲起來,除非能夠同時控制住系統中超過51%的節點,否則單個節點上對資料庫的修改是無效的,因此區塊鏈的數據穩定性和可靠性極高。
匿名性
由於節點之間的交換遵循固定的演算法,其數據交互是無需信任的(區塊鏈中的程序規則會自行判斷活動是否有效),因此交易對手無須通過公開身份的方式讓對方自己產生信任,對信用的累積非常有幫助。
Ⅸ 區塊鏈技術是什麼未來可能用於哪些方面
技術的發展,往往超乎你的想像,從農耕革命到工業革命再到信息革命,截止到現在開啟了區塊鏈革命。達到認知革命的高度,應該算是一個比較大的命題,為什麼之前的互聯網、大數據、人工智慧等等它們的出現並沒有提到認知革命的地步,而區塊鏈就可以?
如何快速進入區塊鏈行業?
1.找這個行業頂尖大牛,向他們學習或交流,比如李笑來,比如蔡叔
2.可以購買一些書籍,消息書籍不像淘寶那樣混雜,經典就那幾個,選幾個通讀一下
3.可以多搜搜相關文章,公眾號、知乎或其他,信息量很大的,大家自己可以發現看完30篇優質文章,你基本已經入門了。
微信公眾號:職場芝士派,跟你說說職場那些事
Ⅹ 區塊鏈的共識機制
1. 網路上的交易信息如何確認並達成共識?
雖然經常提到共識機制,但是對於共識機制的含義和理解卻並清楚。因此需要就共識機制的相關概念原理和實現方法有所理解。
區塊鏈的交易信息是通過網路廣播傳輸到網路中各個節點的,在整個網路節點中如何對廣播的信息進行確認並達成共識 最終寫入區塊呢? 如果沒有相應的可靠安全的實現機制,那麼就難以實現其基本的功能,因此共識機制是整個網路運行下去的一個關鍵。
共識機制解決了區塊鏈如何在分布式場景下達成一致性的問題。區塊鏈能在眾多節點達到一種較為平衡的狀態也是因為共識機制。那麼共識機制是如何在在去中心化的思想上解決了節點間互相信任的問題呢?
當分布式的思想被提出來時,人們就開始根據FLP定理和CAP定理設計共識演算法。 規范的說,理想的分布式系統的一致性應該滿足以下三點:
1.可終止性(Termination):一致性的結果可在有限時間內完成。
2.共識性(Consensus):不同節點最終完成決策的結果應該相同。
3.合法性(Validity):決策的結果必須是其他進程提出的提案。
但是在實際的計算機集群中,可能會存在以下問題:
1.節點處理事務的能力不同,網路節點數據的吞吐量有差異
2.節點間通訊的信道可能不安全
3.可能會有作惡節點出現
4.當非同步處理能力達到高度一致時,系統的可擴展性就會變差(容不下新節點的加入)。
科學家認為,在分布式場景下達成 完全一致性 是不可能的。但是工程學家可以犧牲一部分代價來換取分布式場景的一致性,上述的兩大定理也是這種思想,所以基於區塊鏈設計的各種公式機制都可以看作犧牲那一部分代價來換取多適合的一致性,我的想法是可以在這種思想上進行一個靈活的變換,即在適當的時間空間犧牲一部分代價換取適應於當時場景的一致性,可以實現靈活的區塊鏈系統,即可插拔式的區塊鏈系統。今天就介紹一下我對各種共識機制的看法和分析,分布式系統中有無作惡節點分為拜占庭容錯和非拜占庭容錯機制。
FLP定理即FLP不可能性,它證明了在分布式情景下,無論任何演算法,即使是只有一個進程掛掉,對於其他非失敗進程,都存在著無法達成一致的可能。
FLP基於如下幾點假設:
僅可修改一次 : 每個進程初始時都記錄一個值(0或1)。進程可以接收消息、改動該值、並發送消息,當進程進入decide state時,其值就不再變化。所有非失敗進程都進入decided state時,協議成功結束。這里放寬到有一部分進程進入decided state就算協議成功。
非同步通信 : 與同步通信的最大區別是沒有時鍾、不能時間同步、不能使用超時、不能探測失敗、消息可任意延遲、消息可亂序。
通信健壯: 只要進程非失敗,消息雖會被無限延遲,但最終會被送達;並且消息僅會被送達一次(無重復)。
Fail-Stop 模型: 進程失敗如同宕機,不再處理任何消息。
失敗進程數量 : 最多一個進程失敗。
CAP是分布式系統、特別是分布式存儲領域中被討論最多的理論。CAP由Eric Brewer在2000年PODC會議上提出,是Eric Brewer在Inktomi期間研發搜索引擎、分布式web緩存時得出的關於數據一致性(consistency)、服務可用性(availability)、分區容錯性(partition-tolerance)的猜想:
數據一致性 (consistency):如果系統對一個寫操作返回成功,那麼之後的讀請求都必須讀到這個新數據;如果返回失敗,那麼所有讀操作都不能讀到這個數據,對調用者而言數據具有強一致性(strong consistency) (又叫原子性 atomic、線性一致性 linearizable consistency)[5]
服務可用性 (availability):所有讀寫請求在一定時間內得到響應,可終止、不會一直等待
分區容錯性 (partition-tolerance):在網路分區的情況下,被分隔的節點仍能正常對外服務
在某時刻如果滿足AP,分隔的節點同時對外服務但不能相互通信,將導致狀態不一致,即不能滿足C;如果滿足CP,網路分區的情況下為達成C,請求只能一直等待,即不滿足A;如果要滿足CA,在一定時間內要達到節點狀態一致,要求不能出現網路分區,則不能滿足P。
C、A、P三者最多隻能滿足其中兩個,和FLP定理一樣,CAP定理也指示了一個不可達的結果(impossibility result)。