買比特幣 買比特幣
Ctrl+D 買比特幣
ads

EHE:以太坊:Safe Head 機制介紹(一)_HEAD

Author:

Time:1900/1/1 0:00:00

作者:NicLin,imTokenLabs資深區塊鏈工程師

本文受眾:區塊鏈開發者

如果想復習以太坊TheMerge的其他改動,可以參考這篇:

https://medium.com/taipei-ethereum-meetup/eth-2-0-cl-el-separation-and-impact-of-the-merge-dbeb6828c907

讀者會需要對以太坊PoS的術語和機制有基本的了解。

SafeHead做什么用?

在PoW中,如果沒有指定你要哪個區塊的狀態,節點預設就會回傳給你latest區塊的狀態,也就是最新的狀態。但是進到PoS后,PoS的區塊比PoW區塊更不可靠,因為PoS產生區塊不需要任何「work」,而是只要是被指派的proposer都可以產生一個合法區塊。這表示在PoS里取latest區塊的狀態會更容易發生區塊、狀態被回滾,也因此才會出現SafeHead這個BlockTag:一個比latest區塊還舊一些些但是可靠許多的區塊,讓DApp呈現數據給使用者看的時候,不會因為區塊不可靠、經常因為reorg而被revert導致使用體驗變很差。

正常情況下對新區塊而言,在出塊后約四秒,即會被標為safe,成為safe區塊,使該區塊更可靠不過當網絡出現問題或有攻擊發生時,safe區塊還是有可能revert回舊的區塊ProofofStake

當前以太坊L2總鎖倉量為92.2億美元:金色財經報道,據L2BEAT數據顯示, 當前以太坊L2總鎖倉量為92.2億美元,7日漲幅1.32%。其中,鎖倉量前五分別為:ArbitrumOne(60.5億美元,7日漲幅1.93%);Optimism(19.4億美元,7日漲幅3.7%);dYdX(3.49億美元,7日漲幅0.43%);zkSyncEra(2.08億美元,7日漲幅66.81%);ImmutableX(1.27億美元,7日漲幅5.99%)。[2023/4/12 13:58:54]

在介紹SafeHead之前,先快速復習一下以太坊的PoS共識機制。

在PoS中,時間被劃分為每12秒為一個slot,每32個slot為一個epoch。PoS的Validator當前約有接近43.8萬個,在每個epoch全部的Validator會被分配到不同的slot,并負責在該slot產生Attestation,產生Attestation可以視為投票的動作。此外,每個slot的Validator還會細分為64個不同的committee,這是為了支援Eth2計劃中會有64個ShardChain的設計:每個committee分別投給不同ShardChain的區塊,但在Sharding推出前這些committee可以先視為同一個committee。

每一個Validator在其Attestation中主要要填入兩個投票的對象:他支持的區塊及epoch。一個slot有13700個Validator,所以一個區塊最多會有13700張選票投給它;一個epoch有43.8萬個Validator,所以一個epoch最多會有43.8萬張選票投給它。

以太坊Layer2上總鎖倉量 近7日上漲11.72%:金色財經報道,L2BEAT數據顯示,截至目前,以太坊Layer2上總鎖倉量為62.3億美元,近7日漲11.72%。其中鎖倉量最高的為擴容方案Arbitrum One,約32.3億美元,占比51.78%,其次是Optimism,鎖倉量19.6億美元,占比34.3%。[2023/2/18 12:15:08]

針對區塊及epoch的投票其實分別就是以太坊PoS中ForkChoiceRule及CasperFFG兩層共識機制的核心,下面一層是持續不斷在增長的區塊,共識是靠ForkChoiceRule決定,以區塊為單位,看的是每個區塊的得票數及其子孫區塊的得票數;搭建在上面的是運作比較緩慢的CasperFFG,以epoch為單位,看的是每個epoch的得票數。

不斷增長的區塊,使用的共識是ForkChoiceRule

CasperFFG是以epoch為單位的共識

兩層共識是并行運作的

這篇分析五月PoSreorg的文章也有簡短但是更細節的共識機制介紹。

ForkChoiceRule

你可能會好奇已經有ForkChoiceRule幫忙從多條分叉鏈中算出目前哪條才是最長鏈,為什么還會需要再算一個SafeHead?或是反過來,為什么不干脆用SafeHead算法取代ForkChoiceRule?

Axie Infinity:跨鏈橋問題導致以太坊鏈上一些存款被卡,暫無法發送到Ronin鏈上錢包:7月2日消息,Axie Infinity官方在社交媒體上發文表示,由于跨鏈橋問題導致以太坊區塊鏈上的一些存款被卡,因此資金不會被發送到Ronin鏈上錢包,但這些資金不會丟失。

Axie Infinity已經確定了問題并正在研究解決方案,預計將會對網橋進行更新,而且已經在驗證者的支持下啟動流程,預計更新將在下周末進行。目前很難說這個問題多久會發生一次,僅知道跨鏈橋開通以來出現過兩次,一旦解決方案到位,當前被卡的存款會被發送到指定Ronin錢包。[2022/7/2 1:46:36]

