iT邦幫忙

2025 iThome 鐵人賽

DAY 12
0

特務 K 與小雨繼續他們在 https://beaconcha.in/ 儀表板的觀察任務。

先前看完了頭版標題的數字之後,他們往下看到一張標題為 "Network History" 的雙軸線圖。

  • 橫軸的時間已標上第幾個計票期。
  • 左邊的縱軸對應總押金的餘額,單位是 ETH 。對應淡藍色的線
  • 右邊的縱軸則是驗證驗證者的數量。對應淡綠色的線

特務 K 試著把右邊縱軸格線的數字乘 32 ,與左邊縱軸的格線同樣的位置還差了一大截。小雨也無法解釋,只說雙軸線圖通常蠻混淆的,要小心解讀。


再往下一張,是一張充滿綠色格子,有動畫的圖。

圖的上方有小小的數字與格子,5 個綠色格子一數,共 32 個格子。代表一個計票期中的第幾個出塊期。

圖的左方也有小小的數字,標記第幾個計票期。

最上方的一列,通常有綠色格子和灰色格子,閃爍的灰色格子,是當下時間所屬的出塊期。

如果有區塊產出,灰色格子就會變成綠色格子。在很偶然的情況,沒有區塊產出,則會填上紅色格子。

每個計票期的下方有條綠色長長的線,上面可能會依序寫 敲定中(justifying)準敲定(justified)敲定(finalized) 等。旁邊各有一個百分比數字,為 投票率(participation)

「其實就是把整個區塊鏈,按照出塊期拆 32 個出塊期一組呈現」小雨總結。


再往下,兩人看到了一左一右兩個表單,分別為最近的計票期與最近的區塊。

兩人決定略過,回去造訪先前看過的 23231122 號區塊。

在信標鏈儀表板上面相對應的頁面是這裡: https://beaconcha.in/block/23231122

「我記得沒錯的話,你說 2015 年算力制的主網上線,2020 年押金制的信標鏈上線,然後 2022 年大合併,兩鏈併作一鏈?」特務 K 試圖確認。

「沒錯,所以我們預期會在合併之後看到很多盲腸和遺跡,例如重複的時間戳欄位」小雨說。

「那在合併之前,信標鏈也是有區塊和鏈對吧?他們裝什麼東西呢?」特務 K 問。

對其實就是裝共識層相關的 系統訊息 (Operations) 。包含:

  • 到職訊息: 存款(Deposit)
    • 驗證者把押金放到存款合約。信標鏈處理驗證者的押金,並安排其排隊等上工。
  • 工作訊息: 綜合投票(Attestation)
    • 主要要投兩種票:
      • FFG 是投計票期的檢查點,長期把鏈頭敲定。
      • GHOST 是投出塊期的一個區塊,幫助決定短期要選哪個鏈頭。
  • 檢舉訊息: 惡意攻擊證據(Slashing)
    • 檢舉人看到 FFG 的惡意投票,可以蒐集起來發動檢舉。檢舉成功就會沒收惡意驗證者的押金。
  • 離職訊息: 自願離職(Voluntary Exit)
    • 驗證者心生退意,可以遞辭呈領回押金。
  • 雜務訊息:有些像是部分提款、換公鑰格式等訊息,隨著近期的升級,這些雜務的設計快速變化中

信標區塊

Epoch:                         389,212
Slot:                       12,454,797
Block Number:                 23231122
MEV Reward Recipient:    0xBe1B7039cd33d3DA835BC82ccFE39bE05E5684ea
MEV Block Reward:          0.01315 ETH
Status:                     Proposed Finalized
Time:          Aug-27-2025 07:59:47 AM

一開始的欄位,注意第幾個出塊期的數字和區塊序號的數字是不一樣的。前者是從信標鏈出生開始算的,後者是主網出生開始算的。

MEV 是 提取值(Maximal extractable value, MEV) ,是一個比較需要解釋的東西。

