什麼是區塊高度?
區塊高度(Block Height)表示一個區塊在區塊鏈中的位置。 以比特幣為例,第一個區塊稱為創世區塊,高度為 0;後面的區塊依次為 1、2、3,每增加一個區塊,高度就加一。
區塊是一批交易及相關資料。高度幫助我們找到這些記錄在鏈上的位置,也常用來計算交易確認數和判斷某項規則何時生效。
區塊高度有什麼用途?
區塊瀏覽器是查詢鏈上區塊和交易記錄的工具。查詢交易時,通常能看到交易所在區塊的高度。結合目前最新高度,可以了解這筆交易後面又增加了多少個區塊。
高度也可以作為協定規則的觸發條件。例如,比特幣每經過 210,000 個區塊,就降低後續區塊的新幣補貼,這就是比特幣減半。規則依區塊位置執行,而不是等日曆走到某一天。
部分升級或交易生效條件也會用到高度,但具體條件由協定規定,並不全都只依賴高度。
怎樣用高度計算確認數?
在比特幣中,交易進入目前採用的鏈後,收錄它的區塊算第一次確認;之後每新增一個區塊,再增加一次確認。
因此,只要交易所在區塊仍在目前鏈上,就可以這樣計算:
確認數=目前最新區塊高度-交易所在區塊高度+1
例如,交易被收錄在高度 800,000 的區塊,目前最新高度為 800,005。後面又有五個區塊,加上收錄交易的區塊本身,確認數為 800,005-800,000+1=6。數字僅用於說明。
確認數越多,表示這筆交易後面累積的區塊越多。接收方會依用途決定等待多少次確認,但這不是絕對不會變動的保證。
使用區塊高度時要注意什麼?
同一高度可能對應不同區塊。 兩個礦工可能在相近時間提出區塊,形成競爭分支。高度相同,內容卻可能不同。指認特定區塊時,也應說明網路並使用區塊雜湊,即依規定計算的區塊識別碼。
確認數依賴目前採用的鏈。 執行網路驗證軟體的節點切換到另一條有效分支,稱為鏈重組。原分支中的交易可能離開目前鏈,此時不能繼續用原高度相減來計算確認數。
高度不能直接換算成日期。 比特幣以平均約十分鐘出塊為目標,但每個區塊的間隔會波動,未來某個高度何時到達只能估算。
不同網路的出塊速度和編號慣例也可能不同。因此,不能僅憑誰的高度較大,就判斷誰運作更久、更安全或更活躍。




