硬核乾貨: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還包含了交易請求的大修:比特幣節點用來了解新交易的新訊息協議已經經過了更好的測試,更好的規定,且更容易維護和審查。

作者:aaron van wirdum

編譯:公眾號@萌眼財經



免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;