區塊鏈基礎:從區塊添加機制到哈希加密與默克爾樹結構
什么是區塊鏈
抽象的回答:
區塊鏈提供了一種讓多個參與方在沒有一個唯一可信方的情況下達成合作
若有可信第三方 > 不需要區塊鏈
[金融系統中常常沒有可信的參與方]
像股票市場,或者一個國家的債券等等這些是有信用參與方的那這些就不需要區塊鏈來互通。
區塊鏈的核心就是共識層和計算層,共識層和計算層默認是合在一起的。
1?? 共識層(Consensus Layer)
定義:
提供數據一致性和不可篡改性的保障機制,確保所有參與節點在不需要相互信任的前提下,達成對數據的統一認定。
特點:
- 公共數據結構:所有交易數據、區塊等均記錄在公開賬本中。
- 不可篡改性:一旦數據上鏈,無法刪除或修改。
- 一致性:所有誠實節點維護相同賬本副本。
- 活性:誠實節點能夠持續添加新交易和區塊。
- 開放性:任何人均可參與數據的添加與驗證(依據公鏈/聯盟鏈而定)。
2?? 計算層(Computation Layer)
定義:
DApp的業務邏輯與規則以程序形式部署在區塊鏈上,節點共同執行和驗證程序結果。
特點:
- 透明性:應用邏輯寫在開放、公開的源代碼中,無需依賴中心化可信方。
- 公共可驗證性:任何人都能獨立驗證程序執行過程與結果。
- 去信任執行:新區塊的創建者(礦工/驗證者)需執行DApp程序,記錄狀態變更。
3?? 應用層(Application Layer)
定義:
基于區塊鏈的去中心化應用程序(DApps)與智能合約,構建具體業務場景,如DeFi、NFT、DAO等。
特點:
- 運行在鏈上計算機(虛擬機)上
- 應用邏輯透明、數據不可篡改
- 無需中心化服務方
4?? 用戶交互層(Interaction Layer / Interface Layer)
定義:
用戶與區塊鏈網絡及DApps交互的界面與入口。
組成:
- 錢包(如MetaMask、Phantom)
- 瀏覽器插件、移動端App
- 前端界面與API交互
特點:
- 提供友好的交互體驗
- 管理用戶身份、密鑰、簽名等
- 調用區塊鏈節點API,與鏈上數據與應用交互
區塊鏈的生態
區塊如何被添加到鏈上
假設有3個參與方A,B,C;他們3個人每個人都有私鑰對交易進行簽名,3個人每個人都創建了獨立的交易 ;3個人都有礦工的地址他們也將交易發送到了對應的礦工的地址中;礦工收到發布的交易然后通過一些網絡協議把這些交易發出去
這邊會有有一個出塊者的選擇機制,礦工會被隨機的選中,假設這一輪最上面的礦工被選中;他就會構建包含當前區塊的區塊鏈接然后把區塊發布在交易上;這時候就會給這個礦工獎勵我們稱之為區塊獎勵;
加密:哈希函數
加密哈希函數
一個有效計算函數。H:M ->T
其中:||>>||
無論輸入多少字節的數據,哈希函數最后就是輸出一個32字節的數據
抗碰撞性(Collision resistance)
定義:碰撞是指對于:H M–>T,一對X≠Y€M使得H(x) = H(y)
因為定義域 |M|>> 值域|T|說明存在很多碰撞
白話來說就是無論你輸入多少字節的數據最后輸出的都是一個32字節的算數,由于函數是抗碰撞的,這32個字節都是唯一的沒有重復。
大家如果感興趣可以去了解一下密碼學的課程。
默克爾樹(Merkle tree-1989)
首先承諾一個大小為N的列表S,如下圖有8個元素,生成一個承諾h–32個字節 ;其實就是一個哈希值
當在區塊鏈上寫入一個區塊交易時,只需要寫入的承諾就足夠,保持小鏈。
后面,可以證明每個鏈上的內容。
總結
區塊鏈是一種去中心化技術,使多方在沒有可信第三方的情況下達成共識。其架構分為四層:共識層確保數據安全和一致性;計算層運行智能合約業務邏輯;應用層構建DeFi、NFT等場景;用戶交互層提供錢包等入口工具。新區塊通過礦工隨機選擇機制添加,包含交易記錄和獎勵。區塊鏈采用哈希函數確保數據唯一性和抗碰撞性,并通過默克爾樹結構高效存儲交易承諾,實現鏈上數據驗證。這種架構使區塊鏈具有去中心化、透明和不可篡改的特性。