Thin-Clients

什麼是瘦客戶端?

  • December 19, 2020

我聽說如果你不想下載千兆字節的數據只是為了使用比特幣,你必須使用瘦客戶端。但什麼是瘦客戶端?瘦比特幣客戶端的主要優勢是什麼?是什麼定義了它?

瘦客戶端是連接到比特幣點對點 (P2P) 網路但不完全驗證交易或區塊的程序。也就是說,它是網路上所有節點的客戶端。

大多數瘦客戶端使用簡化支付驗證 (SPV) 方法來驗證確認的交易是否是區塊的一部分。為此,他們連接到 P2P 網路上的一個完整節點並向其發送一個過濾器(稱為布隆過濾器),該過濾器將匹配任何影響客戶錢包的交易。當創建一個新塊時,客戶端會請求該塊的一個特殊的輕量級版本,稱為 Merkle 塊。

merkle 塊包括塊頭、相對少量的雜湊、一位標誌的列表和交易計數。使用這些資訊——通常少於 1 KB 的數據——客戶端可以為區塊頭建構一個部分 Merkle 樹,如下圖所示。如果部分 Merkle 樹的根節點的雜湊值等於塊頭中 merkle 根的雜湊值,則 SPV 客戶端有加密證明交易包含在該塊中。如果該塊在目前網路難度下獲得 6 次確認,則客戶端有極強的證據證明該交易有效並被整個網路接受。

解析默克爾塊

(圖片取自 MIT 許可的Bitcoin.org 開發者文件。我也是該圖片的作者。)

SPV 方法的唯一主要缺點是全節點根本無法將交易告訴瘦客戶端,這使得客戶端看起來好像沒有收到比特幣,或者客戶端之前廣播的交易沒有確認。

引用自:https://bitcoin.stackexchange.com/questions/32529