我們在本文中從最直觀的轉帳場景切入,層層剖析比特幣區塊鏈的底層資料結構。透過通俗的比喻,協助讀者理解區塊、區塊頭及雜湊指標如何串聯成不可篡改的鏈條,奠定後續技術探討的基礎。想掌握比特幣運行原理的朋友不容錯過。
比特幣區塊鏈的資料結構
我們回到兩個人轉帳的過程,來理解比特幣區塊鏈的資料結構。
我發起一筆交易後,會向整個區塊鏈網路廣播:我和你想進行這筆交易——我向你的位址轉入一定數量的比特幣,無需你的額外許可。(依據臺灣金融監督管理委員會相關規定,請自行評估法規風險。)
然而,只有當這筆交易被打包進最新的比特幣區塊時,交易才算真正完成。(依據臺灣金融監督管理委員會相關規定,請自行評估法規風險。)
通常情況下,在該筆交易所在的區塊之後再產生 5 個區塊(即包括它本身在內共 6 次確認),這筆交易即可視為完全確認。依比特幣每個區塊約 10 分鐘的確認時間計算,整個過程大約需要 1 小時。(依據臺灣金融監督管理委員會相關規定,請自行評估法規風險。)
這其中包含兩步:
- 交易被打包進候選區塊——每個節點可按規則生成不同的候選區塊;
- 節點成功挖礦,候選區塊被正式添加到區塊鏈尾部,成為最新的正式區塊。(依據臺灣金融監督管理委員會相關規定,請自行評估法規風險。)
那麼,把交易打包進區塊到底意味著什麼?(依據臺灣金融監督管理委員會相關規定,請自行評估法規風險。)
以下內容可能略顯枯燥,但它是認識比特幣與區塊鏈的基石,我將盡量使用通俗的語言進行說明。
區塊鏈之所以稱為 blockchain,是因為它的資料塊以鏈狀形式儲存。從第一個區塊——創世區塊——開始,後續新增的區塊不斷連接到上一個區塊的後面,形成一條鏈。
每個區塊由兩個部分組成——區塊頭部和區塊資料。在區塊頭部中有一個雜湊指標指向上一個區塊,該指標包含前一個區塊的雜湊值。雜湊值可以視作資料塊的指紋,後一個區塊的頭部中儲存著上一個區塊資料的指紋。如果上一個區塊的內容被篡改,指紋就會不匹配,篡改行為隨即被發現。要修改某個區塊中的資料,必須同步修改其後所有區塊,這在實務操作中幾乎不可能。
比特幣區塊鏈透過「工作量證明」(Proof‑of‑Work)和挖礦機制,使這種修改的成本極其高昂,後文會進一步說明。
區塊內部的資料是被打包進該區塊的一系列交易。(依據臺灣金融監督管理委員會相關規定,請自行評估法規風險。)
這些交易按照既定規則組織成特定的二叉樹結構——梅克爾樹(Merkle tree)。以當前比特幣區塊的容量來看,一個區塊大約能容納 2000 筆交易;例如第 526957 個區塊中包含了 1804 筆交易。(依據臺灣金融監督管理委員會相關規定,請自行評估法規風險。)
可透過如下網站查看比特幣區塊鏈的數據資訊:https://blockchain.info/。
比特幣區塊鏈的資料結構包含兩類雜湊指標,它們共同構成不可篡改的基礎。一是形成「區塊+鏈」(block + chain)的鏈狀結構,二是透過雜湊指標建構的梅克爾樹(見圖 1)。鏈狀結構使得對某一區塊內資料的修改容易被發現;梅克爾樹的結構則對區塊內部任意交易的修改同樣具有檢驗作用。(依據臺灣金融監督管理委員會相關規定,請自行評估法規風險。)

圖 1:比特幣區塊鏈的「區塊鏈」與梅克爾樹
以上即為比特幣區塊鏈資料結構的詳細說明,更多關於比特幣、區塊鏈的資料請關注 Bitaigen(比特根)的其他相關文章!
💡 註冊幣安使用邀請碼 B2345 享平台手續費折扣。詳見 幣安完整教學。