喺區塊鏈世界入面,有好多術語聽落簡單,實際背後嘅意思比想像中豐富。區塊高度就係其中一個。當你打開區塊瀏覽器,見到一排數字由 0 開始不斷上升,或者喺錢包、智能合約、跨鏈橋嘅文件入面見到 Block Height 呢個字,你可能會諗:呢個數字究竟代表咩?點解成日都要用到佢?拆解區塊高度嘅作用,可以帶你睇吓佢喺真實應用場景入面點樣運作。
區塊高度嘅基本定義
區塊鏈係由一連串區塊組成嘅鏈條,每個區塊入面裝住一批交易記錄。要令成條鏈有秩序,每個區塊都要有一個獨特嘅身份。除咗用雜湊值(hash)去識別之外,網絡亦會為每個區塊分配一個遞增嘅編號,呢個編號就係區塊高度。
嚴格嚟講,區塊高度係指某個區塊同創世區塊之間嘅距離。創世區塊嘅高度係 0,下一個區塊係 1,再下一個係 2,如此類推。每當一個新區塊被驗證,高度就會加一。所以區塊高度嘅數字愈大,代表嗰條鏈存在嘅時間愈長,累積嘅區塊亦愈多。呢種由 0 開始計數嘅做法,喺LearnMeABitcoin 嘅區塊高度定義中有更詳細嘅說明。
區塊高度就好似一本帳簿嘅頁碼。冇咗頁碼,你淨係知道有好多頁,但冇辦法知道邊一頁先係最新,亦冇辦法同其他人確認大家睇緊嘅係同一頁。
呢個定義聽落簡單,但有一個要點值得留意:區塊高度並唔係儲存喺區塊入面嘅一個欄位,而係由節點根據區塊鏈嘅歷史推算出來嘅數值。比特幣嘅區塊結構入面其實冇一個叫「height」嘅欄位。節點由創世區塊開始數,一路數到去邊一個區塊,就知嗰個區塊嘅高度係幾多。呢種設計有一個好處:任何節點都可以獨立驗證高度,唔需要依賴第三方提供資料。
創世區塊:一切由 0 開始
要理解區塊高度,就要由創世區塊講起。比特幣嘅創世區塊喺 2009 年 1 月 3 日被中本聰挖出,高度為 0。Investopedia 關於創世區塊嘅文章,記錄咗呢段歷史。呢個區塊特別之處,係佢冇任何前一區塊可以參考,亦冇交易費用嘅概念,入面只得一筆 coinbase 交易,而嗰筆交易係唔可以花費嘅。所以喺區塊瀏覽器入面見到嘅第 0 區塊,永遠都係整條鏈嘅起點。
以太坊嘅主網喺 2015 年 7 月 3 日上線,創世區塊嘅高度一樣係 0。不過要留意,有啲鏈嘅創世區塊高度未必係 0。以以太坊經典(Ethereum Classic)為例,佢喺 2016 年因為 DAO 事件由以太坊分叉出嚟,區塊高度係由當時以太坊嘅高度繼續行落去,並冇重新由 0 開始。換句話說,分叉鏈會繼承分叉點之前所有區塊嘅歷史,所以佢哋嘅高度同原鏈係重疊嘅。
呢個細節對初學者嚟講比較容易混淆。當你見到一條鏈嘅高度係 20,000,000,並唔代表佢「得咁多個區塊」咁簡單,而係由創世區塊數到而家嘅總數。判斷一條鏈「有幾耐歷史」,要睇佢由邊個區塊開始,而唔係淨係睇最後嗰個數字。
區塊高度同區塊雜湊有咩分別
好多時講起區塊嘅身份,大家都會同時聽到「區塊高度」同「區塊雜湊(Block Hash)」兩個詞。兩者都係用嚟指向一個區塊,但性質完全唔同。簡單嚟講,高度係「位置」,雜湊係「指紋」。
| 比較項目 | 區塊高度 | 區塊雜湊 |
|---|---|---|
| 本質 | 由創世區塊開始數嘅整數 | 由區塊內容計算出嚟嘅十六進制字串 |
| 穩定性 | 鏈重組時可能改變指向 | 區塊一旦生成就固定唔變 |
| 可預測性 | 可以推算下一個高度係幾多 | 冇辦法提前預知 |
| 主要用途 | 排序、索引、時間參考 | 確認區塊身份、防止篡改 |
區塊高度係一個遞增嘅整數,方便人類閱讀同排序。你打開區塊瀏覽器,輸入高度 800,000,就會直接跳到比特幣第 80 萬個區塊。但高度本身唔足以確認區塊嘅身份,因為兩個唔同嘅區塊可以有同一個高度,呢種情況喺鏈出現分叉嘅時候就會發生。

