比特幣 Taproot 升級將至,一文了解它的過去、現在與未來

買賣虛擬貨幣

大約兩週後,比特幣將迎來它最重要的技術升級之一:Taproot。

什麼是Taproot?維基百科上給出的普通定義是:

“主根(taproot)是一個大的、中心的、佔優勢的根,而其它的根會從其側面發芽。通常,主根有些直,然後形狀逐漸變細,並直接向下生長。在例如胡蘿蔔這樣的植物中,主根是一種非常發達的貯藏器官,其已被作為蔬菜栽培。"

那比特幣即將採用的Taproot技術方案到底是什麼?它的名字是如何來的?

比特幣Taproot名字的由來

“我一直認為這個名字的由來是‘利用Merkle根‘,但我實際上並不知道GregoryMaxwell的想法是什麼。’——PieterWuille(來源)

“我最初不得不查這個詞,但我把它理解成了關鍵路徑,因為它是你製作美味的胡蘿蔔湯的核心,而默克爾化的指令碼將是你希望忽略的其他較小的根。”——AnthonyTowns(來源‌)

而Taproot方案提出者GregoryMaxwell給出的答案‌則是:

“這個詞起源於一棵樹的形象化,這顆樹的中央有一個像蒲公英主根一樣粗壯的中心(這項技術非常有用,因為假設有一條高概率路徑,其餘的路徑就模糊化了)。我認為這是一個很好的方法,因為它透過利用根中隱藏的commitment來驗證指令碼路徑的花費。……唉,將具有已排序內部節點的雜湊樹稱為“桃金娘樹”(Myrtletree)並沒有流行起來。(Myrtletree是包括Melaleuca樹、茶樹(tea-tree)在內的樹家族,這聽起來像'merkle'。:p)”

因此,當談論比特幣taproot時,我們腦海中浮現出來的影象應該是下面這個樣子的:

來源:SHUTTERSTOCK

Taproot升級對比特幣的影響是什麼?

早在18年初,在GregoryMaxwell提出Taproot方案之後,國內比特幣社羣便對該方案進行了早期的報道‌,當時社羣的關注點在於:

“實施taproot升級後,閃電網路將變得更加私密,這使得LN交易與所有比特幣交易無法區分開來,因此人們將無法區分比特幣的鏈上交易和閃電網路的鏈下交易”。

而要應用Taproot的前提,是需要先讓Schnorr簽名方案落地。

到了2019年,除了提高比特幣的隱私性之外,Taproot方案又被社羣賦予了新的使命——擴充套件比特幣智慧合約的靈活性。也因此,Taproot升級以及Schnorr簽名被提升為“比特幣在下一階段的重要技術‌”。

2020年1月份,Bitcoincore程式碼庫維護者之一PieterWuille正式釋出了包含Taproot/Schnorr軟分叉升級的BIP340‌、BIP341‌以及BIP342‌,由此,這兩個升級提案開始逐漸進入比特幣使用者們的視野。

今年6月份,比特幣全網支援Taproot升級的算力超過了90%,達到了鎖定升級的最低要求,這也意味著Taproot將在比特幣區塊高度達到709,632(預計將在北京時間11月13日前後)時正式與大家見面。

關於Taproot和Schnorr簽名的一些趣事

1、比特幣最初使用的是ECDSA簽名方案,但實際上Schnorr簽名要比ECDSA簽名更早誕生,我們說Schnorr簽名是對比特幣原始ECDSA簽名的升級,是因為其可以更容易地實現各種密碼學技巧。在時間順序上,Schnorr簽名演算法的誕生,要早於ECDSA所基於的DSA演算法。而中本聰使用DSA的部分目的是為了規避ClausPeterSchnorr的Schnorr簽名專利,而他的專利在2011年到期了。

2、雖然沒有成功,但在比特幣採用Schnorr簽名的早期發展中,有人建議不應將Claus-PeterSchnorr的名字與比特幣關聯起來,因為他的專利導致這種有價值的密碼學技術在20多年的時間裡沒有被廣泛使用。PieterWuille曾表示‌:

“我們確實考慮過用DLS(離散對數簽名)來稱呼BIP340,但我們最終沒有這樣做,因為Schnorr的名字已經被談論得太多了。”

3、Paytocontract:IljaGerhardt和TimoHanke建立了一個名為Paytocontract‌的協議,該協議由Hanke在2013年的聖何塞比特幣會議上提出,其允許一筆支付承諾其合約的雜湊值。任何擁有該合約副本和用於避免某些攻擊的nonce的人,都可以驗證這個承諾(commitment),但對其他人來說,這種付款看起來與其他的比特幣付款類似。

2014年關於側鏈的論文‌中包含了對這種pay-to-contract(P2C)協議的輕微改進,其中承諾還包括原始的支付公鑰,而Taproot使用了相同的結構。

Taproot落地之後,未來可能的比特幣共識改變

那在啟用Taproot之後,開發者們會在它的基礎之上對比特幣進行哪些共識層的改進呢?

