以太坊的pos共識機制
1、以太坊技術(shù)系列-以太坊共識機制
區(qū)塊鏈的特點之一是去中心化。也就是節(jié)點會分布在各個地方組成分布式系統(tǒng)。各個節(jié)點需要對1個問題達成一致,理想情況下,只需要同步狀態(tài)即可。如上圖所示 B節(jié)點將a=1=> a=2的狀態(tài)同步給 ACDE四個節(jié)點,這時系統(tǒng)中狀態(tài)變?yōu)閍=2, 但如果其中有惡意節(jié)點 AE 收到通知后把a=1=>a=3修改為錯誤的節(jié)點,這個時候大家的狀態(tài)就不一致了,此時需要共識機制使系統(tǒng)中得到1個唯一正確的狀態(tài)。
如上面說到分布式系統(tǒng)存在惡意節(jié)點導致系統(tǒng)中狀態(tài)不一致的情況有1個比較著名的虛擬問題-拜占庭將軍問題。
拜占庭將軍問題是指,N個將軍去攻打一座城堡,如果大于一定數(shù)量的將軍同時進攻則可以攻打成功,如果小于則進攻失敗。將軍中可能存在叛徒。
這個時候有2種情況
1.如果2個叛徒都在BCDE中,那么共識算法需要讓其余2個將軍聽從A的正確決策進攻城堡。
2.如果A是1個叛徒,共識算法需要讓BCDE中剩余的3個忠誠將軍保持一致。
這個問題有很多種解法,大家有興趣可以自行查閱(推薦學習PBFT),我們重點來看看以太坊中目前正在使用的Nakamoto 共識和將要使用的 Casper Friendly Finality Gadget共識是如何解決拜占庭將軍問題的。
說到Nakamoto共識和Casper Friendly Finality Gadget共識可能大家不太熟悉,但他們的部分組成應(yīng)該都比較熟悉-POW(工作量證明)和POS(權(quán)益證明)。
POW或POS稱之為Sybil抗性機制,為什么需要Sybil抗性機制呢,剛剛我們說到拜占庭將軍問題,應(yīng)該很容易看出惡意節(jié)點越多,達成正確共識的難度也就越大,Sybil攻擊就是指1個攻擊者可以偽裝出大量節(jié)點來進行攻擊,Sybil抗性是指抵御這種攻擊能力。
POW通過讓礦工或驗證者投入算力,POS通過讓驗證者質(zhì)押以太坊,如果攻擊者要偽裝多個節(jié)點攻擊則必將投入大量的算力或資產(chǎn),會導致攻擊成本高于收益。在以太坊中保障的安全性是除非攻擊者拿到整個系統(tǒng)51%算力或資產(chǎn)否則不可能進攻成功。
在解決完Sybil攻擊后,通過選取系統(tǒng)中的最長鏈作為大家達成共識的鏈。
很多人平時為了簡化將pow和pos認為是共識機制,這不夠準確,但也說明了其重要作用,我們接下來分析pow和pos。
通過hash不可逆的特性,要求各個礦工不停地計算出某個值的hash符合某一特征,比如前多少位是000000,由于這個過程只能依賴不停的試錯計算hash,所以是工作量證明。計算完成后其他節(jié)點驗證的值符合hash特征非常容易驗證。驗證通過則成為成為合法區(qū)塊(不一定是共識區(qū)塊,需要在最長鏈中)。
以太坊中的挖礦算法用到2個數(shù)據(jù)集,1個小數(shù)據(jù)集cache,1個大數(shù)據(jù)集DAG。這2個數(shù)據(jù)集會隨著區(qū)塊鏈中區(qū)塊增多慢慢變大,初始大小cache為16M DAG為1G。
我們先來看這2個數(shù)據(jù)集的生成過程
cache生成規(guī)則為有1個種子隨機數(shù)seed,cache中第1個元素對seed取hash,后面數(shù)組中每個元素都是前1個元素取hash獲得。
DAG生成規(guī)則為 找到cache中對應(yīng)的元素后 根據(jù)元素中的值計算出下次要尋找的下標,循環(huán)256次后獲得cache中最終需要的元素值進行hash計算得到DAG中元素的值。
然后我們再看看礦工如何進行挖礦以及輕節(jié)點如何驗證
礦工挖礦的過程為,選擇Nonce值映射到DAG中的1個item,通過item中的值計算出下次要找的下標,循環(huán)64次,得到最終item,將item中的值hash計算得到結(jié)果,結(jié)果和target比較,符合條件
則證明挖到區(qū)塊,如果不符合則更換nonce繼續(xù)挖礦。礦工在挖礦過程中需要將1G的DAG讀取到內(nèi)存中。
輕節(jié)點驗證過程和礦工挖礦過程基本一致,
將塊頭里面的Nonce值映射到DAG中的1個item,然后通過cache數(shù)組計算出該item的值,通過item中的值計算出下次要找的下標,循環(huán)64次,得到最終item,將item中的值hash計算得到結(jié)果,結(jié)果和target比較,符合條件則驗證通過。輕節(jié)點在驗證過程中不需要將1G的DAG讀取到內(nèi)存中。每次用到DAG的item值都使用cache進行計算。
以太坊為什么需要這2個不同大小的數(shù)組進行輔助hash運算呢,直接進行hash運算會有什么問題?
如果只是進行重復(fù)計算會導致挖礦設(shè)備專業(yè)化,減少去中心化程度。因為我們?nèi)粘J褂玫挠嬎銠C內(nèi)存和計算力是都需要的,如果挖礦只需要hash運算,挖礦設(shè)備則會設(shè)計地擁有超高算力,但對內(nèi)存可以縮小到很小甚至沒有。所以我們選用1G的大內(nèi)存增加對內(nèi)存訪問的頻率,增加挖礦設(shè)備對內(nèi)存訪問需求,從而更接近于我們?nèi)粘J褂玫挠嬎銠C。
我們看看在Nakamoto共識是如何解決拜占庭將軍問題的。首先看看區(qū)塊鏈中的拜占庭將軍問題是什么?
區(qū)塊鏈中需要達成一致的是哪條鏈為主鏈,雖然采用了最長鏈原則,但由于分叉問題,還是會帶來拜占庭將軍問題。
本來以太坊pow目標是抵抗51%以下的攻擊,但如上圖如果惡意節(jié)點沿著自己挖出的區(qū)塊不斷挖礦,由于主鏈上有分叉存在,惡意節(jié)點不需要達到51%算力就可以超過主鏈進而成為新的主鏈,為此以太坊使用了ghost協(xié)議給上圖中的B1和C1也分配出塊獎勵,盡快合并到主鏈中,這樣主鏈長度(按照合并后的總長度算,長度只是抽象概念,以太坊中按照區(qū)塊權(quán)重累加)還是大于惡意節(jié)點自己挖礦的。
網(wǎng)絡(luò)中的用戶通過質(zhì)押一定數(shù)量的以太坊成為驗證者。每次系統(tǒng)從這些驗證者從隨機選擇出區(qū)塊創(chuàng)建者,其余驗證者去驗證創(chuàng)建出的區(qū)塊是否合法。驗證者會獲得出塊獎勵,沒有被選中的區(qū)塊不進行驗證則會被扣除一定質(zhì)押幣,如果進行錯誤驗證則會被扣除全部質(zhì)押幣。
如上圖,權(quán)益證明在每隔一定區(qū)塊的地方設(shè)置一個檢查點,對前面的區(qū)塊進行驗證,2/3驗證者通過則驗證通過,驗證通過則該區(qū)塊所在鏈成為最長合法鏈(不能被回滾)。
我們簡化地只分析了權(quán)益證明本身,在以太坊中權(quán)益證明較為復(fù)雜的點在于和分片機制結(jié)合在一起時的運行流程,這部分會在后面單獨將分片機制的一篇文章中詳述。
本篇文章主要討論了共識機制是解決分布式系統(tǒng)中的拜占庭將軍問題,以及分析了以太坊中的共識機制一般包括最長鏈選擇和一種sybil抗性機制(pow或pos)。重點分析了pow和pos的流程以及設(shè)計思想。后續(xù)將開始重點討論智能合約的部分。
2、以太坊pos模式是什么意思
POS是一種在公鏈中的共識算法,可作為POW算法的一種替換。POW是保證比特幣、當前以太坊和許多其它區(qū)塊鏈安全的一種機制,但是POW算法在挖礦過程中因破壞環(huán)境和浪費電力而受到指責。POS試圖通過以一種不同的機制取代挖礦的概念,從而解決這些問題。【拓展資料】
POS機制可以被描述成一種虛擬挖礦。鑒于POW主要依賴于計算機硬件的稀缺性來防止女巫攻擊,POS則主要依賴于區(qū)塊鏈自身里的代幣。在POW中,一個用戶可能拿1000美元來買計算機,加入網(wǎng)絡(luò)來挖礦產(chǎn)生新區(qū)塊,從而得到獎勵。而在POS中,用戶可以拿1000美元購買等價值的代幣,把這些代幣當作押金放入POS機制中,這樣用戶就有機會產(chǎn)生新塊而得到獎勵。在POW中,如果用戶花費2000美元購買硬件設(shè)備,當然會獲得兩倍算力來挖礦,從而獲得兩倍獎勵。同樣,在POS機制中投入兩倍的代幣作為押金,就有兩倍大的機會獲得產(chǎn)生新區(qū)塊的權(quán)利。
眾所周知,第三季度的“DeFi熱”促使以太坊網(wǎng)絡(luò)上的交易量大幅增加,DappRadar 2020 Q3 Dapp報告指出,以太坊交易量在2020年第三季度猛增至1195億美元,與第二季度相比增長了近1200%,但隨著而來的是網(wǎng)絡(luò)堵塞,交易費猛增。在今年9月9日,以太坊平均交易費用達到14美元的高度,刷新歷史記錄。因費用飆升,導致許多交易只能延遲。
EOS創(chuàng)始人BM感嘆稱:對于大多數(shù)正常規(guī)模的交易來說,以太坊交易費用太高了。
目前的以太坊仍然面臨多重問題,首先老生常談的是上面提到的交易處理,以太坊網(wǎng)絡(luò)支持數(shù)千個去中心化應(yīng)用程序,每秒都需要處理大量交易,而采用PoW共識機制的以太坊1.0,每秒只能處理約10-50筆交易,遠小于PayPal、Visa 等中心化網(wǎng)絡(luò),遠無法滿足用戶對于交易速度的需求。手續(xù)費高昂一直是以太坊被詬病的一個重要的點,V神直言,在rollups和分片完成之前,以太坊別無選擇,只能忍受高額交易費。因此以太坊需要升級。
3、區(qū)塊鏈共識算法――(二)PoS共識(Proof of Stake)
2011 年 7 月, 一 位 名 為 Quantum Mechanic 的 數(shù) 字 貨 幣 愛 好 者 在 比 特 幣 論 壇 首次提出了權(quán)益證明 PoS 共識算法. 隨后, Sunny King 在 2012 年 8 月發(fā)布的點點幣 (Peercoin, PPC) 中首次實現(xiàn). PoS 由 系統(tǒng)中具有最高權(quán)益而非最高算力的節(jié)點獲得記賬 權(quán), 其中權(quán)益體現(xiàn)為節(jié)點對特定數(shù)量貨幣的所有權(quán), 稱為幣齡或幣天數(shù) (Coin days)
PoS是考慮到PoW的最大缺陷:浪費資源而提出的,簡單來說就是 誰的權(quán)益大,誰說了算 。
PoS共識機制(Proof of Stake 權(quán)益證明)通過權(quán)益記賬的方式,解決效率低下、資源浪費、節(jié)點一致性等問題。
各個節(jié)點需要滿足一定的條件(如抵押一定的代幣)才能成為驗證節(jié)點(權(quán)益提高),系統(tǒng)通過算法在其中選擇一部分作為出塊節(jié)點(礦工),每隔一段時間重新選擇,算法會保證完全隨機,不可被操控。只有出塊節(jié)點才能進行數(shù)據(jù)處理,爭奪記賬權(quán)。
權(quán)益主要由權(quán)益因子決定,可以是持幣數(shù)量,也可以是幣齡及兩者的結(jié)合。
以太坊在之后很有可能會改用PoS進行共識,其更加符合以太坊高效率的特點。
4、以太坊共識協(xié)議Casper原理是怎樣的
Casper(投注共識)是一種以太坊下一代的共識機制,屬于PoS。Casper的共識是按塊達成的而不是像PoS那樣按鏈達成的。數(shù)字貨幣交易所幣匯5、什么是pos算法和pos機制
pos是公鏈中的共識算法,作為pow的一種替換。pow是保證比特幣,當前以太坊和許多區(qū)塊鏈安全的一種機制,但是pow算法在挖礦過程中,因為破壞環(huán)境和浪費電而受到指責,pos試圖通過一種不同的機制取代挖礦的概念,從而解決這些問題。ps機制可以被描述成一種虛擬挖礦,鑒于pow主要依賴于計算硬件的稀缺性,來防止女巫攻擊。在pow中,一個用戶有可能用一千美元來買計算機,加入網(wǎng)絡(luò)來挖礦,產(chǎn)生新區(qū)塊,從而得到獎勵。在pos中,用戶可以拿到一千美元,買到等值的代幣,把這些代幣當做押金放在pos機制之中,只要用戶就有機會產(chǎn)生,這樣用戶可以得到獎勵。
pos算法如下,存在一個持幣人的集合,他們把手中的代幣放入pos機制中,這樣他們就變成驗證者。

轉(zhuǎn)載請帶上網(wǎng)址:http://www.yadikedp.com/posjitwo/107466.html
- 上一篇:不用信用卡的pos機
- 下一篇:pos機消費地點查詢