比特幣的架構


根據中本聰的論文《Bitcoin: A Peer-to-Peer Electronic Cash System》中對比特幣系統的描述,我們可以整理出如下圖所示的比特幣系統架構。

 

如圖所示,比特幣系統分為 6 層,由下至上依次是存儲層、數據層、網絡層、共識層、RPC 層、應用層。

其中,存儲層主要用於存儲比特幣系統運行中的日志數據及區塊鏈元數據,存儲技術主要使用文件系統和 LevelDB。

數據層主要用於處理比特幣交易中的各類數據,如將數據打包成區塊,將區塊維護成鏈式結構,區塊中內容的加密與哈希計算,區塊內容的數字簽名及增加時間戳印記,將交易數據構建成 Merkle 樹,並計算 Merkle 樹根節點的哈希值等。

區塊構成的鏈有可能分叉,在比特幣系統中,節點始終都將最長的鏈條視為正確的鏈條,並持續在其后增加新的區塊。

網絡層用於構建比特幣底層的 P2P 網絡,支持多節點動態加入和離開,對網絡連接進行有效管理,為比特幣數據傳輸和共識達成提供基礎網絡支持服務。

共識層主要采用了 PoW(Proof Of Work)共識算法。在比特幣系統中,每個節點都不斷地計算一個隨機數(Nonce),直到找到符合要求的隨機數為止。在一定的時間段內,第一個找到符合條件的隨機數將得到打包區塊的權利,這構建了一個工作量證明機制。從 PoW 的角度,是不是發現 PoW 和分布式鎖有異曲同工之妙呢?

RPC 層實現了 RPC 服務,並提供 JSON API 供客戶端訪問區塊鏈底層服務。

應用層主要承載各種比特幣的應用,如比特幣開源代碼中提供了 bitcoin client。該層主要是作為 RPC 客戶端,通過 JSON API 與 bitcoin 底層交互。除此之外,比特幣錢包及衍生應用都架設在應用層上。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM