硬核干貨:Bitcoin Core 0.21.0的發布帶來了什么

今天(1月14日),Bitcoin Core 0.21.0的正式發布,這是中本聰在大約12年前推出的比特幣原始軟體客戶端的第21個重要版本。

在Bitcoin Core首席維護者Wladimir van der Laan的監督下,這個最新的主要版本是由一百多名貢獻者在大約六個月的時間里開發的,Bitcoin Core 0.21.0是近幾年來最大的Bitcoin Core版本之一,引入了各種新功能,以及隱私和性能的改進,同時向Schnorr/Taproot協議的升級邁出了一大步。

以下是一些比較顯著的變化,

1、描述符錢包

當幣被發送到比特幣地址時,實際上發生的事情是,它們會被 “鎖定”在一個未花費的交易輸出(UTXO)中,而只有滿足UTXO中隱藏條件,才能在以后的交易中被“解鎖”(花費)。其中一個典型的條件是包含與特定公鑰對應的有效簽名,但條件也可以包括像秘密代碼、時間鎖的失效或簽名的組合(多簽),

直到現在, Bitcoin Core的設計都旨在圍繞其對應的私鑰來管理錢包中的UTXOs——盡管私鑰只是花費代幣的幾個潛在條件之一。此次Bitcoin Core 0.21.0引入了“描述符錢包”(Descriptor Wallets)。描述符錢包能夠讓用戶根據花費UTXO所需的條件類型對其進行分類,(例如:一個錢包用于只需有效簽名的UTXOs,另一個錢包則用于多簽名的UTXOs)。

描述符錢包對于在Bitcoin Core之上設計軟體的應用開發者來說特別有用。現在,一個特定的應用程式可以很容易地被設計成只利用特定類型的UTXO,如多簽UTXO,而忽略任何非多簽的UTXO。

普通用戶可能也會注意到現在描述符錢包實施后的不同,也許最值得注意的是,當啟動一個新的Bitcoin Core節點時,將不會創建默認錢包。取而代之的是,只有當用戶特別選擇創建新錢包時,才會創建新錢包,并允許他們只創建特定需要的錢包類型。此外,描述符錢包也更好地支持 Watch Only錢包:即使節點沒有使用它們所需的私鑰,也會跟蹤某些特定的UTXO,

升級到Bitcoin Core 0.21.0的Bitcoin Core用戶目前仍然可以使用他們的傳統錢包,(傳統錢包最終將被廢棄,這意味著用戶需要將他們的傳統錢包遷移到描述符錢包,但在未來的Bitcoin Core發布之前,這并不是嚴格意義上的必要。)

2、在點對點網路上提供緊湊的區塊過濾服務

“輕客戶端”(Light clients)是指不下載和驗證整個比特幣區塊的比特幣錢包和應用程式,而只是下載和驗證具體涉及的部分區塊和交易,這并不是最佳的安全方式,但對資源的消耗要小得多。

其中,一種流行的方式是使用Bloom Filters。簡而言之,Bloom Filters是一種加密技巧,用于從網路上或多或少的隨機對等節點中請求相關數據,然而,不幸的是,多年來,人們已經清楚地認識到,Bloom Filters對隱私相當不友好:它們基本上將用戶的所有地址透露給(或多或少隨機的)對等節點,當然,也就可以被侵犯隱私的窺探操作。

與Bloom Filter解決方案相比,一個更新且更能保護隱私的替代方案被稱為“緊湊型客戶端區塊過濾”(BIP 157/158),它從本質上顛覆了Bloom Filter的技巧。與其說是輕錢包創建過濾器發送給全節點,不如說是全節點為每個區塊創建過濾器,并根據請求將這些過濾器發送給輕客戶端,然后,輕客戶端使用這些過濾器來弄清與他們相關的交易是否可能已經包含在一個區塊中,如果是的話,輕錢包將獲取整個區塊,并從中挑選出任何相關的交易數據,(會有一些誤報;即使過濾器建議可能會有相關交易數據的區塊,但其中可能并不含有有相關的交易數據。)

