Taproot與 Schnorr:比特幣的可擴充套件性和隱私升級

買賣虛擬貨幣
摘要:2019年5月6日,著名Bitcoin Core 開發者Pieter Wiulle向bitcoin-dev傳送了一封名為“Taproot proposal”的郵件。這封電子郵件概述了三個新的BIP(比特幣改進方案)的目標,它們正在爭取加入Bitcoin Core 程式碼。其中兩個BIP與Taproot有關,Taproot是一種增強隱私並且功能豐富的比特幣指令碼語言;最後一個BIP描述了Schnorr簽名方案。Taproot和Schnorr簽名一起提高了可擴充套件性和隱私性,這些更改可以在軟分叉更新中實現,而不必強制進行廣泛的協調來升級。軟叉與硬叉需要注意的是,Taproot和Schnorr都可以作為軟分叉實現。雖然在技術上可以在比特幣中實現硬分叉,但它通常被認為是最糟糕的升級路徑,原因如下:· 協調· 向後相容性· 社羣分裂的風險
由於比特幣的分散性,在這一點上,主要的經濟、技術和社羣參與者之間的協調幾乎是不可能的。設定每個人都需要升級的最後期限是一個嚴重的挑戰。軟體開發團隊有設計和迭代階段,世界範圍內的經濟參與者並不總是使用相同的渠道。向後相容性也是設計軟體時不可忽視的一個重要設計決策。幾乎所有保持向後相容性的軟體升級在長期執行中都會勝出,而那些破壞並使舊版本無法使用的設計則會失敗。軟分叉通常向後相容,而硬分叉則不相容。最後,當建議使用硬分叉時,存在社羣分裂的主要風險。簽名方案和多重簽名1999年和2000年接受了數字簽名演算法 (DSA)、橢圓曲線數字簽名演算法 (ECDSA)作為 ANSI、IEEE 和 NIST 標準, 並提供了許多優點,包括更快的計算時間以及對記憶體和頻寬的更低要求。值得注意的是, 比特幣公鑰和私鑰可與 ECDSA 一起使用, 使用 secp256k1 曲線可用於生成 Schnorr 簽名。在許多情況下,只需要一個簽名就可以對訊息進行簽名。然而,很明顯,在某些情況下,擁有多個金鑰簽名訊息尤其有用,而且更安全。大多數多重簽名方案通常需要來自多個人員、機構或程式設計指令碼的m-of-n簽名。這限制了資金的轉移,直到滿足m方之間合作的要求。比特幣中的基本交易(將比特幣傳送到公鑰)稱為payto - public - key - hash (P2PKH)。與P2PKH不同,Pay to Script Hash (P2SH)是比特幣中使用的一種高階交易型別,它允許傳送方將資金提交到任意有效指令碼的雜湊值中。P2SH主要用於多重簽名和非本地SegWit交易(P2WPKH-in-P2SH)。最初在BIP 16中概述,P2SH的目的是“將提供贖回交易條件的責任從資金的傳送方轉移到贖回方”。不會強制傳送者在scriptPubKey中放入長指令碼的消費條件,相反,傳送者可以將其消費條件的雜湊值放入到贖回指令碼中。P2SH資金交易包含scriptPubKey中贖回指令碼的雜湊值。傳送方可以資助贖回指令碼,而其他人不知道指令碼的具體支出條件——只有接收方知道進一步支出的條件。對於多團體交易,傳送者可以在不知道多簽名地址所需公鑰的情況下傳送資金。公鑰只有在接收方使用資金時才會顯示。當受助人選擇使用資金時,必須披露整個指令碼以及指令碼的解決方案;任何人都可以驗證提供的指令碼確實是原始指令碼。
然而,P2SH也有缺點。必須揭示所有可能滿足的條件。這自然會產生潛在的隱私問題,因為網路參與者可以瞭解所有可能滿足條件的方法,比如使用哪種錢包,等等。此外,如果有許多可能的條件,計算和驗證就會變得非常麻煩,在這種情況下,計算和驗證就會變得非常繁重。其他多重簽名方案包括Shamir的秘密共享(SSS)、Threshold ECDSA、Threshold Ed25519、Bohen-Lynn-Shacham (BLS)簽名和Schnorr簽名;這些方案之間有許多權衡,包括但不限於預影象、可信設定、互動輪、隱私和計算效率。Schnorr簽名Schnorr簽名於1991年獲得克勞斯·施諾爾(Claus Schnorr)的專利,並於2008年到期。Schnorr簽名的主要好處是它使區塊鏈上的多簽名和單簽名交易無法區分。使用Schnorr簽名,多個簽名者可以生成聚合的公鑰,然後使用一個簽名聯合簽名,而不是在區塊鏈上分別釋出每個公鑰和每個簽名。這是一個重要的可擴充套件性和隱私增強的功能。Schnorr簽名了取代ECDSA,使比特幣的數字簽名基礎設施在多個方面變得更好,有三個關鍵的新功能:· 非延展性· 線性核查
· 透過金鑰聚合實現多簽名隱私對於在比特幣區塊鏈上建立第二層網路來說,非延展性是一個顯著優勢。ECDSA的主要問題之一是: 接受一連串未經確認的交易是不安全的,因為後面的交易依賴於以前交易的雜湊值,因此建議等到交易確認6次之後再進行。使用Schnorr,可塑性不再是一個問題,簡化了第2層的採用並提高了安全性。

