1. POW(Proof Of Work)
一句話介紹:勞動致富,多勞者多得!
描述:POW中文翻譯是工作量證明。采用此共識的數字貨幣有比特幣、萊特幣等。工作量證明系統(或者說協議、函數),是一種應對拒絕服務攻擊和其他服務濫用的經濟對策。它要求發起者進行一定量的運算,也就意味著需要消耗計算機一定的時間。這種系統要求得到證明的過程是低效且漫長的,可是校驗則是高效且迅速,概括起來就是求解難,驗證容易。比特幣是第一個區塊鏈應用,同時也是最著名的應用之一,它所使用的共識機制就是POW。那么具體是怎么實現的呢?在比特幣中,使用了SHA256這種哈希函數作為求解手段。SHA256有以下特征:
是一種散列函數,即相鄰的x1和x2,求得的f(x1)和f(x2)差別極大。
不可逆推,給定了f(x)的值,推斷不出輸入值。
不存在比窮舉更好的方法,可以使f(x)落在特定的范圍。
實際使用過程中,每個節點需要打包的交易數據相同,再從尾部加一個隨機數(節點自己選)作為整體輸入來求輸出值,把結果和當前的挖礦難度對比(要求輸出值前x位為0),滿足條件則向附近節點廣播;不滿足則更換隨機數繼續求解。最快求得解的節點,則可以視為挖礦勝出,取得其他節點的共識。
目前比特幣已經吸引了全球大部分的運算能力,其他再使用PoW共識機制的區塊鏈應用很難獲得相同的計算能力來保障自身的安全,從而無法復制比特幣的輝煌;同時由于挖礦造成大量的資源被浪費,共識達成的周期很長,導致了比特幣的TPS(transaction per second,每秒執行事務數量)極低,只有個位數。
優點:算法簡單,容易實現;節點間無需交換額外的信息即可達成共識;破壞系統需要投入極大的成本;
缺點:浪費能源;區塊的確認時間難以縮短;新的區塊鏈必須找到一種不同的散列算法,否則就會面臨算力攻擊;容易產生分叉,需要等待多個確認;永遠沒有最終性,需要檢查點機制來彌補最終性;
2. POS( Proof of Stake)
一句話介紹:持有越多,獲得越多。
提出目的:解決POW51%攻擊
描述:
不同的曠工計算不同的數學難題,這個數學難題和你的擁有幣的時間/幣的多少持反比例。擁有幣時間越長,難度越低。持有幣數量越多,難度越低。
POS通過區塊鏈系統內部的虛擬資產來管理安全性,根據節點持有的通證數量或者時長來決定節點享有的權利大小。區塊鏈系統的參與者鎖定他們在該區塊鏈上持有的虛擬資產(Coin或Token),他們會簽署消息以達成一致意見。只有那些已經成為系統一部分的參與者才能夠決定下一個區塊的內容。
PoW共識算法從經濟角度,可以自然做到防止區塊鏈分叉(區塊鏈分叉的本質就是網絡各節點對區塊鏈的生成產生分歧,無法達成共識)。但是PoS則需要精心設計好相應的規則來防止分叉,例如PoS可以設定懲罰機制,參與挖礦的礦工被要求鎖定一定數量的虛擬資產。如果他們被偵測到了存在不當的行為,則系統會沒收全部或部分被鎖定的虛擬資產。
優點:在一定程度上縮短了共識達成的時間;不再需要大量消耗能源挖礦。
缺點:還是需要挖礦,本質上沒有解決商業應用的痛點;所有的確認都只是一個概率上的表達,而不是一個確定性的事情,理論上有可能存在其他攻擊影響。例如,以太坊的DAO攻擊事件造成以太坊硬分叉,而ETC由此事件出現,事實上證明了此次硬分叉的失敗。
3. DPOS(Delegated Proof of Stake)
一句話介紹:POS的升級版
提出目的:POW/POS浪費巨量算力。
描述: DPoS機制,中文名叫做股份授權證明機制(又稱受托人機制),代表數字貨幣是EOS。它的原理是讓每一個通證的節點進行投票,選出集中多數票的節點,例如100個,然后這些節點會行使類似POS的權力。 DPOS利用利益相關方批準投票的權力以公平和民主的方式解決共識問題,所有網絡參數,從費用估算到塊間隔和交易規模,都可以通過選定的代表進行調整。從某種角度來看,DPOS有點像是議會制度或人民代表大會制度。如果代表不能履行他們的職責(當輪到他們時,沒能生成區塊),他們會被除名,網絡會選出新的超級節點來取代他們。
優點:大幅縮小參與驗證和記賬節點的數量,可以達到秒級的共識驗證;更加去中心化的機制;擁有更高的處理效率
缺點:整個共識機制還是依賴于token,很多商業應用是不需要token存在的。
4. PBFT(Practical Byzantine Fault Tolerance)
一句話介紹:解決一切出現的故障
描述:拜占庭假設是對現實世界的模型化,由于硬件錯誤、網絡擁塞或斷開以及遭到惡意攻擊,計算機和網絡可能出現不可預料的行為。拜占庭容錯協議必須處理這些失效,并且這些協議還要滿足所要解決的問題要求的規范。
PBFT算法的核心理論是n》=3f+1 n是系統中的總節點數,f是允許出現故障的節點數。換句話說,如果這個系統允許出現f個故障,那么這個系統必須包括n個節點,才能解決故障。
優點:PBFT在很多場景都有應用,在區塊鏈場景中,一般適合于對強一致性有要求的私有鏈和聯盟鏈場景。(Hyperledger Fabric 在 0.6 版中應用了 PBFT,而在 1.0 版中放棄了 PBFT,轉而采用效率更高的 Kafka,支持單點和集群兩種方式,由 Kafka 直接給交易排序和出塊)
是一種散列函數,即相鄰的x1和x2,求得的f(x1)和f(x2)差別極大。
不可逆推,給定了f(x)的值,推斷不出輸入值。
不存在比窮舉更好的方法,可以使f(x)落在特定的范圍。
實際使用過程中,每個節點需要打包的交易數據相同,再從尾部加一個隨機數(節點自己選)作為整體輸入來求輸出值,把結果和當前的挖礦難度對比(要求輸出值前x位為0),滿足條件則向附近節點廣播;不滿足則更換隨機數繼續求解。最快求得解的節點,則可以視為挖礦勝出,取得其他節點的共識。
目前比特幣已經吸引了全球大部分的運算能力,其他再使用PoW共識機制的區塊鏈應用很難獲得相同的計算能力來保障自身的安全,從而無法復制比特幣的輝煌;同時由于挖礦造成大量的資源被浪費,共識達成的周期很長,導致了比特幣的TPS(transaction per second,每秒執行事務數量)極低,只有個位數。
優點:算法簡單,容易實現;節點間無需交換額外的信息即可達成共識;破壞系統需要投入極大的成本;
缺點:浪費能源;區塊的確認時間難以縮短;新的區塊鏈必須找到一種不同的散列算法,否則就會面臨算力攻擊;容易產生分叉,需要等待多個確認;永遠沒有最終性,需要檢查點機制來彌補最終性;
2. POS( Proof of Stake)
一句話介紹:持有越多,獲得越多。
提出目的:解決POW51%攻擊
描述:
不同的曠工計算不同的數學難題,這個數學難題和你的擁有幣的時間/幣的多少持反比例。擁有幣時間越長,難度越低。持有幣數量越多,難度越低。
POS通過區塊鏈系統內部的虛擬資產來管理安全性,根據節點持有的通證數量或者時長來決定節點享有的權利大小。區塊鏈系統的參與者鎖定他們在該區塊鏈上持有的虛擬資產(Coin或Token),他們會簽署消息以達成一致意見。只有那些已經成為系統一部分的參與者才能夠決定下一個區塊的內容。
PoW共識算法從經濟角度,可以自然做到防止區塊鏈分叉(區塊鏈分叉的本質就是網絡各節點對區塊鏈的生成產生分歧,無法達成共識)。但是PoS則需要精心設計好相應的規則來防止分叉,例如PoS可以設定懲罰機制,參與挖礦的礦工被要求鎖定一定數量的虛擬資產。如果他們被偵測到了存在不當的行為,則系統會沒收全部或部分被鎖定的虛擬資產。
優點:在一定程度上縮短了共識達成的時間;不再需要大量消耗能源挖礦。
缺點:還是需要挖礦,本質上沒有解決商業應用的痛點;所有的確認都只是一個概率上的表達,而不是一個確定性的事情,理論上有可能存在其他攻擊影響。例如,以太坊的DAO攻擊事件造成以太坊硬分叉,而ETC由此事件出現,事實上證明了此次硬分叉的失敗。
3. DPOS(Delegated Proof of Stake)
一句話介紹:POS的升級版
提出目的:POW/POS浪費巨量算力。
描述: DPoS機制,中文名叫做股份授權證明機制(又稱受托人機制),代表數字貨幣是EOS。它的原理是讓每一個通證的節點進行投票,選出集中多數票的節點,例如100個,然后這些節點會行使類似POS的權力。 DPOS利用利益相關方批準投票的權力以公平和民主的方式解決共識問題,所有網絡參數,從費用估算到塊間隔和交易規模,都可以通過選定的代表進行調整。從某種角度來看,DPOS有點像是議會制度或人民代表大會制度。如果代表不能履行他們的職責(當輪到他們時,沒能生成區塊),他們會被除名,網絡會選出新的超級節點來取代他們。
優點:大幅縮小參與驗證和記賬節點的數量,可以達到秒級的共識驗證;更加去中心化的機制;擁有更高的處理效率
缺點:整個共識機制還是依賴于token,很多商業應用是不需要token存在的。
4. PBFT(Practical Byzantine Fault Tolerance)
一句話介紹:解決一切出現的故障
描述:拜占庭假設是對現實世界的模型化,由于硬件錯誤、網絡擁塞或斷開以及遭到惡意攻擊,計算機和網絡可能出現不可預料的行為。拜占庭容錯協議必須處理這些失效,并且這些協議還要滿足所要解決的問題要求的規范。
PBFT算法的核心理論是n》=3f+1 n是系統中的總節點數,f是允許出現故障的節點數。換句話說,如果這個系統允許出現f個故障,那么這個系統必須包括n個節點,才能解決故障。
優點:PBFT在很多場景都有應用,在區塊鏈場景中,一般適合于對強一致性有要求的私有鏈和聯盟鏈場景。(Hyperledger Fabric 在 0.6 版中應用了 PBFT,而在 1.0 版中放棄了 PBFT,轉而采用效率更高的 Kafka,支持單點和集群兩種方式,由 Kafka 直接給交易排序和出塊)
評論
查看更多