區塊雜湊係將區塊入面所有內容(包括交易、時間戳、前一區塊雜湊、nonce 等)經過雜湊函數計算之後得出嘅一串固定長度字串。任何一個位元嘅改動,都會令雜湊完全唔同。所以喺交易確認、SPV 驗證等場景入面,網絡節點靠嘅係雜湊,而唔係高度。兩者各有用途,相輔相成。
區塊高度喺共識機制入面嘅角色
區塊高度唔單止係一個「編號」,佢喺共識機制入面扮演住具體嘅角色。以工作量證明(PoW)為例,比特幣每 2016 個區塊就會調整一次挖礦難度。呢個 2016 嘅數值,就係靠區塊高度去計。節點會睇吓第 N 個區塊同第 N + 2016 個區塊之間嘅時間差距,再決定難度要調高定調低。如果出塊太快,難度會上升;出塊太慢,難度就會下降。
以太坊以前嘅情況仲更加明顯。以太坊有所謂嘅「難度炸彈」(difficulty bomb),令挖礦難度會隨住區塊高度上升而增加,目的係推動網絡由 PoW 過渡去權益證明(PoS),同時令升級時間可以預測。喺 2022 年合併(The Merge)之前,呢個炸彈就係按區塊高度去引爆。合併之後,以太坊轉為 PoS,出塊方式由礦機競賽變成驗證者輪流提議區塊,但區塊高度嘅概念仍然保留,只係出塊嘅邏輯唔同咗。
區塊高度亦係分叉規則嘅一部分。比特幣嘅 BIP 協議好多時會用區塊高度作為「激活點」。例如某個軟件升級,會設定「當區塊高度去到 700,000 之後先開始執行新規則」,咁所有節點先可以一致咁切換,避免硬分叉引起混亂。呢種「按高度啟動」嘅做法,喺比特幣、萊特幣以至一啲 Cosmos 系嘅鏈都好常見,因為高度係一個所有參與者都可以客觀驗證嘅數字。
實際應用一:輕量節點與 SPV 驗證
區塊高度最實際嘅應用,應該係喺輕量節點(SPV 錢包)入面。比特幣早期嘅全節點要下載成條鏈所有區塊,先可以驗證交易。但手機錢包冇咁多儲存空間,於是就出現咗 SPV(Simplified Payment Verification)嘅做法,亦即係簡化支付驗證。
SPV 錢包唔會下載所有交易,只會下載每個區塊嘅區塊頭(block header)。區塊頭入面包含上一個區塊嘅雜湊、時間戳、merkle root 等資料。當錢包要確認一筆交易係咪已經被接納,佢會向全節點查詢:「呢筆交易喺邊一個區塊?」然後用 Merkle proof 去驗證嗰筆交易係咪真係喺該區塊入面。
呢個過程入面,區塊高度令到輕量節點可以用一個簡單嘅數字去定位區塊。想像吓,如果冇咗高度,你要向全節點講「我想要第 800,000 個區塊之後嗰批交易嘅證明」,根本冇辦法講得清楚。高度亦確保咗鏈嘅排序冇混亂——如果冇咗佢,節點就好難知道邊一個區塊先係最新,亦好難判斷一筆交易究竟已經被幾個區塊確認。
實際應用二:智能合約與去中心化應用
喺以太坊同其他智能合約鏈上,區塊高度係 Solidity 入面一個內建變數,叫 block.number。Solidity 官方文件對全域變數的說明入面有提到佢,任何合約開發者都可以直接讀取。呢個變數令智能合約可以知道而家大概進行到邊一個區塊,從而實現各種邏輯。
舉一個具體例子:一個拍賣合約,可以設定「拍賣會喺區塊高度 20,000,000 結束」。咁樣所有參與者都有一個客觀、不可篡改嘅截止時間,冇人可以偷偷延長拍賣。又例如一個抽獎合約,可以用「下一個區塊嘅雜湊」作為隨機數來源,令抽獎結果冇辦法被提前操控。呢啲應用嘅前提,就係合約讀到一個可靠嘅區塊高度。
同真實時間比較,區塊高度係一種「區塊鏈時間」嘅概念。比特幣平均每 10 分鐘出一個區塊,以太坊喺 PoS 時代理想情況下 slot 時間係 12 秒。用區塊高度去計時間,有幾個實際好處:
- 唔受時區影響,世界各地嘅節點計出嚟嘅結果一致
- 唔受伺服器時鐘誤差影響,冇人可以用改時鐘嚟呃系統
- 冇辦法被單一節點偽造,因為高度由全網共識決定
- 所有節點都可以獨立驗證,唔需要信任任何第三方
當然,呢種做法都有代價。區塊時間本身有波動,一個區塊嘅實際間距可能係幾秒,亦可能係幾分鐘。如果一啲需要精確時間嘅應用(例如貸款利息計算)單靠區塊高度,會計得唔夠準,通常要結合時間戳一齊處理先得。
鏈重組與孤立區塊對高度嘅影響
區塊高度喺正常情況之下單調遞增,但區塊鏈並唔係永遠一帆風順。當兩個礦工或者驗證者幾乎同時產生同一個高度嘅區塊,網絡就會出現臨時分叉,呢種情況叫「競爭區塊」。
舉個例:當區塊高度去到 15,000,000 嗰陣,節點 A 產出咗區塊 X,節點 B 同時產出咗區塊 Y。兩個區塊都指向高度 14,999,999,所以高度一樣,但內容唔同。網絡上唔同節點會暫時接受唔同嘅區塊,直到下一個區塊出現,再根據共識規則決定邊一條鏈繼續行落去。