Schnorr簽名可以顯著節省空間和驗證時間。Schnorr簽名驗證是線性的,這意味著可以聚合簽名驗證步驟中的金鑰和簽名部分。這是一個稱為批次驗證的新特性,這意味著一次驗證多個簽名的速度比以前更快。它是透過一次驗證多個簽名而不是逐個線性驗證來加速的。自然,隨著簽名集的增加,儲蓄會增加,但最終會逐漸減少。

分別驗證n個簽名和驗證一批n個簽名所需的時間之比隨簽名數量的增加呈對數增長;驗證一批100個簽名的時間要快1.75倍,
BIPSchnorr使錢包軟體能夠將金鑰聚合在一起。Schnorr的多簽名輸出看起來像單個簽名輸出。在Schnorr之前,多簽名交易很容易被發現,並且可以與網路上的正常交易區分開來。在P2SH中,網路知道存在多簽名交易、簽名者是誰以及有多少簽名者。使用Schnorr,外部觀察者不可能看出其中的區別,因為簽名者建立了一個具有單個簽名的聚合公鑰。這有助於提高可擴充套件性、可替換性和隱私性。
Schnorr還獲得了其他小的收益。Schnorr簽名是一個固定的64位元組簽名,它低於現有的70-72位元組ECDSA簽名。Schnorr有正式的安全證明,ECDSA沒有。Schnorr具有自適應簽名,這是一個有助於原子交換的特性,也可以用於一般的支付渠道。Taproot & TapscriptMerkelized Abstract Syntax Tree (MAST)MAST最初是由比特幣協議開發者劉江森博士於2016年提出的。MAST提出了一個新的witness程式,它使用Merkle樹在指令碼中編碼互斥分支,從而實現更復雜的阻礙條件,透過隱藏未執行的條件來改善隱私,其成本非常低。MAST允許在Merkle樹中構造多個支出條件,並且只需要公開滿足的條件(與P2SH要求公開所有條件相反)。  如果滿足任何條件,可以使用Merkle root和path來驗證條件是否駐留在Merkle樹中,同時隱藏Merkle樹的其餘部分。除了隱私方面的好處,MAST還可以建立更小的交易大小。非主交易大小在成本上呈線性增長,而主交易大小僅呈對數增長,為更復雜的產權負擔情況提供了顯著的縮放效率。鑑於比特幣的位元組大小受到嚴格限制,這一點尤其重要;裸指令碼和SegWit有10,000位元組的限制,P2SH交易有520位元組的限制。
具有和不具有 MAST 的子指令碼和保留項資料大小的數量
TaprootTaproot 升級是 MAST 協議的一個特殊實現, 它使輸出和協作支出之間無法區分。[3, 4]與 MAST 一樣, taproot 使用 Merkle 分支來隱藏指令碼中未執行的分支。此指令碼更新 (稱為 Tapscript) 意味著部分執行的指令碼在使用之前將其其餘執行程式碼隱藏, 同時在以後由對等方驗證和驗證該程式碼時仍保留該程式碼的完整性。Taproot 和 Tapscript 從一開始就被設計為可控制和升級的版本。它們加入程式碼庫並不是什麼大的變化, 總的來說, 實現 Taproot 和 Tapscript 的共識變化只有500行程式碼左右。使用專門的比特幣指令碼很容易識別,而且從一個地址到一個外部觀察者的簡單支出看起來也不一樣。對於Taproot,所有輸出看起來都一樣。Taproot真正的創新之處在於它對保護隱私的合作開銷的靈活性:在某些情況下,Merkle樹存在的證據不需要釋出,只需要釋出一個公鑰和一個簽名。比特幣使用者可以將比特幣作為可程式設計貨幣使用,而無需識別他們是否在為此目的使用比特幣,從而提高了比特幣的隱私性和可替代性。指令碼的所有參與者都可以就結果達成一致,而不考慮現有的條件,只需一起簽署一個消費交易。這種“合作關閉”使用了Schnorr的Threshold簽名”,使交易看起來像一個常規交易——參與者的公鑰聚合在一起成為Threshold公鑰。對於鏈,此合作交易作為常規交易的出現,具有傳統的公鑰和簽名。
只有在非協作的支出下,Merkle樹的存在才會被揭示出來。在非協作開銷中,可以使用滿足條件的指令碼對初始閾值公鑰進行調整,以建立調整後的閾值公鑰;這證明了只要滿足劇本的具體條件,劇本的資金是可以使用的。或者,可以使用桅杆結構的Merkle root對閾值公鑰進行調整,該結構適用於支出指令碼資金的所有不同條件。這種方式只需要暴露滿足的支出條件,其餘條件可以隱藏,從而提高隱私,最佳化網路資源的使用。未來的升級路徑使用Tapscript的Schnorr簽名和主Taproot根透過隱藏指令碼和模糊金鑰提高了可擴充套件性和隱私性,並限制了第三方確定發生的交易型別的能力。這些改進可以極大地改進多簽名交易的採用。未來,比特幣開發者及其社羣計劃將這些增強功能整合到核心程式碼中。比特幣的核心程式碼還將進行各種以隱私為重點的升級,這將使交易更安全、更私密以及使比特幣更具可替代性。

免責聲明:

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

推荐阅读

;