這詞最早的詞源是 Miner extractable value ,指在算力制時期,負責產出區塊的礦工,能從其他在換幣合約中換幣的交易中,榨取某種利潤。這是怎麼做的呢?因為礦工擁有排序區塊中交易的能力,他能「三明治夾擊」受害者的交易:在其前後各插入一筆礦工自己的交易;前者推高待換之幣的買價,讓受害者買貴,並進一步推升幣價,後者以前面推高的價格出脫部位。整體下來,礦工無中生有多出一些獲利,而受害者想換幣卻買貴了。礦工從受害者榨取利潤。

在押金制裡面,就沒礦工這個詞了。為了維持名稱一樣的縮寫,Miner extractable value 改為 Maximal extractable value 。由於我們目前還沒談到,但驗證者(Validator)其實現在流行功能拆成 區塊發佈者(Proposer)區塊建造者(Builder) ,前者有押金制內驗整者的身份得以發佈區塊,後者專責排序區塊榨取利潤但與發佈者分享。

儘管道德意涵十分負面,提取值的研究者也認為沒有辦法設計完美的機制根除提取值。他們提出的解法就是:開源提取值科技,讓人人都能輕易取得提取值。

提取值這詞是沒說誰提取誰或哪些值能提取。但一般來說,驗證者能拿到的獎勵都算在裡面。因此區塊獎勵以及指定的獎勵收受人會標上 MEV 名字。


兩人繼續前往下面的欄位

// 驗證者的編號
Proposer:           628903
// 這邊的 Block Root 和 State Root 都是信標鏈的
Block Root:         0x3cff2e5c33c795ce6c0df468621db787d37e1f50ff4d93d8467d40e81d9610bf
Parent Root:        0xa4dbec701d7730e76d273457fd974de7be9831faf30381dbab0a7d9845bd1b8b
State Root:         0xe9bb29e6d5dd027ed0d93da3d1dacc1c1677cfebcd1f69c9a4ce2802b9eec4ee

// 驗證者的簽章
Signature:          0xb69b...ff7f

RANDAO Reveal:      0xb4d4...176b
Graffiti:           0x0000000000000000000000000000000000000000000000000000000000000000

RANDAO 是像數支一樣,其他的驗證者會貢獻隨機數,最後會揭露出最終的隨機數。這些隨機數會決定驗證者出塊的順序。

信標鏈這個名字也是遵循產出隨機數的來源(Randomness Beacon)這個命名慣例。

隨機數非常重要,如果驗證者有辦法操弄隨機數,則有辦法取得多於其押金比例的出塊機會,破壞系統的去中心化。

Graffiti 是一個沒什麼用途的欄位。當時設計來讓大家留下一些訊息,可以組成一個塗鴉牆。現在好像退流行了。


再往下一區是 Eth Data

Eth Data:
Block Hash:     0x0958d83550263ff0d9f9a0bc5ea3cd2a136e0933b6f43cbb17f36e4da8d809b1
Deposit Count:  2045305
Deposit Root:   0x2ebc563cabdbbacbc56f0de1d2d1c2d5315a4b071fcd8566aabbf0a45161c64e

當時信標鏈和主鏈合併之前,信標鏈要怎麼拿到主鏈的存款資料呢?

會有這個問題是因為信標鏈要拿到的資料不能是壞人無中生有,必須是要已經主鏈有共識。因此信標鏈只收一段時間以前(大概兩個多小時)主鏈上的存款紀錄。

簡單說,存款合約會把所有的存款記錄變成一棵雜湊樹。透過雜湊樹成員證明可以確保信標鏈拿到的存款紀錄不是無中生有的。


再往下一區是 Sync Aggregate

這區其實是為了輕客戶端所設計的,但由於使用率沒說太高,不知道還會存在多久。


兩人停留的最後一區是 執行層酬載(Execution Payload)

「這區比較重要」小雨說。「合併之後,信標鏈的區塊其實包覆了以往主鏈的區塊,並更名為執行層酬載。」

特務 K 確認了一下執行層酬載上面欄位的內容,與 blockscout 儀表板上的區塊欄位相同。


上一篇
賞罰分明的電腦
系列文
那個有好多好多節點的電腦調查報告12
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言