我們歸納和提供了近期比特幣軟分叉升級提案的來龍去脈,該提案包括一個新的數字簽名算法(Schnorr),以及一個名爲 Taproot 的添加了擴展比特幣智能合約容量新功能的補充更新。升級的結構可確保它們同時提升可擴展性和隱私性。除增加了複雜程度外,該提案沒有明顯缺陷,其中最具爭議的方面可能是缺少其他預期的功能。我們的結論是,雖然很多人會熱衷於升級,並渴望看到它推出,但重要的是耐心。
原文標題:《Schnorr 簽名和 Taproot 軟分叉提案》
作者:BitMEX 研究團隊
概述
2019 年 5 月 6 日,比特幣協議開發人員 Pieter Wuille 向比特幣開發者郵件羣發名單發佈了一個名爲「Taproot」 軟分叉提案。如果該提案被接受,它可能會補充 2018 年 7 月 Pieter 發佈的 Schnorr signature 軟分叉升級。這些提案的好處與可擴充性(效能)和私密性有關。可擴充性和私密性現在看起來有一定的相關性而且不可分割。在去除有關業務的細節,確保減少交易處理(提升可擴充性)的同時,他們減少了披露的信息,因此可能無法與不同類型的交易區分,從而提高了私密性。
Schnorr 簽名
Schnorr 簽名算法由 Claus Schnorr 於 1991 年申請獲得專利,並且在 2008 年到期。雖然據稱 Schnorr 算法更強大,是它的變體,但數字簽名算法(DSA)方案的採用更廣泛,因爲這一算法的專利在全球範圍內免費使用。不過 Schnorr 博士本人一直認爲 DSA 應該是在他的專利範圍內。
因使用廣泛,所以當比特幣在 2009 年推出時,DSA 的變體橢圓曲線數字簽名算法(ECDSA)被用於其數字簽名算法。但最初的 Schnorr 簽名算法比 DSA 更簡單和有效,減少了繁重的保安假設。經過比特幣 10 年的使用,越發明顯的是這些效率的優勢會變得重要。因此,比特幣轉移至 Schnorr 簽名算法似乎是合理的。
Schnorr 簽名的主要好處是,多重簽名交易在鏈上顯示爲正常的單一簽名交易。使用 Schnorr 簽名,多個簽名者可以生成聯合公鑰,然後用一個簽名共同簽名,而不是在區塊鏈上分別發佈所有公鑰和每個簽名。這是一項重要的可擴展性和私密性改進。這意味着 Schnorr 簽名會大量的節省空間和驗證時間,隨著傳統多重簽名交易的簽名者的增加,比較優勢將會越來越明顯。
Schnorr 簽名空間節省估計值
我們試圖計算這種 Schnorr 多重簽名(multisig)的集合特性可以帶來的潛在比特幣網絡容量的增加。不過,由於涉及大量假設,下面 13.1% 的容量增加數值應視爲非常近似的估計值。
基於 UTXO 計算的節省估計值
(注:估計值忽略了 Schnorr 簽名規模較小的影響,且只包括了加入公鑰和簽名的好處。通過使用與多重簽名使用率相關的 p2sh.info 並對每個多重簽名類型應用節省倍數(範圍從 50% 到 85% )來估計容量增加。通過假設 UTXO 使用比例是區塊鏈使用的典型值並對較大的多重簽名交易應用較高權重來估計網絡範圍容量增加。未使用的 P2SH 輸出根據未使用輸出的比例被分配到多重簽名類型。該數值應僅被視爲非常近似的估計值。數據截至 2019 年 5 月 7 日。)
上述估計的容量增加可以認爲是很小,但應該考慮以下因素:
- 多重簽名技術的經濟使用情況遠比僅考慮 UTXO 計數更爲普遍。大約 21.5% 的比特幣存儲在多重簽名錢包中,遠遠高於 UTXO 計數採用的 5.9%;
- 如下圖所示,多重簽名採用率正在快速增長。與此同時,像閃電網絡這樣的新系統需要採用多重簽名,而 Schnorr 簽名使得多重簽名系統更加強大,採用率可能會增加
按 P2SH 地址類型存儲的比特幣 —— 圖表顯示了多重簽名技術的強勁增長
資料來源:p2sh.info
因此,根據我們的基本計算,雖然根據網絡的當前使用情況,即使 100% 採用 Schnorr 也只會帶來 13.1% 的網絡容量增長,但長期來看,潛在的空間節省和網絡容量增長可能是遠高於此。
默克爾抽象語法樹(MAST)
MAST 是比特幣協議開發人員 Johnson Lau 博士 2016 年的一個想法。Lau 博士過去曾在 2002 年 2 月爲 BitMEX 研究團隊撰寫題爲 The art of making softforks: Protection by policy rule (軟分叉的藝術:政策規則的保護)的文章。MAST 的想法是,除了時間鎖定條件之外,交易還可能包含多個支出條件,例如 2 之 2 的多重簽名條件。爲了避免將所有這些條件和腳本放入區塊鏈中,可以在默克爾樹內部構建支出腳本,這樣只有在使用它們時才需要顯示它們,以及必要的默克爾分支哈希。
MAST 支出條件的圖解說明
資料來源: BitMEX 研究團隊
(注:該圖表試圖說明假設 MAST 與 Schnorr 一起使用的交易結構。在上述結構中,如果 Bob 和 Alice 均簽名,資金可以以合作方式贖回,或者在時間鎖之後以不合作方式贖回。上述是爲了說明打開和關閉閃電網絡通道時可能需要的結構類型)
基於上述設計,可以假設只需要顯示一種支出條件。例如,要花費輸出,所有簽名者需要做的是提供一個 Schnorr 多重簽名和默克爾樹右側頂部的哈希(哈希(1 和 2))。因此,儘管存在默克爾樹,但在大多數情況下,一切都按計劃進行,只需要一個簽名和 32 字節哈希。更簡明地說,爲了驗證腳本,您需要通過顯示其他分支哈希來證明這是默克爾樹的一部分。
不過,這種結構的缺點是即使在正常的最佳情況下,當提供默克爾樹左上角的單匙和腳本時,仍然需要用完 32 個字節的數據,向區塊鏈公佈另一個哈希(上圖中的哈希(1 和 2))。 這一不足也會降低隱私,因爲第三方總能確定是否存在更復雜的支出條件,因爲默克爾樹的頂部分支始終是可見的。
Taproot
據我們所知,Taproot 想法的起源來自於比特幣開發者 Gregory Maxwell 於 2018 年 1 月發出的一封電子郵件。Taproot 的結構除在默克爾樹的頂部外,類似於 MAST。就 Taproot 而言,在合作或正常情景中,可以選擇僅公佈單個公鑰和單個簽名,而無需公佈默克爾樹存在的證據。下面圖表說明了 Taproot 交易結構。
Taproot 支出條件的圖解說明
資料來源: BitMEX 研究團隊
(注:該圖表試圖說明與上述 MAST 圖表相同的支出標準)
左側(或地址)上的調整後公鑰可以從原始公鑰和默克爾根哈希計算得出。在正常或合作支付的情況下,在贖回時,原始公鑰不需要在鏈上,並且不顯示默克爾樹的存在,需要公佈的僅是單個簽名。在沒有合作或異常贖回的情況下,原始公匙將與關於默克爾樹的信息一同顯示。
Taproot 與原始 MAST 結構相比的好處很明顯,在合作的情況下,區塊鏈或腳本本身不再需要包含額外的 32 字節哈希,從而提高效率。除此之外,交易看起來「正常」,只是一次擁有公鑰和簽名的付款,其他支出條件的存在不需要顯示。這對於對外部第三方觀察者來說是一個巨大的隱私好處,例如當打開閃電通道或者甚至進行合作閃電通道關閉時,交易看起來就像是常規的比特幣支出。該交易可以被構建成使得僅在不合作的閃電通道關閉時,才需要顯示默克爾樹的存在。越多不同類型的交易看起來一樣,隱私就越好,因爲第三方可能不太能夠確定正在發生哪種類型的交易和產生資金流。一些比特幣開發者的長期目標可能是確保無論發生什麼類型的交易,至少在所謂的合作情況下,所有交易看起來都一樣。
對簽名集合的困惑
減少區塊鏈所需簽名數量的潛在可擴展性好處巨大,因此這個概念往往會激動人心。Schnorr 簽名確實能夠在多重簽名交易中集合簽名,這對比特幣來說應該是一個重大的好處。 不過,包含這一點以及其他與簽名集合相關想法的存在,導致人們對潛在好處有一些不切實際的期望,至少在此升級提議方面是這樣。據我們所知,對於這個特定的升級提議,唯一的集合好處是以在多重簽名方案中加入簽名的形式,而不是多重輸入或多個交易。
簽名集合想法的彙總表
資料來源: BitMEX 研究團隊
結論
我們認爲,與此軟分叉相關的好處不太可能有爭議。此軟分叉似乎在功能、可擴展性和隱私方面取得三贏局面。最大的爭論方面可能是沒有包含其他想法或爲什麼要這樣做的爭論。
話雖如此,許多人可能對這些升級的潛在好處感到興奮,並希望儘快在網絡上看到這些升級啓動。不過,當談到比特幣,特別是對共識規則的變更時,極爲需要耐心對待。
來源鏈接:blog.bitmex.com