其實ForkChoiceRule和SafeHead可以視為兩個不一樣的機制。節點需要ForkChoiceRule來決定目前最長鏈是哪一條,proposer才能將區塊建立在最長鏈之上,即便最新的區塊獲得的得票數不高,但節點算出的最長鏈就是這條,所以還是得接在這個最新區塊后面。而SafeHead是給DApp、給使用者看的,是節點替他們找出的一個比較舊但是可靠許多的區塊。

針對ForkChoiceRule其實有不少攻擊,例如BalancingAttack會讓節點不斷在兩條分叉鏈之間切換。其他攻擊可以參考最下方SafeHead投影片里的第3頁到第7頁。這些攻擊都有可能造成reorg,而SafeHead其實不是要算出一個區塊是可以在攻擊發生時還能不被影響,因為reorg是沒辦法避免的。

以太坊L2網絡總鎖倉量為54.7億美元:金色財經報道,L2BEAT數據顯示,截至2月24日,以太坊Layer2上總鎖倉量為54.7億美元。其中鎖倉量最高的為擴容方案Arbitrum,約29.1億美元,53.23%;其次是dYdX,鎖倉量為10億美元,占比18.37%;第三為MetisAndromeda,鎖倉量為4.14億美元,占比7.58%。[2022/2/24 10:11:41]

CasperFFG

因為接下來會提到CasperFFG的相關名詞,所以在這里先做一個重點提要,在文章末段會有更深入的CasperFFG介紹。

CasperFFG有兩個產物:JustifiedCheckpoint及FinalizedCheckpoint當Checkpoint獲得超過2/3Validator投票會變成JustifiedCheckpoint,是很安全的區塊當區塊連續兩個epoch都獲得超過2/3Validator投票則會變成FinalizedCheckpoint,具有Finality性質,是非常非常安全的區塊接下來將會進入今天的正題:SafeHead

SafeHead

在網絡正常且沒有攻擊的情況下,在新區塊出塊后約四秒,即會被標為safe,成為safe區塊,使該區塊更可靠。這是因為SafeHead是基于每個區塊的得票率去做計算,當網絡出現問題或攻擊正在進行時,一個正常節點所觀察到的區塊得票率會開始下降,因為那些消失的票數可能投給另一條分叉鏈上的區塊。在這種情況出現時,SafeHead會停住或甚至revert回舊的區塊。

由于以太坊Gas價格 合成資產平臺Public Mint推遲其IDO:據官方消息,合成資產平臺Public Mint表示,由于以太坊的Gas價格會對參與IDO的參與者產生負面影響,與Plkastarter協商推遲了IDO。官方表示,將在未來24小時內宣布一個新的IDO時間表。[2021/2/23 17:45:20]

PoS節點可以由觀察到的得票率變化來做應對,相反的在PoW里攻擊者暗中建造的鏈一但成為最長鏈,正常節點手上的區塊就會直接被reorg掉,節點沒有辦法提前觀察出異狀。

使用范例

讀取Vitalik最新的余額:awaitprovider.getBalance("vitalik.eth")讀取Vitalik的余額:awaitprovider.getBalance("vitalik.eth","safe")要找出SafeHead主要分成兩步驟:先算出區塊得票率,再算出一個區塊包含其所有子孫區塊的得票率平均。

先算出區塊得票率

要能算出SafeHead,首先第一步是算出每個區塊的得票率。一開始有提到目前每個slot最多可以獲得13700張選票,所以得票數除上13700就可以算出得票率。

注:如果某個slot被指派的proposer沒有propose區塊,則被分配到該slot的Validator就會投給前一個區塊。所以其實一個區塊的得票數是有可能會高于該slot所被分配到的Validator數量的。

每個Attestation里要填入的值會包含slot、index及beaconBlockRoot這三個。slot就是該Validator被分配到的slot,index是他被分到的committee編號,beaconBlockRoot是它投的區塊的blockroot。有了這些資料我們就可以為每個區塊算出得票數及得票率:針對每個區塊找出所有beaconBlockRoot和它的blockroot一樣的Attestation,接著要去掉重復的Validator,這是因為Validator簽完Attestation后會廣播到p2p網絡中,然后這些Attestation會被合并起來,而因為負責合并的人可能有多個,所以同一個Attestation可能會出現在不同合并者合并后的Attestation中。去掉這些重復后的Attestation數量就是得票數。

接著算出一個區塊包含其所有子孫區塊的得票率平均

這里比較難解釋,因此直接搭配圖示解釋比較清楚:

從JustifiedCheckpoint往后的區塊開始計算一個區塊本身得票率加上所有子孫區塊的得票率平均就是一個區塊的SafeHead分數當一個區塊的SafeHead分數超過50則可視為SafeHead場景一

