?文章來源:http://www.zghlxwxcb.cn/news/detail-796721.html
目錄
什么是共識?
什么是共識機(jī)制?
共識機(jī)制的目標(biāo)
為什么需要共識機(jī)制?
如何評價一個共識機(jī)制的優(yōu)劣:
共識機(jī)制分類
PoW( Proof of Work)工作量證明:多勞多得
PoS(Proof of Stake)股權(quán)證明算法:持有越多,獲得越多
優(yōu)點
缺點
如何配置web3
智能合約測試
?
什么是共識?
我們所說的共識,是指達(dá)成了廣泛的一致。 比如,一群人去吃晚飯, 如果他們對于提議“吃某火鍋”沒有任何異議,那么就可以說共識達(dá)成了。 如果存在異議,那么他們就必須通過某種方法決定吃什么。 這群人就會分開。
什么是共識機(jī)制?
區(qū)塊鏈要成為一個難以攻破的、公開的、不可篡改數(shù)據(jù)記錄的去中心化誠實可信系統(tǒng),需要在盡可能短的時間內(nèi)做到分布式數(shù)據(jù)記錄的安全、明確及不可逆,提供一個最堅實且去中心化的系統(tǒng)。共識機(jī)制在區(qū)塊鏈中成為了重要的因素之一。
?
區(qū)塊鏈分布式記賬的方式使得每個人手上都有一本完整的賬本,全網(wǎng)共有。但是隨著節(jié)點的不斷增多,數(shù)據(jù)越多,賬本也越安全,難以摧毀。除此之外,任意一個或者部分節(jié)點的賬本被篡改,都不可能被全網(wǎng)認(rèn)同,除非你能控制51%的節(jié)點,即51%攻擊,但是這耗能巨大,幾乎是不可能的。同時隨著節(jié)點不斷增加,誰來記賬,如何選擇合適的人來記賬成為一個問題,而制定一個記賬人的選擇方式以及規(guī)定,讓大家來遵守這個規(guī)定,達(dá)成共識,這就是區(qū)塊鏈里面的共識機(jī)制。
?
共識機(jī)制是區(qū)塊鏈節(jié)點就區(qū)塊信息達(dá)成全網(wǎng)一致共識的機(jī)制,說得更直白一些就是要解決所謂去中心化的信任問題,因為每個節(jié)點之間默認(rèn)是不認(rèn)識且不可靠的,同時每個節(jié)點都不能知道其他節(jié)點是否宕機(jī)或者背叛的情況下,盡可能的保證記錄信息的準(zhǔn)確性以及安全性。同時節(jié)點越分散,效率越低,網(wǎng)絡(luò)對于信息的滿意度越高,越安全。
共識機(jī)制的目標(biāo)
區(qū)塊鏈作為一種按時間順序存儲數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu),可支持不同的共識機(jī)制。共識機(jī)制是區(qū)塊鏈技術(shù)的重要組件。區(qū)塊鏈共識機(jī)制的目標(biāo)是使所有的誠實節(jié)點保存一致的區(qū)塊鏈視圖,同時滿足兩個性質(zhì):
1)一致性:所有誠實節(jié)點保存的區(qū)塊鏈的前綴部分完全相同。
2)有效性:由某誠實節(jié)點發(fā)布的信息終將被其他所有誠實節(jié)點記錄在自己的區(qū)塊鏈中。
為什么需要共識機(jī)制?
在分布式系統(tǒng)中,各個不同的主機(jī)通過異步通信方式組成網(wǎng)絡(luò)集群。為了保證每個主機(jī)達(dá)成一致的狀態(tài)共識,就需要在主機(jī)之間進(jìn)行狀態(tài)復(fù)制。異步系統(tǒng)中,可能會出現(xiàn)各樣的問題,例如主機(jī)出現(xiàn)故障無法通信,或者性能下降,而網(wǎng)絡(luò)也可能發(fā)生擁堵延遲,類似的種種故障有可能會發(fā)生錯誤信息在系統(tǒng)內(nèi)傳播。因此需要在默認(rèn)不可靠的異步網(wǎng)絡(luò)中定義容錯協(xié)議,以確保各主機(jī)達(dá)成安全可靠的狀態(tài)共識。所以,利用區(qū)塊鏈構(gòu)造基于互聯(lián)網(wǎng)的去中心化賬本,需要解決的首要問題是如何實現(xiàn)不同賬本節(jié)點上的賬本數(shù)據(jù)的一致性和正確性。
?
這就需要借鑒已有的在分布式系統(tǒng)中實現(xiàn)狀態(tài)共識的算法,確定網(wǎng)絡(luò)中選擇記賬節(jié)點的機(jī)制,以及如何保障賬本數(shù)據(jù)在全網(wǎng)中形成正確、一致的共識。
?
如何評價一個共識機(jī)制的優(yōu)劣:
?
- 安全性:能否有效防止二次支付,私自挖礦
- 擴(kuò)展性:當(dāng)系統(tǒng)成員和待確認(rèn)交易數(shù)量增加時,所帶來的系統(tǒng)負(fù)載和網(wǎng)絡(luò)通信量的變化,通常以網(wǎng)絡(luò)吞吐量來衡量
- 性能效率:每秒可以處理的交易數(shù)量
- 資源消耗:達(dá)成共識過程中,所要消耗的CPU、內(nèi)存等計算資源
- ?
共識機(jī)制分類
?
沒有一種共識機(jī)制是完美無缺的,各共識機(jī)制都有其優(yōu)缺點,有些共識機(jī)制是為解決一些特定的問題而生。
BTC作為區(qū)塊鏈的第一個應(yīng)用,它的共識機(jī)制PoW共識機(jī)制曾經(jīng)一枝獨秀,但是隨著區(qū)塊鏈技術(shù)的不斷發(fā)展,各類不同的共識機(jī)制開始不斷涌現(xiàn),各有千秋,各有擁躉。
?
常見的共識就機(jī)制包括:POW(工作量證明機(jī)制)、POS(權(quán)益證明機(jī)制)、POW+POS(混合共識機(jī)制)、DPOS(股份授權(quán)證明)等等,另外還有Pool驗證池、Ripple瑞波共識協(xié)議、PBFT(使用拜占庭容錯算法)等等
?
PoW( Proof of Work)工作量證明:多勞多得
?
最早(也是第一個)被應(yīng)用的共識機(jī)制,最先被BTC采用并且獲取了巨大成功,它支撐了BTC系統(tǒng)長達(dá) 10 多年無重大故障使其平穩(wěn)運(yùn)行。而且 PoW 構(gòu)想也符合創(chuàng)始人中本聰最初的設(shè)想:人人皆可挖礦、按勞分配、公平公正。
?
PoW 屬于按勞分配,多勞多得,就如同大家在BTC系統(tǒng)中一起進(jìn)行數(shù)學(xué)運(yùn)算,最先運(yùn)算出的才能獲得獎勵。是一種衡量計算機(jī)工作量的共識機(jī)制。BTC使用的就是工作量證明機(jī)制。
?
工作量證明主要通過哈希計算找出合理數(shù)據(jù)的步驟來完成:將區(qū)塊頭數(shù)據(jù)帶入哈希函數(shù)計算公式,不斷調(diào)整區(qū)塊頭數(shù)據(jù)中的隨機(jī)數(shù),直到計算出滿足特定標(biāo)準(zhǔn)的哈希值,工作量證明就會完成。
?
簡單來說就是多勞多得,誰的算力強(qiáng),計算得就更快,獲得記賬權(quán)的概率就越高,算力競爭的勝者將獲得相應(yīng)區(qū)塊記賬權(quán)和BTC獎勵。 因此,礦機(jī)芯片的算力越高,挖礦的時間更長,就可以獲得更多的數(shù)字貨幣。進(jìn)行運(yùn)算獲得獎勵的過程稱之為挖礦,參與挖礦的人們稱之為礦工。這種證明方式?jīng)Q定了其驗證過程需要大量的數(shù)據(jù)計算,而其他節(jié)點卻很容易驗證計算結(jié)果是否正確,因此 區(qū)塊鏈系統(tǒng)無法被惡意節(jié)點所欺騙。但是這種證明方式需要消耗大量能源(電力及計算硬件損耗),很不 環(huán)保。并且在理論上,如果集合了全網(wǎng)51%的算力即可對區(qū)塊鏈網(wǎng)絡(luò)進(jìn)行有效攻擊,因此許多基于比特幣 代碼產(chǎn)生的、市值較小的山寨幣很容易遭受攻擊。
?
代表token:BTC、BCH、LTC等。
?
優(yōu)點
公平公正:去中心化程度高,人人都可以參與獲得記賬權(quán);
安全系數(shù)高:全網(wǎng)算力越高,其安全程度也越高,如破壞該系統(tǒng)需要投入巨大成本;
算法簡單,容易實現(xiàn)
缺點
資源浪費:因每一筆交易都需要通過多數(shù)礦工的確認(rèn),在這些礦工進(jìn)行運(yùn)算的過程中消耗大量的電力資源等。
效率低下:區(qū)塊的確認(rèn)時間難以縮短;容易產(chǎn)生分叉,需要等待多個確認(rèn)。
算力集中:根據(jù)往年數(shù)據(jù)顯示,在資本大量進(jìn)入的情況下,過去一年礦池算力份額排名前五位的礦池占據(jù)了BTC總算力份額的 65%,馬太效應(yīng)逐漸顯現(xiàn),而算力過度集中還存在著 51% 攻擊的風(fēng)險。
永遠(yuǎn)沒有最終性,需要檢查點機(jī)制來彌補(bǔ)最終性。
?
PoS(Proof of Stake)股權(quán)證明算法:持有越多,獲得越多
?
因 PoW 存在的問題,PoS 在主流算法一路暢通的“殺了出來”,成為了最具有挑戰(zhàn)者。近幾年,基于 PoS共識打造的區(qū)塊鏈項目越來越多,如目前市值保持第二的ETH也加入了 PoS?!癝taking經(jīng)濟(jì)”在 2019年成為了熱門詞語,同時也被交易所和錢包大力追捧。
?
POS機(jī)制采用類似股權(quán)證明與投票的機(jī)制,選出記帳人,由它來創(chuàng)建區(qū)塊。持有股權(quán)愈多則有較大的特權(quán),且需負(fù)擔(dān)更多的責(zé)任來產(chǎn)生區(qū)塊,同時也獲得更多收益的權(quán)力。 POS 機(jī)制中一般用幣齡來計算記賬權(quán),每個幣持有一天算一個幣齡,比如 持有 100 個幣,總共持有了 30 天,那么此時的幣齡就為 3000。在 POS機(jī)制下,如果記賬人發(fā)現(xiàn)一個 POS 區(qū)塊, 他的幣齡就會被清空為 0,每被清空 365 幣齡,將會從區(qū)塊中獲得 0.05 個幣的利息(可理解為年利率 5%)。
?
PoS權(quán)益證明同樣需要通過計算找出合理的哈希值來完成。 但不同的是權(quán)益證明機(jī)制通過節(jié)點持有加密貨幣的時間和數(shù)量來判斷節(jié)點的權(quán)益大小。根據(jù)權(quán)益大小不同,用戶之間看到的計算目標(biāo)值也不同。權(quán)益大的節(jié)點,獲得目標(biāo)值更加簡單,更容易獲得下一個區(qū)塊的記賬權(quán)。文章來源地址http://www.zghlxwxcb.cn/news/detail-796721.html
到了這里,關(guān)于智能合約及其web3共識機(jī)制的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!