現有的Bitcoin Core版本已經可以在本地創建過濾器,并通過遠程過程調用(RPC)為運行在節點頂部的應用程式(如錢包)提供過濾器。Bitcoin Core 0.21.0現在還包括了一個選項,可以根據請求在Bitcoin的點對點網路上提供這些過濾器,也就是說,現在操作使用bloom filters的獨立輕客戶端也成為了可能,

3、更少的重播嘗試

除了Bloom Filters,窺探者還可以通過網路分析破解比特幣用戶的隱私。如果他們能找出某筆交易來自哪個節點,那么該節點的比特幣地址就可以與其IP地址聯系起來,而IP地址又可以與現實世界的身份聯系起來,

直到現在,當Bitcoin Core節點向比特幣網路廣播一筆交易時,它們都會試圖每隔15分鐘重新廣播這筆交易,直到這筆交易被包含在一個區塊中。這就意味著,如果這些Bitcoin Core節點連接到了一個窺探對等體,那么對于窺探者來說,每隔15分鐘試圖重播某筆交易的Bitcoin Core 節點也就很明顯是該交易的起源節點。

Bitcoin Core 0.21.0大大降低了它試圖重播交易的頻率:從原先的頻率調整到了每12到36小時才重播一次,不得不減少重播的頻率,使得交易從最初的廣播開始就被確認的可能性大大增加,所以節點根本不需要重播,

在未來的Bitcoin Core版本中,這種隱私泄露將被完全修復,屆時,Bitcoin Core節點只會重播應該根據自己的mempool和費用計算確認的交易,此外,它還會重播其他交易,而不僅僅是自己的交易,

4、支持Tor V3

由于最近對隱私保護Tor協議的升級,新的V3版本的Tor地址比之前的V2版本地址要長,目前,V2地址仍在使用,但將在大約一年后被廢棄,

廢棄V2地址會給想要通過隱私網路使用比特幣的Bitcoin Core用戶帶來問題,原本Bitcoin Core節點通過相互分享已知使用Tor的比特幣節點的Tor地址來尋找同行,他們通過共享其他節點的常規IP地址的相同資訊來共享這個IP地址。雖然Tor V2地址可以“隱藏 ”在常規IP地址格式(IPV6)中,但Tor V3地址太長了,也就是說,目前的消息太有限了,還無法與Tor的升級兼容,

因此,Bitcoin Core 0.21.0引入了一種新的格式來與同行共享IP/Tor地址,這些消息可以大到共享Tor V3地址。

5、Schnorr/Taproot代碼和Signet/Regtest部署

Schnorr/Taproot將成為比特幣自2017年8月隔離見證(SegWit)以來的首次協議升級,Schnorr簽名算法已經開發了兩年多,被認為是對比特幣當前ECDSA簽名算法的全面改進。結合Taproot(一種巧妙的技巧,在加密哈希樹中隱藏各種花費代幣的條件),此次升級有望以可擴展和保護隱私的方式提供更多的智能合約靈活性,

Schnorr/Taproot代碼現在已經包含在Bitcoin Core 0.21.0中,除非有意外的發展,它不會再有任何變化,也就是說,應用開發者已經可以開始圍繞升級設計軟體了。此外,Schnorr/Taproot現在已經可以在Signet(測試網的一個更新、更可靠的變體,開發者可以用它來測試新的比特幣軟體)上使用,而且也有可能在Regtests(額外的本地測試網變體)上使用。

不過,Schnorr/Taproot暫時還不能在比特幣主網上使用,為此,升級首先需要激活,而激活就需要激活邏輯。然而這個Bitcoin Core版本中并沒有包含激活邏輯,預計可能會在未來幾個月的某個時間內包含在Bitcoin Core的一個小版本中。

6、其他

除了上述變化之外,Bitcoin Core 0.21.0還包括各種bug修復和性能提升,對于普通用戶來說,這些變化不會那么明顯,

比如Bitcoin Core錢包將從使用Berkeley DB切換到SQLite資料庫,后者更適合作為應用數據文件,并且在兼容性、支持和測試方面提供了多項保障。

值得關注的是,Bitcoin Core 0.21.0還包含了交易請求的大修:比特幣節點用來了解新交易的新消息協議已經經過了更好的測試,更好的規定,且更容易維護和審查。

0 条回复 A文章作者 M管理員
    暫無討論,說說你的看法吧