Block2的分數為其本身得票率加上每個子孫區塊的得票率的平均:(95959590)/400=94%。以此類推,Block6是最新區塊,沒有得票率,所以Block5分數即為本身得票率。

場景二:Block4平均得票率為45%,沒辦法被視為SafeHead

即便子孫區塊出現分叉也算,因為投給這些子孫區塊都隱含投給這個區塊本身沒出塊的slot的得票率只能打五折場景三:如果出現分叉,得票率可以相加,因為都隱含投給Block4及其祖先區塊

場景四:Slot4沒出塊,在算它自身得票率時需打五折:55/2=27.5

場景五

以上是SafeHead的算法,看起來還算能理解,但每個新的區塊的得票率都會影響所有祖先區塊,且每個區塊都要考慮所有的子孫區塊的得票率,所以實踐上其實不是這么簡單。

還沒實踐的SafeHead算法

但目前這個SafeHead算法還沒被實踐,DApp如果現在使用safe這個BlockTag去查詢鏈的狀態,都會得到JustifiedCheckpoint那個時間點的狀態,也就是目前的SafeHead等于JustifiedCheckpoint。

JustifiedCheckpoint太久了,如果使用JustifiedCheckpoint則DApp前端顯示的是至少6.4分鐘以前的信息,或者是使用者送出交易要6.4分鐘才會顯示出來,這都是非常糟糕的使用體驗。所以現在還不適合用safe這個BlockTag,但只能用latest區塊嗎?其實到目前為止網絡一直都正常且PoS運作也都非常順利,每個區塊得票率幾乎都是九成以上,所以在過渡期內先用latest區塊或BlockConfirmationRule也不需要擔心會常常碰到reorg。

注:只單純看區塊數而不看區塊「得票數」的方式都不可靠,例如PoS里用BlockConfirmationRule就不可靠。不過如同上述,PoS到現在都運作得非常好,所以不需太擔心。

下一篇將介紹imToken嘗試實踐的SafeHead版本、除了SafeHead之外能做的事、CasperFFG以及該怎么使用Checkpoint和SafeHead。

參考資料

SafeBlockConfirmationRule-HackMDEthereumPoSAttackandDefense—jmcook.eth介紹SafeHead算法的投影片:

Highconfidenceblockconfirmations

特別感謝Chih-ChengLiang,Chang-WuChen,StevenWu和doublespending校對本文并提供改進建議。

風險提示:本文內容均不構成任何形式的投資意見或建議。imToken對本文所提及的第三方服務和產品不做任何保證和承諾,亦不承擔任何責任。數字資產投資有風險,請謹慎評估該等投資風險,咨詢相關專業人士后自行作出決定。

Tags:SAFEEHEHEADALISAFELIGHTHEHEHEAD價格DecentralizedUnited

加密貨幣
TCOIN:Hotcoin關於恢復XEC充提業務的公告_HOT

尊敬的用戶:XEC網絡升級已完成,Hotcoin現已恢復XEC的充值、提現業務。對您造成的不便深表歉意!感謝您對Hotcoin的支持與信任!HotcoinGlobal2022年11月3日去中心化.

1900/1/1 0:00:00
頂級分析師:以太坊、卡爾達諾和狗狗幣將要突破某個價格

一位受歡迎的加密策略師表示,三個山寨幣正在每周或每月的時間范圍內消除關鍵阻力位。化名分析師Rekt告訴他的329,100名Twitter追隨者,以太坊(ETH)已經成功突破了自ETH以來一直阻止.

1900/1/1 0:00:00
Huobi:Huobi Global has Completed the Renaming and Conversion of GALA Assets_ALA

DearHuobiUsers,HuobiGlobalhascompletedtherenamingofGALAtoPGALAandconvertedourusers''PGALAassetsto.

1900/1/1 0:00:00
Coinw:關于CT延遲上線的公告_國內怎么下載coinbase

尊敬的CoinW用戶: CoinW將于2022/11/3?21:00(UTC8)延遲上線CT,感謝您的諒解與支持!CT上線信息:CoinW將于11/320:00上線Create(CT).

1900/1/1 0:00:00
人工智能:隨著美聯儲繼續提高利率以對抗通脹,經濟學家警告經濟將嚴重衰退_人工智能幣有哪些

越來越多的經濟學家警告說,如果美聯儲繼續與通脹作斗爭,美國將出現嚴重衰退。“外部世界的每一個不利發展都意味著美聯儲將不得不采取更多措施來控制局勢,”一位經濟學家表示.

1900/1/1 0:00:00
NFT:十個有用的加密工具和項目_ETH

下面我分享一些你可能還沒有聽說過的加密貨幣和以太坊有用的工具。有數百個甚至數千個令人敬畏的東正在構建,因此無法對它們進行排名或涵蓋所有內容,但希望您至少可以從本文中提取一件事.

1900/1/1 0:00:00
ads