輸咗嗰條鏈上面嘅區塊會被棄置,通常叫做孤立區塊(stale block),佢哋嘅高度雖然仍然係嗰個數字,但已經唔再屬於主鏈。如果一個觀察者喺重組之前記低咗「嗰個高度嘅區塊雜湊」,喺重組之後會發現雜湊唔同咗。所以喺需要高度安全性嘅應用入面,唔可以單靠區塊高度去確認交易,通常要等夠一定數量嘅確認區塊先算穩陣。
以太坊 PoS 嘅 finality 機制令到重組嘅情況大幅減少。只要一個區塊被 finalise,就唔可能再被推翻,呢個係同比特幣 PoW 最大嘅分別。但即使係咁,未 finalise 嘅區塊仍然有機會喺短時間內重新排列,所以區塊高度從來都唔係一個「永久真相」,而係一個會隨共識更新嘅動態座標。
點樣查一個區塊嘅高度
對於一般用戶嚟講,最簡單嘅方法當然係用區塊瀏覽器。只要你輸入一個區塊雜湊或者交易 ID,瀏覽器就會顯示該區塊嘅高度、時間、交易數量、驗證者等資料。市面上主流嘅區塊瀏覽器,無論係比特幣定以太坊嘅,都會喺主頁直接顯示當前最高區塊高度,以及平均出塊時間。
如果你自己運行節點,查高度嘅方法就更加直接。比特幣核心客戶端可以用指令 bitcoin-cli getblockcount,即刻會回傳主鏈嘅最新區塊高度。以太坊節點可以用 JSON-RPC 嘅 eth_blockNumber 方法,Ethereum 官方 JSON-RPC 技術文件指出,呢個方法專門用嚟攞當前最新區塊高度,會回傳十六進制數字。呢啲指令係節點自己維護嘅數值,唔需要依賴任何第三方服務,所以查出嚟嘅結果可以直接用。
喺做分析或者寫程式嘅時候,要留意區塊高度嘅數據類型。以太坊嘅 block.number 喺 Solidity 入面係 uint256,而 JavaScript 嘅普通 Number 處理大數字時會出現精度問題,所以開發者通常會用 BigNumber 或者專門嘅區塊鏈套件去處理。呢啲細節看似微不足道,但喺跨鏈橋或者審計系統入面,一個精度錯誤足以造成嚴重損失。
唔同鏈嘅區塊高度有咩分別
雖然區塊高度嘅概念喺所有區塊鏈都通用,但每條鏈嘅出塊時間同高度增長速度可以差好遠。呢個數字本身冇好壞之分,但會直接影響應用設計。
比特幣每 10 分鐘加一,增長速度穩定而緩慢;截至 2026 年,區塊高度已累積超過 90 萬。以太坊嘅高度增長快好多,主網 2015 年上線,而家已經超過 2,000 萬,因為出塊時間非常短。有啲鏈嘅出塊時間更快,高度增長遠比以太坊快,但同時都要承受更頻繁嘅重組風險。
另一方面,比特幣區塊高度增長慢,反而令「高度」成為一個穩定嘅里程碑。比特幣嘅減半(halving)就係用區塊高度去定義:第 840,000 個區塊完成咗第四次減半,下一次減半會喺第 1,050,000 個區塊發生。以每 210,000 個區塊減半一次計算,下一次預計會喺 2028 年上半年發生。成個市場都知道呢個位置會嚟,但冇人知道確實幾點會到,因為區塊時間有波動。呢種「知道位置、唔知道時間」嘅特性,正正係區塊鏈時間同真實時間最有趣嘅分別。
另外,某啲 Layer 2 方案同應用鏈亦會用「區塊高度」加上「區塊時間戳」去同步狀態。例如 Optimistic Rollup 定期將交易批次提交去以太坊主網,每一個批次都會引用主網嘅區塊高度作為排序依據。如果冇咗一個共同嘅高度基準,唔同嘅 Layer 2 之間好難協調確認順序。
區塊高度嘅安全與隱私考慮
區塊高度係公開數據,任何人都可以查得到,所以佢冇乜嘢隱私風險。但喺應用設計層面,過度依賴區塊高度都有潛在問題,值得開發者留意。
其中一個問題係「時間操控」。比特幣要求區塊時間戳必須大於前 11 個區塊嘅中位數時間(Median Time Past),同埋唔可以超出節點當前時間兩小時以上。雖然礦工冇辦法隨意篡改時間,但喺有限範圍內仍然有一定彈性。如果一個智能合約單純用「未來某個區塊高度」做截止時間,而呢個高度要等好耐先到,攻擊者理論上可以透過影響出塊節奏去微調個時機。所以高價值嘅合約通常會同時檢查高度同時間戳,再用多重條件去限制定時邏輯。
另一個問題喺側鏈同跨鏈橋入面特別明顯。有啲側鏈會定期將狀態提交去主鏈,並引用主鏈嘅區塊高度作為「時間戳」。如果側鏈嘅驗證者發現主鏈高度增長異常,就可能影響跨鏈橋嘅確認邏輯。因此成熟嘅跨鏈協議通常會同時檢查區塊高度、時間戳同區塊雜湊,而唔係單靠一個數字落判斷。呢個做法嘅核心原則好簡單:任何單一來源都有機會出錯,唯有用幾個互相獨立嘅數據交叉驗證,先可以撐得起資產跨鏈嘅安全要求。
呢個數字對你嘅實際意義
區塊高度表面上只係一個遞增編號,但佢牽涉到區塊鏈嘅核心結構:鏈點樣排序、節點點樣同步、共識點樣執行、應用點樣讀取時間。由創世區塊嘅 0,到今日各種鏈上百萬甚至千萬級嘅高度,呢個數字見證住每一筆交易、每一次升級同每一次分叉。
下次你喺區塊瀏覽器見到一個巨大嘅數字,唔好淨係當佢係一個「有幾多個區塊」嘅答案。諗吓佢背後嘅含義:呢個高度代表住網絡上嘅節點已經達成過幾多次共識,亦代表住你手上嗰筆交易已經被幾多個區塊保護。比特幣嘅「六個確認」、以太坊嘅 finality 狀態、以至各種錢包顯示嘅 confirmations,全部都要配合區塊高度去判斷。
區塊鏈技術仲喺不斷演變,但區塊高度呢個概念由比特幣誕生嗰日開始,一直沿用至今。無論將來出現咩新嘅共識機制、新嘅鏈結構,只要仲係由區塊組成嘅帳本,就需要一個客觀嘅次序基準。搞懂區塊高度,你就對區塊鏈嘅運作方式有咗一個扎實嘅基礎,日後睇其他進階概念都會輕鬆好多。
常見問題(FAQ)
Q1:區塊高度同交易數量係咪同一個概念?
唔係。區塊高度代表嘅係區塊嘅數量或位置(第幾個區塊),而一個區塊入面可以包含幾百至幾千筆交易。所以鏈嘅區塊高度升咗 1,交易總數可能會增加幾千筆。
Q2:區塊高度會唔會出現重複?
喺主鏈上,每個區塊高度都係獨一無二嘅。但當區塊鏈發生分叉或者網絡出現競爭區塊時,短時間內可能會有兩個唔同嘅區塊擁有相同嘅高度。最終網絡會透過共識機制選出主鏈,未被選中嘅區塊會成為孤立區塊。
Q3:點解唔直接用真實時間(例如 UTC 時間)代替區塊高度?
因為去中心化網絡入面冇一個統一嘅中央時鐘。各個節點嘅本地時間可能存在微小偏差,而區塊高度係由全網共識決定、完全客觀且不可篡改嘅「區塊鏈時間」,更加適合用作鏈上邏輯嘅順序基準。
Q4:交易所要嘅「區塊確認數」同區塊高度有咩關係?
確認數嘅計算公式係:「當前最新區塊高度 – 包含你交易嘅區塊高度 + 1」。最新區塊高度愈高,你筆交易後面累積嘅區塊就愈多,確認數就愈高,交易被回滾嘅風險亦都愈低。