1、交叉輸入(Cross-input)簽名聚合:Schnorr簽名使幾個不同的公鑰和私鑰對的所有者可輕鬆地建立單個簽名,以證明所有金鑰所有者在建立簽名時都進行了協作。隨著未來共識的變化,這可能允許交易包含單個簽名,該簽名可用於證明在該交易中使用的所有UTXO的所有者已授權使用。在第一次輸入後,這將為每個金鑰路徑(keypath)花費節省大約16虛擬位元組(vbytes),從而為整合以及coinjoin節省開銷。它甚至可使基於coinjoin‌的支出比常規的支出更便宜,從而提供一種溫和的激勵,以鼓勵人們更多地去使用隱私交易。

2、SIGHASH_ANYPREVOUT:每一筆正常的比特幣交易都包含一個或多個輸入,並且這些輸入中的每一個都使用其txid引用前一筆交易的輸出。這告訴了全驗證節點(例如BitcoinCore)這筆交易可以花費多少錢,以及需要滿足哪些條件才能證明支出是經過授權的。為比特幣交易生成簽名的所有方式,無論有沒有taproot,要麼提交到prevout中的txid,要麼根本不牽扯到prevout。對於不想使用精確的預先安排的一系列交易的多使用者協議來說,這是一個問題。如果任何使用者可以跳過特定交易,或更改除witness驗證資料之外的任何交易的任何細節,這將更改任何後續交易的txid。而更改txid會使之前為以後交易建立的任何簽名無效。這迫使鏈下協議實施機制來懲罰任何提交舊交易的使用者(例如LN的懲罰機制)。

而SIGHASH_ANYPREVOUT‌可透過允許簽名跳過提交到prevouttxid來消除這個問題。這使得為閃電網路(LN)實施eltoo層‌以及對vault金庫‌和其他合約協議的改進成為可能。

3、委託(Delegation)和歸納:在你建立一個指令碼(taproot或其它)之後,除了將私鑰授予其他人(非常危險),你幾乎無法授權他人使用該指令碼。此外,對於想要使用金鑰路徑(keypath)花費加上少量基於指令碼條件的使用者來說,可以使taproot變得更經濟。開發者們已經提出了幾種透過歸納和提供簽名者委託來增強taproot的方法:

(1)Graftroot:在taproot的想法誕生後不久,Graftroot就被提出了,該方案將為任何能夠製作taproot路徑的人提供一項額外的功能。金鑰路徑(keypath)簽名者可以簽署一個指令碼,描述資金可使用的新條件,將支出許可權委託給任何能夠滿足該指令碼要求的人,而不是直接支出資金。簽名、指令碼以及滿足指令碼所需的任何資料,都將在支出交易中提供。金鑰路徑(keypath)簽名者可透過這種方式委託給無限數量的指令碼,而無需建立任何鏈上資料,直到發生實際支出。

(2)廣義taproot(g’root):幾個月後,AnthonyTowns提出‌了一種使用公鑰點(publickeypoints)來承諾多種不同支出條件的方法,而不必使用類似MAST的結構。這種廣義taproot(g’root)構造“在taproot假設不成立的情況下可能更有效”,此外,它還提供了一種構建軟分叉安全交叉輸入聚合系統的簡單方法。

(3)Entroot:Graftroot和g'root的最新合成方案‌,它簡化了許多情況,使它們更具頻寬效率。

4、新的和舊的操作碼(opcode):taproot軟分叉包含了對tapscript的支援,它提供了一種向比特幣新增新操作碼的改進方法,即OP_SUCCESSx操作碼。一些擬議的新操作碼包括:

(1)恢復舊操作碼:由於擔心安全漏洞,2010年開發者禁用了一些數學和字串操作的操作碼。許多開發人員希望在安全審查後重新啟用這些操作碼,並且(在某些情況下)可能會擴充套件操作碼以處理更大的數字。

(2)OP_CAT:值得特別提及的一個先前禁用的操作碼是OP_CAT‌,研究人員發現它可單獨在比特幣上實現各種有趣的行為,或者它還能以有趣的方式與其他新操作碼進行組合。

(3)OP_TAPLEAF_UPDATE_VERIFY:當與taproot的金鑰路徑和指令碼路徑功能一起使用時,OP_TLUV操作碼能以一種特別高效和強大的方式啟用契約(covenants‌)。這可用於實現JoinPool‌、Vault以及其他安全和隱私改進。它還可以與OP_CHECKTEMPLATEVERIFY‌很好地結合。

注意,以上所有的想法仍然只是提議,沒有人能保證它們會成功應用,這需要研究人員和開發人員完成每一項提案,然後由使用者決定這些功能是否值得去改變比特幣的共識規則。

相關資料:

1、https://bitcoinops.org/en/newsletters/2021/10/27/

2、https://bitcoinops.org/en/newsletters/2021/10/20/

3、https://www.8btc.com/article/223681

4、https://www.8btc.com/article/351969

免責聲明:

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

推荐阅读

;