99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁(yè)精彩閱讀五分鐘了解共識(shí)機(jī)制
五分鐘了解共識(shí)機(jī)制
2018-06-27
收藏

五分鐘了解共識(shí)機(jī)制

什么是共識(shí)機(jī)制?

“共識(shí)機(jī)制是區(qū)塊鏈的靈魂?!边@是業(yè)內(nèi)經(jīng)常能聽到的一句話,共識(shí)機(jī)制在區(qū)塊鏈中的地位可想而知。那么到底什么是共識(shí)機(jī)制呢?我們不妨從拜占庭將軍問(wèn)題說(shuō)起。

拜占庭位于如今的土耳其的伊斯坦布爾,是東羅馬帝國(guó)的首都。由于當(dāng)時(shí)拜占庭羅馬帝國(guó)國(guó)土遼闊,為了防御目的,每個(gè)軍隊(duì)都分隔很遠(yuǎn),將軍與將軍之間只能靠信差傳消息。 在戰(zhàn)爭(zhēng)的時(shí)候,拜占庭軍隊(duì)內(nèi)所有將軍和副官必須達(dá)成一致的共識(shí),決定是否有贏的機(jī)會(huì)才去攻打敵人的陣營(yíng)。但是,在軍隊(duì)內(nèi)有可能存有叛徒和敵軍的間諜,左右將軍們的決定又?jǐn)_亂整體軍隊(duì)的秩序。在進(jìn)行共識(shí)時(shí),結(jié)果并不代表大多數(shù)人的意見。這時(shí)候,在已知有成員謀反的情況下,其余忠誠(chéng)的將軍在不受叛徒的影響下如何達(dá)成一致的協(xié)議,拜占庭問(wèn)題就此形成。

拜占庭將軍問(wèn)題是一個(gè)協(xié)議問(wèn)題,拜占庭帝國(guó)軍隊(duì)的將軍們必須全體一致的決定是否攻擊某一支敵軍。問(wèn)題是這些將軍在地理上是分隔開來(lái)的,并且將軍中存在叛徒。叛徒可以任意行動(dòng)以達(dá)到以下目標(biāo):欺騙某些將軍采取進(jìn)攻行動(dòng);促成一個(gè)不是所有將軍都同意的決定,如當(dāng)將軍們不希望進(jìn)攻時(shí)促成進(jìn)攻行動(dòng);或者迷惑某些將軍,使他們無(wú)法做出決定。如果叛徒達(dá)到了這些目的之一,則任何攻擊行動(dòng)的結(jié)果都是注定要失敗的,只有完全達(dá)成一致的努力才能獲得勝利。

而這個(gè)問(wèn)題該如何解決?中本聰?shù)睦砟罱o出了一個(gè)比較好的答案:不能讓所有人都有資格發(fā)信息,而是給發(fā)信息設(shè)置了一個(gè)條件:“工作量”,將軍們同時(shí)做一道計(jì)算題,誰(shuí)先算完,誰(shuí)才能獲得給其他小國(guó)發(fā)信息的資格。而其他小國(guó)在收到信息后,必須采用加密技術(shù)進(jìn)行簽字蓋戳,以確認(rèn)身份。然后再繼續(xù)做題,做對(duì)題的再繼續(xù)發(fā)消息……對(duì)這種先后順序達(dá)成共識(shí)的算法,就是共識(shí)機(jī)制。

共識(shí)機(jī)制的作用

區(qū)塊鏈作為一種按時(shí)間順序存儲(chǔ)數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu),可支持不同的共識(shí)機(jī)制。在區(qū)塊鏈上,每個(gè)人都會(huì)有一份記錄鏈上所有交易的賬本,鏈上產(chǎn)生一筆新的交易時(shí),每個(gè)人接收到這個(gè)信息的時(shí)間是不一樣的,有些想要干壞事的人就有可能在這時(shí)發(fā)布一些錯(cuò)誤的信息,這時(shí)就需要一個(gè)人把所有人接收到的信息進(jìn)行驗(yàn)證,最后公布最正確的信息。

共識(shí)機(jī)制是區(qū)塊鏈技術(shù)的重要組件。它就像一本法典,維系著區(qū)塊鏈?zhǔn)澜绲恼_\(yùn)轉(zhuǎn),使得區(qū)塊鏈技術(shù)自帶改善世界的光芒,也是讓區(qū)塊鏈得以被全世界逐步接受和認(rèn)可的最大幕后功臣,它讓互聯(lián)網(wǎng)、陌生人之間,在沒有第三方作為信用背書的情況下發(fā)生的一切交易變成可能,它賦予了機(jī)械的代碼以人性和溫度。

共識(shí)機(jī)制的類別

目前的共識(shí)機(jī)制主要有POW、POS、DPOS、PBFT、dBFT、Pool驗(yàn)證池。

POW,就是人們熟悉的比特幣挖礦,通過(guò)計(jì)算出一個(gè)滿足規(guī)則的隨機(jī)數(shù),即獲得本次記賬權(quán),發(fā)出本輪需要記錄的數(shù)據(jù),全網(wǎng)其它節(jié)點(diǎn)驗(yàn)證后一起存儲(chǔ)??蓪?shí)現(xiàn)完全去中心化,節(jié)點(diǎn)自由進(jìn)出。干的越多,收的越多。

