「我們前面一直談到驗證者,但一直沒講他們是怎麼運作的」特務 K 問。
他整理了一下我們目前談到的事:
但怎麼成為一個驗證者呢?我們前面操作節點沒操作到。
小雨思考了一下,的確他還沒機會提到驗證者。在準備跑驗證者節點這個大工程之前,也許可以先來看個儀表板。
https://beaconcha.in/ 也是一個 開源 的儀表板,專注在提供共識層上面的資訊。
「在進入儀表版前,我們可以先簡單介紹共識層的功能和角色嗎?」特務 K 問。
「當然可以,共識層的目的,就是讓讓整個點對點網路自動做出決定,讓一段時間以前的資料都敲定下來,不會再動了。」小雨說。
小雨話講得簡單,但背後有些細節。
首先我們知道決定區塊鏈的鏈頭,就能決定那條鏈代表的全域狀態。這個推理是這樣:因為鏈頭有個欄位,是前一個區塊的雜湊值,代表鏈頭能鎖定前一個區塊。而前一個區塊也能以通樣的道理鎖住更前一個區塊。以此類推,決定了鏈頭就決定了過去區塊的歷史。而過去區塊的歷史也唯一決定了過去交易的排序。決定過去交易的歷史,現在的全域狀態就決定了。
再者,要在點對點網路決定這個鏈頭,有點困難。這是因為在點對點網路中,可能同時會有互相競爭的鏈頭。我們列一個可能的情境:
因此,我們需要有些規則來選 a 或 b 。節點們可能可以在幾十秒內對 a 或 b 有所分歧,但幾小時後總得全部認同其中一個。要達到那樣,得要驗證者對 a 或 b 投票。
但驗證者並非都是好人。壞人可能亂投票,目的是故意讓點對點網路無法達成共識,有些節點認為 a 是鏈頭,有些認為 b 是鏈頭。有些覺得你有花了一筆錢,有些覺得你沒有。
點對點網路至此,已經可以算是被破壞掉了。
「以太坊怎麼處理壞人呢?」特務 K 問。
「這就是為什麼要押金制了,驗證者抵押一筆鏈上資產,系統偵測到惡意行為時可以沒收資產作為逞罰」小雨說「這樣讓攻擊是需要付出成本的。」
惡意行為的樣態有很多種,不一定每種都能懲罰,以太坊區分了兩種:
兩人翻開了 beaconcha.in 網站,映入眼簾的是一組標題般的數字:
Epoch 390,645 / 390,642
Current Slot 12,500,666
Active Validators 1,069,462
Joining / Leaving 830K / 860K ETH
Staked ETH 35,709,300 ETH
Average Balance 33.45 ETH
第一組數字和時間有關。以太坊的押金制,把時區分為較短的 出塊期(Slot) 與較長的 計票期(Epoch)。
在儀表板的計票期可以看到兩個數字。左邊的是當下所屬的計票期,右邊的是 敲定(Finalized) 的計票期。
中間會有 準敲定(Justified) 的計票期。
「每個出塊期是精確的 12 秒,那我可以推估信標鏈創世區塊的時間?」特務 K 問。
「對的,是 2020 年 12 月 1 號的 12:00:23 UTC 那個命中註定的時刻」小雨回答。
這個時間點,可以在儀表板中的 第零個區塊 看到。
「其他的數字看起來都很合理,但為什麼那個時間不是整點,而是有 23 秒呢?」
「因為信標鏈創世區塊的產生條件,是在當時算力制的主鏈在整點之後產生的第一個區塊」小雨說「算力制的區塊產出時間沒辦法精確控制,算力制的遺緒因此以那 23 秒的方式一併帶入了無盡的未來之中。」
嫻熟升級歷史的 Ben Edgington 對這段關鍵時刻 有些記載 。
第二組數字和驗證者有關。
「怎麼樣叫一個驗證者呢?你應該沒辦法數人頭對吧?」特務 K 問。
「沒錯!所以要成為『一個』驗證者,必須到存款合約先抵押 32 ETH 的押金,並註冊一把 BLS 公鑰」小雨回答「所以一把公鑰算一個驗證者。」
「BLS 是什麼呢?」
「BLS 是一種聚合簽章機制,他是以太坊押金制能容納眾多驗證者的關鍵,多個驗證者的簽章能被聚集成一個,減少資料傳輸和驗章負擔」小雨說「但名字的來源是三個論文作者的姓氏字首。」
兩人注意到,上線驗證者(Active Validators) 約有 100 萬人。
「為什麼要特別說他是上線的驗證者呢?」
「因為驗證者可能剛押完金,還在排隊等上線,或是正在等提款」小雨說「有另外一篇 鐵人文章 有講驗證者的生命週期。」
兩人注意到,大量的驗證者正在排隊等上線以及排隊等提款。以前這個隊伍是數一次有幾個驗證者能經過,但在今年五月的 Pectra 升級之後,變成隊伍的限制是以金額計算的。
最後一組數字則和押金有關。
Staked ETH 顯示總抵押金額為三千五百萬的以太幣。以一顆 4200 美元,一美元 30 台幣換算,大概是 4.5 兆新台幣。台灣 2024 GDP 大概是 25 兆新台幣。
小雨希望他沒多算或少算一些零。
「這麼龐大的一筆金額抵押在區塊鏈上,蠻嚇人的」特務 K 評論。
最後一筆數字是平均餘額:33.45 ETH 。
「每個驗證者雖然抵押 32 ETH ,但因為正確的投票、出塊行為皆有獎勵,所以平均餘額會比 32 ETH 多些」小雨說。