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