共識演算法是區塊鏈的核心
Ⅰ 區塊鏈技術的核心層是什麼
重慶金窩窩分析:共識機制是區塊鏈技術的核心,共識機制很大程度上決定了整個區塊鏈系統節點之間的相互信任程度,也決定了其他使用者對於區塊鏈上數據的信任程度
Ⅱ 區塊鏈的共識機制是什麼
如何讓去中心化網路達成共識?
在區塊鏈系統當中,沒有一個像銀行一樣的中心化記賬機構,保證每一筆交易在所有記賬節點上的一致性,即讓全網達成共識至關重要。共識機制解決的就是這個問題。
目前主要的共識機制有工作量證明機制PoW和權益證明機制PoS。
PoW通過評估你的工作量來決定你獲得記賬權的機率,工作量越大,就越有可能獲得此次記賬機會。
PoS通過評估你持有代幣的數量和時長來決定你獲得記賬權的機率。這就類似於股票的分紅制度,持有股權相對多的人能夠獲得更多的分紅。
DPOS與POS原理相似,只是選了一些「人大代表」。 與PoS的主要區別在於節點選舉若干代理人,由代理人驗證和記賬。
隨著技術的發展,未來可能還會誕生更先進的共識機制。
Ⅲ 區塊鏈的核心技術是什麼
區塊鏈運作的7個核心技術介紹
2018-01-15
1.區塊鏈的鏈接
顧名思義,區塊鏈即由一個個區塊組成的鏈。每個區塊分為區塊頭和區塊體(含交易數據)兩個部分。區塊頭包括用來實現區塊鏈接的前一區塊的哈希(PrevHash)值(又稱散列值)和用於計算挖礦難度的隨機數(nonce)。前一區塊的哈希值實際是上一個區塊頭部的哈希值,而計算隨機數規則決定了哪個礦工可以獲得記錄區塊的權力。
2.共識機制
區塊鏈是伴隨比特幣誕生的,是比特幣的基礎技術架構。可以將區塊鏈理解為一個基於互聯網的去中心化記賬系統。類似比特幣這樣的去中心化數字貨幣系統,要求在沒有中心節點的情況下保證各個誠實節點記賬的一致性,就需要區塊鏈來完成。所以區塊鏈技術的核心是在沒有中心控制的情況下,在互相沒有信任基礎的個體之間就交易的合法性等達成共識的共識機制。
區塊鏈的共識機制目前主要有4類:PoW、PoS、DPoS、分布式一致性演算法。
3.解鎖腳本
腳本是區塊鏈上實現自動驗證、自動執行合約的重要技術。每一筆交易的每一項輸出嚴格意義上並不是指向一個地址,而是指向一個腳本。腳本類似一套規則,它約束著接收方怎樣才能花掉這個輸出上鎖定的資產。
交易的合法性驗證也依賴於腳本。目前它依賴於兩類腳本:鎖定腳本與解鎖腳本。鎖定腳本是在輸出交易上加上的條件,通過一段腳本語言來實現,位於交易的輸出。解鎖腳本與鎖定腳本相對應,只有滿足鎖定腳本要求的條件,才能花掉這個腳本上對應的資產,位於交易的輸入。通過腳本語言可以表達很多靈活的條件。解釋腳本是通過類似我們編程領域里的「虛擬機」,它分布式運行在區塊鏈網路里的每一個節點。
4.交易規則
區塊鏈交易就是構成區塊的基本單位,也是區塊鏈負責記錄的實際有效內容。一個區塊鏈交易可以是一次轉賬,也可以是智能合約的部署等其他事務。
就比特幣而言,交易即指一次支付轉賬。其交易規則如下:
1)交易的輸入和輸出不能為空。
2)對交易的每個輸入,如果其對應的UTXO輸出能在當前交易池中找到,則拒絕該交易。因為當前交易池是未被記錄在區塊鏈中的交易,而交易的每個輸入,應該來自確認的UTXO。如果在當前交易池中找到,那就是雙花交易。
3)交易中的每個輸入,其對應的輸出必須是UTXO。
4)每個輸入的解鎖腳本(unlocking
)必須和相應輸出的鎖定腳本(locking
)共同驗證交易的合規性。
5.交易優先順序
區塊鏈交易的優先順序由區塊鏈協議規則決定。對於比特幣而言,交易被區塊包含的優先次序由交易廣播到網路上的時間和交易額的大小決定。隨著交易廣播到網路上的時間的增長,交易的鏈齡增加,交易的優先順序就被提高,最終會被區塊包含。對於以太坊而言,交易的優先順序還與交易的發布者願意支付的交易費用有關,發布者願意支付的交易費用越高,交易被包含進區塊的優先順序就越高。
6.Merkle證明
Merkle證明的原始應用是比特幣系統(Bitcoin),它是由中本聰(Satoshi
Nakamoto)在2009年描述並且創造的。比特幣區塊鏈使用了Merkle證明,為的是將交易存儲在每一個區塊中。使得交易不能被篡改,同時也容易驗證交易是否包含在一個特定區塊中。
7.RLP
RLP(Recursive
Length
Prefix,遞歸長度前綴編碼)是Ethereum中對象序列化的一個主要編碼方式,其目的是對任意嵌套的二進制數據的序列進行編碼。
Ⅳ 眾安區塊鏈的核心演算法是什麼有什麼特點
眾安鏈用的是帶權重的拜占庭容錯演算法,與傳統的工作量證明演算法相比,眾安鏈的演算法在出塊速度和共識效率上都有很大的提升。
Ⅳ 什麼是區塊鏈技術區塊鏈技術的核心構成是什麼
從技術的角度,架構的角度,用通俗的語言來跟大家講講,我對區塊鏈的一些理解。
究竟啥是區塊鏈?Block chain,一句話來說,區塊鏈是一個存儲系統,存儲系統更細一點,區塊鏈是一個沒有管理員,每個節點都擁有全部數據的分布式存儲系統。
那常見的存儲系統,是什麼樣子的呢?
首先看一下如何保證高可用?
普通的存儲系統通常是用「冗餘」的方式來解決高可用問題的。圖上圖所示如果能夠把數據復製成幾份,冗餘到多個地方,就能夠保證高可用。一個地方的數據掛了,另外的地方還存有數據,例如MySQL的主從集群就是這個原理,磁碟的RAID也是這個原理。
這個地方需要強調的兩點是:數據冗餘,往往會引發一致性的問題
1、例如MySQL的主從集群中中其實讀寫會有延時的,它其實就是有一個短的時間內讀寫不一致。這個是數據冗餘,帶來的一個副作用。
2、第二個點是數據冗餘往往會降低寫入的效率,因為數據同步也是需要消耗資源的。你看單點寫入,如果加了兩個從庫之後,其實寫入的效率會受影響。普通的存儲系統,就是採用冗餘的方式,保證數據的高可用的。
那麼第二個問題,普通的存儲系統,能否多點寫入呢?
答案是可以的,比如說以這個圖為例:
其實MySQL的話可以做一個雙主的主從同步,雙主的主從同步,兩個節點,同時可以寫入。如果要做多機房多活的數據中心,其實多機房多活也是進行數據同步的。這里要強調的是多點寫入,往往會引發寫寫沖突的一致性問題,以MySQl為例,假設有一個表的屬性是自增ID,那麼現在資料庫中的數據是1234,那麼其中一個節點寫入,插入了一條數據,那它可能變成5了,然後這5條數據,向另外一個主節點進行數據同步,同步完成之前,如果另外一個寫入節點,也插入了一條數據,也生成了一條這個自增id為5的數據。那麼,生成之後,往另外一個節點同步,然後同步數據到達之後會與本地的這兩條5沖突,就會同步失敗,會引發寫寫的一致性沖突問題。這個多點寫入的話都會出現這個問題。
多點寫入,如何保證一致?
維新「天鵝大咖課」給你更多的技術幹活
Ⅵ 區塊鏈技術中的共識機制內容和作用是什麼
金窩窩分析區塊鏈技術中的共識機制如下:
區塊鏈是一種去中心化的分布式賬本系統,由於點對點網路下存在較高的網路延遲,各個節點所觀察到的交易事務先後順序不可能完全一致。
因此區塊鏈系統需要設計一種機制對在一定的時間內發生的事務的先後順序進行共識。這種對一個時間窗口內的事務的先後順序達成共識的演算法被稱為「共識機制」。
Ⅶ 區塊鏈的三大核心技術是什麼
區塊鏈運作的7個核心技術介紹 2018-01-15
1.區塊鏈的鏈接
顧名思義,區塊鏈即由一個個區塊組成的鏈。每個區塊分為區塊頭和區塊體(含交易數據)兩個部分。區塊頭包括用來實現區塊鏈接的前一區塊的哈希(PrevHash)值(又稱散列值)和用於計算挖礦難度的隨機數(nonce)。前一區塊的哈希值實際是上一個區塊頭部的哈希值,而計算隨機數規則決定了哪個礦工可以獲得記錄區塊的權力。
2.共識機制
區塊鏈是伴隨比特幣誕生的,是比特幣的基礎技術架構。可以將區塊鏈理解為一個基於互聯網的去中心化記賬系統。類似比特幣這樣的去中心化數字貨幣系統,要求在沒有中心節點的情況下保證各個誠實節點記賬的一致性,就需要區塊鏈來完成。所以區塊鏈技術的核心是在沒有中心控制的情況下,在互相沒有信任基礎的個體之間就交易的合法性等達成共識的共識機制。
區塊鏈的共識機制目前主要有4類:PoW、PoS、DPoS、分布式一致性演算法。
3.解鎖腳本
腳本是區塊鏈上實現自動驗證、自動執行合約的重要技術。每一筆交易的每一項輸出嚴格意義上並不是指向一個地址,而是指向一個腳本。腳本類似一套規則,它約束著接收方怎樣才能花掉這個輸出上鎖定的資產。
交易的合法性驗證也依賴於腳本。目前它依賴於兩類腳本:鎖定腳本與解鎖腳本。鎖定腳本是在輸出交易上加上的條件,通過一段腳本語言來實現,位於交易的輸出。解鎖腳本與鎖定腳本相對應,只有滿足鎖定腳本要求的條件,才能花掉這個腳本上對應的資產,位於交易的輸入。通過腳本語言可以表達很多靈活的條件。解釋腳本是通過類似我們編程領域里的「虛擬機」,它分布式運行在區塊鏈網路里的每一個節點。
4.交易規則
區塊鏈交易就是構成區塊的基本單位,也是區塊鏈負責記錄的實際有效內容。一個區塊鏈交易可以是一次轉賬,也可以是智能合約的部署等其他事務。
就比特幣而言,交易即指一次支付轉賬。其交易規則如下:
1)交易的輸入和輸出不能為空。
2)對交易的每個輸入,如果其對應的UTXO輸出能在當前交易池中找到,則拒絕該交易。因為當前交易池是未被記錄在區塊鏈中的交易,而交易的每個輸入,應該來自確認的UTXO。如果在當前交易池中找到,那就是雙花交易。
3)交易中的每個輸入,其對應的輸出必須是UTXO。
4)每個輸入的解鎖腳本(unlocking )必須和相應輸出的鎖定腳本(locking )共同驗證交易的合規性。
5.交易優先順序
區塊鏈交易的優先順序由區塊鏈協議規則決定。對於比特幣而言,交易被區塊包含的優先次序由交易廣播到網路上的時間和交易額的大小決定。隨著交易廣播到網路上的時間的增長,交易的鏈齡增加,交易的優先順序就被提高,最終會被區塊包含。對於以太坊而言,交易的優先順序還與交易的發布者願意支付的交易費用有關,發布者願意支付的交易費用越高,交易被包含進區塊的優先順序就越高。
6.Merkle證明
Merkle證明的原始應用是比特幣系統(Bitcoin),它是由中本聰(Satoshi Nakamoto)在2009年描述並且創造的。比特幣區塊鏈使用了Merkle證明,為的是將交易存儲在每一個區塊中。使得交易不能被篡改,同時也容易驗證交易是否包含在一個特定區塊中。
7.RLP
RLP(Recursive Length Prefix,遞歸長度前綴編碼)是Ethereum中對象序列化的一個主要編碼方式,其目的是對任意嵌套的二進制數據的序列進行編碼。
Ⅷ 區塊鏈幾大共識機制及優缺點
首先,沒有一種共識機制是完美無缺的,各共識機制都有其優缺點,有些共識機制是為解決一些特定的問題而生。
1.pow( Proof of Work)工作量證明
一句話介紹:乾的越多,收的越多。
依賴機器進行數學運算來獲取記賬權,資源消耗相比其他共識機制高、可監管性弱,同時每次達成共識需要全網共同參與運算,性能效率比較低,容錯性方面允許全網50%節點出錯。
優點:
1)演算法簡單,容易實現;
2)節點間無需交換額外的信息即可達成共識;
3)破壞系統需要投入極大的成本;
缺點:
1)浪費能源;
2)區塊的確認時間難以縮短;
3)新的區塊鏈必須找到一種不同的散列演算法,否則就會面臨比特幣的算力攻擊;
4)容易產生分叉,需要等待多個確認;
5)永遠沒有最終性,需要檢查點機制來彌補最終性;
2.POS Proof of Stake,權益證明
一句話介紹:持有越多,獲得越多。
主要思想是節點記賬權的獲得難度與節點持有的權益成反比,相對於PoW,一定程度減少了數學運算帶來的資源消耗,性能也得到了相應的提升,但依然是基於哈希運算競爭獲取記賬權的方式,可監管性弱。該共識機制容錯性和PoW相同。它是Pow的一種升級共識機制,根據每個節點所佔代幣的比例和時間,等比例的降低挖礦難度,從而加快找隨機數的速度
優點:在一定程度上縮短了共識達成的時間;不再需要大量消耗能源挖礦。
缺點:還是需要挖礦,本質上沒有解決商業應用的痛點;所有的確認都只是一個概率上的表達,而不是一個確定性的事情,理論上有可能存在其他攻擊影響。例如,以太坊的DAO攻擊事件造成以太坊硬分叉,而ETC由此事件出現,事實上證明了此次硬分叉的失敗。
DPOS與POS原理相同,只是選了一些「人大代表」。
BitShares社區首先提出了DPoS機制。
與PoS的主要區別在於節點選舉若干代理人,由代理人驗證和記賬。其合規監管、性能、資源消耗和容錯性與PoS相似。類似於董事會投票,持幣者投出一定數量的節點,代理他們進行驗證和記賬。
DPoS的工作原理為:
去中心化表示每個股東按其持股比例擁有影響力,51%股東投票的結果將是不可逆且有約束力的。其挑戰是通過及時而高效的方法達到51%批准。為達到這個目標,每個股東可以將其投票權授予一名代表。獲票數最多的前100位代表按既定時間表輪流產生區塊。每名代表分配到一個時間段來生產區塊。所有的代表將收到等同於一個平均水平的區塊所含交易費的10%作為報酬。如果一個平均水平的區塊含有100股作為交易費,一名代表將獲得1股作為報酬。
網路延遲有可能使某些代表沒能及時廣播他們的區塊,而這將導致區塊鏈分叉。然而,這不太可能發生,因為製造區塊的代表可以與製造前後區塊的代表建立直接連接。建立這種與你之後的代表(也許也包括其後的那名代表)的直接連接是為了確保你能得到報酬。
該模式可以每30秒產生一個新區塊,並且在正常的網路條件下區塊鏈分叉的可能性極其小,即使發生也可以在幾分鍾內得到解決。
成為代表:
成為一名代表,你必須在網路上注冊你的公鑰,然後分配到一個32位的特有標識符。然後該標識符會被每筆交易數據的「頭部」引用。
授權選票:
每個錢包有一個參數設置窗口,在該窗口裡用戶可以選擇一個或更多的代表,並將其分級。一經設定,用戶所做的每筆交易將把選票從「輸入代表」轉移至「輸出代表」。一般情況下,用戶不會創建特別以投票為目的的交易,因為那將耗費他們一筆交易費。但在緊急情況下,某些用戶可能覺得通過支付費用這一更積極的方式來改變他們的投票是值得的。
保持代表誠實:
每個錢包將顯示一個狀態指示器,讓用戶知道他們的代表表現如何。如果他們錯過了太多的區塊,那麼系統將會推薦用戶去換一個新的代表。如果任何代表被發現簽發了一個無效的區塊,那麼所有標准錢包將在每個錢包進行更多交易前要求選出一個新代表。
抵抗攻擊:
在抵抗攻擊上,因為前100名代表所獲得的權力權是相同的,每名代表都有一份相等的投票權。因此,無法通過獲得超過1%的選票而將權力集中到一個單一代表上。因為只有100名代表,可以想像一個攻擊者對每名輪到生產區塊的代表依次進行拒絕服務攻擊。幸運的是,由於事實上每名代表的標識是其公鑰而非IP地址,這種特定攻擊的威脅很容易被減輕。這將使確定DDOS攻擊目標更為困難。而代表之間的潛在直接連接,將使妨礙他們生產區塊變得更為困難。
優點:大幅縮小參與驗證和記賬節點的數量,可以達到秒級的共識驗證。
缺點:整個共識機制還是依賴於代幣,很多商業應用是不需要代幣存在的。
3.PBFT :Practical Byzantine Fault Tolerance,實用拜占庭容錯
介紹:在保證活性和安全性(liveness & safety)的前提下提供了(n-1)/3的容錯性。
在分布式計算上,不同的計算機透過訊息交換,嘗試達成共識;但有時候,系統上協調計算機(Coordinator / Commander)或成員計算機 (Member /Lieutanent)可能因系統錯誤並交換錯的訊息,導致影響最終的系統一致性。
拜占庭將軍問題就根據錯誤計算機的數量,尋找可能的解決辦法,這無法找到一個絕對的答案,但只可以用來驗證一個機制的有效程度。
而拜占庭問題的可能解決方法為:
在 N ≥ 3F + 1 的情況下一致性是可能解決。其中,N為計算機總數,F為有問題計算機總數。信息在計算機間互相交換後,各計算機列出所有得到的信息,以大多數的結果作為解決辦法。
1)系統運轉可以脫離幣的存在,pbft演算法共識各節點由業務的參與方或者監管方組成,安全性與穩定性由業務相關方保證。
2)共識的時延大約在2~5秒鍾,基本達到商用實時處理的要求。
3)共識效率高,可滿足高頻交易量的需求。
缺點:
1)當有1/3或以上記賬人停止工作後,系統將無法提供服務;
2)當有1/3或以上記賬人聯合作惡,且其它所有的記賬人被恰好分割為兩個網路孤島時,惡意記賬人可以使系統出現分叉,但是會留下密碼學證據
下面說兩個國產的吧~
4.dBFT: delegated BFT 授權拜占庭容錯演算法
介紹:小蟻採用的dBFT機制,是由權益來選出記賬人,然後記賬人之間通過拜占庭容錯演算法來達成共識。
此演算法在PBFT基礎上進行了以下改進:
將C/S架構的請求響應模式,改進為適合P2P網路的對等節點模式;
將靜態的共識參與節點改進為可動態進入、退出的動態共識參與節點;
為共識參與節點的產生設計了一套基於持有權益比例的投票機制,通過投票決定共識參與節點(記賬節點);
在區塊鏈中引入數字證書,解決了投票中對記賬節點真實身份的認證問題。
優點:
1)專業化的記賬人;
2)可以容忍任何類型的錯誤;
3)記賬由多人協同完成,每一個區塊都有最終性,不會分叉;
4)演算法的可靠性有嚴格的數學證明;
缺點:
1)當有1/3或以上記賬人停止工作後,系統將無法提供服務;
2)當有1/3或以上記賬人聯合作惡,且其它所有的記賬人被恰好分割為兩個網路孤島時,惡意記賬人可以使系統出現分叉,但是會留下密碼學證據;
以上總結來說,dBFT機制最核心的一點,就是最大限度地確保系統的最終性,使區塊鏈能夠適用於真正的金融應用場景。
5.POOL驗證池
基於傳統的分布式一致性技術,加上數據驗證機制。
優點:不需要代幣也可以工作,在成熟的分布式一致性演算法(Pasox、Raft)基礎上,實現秒級共識驗證。
缺點:去中心化程度不如bictoin;更適合多方參與的多中心商業模式。