POS,權(quán)益證明,POW的一種升級(jí)共識(shí)機(jī)制,根據(jù)每個(gè)節(jié)點(diǎn)所占代幣的比例和時(shí)間,以此等比例的挖礦難度,從而加快找隨機(jī)數(shù)的速度。持有越多,獲得越多

DPOS,股份授權(quán)證明機(jī)制,類似于董事會(huì)投票,持幣者投出一定數(shù)量的節(jié)點(diǎn),代理他們進(jìn)行驗(yàn)證和記賬。

PBFT ,Practical Byzantine Fault Tolerance,實(shí)用拜占庭容錯(cuò)算法,是一種狀態(tài)機(jī)副本復(fù)制算法,即服務(wù)作為狀態(tài)機(jī)進(jìn)行建模,狀態(tài)機(jī)在分布式系統(tǒng)的不同節(jié)點(diǎn)進(jìn)行副本復(fù)制,每個(gè)狀態(tài)機(jī)的副本都保存了服務(wù)的狀態(tài),同時(shí)也實(shí)現(xiàn)了服務(wù)的操作。

dBFT,delegated BFT 授權(quán)拜占庭容錯(cuò)算法,由權(quán)益來(lái)選出記賬人,然后記賬人之間通過(guò)拜占庭容錯(cuò)算法來(lái)達(dá)成共識(shí)。

Pool驗(yàn)證池,基于傳統(tǒng)的分布式一致性技術(shù)建立,并輔之以數(shù)據(jù)驗(yàn)證機(jī)制,是目前區(qū)塊鏈中廣泛使用的一種共識(shí)機(jī)制。Pool驗(yàn)證池不需要依賴代幣就可以工作,在成熟的分布式一致性算法(Pasox、Raft)基礎(chǔ)之上,可以實(shí)現(xiàn)秒級(jí)共識(shí)驗(yàn)證,更適合有多方參與的多中心商業(yè)模式。

現(xiàn)有共識(shí)機(jī)制存在問(wèn)題

目前現(xiàn)有的共識(shí)機(jī)制都不算完美,在一些實(shí)際應(yīng)用場(chǎng)景弊端很多。

A、計(jì)算能力浪費(fèi)

在工作量證明機(jī)制POW中,猜數(shù)字最快的通常是電腦計(jì)算能力強(qiáng)的。超強(qiáng)的計(jì)算能級(jí)僅用來(lái)猜數(shù)字,實(shí)在是浪費(fèi)。

B、權(quán)益向頂層集中

在權(quán)益證明機(jī)制POS中,token的余額越多的人獲得公示信息的概率越高,公示人會(huì)得到一定的token作為獎(jiǎng)勵(lì),如此持有token多的人會(huì)越來(lái)越多,少的人越來(lái)越少。

C、作惡成本低下

在靠算力與權(quán)益的的多少來(lái)獲得公示信息的權(quán)利的模式當(dāng)中,當(dāng)算力和權(quán)益向少數(shù)人集中之后,這些少數(shù)人如果想要做一些違反規(guī)則的事情是輕而易舉的;在PBFT中,由所有人投票,如果一個(gè)沒有任何token余額的人想要搗亂,那他幾乎是完全沒有利益損失。

D、對(duì)于真正的去中心化構(gòu)成威脅

在工作量證明機(jī)制中,計(jì)算能力越強(qiáng),獲得記錄權(quán)利的概率就越高。如果有人把很多人集中在一起來(lái)猜數(shù)字,把好多電腦的算力加在一起來(lái)用,那這些抱團(tuán)的人就會(huì)更容易獲得公示信息的權(quán)利,發(fā)展到最后可能公示權(quán)就直接掌握在這些人手里。

在權(quán)益證明機(jī)制POS中,權(quán)益越大的人獲得記錄權(quán)利的概率越高,而記錄的人就會(huì)有獎(jiǎng)勵(lì)token ,這樣一來(lái)這些人就會(huì)越來(lái)越富有,貧富差距就會(huì)越來(lái)越大。持有token少的人幾乎都沒有話語(yǔ)權(quán)了。權(quán)利掌握在少數(shù)人手中,這有違區(qū)塊鏈去中心化理念。


數(shù)據(jù)分析咨詢請(qǐng)掃描二維碼

若不方便掃碼,搜微信號(hào):CDAshujufenxi

數(shù)據(jù)分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機(jī)數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進(jìn)行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個(gè)參數(shù)驗(yàn)證碼對(duì)象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個(gè)配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺(tái)檢測(cè)極驗(yàn)服務(wù)器是否宕機(jī) new_captcha: data.new_captcha, // 用于宕機(jī)時(shí)表示是新驗(yàn)證碼的宕機(jī) product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說(shuō)明請(qǐng)參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計(jì)時(shí)完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請(qǐng)輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請(qǐng)輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }