大約兩週後,比特幣將迎來它最重要的技術升級之一:Taproot。
什麼是Taproot?維基百科上給出的普通定義是:
“主根(taproot)是一個大的、中心的、佔優勢的根,而其它的根會從其側面發芽。通常,主根有些直,然後形狀逐漸變細,並直接向下生長。在例如胡蘿蔔這樣的植物中,主根是一種非常發達的貯藏器官,其已被作為蔬菜栽培。”
那比特幣即將採用的Taproot 技術方案到底是什麼?它的名字是如何來的?
1 比特幣Taproot 名字的由來
“我一直認為這個名字的由來是’利用Merkle 根’,但我實際上並不知道Gregory Maxwell 的想法是什麼。’ —— Pieter Wuille
“我最初不得不查這個詞,但我把它理解成了關鍵路徑,因為它是你製作美味的胡蘿蔔湯的核心,而默克爾化的腳本將是你希望忽略的其他較小的根。” —— Anthony Towns
而Taproot 方案提出者Gregory Maxwell 給出的答案則是:
“這個詞起源於一棵樹的形象化,這顆樹的中央有一個像蒲公英主根一樣粗壯的中心(這項技術非常有用,因為假設有一條高概率路徑,其餘的路徑就模糊化了)。我認為這是一個很好的方法,因為它通過利用根中隱藏的commitment 來驗證腳本路徑的花費。……唉,將具有已排序內部節點的哈希樹稱為“桃金孃樹”(Myrtle tree)並沒有流行起來。(Myrtle tree 是包括Melaleuca 樹、茶樹(tea-tree)在內的樹家族,這聽起來像’merkle’。:p)”
因此,當談論比特幣taproot 時,我們腦海中浮現出來的圖像應該是下面這個樣子的:
來源:SHUTTERSTOCK
2 Taproot 升級對比特幣的影響是什麼?
早在18 年初,在Gregory Maxwell 提出Taproot 方案之後,國內比特幣社區便對該方案進行了早期的報導,當時社區的關注點在於:
“實施taproot 升級後,閃電網絡將變得更加私密,這使得LN 交易與所有比特幣交易無法區分開來,因此人們將無法區分比特幣的鏈上交易和閃電網絡的鏈下交易”。
而要應用Taproot 的前提,是需要先讓Schnorr 簽名方案落地。
到了2019 年,除了提高比特幣的隱私性之外,Taproot 方案又被社區賦予了新的使命—— 擴展比特幣智能合約的靈活性。也因此,Taproot 升級以及Schnorr 簽名被提升為“比特幣在下一階段的重要技術”。
2020 年1 月份,Bitcoin core 代碼庫維護者之一Pieter Wuille 正式發布了包含Taproot/Schnorr 軟分叉升級的BIP 340、BIP 341以及BIP 342,由此,這兩個升級提案開始逐漸進入比特幣用戶們的視野。
今年6 月份,比特幣全網支持Taproot 升級的算力超過了90%,達到了鎖定升級的最低要求,這也意味著Taproot 將在比特幣區塊高度達到709,632 (預計將在北京時間11 月13 日前後)時正式與大家見面。
3 關於Taproot 和Schnorr 簽名的一些趣事
1、比特幣最初使用的是ECDSA 簽名方案,但實際上Schnorr 簽名要比ECDSA 簽名更早誕生,我們說Schnorr 簽名是對比特幣原始ECDSA 簽名的升級,是因為其可以更容易地實現各種密碼學技巧。在時間順序上,Schnorr 簽名算法的誕生,要早於ECDSA 所基於的DSA 算法。而中本聰使用DSA 的部分目的是為了規避Claus Peter Schnorr 的Schnorr 簽名專利,而他的專利在2011 年到期了。
2、雖然沒有成功,但在比特幣採用Schnorr 簽名的早期發展中,有人建議不應將Claus-Peter Schnorr 的名字與比特幣關聯起來,因為他的專利導致這種有價值的密碼學技術在20 多年的時間裡沒有被廣泛使用。 Pieter Wuille 曾表示:
“我們確實考慮過用DLS (離散對數簽名)來稱呼BIP340,但我們最終沒有這樣做,因為Schnorr 的名字已經被談論得太多了。”
3、Pay to contract:Ilja Gerhardt 和Timo Hanke 創建了一個名為Pay to contract的協議,該協議由Hanke 在2013 年的聖何塞比特幣會議上提出,其允許一筆支付承諾其合約的哈希值。任何擁有該合約副本和用於避免某些攻擊的nonce 的人,都可以驗證這個承諾(commitment),但對其他人來說,這種付款看起來與其他的比特幣付款類似。
2014 年關於側鏈的論文中包含了對這種pay-to-contract (P2C) 協議的輕微改進,其中承諾還包括原始的支付公鑰,而Taproot 使用了相同的結構。
4 Taproot 落地之後,未來可能的比特幣共識改變
那在激活Taproot 之後,開發者們會在它的基礎之上對比特幣進行哪些共識層的改進呢?
1、交叉輸入(Cross-input)簽名聚合:Schnorr 簽名使幾個不同的公鑰和私鑰對的所有者可輕鬆地創建單個簽名,以證明所有密鑰所有者在創建簽名時都進行了協作。隨著未來共識的變化,這可能允許交易包含單個簽名,該簽名可用於證明在該交易中使用的所有UTXO 的所有者已授權使用。在第一次輸入後,這將為每個密鑰路徑(keypath) 花費節省大約16 虛擬字節(vbytes),從而為整合以及coinjoin 節省開銷。它甚至可使基於coinjoin的支出比常規的支出更便宜,從而提供一種溫和的激勵,以鼓勵人們更多地去使用隱私交易。
2、SIGHASH_ANYPREVOUT:每一筆正常的比特幣交易都包含一個或多個輸入,並且這些輸入中的每一個都使用其txid 引用前一筆交易的輸出。這告訴了全驗證節點(例如Bitcoin Core)這筆交易可以花費多少錢,以及需要滿足哪些條件才能證明支出是經過授權的。為比特幣交易生成簽名的所有方式,無論有沒有taproot,要么提交到prevout 中的txid,要么根本不牽扯到prevout。對於不想使用精確的預先安排的一系列交易的多用戶協議來說,這是一個問題。如果任何用戶可以跳過特定交易,或更改除witness 驗證數據之外的任何交易的任何細節,這將更改任何後續交易的txid。而更改txid 會使之前為以後交易創建的任何簽名無效。這迫使鏈下協議實施機制來懲罰任何提交舊交易的用戶(例如LN 的懲罰機制)。
而SIGHASH_ANYPREVOUT可通過允許簽名跳過提交到prevout txid 來消除這個問題。這使得為閃電網絡(LN) 實施eltoo 層以及對vault 金庫和其他合約協議的改進成為可能。
3、委託(Delegation)和歸納:在你創建一個腳本(taproot 或其它)之後,除了將私鑰授予其他人(非常危險),你幾乎無法授權他人使用該腳本。此外,對於想要使用密鑰路徑(keypath)花費加上少量基於腳本條件的用戶來說,可以使taproot 變得更經濟。開發者們已經提出了幾種通過歸納和提供簽名者委託來增強taproot 的方法:
(1) Graftroot:在taproot 的想法誕生後不久,Graftroot 就被提出了,該方案將為任何能夠製作taproot 路徑的人提供一項額外的功能。密鑰路徑(keypath)簽名者可以簽署一個腳本,描述資金可使用的新條件,將支出權限委託給任何能夠滿足該腳本要求的人,而不是直接支出資金。簽名、腳本以及滿足腳本所需的任何數據,都將在支出交易中提供。密鑰路徑(keypath)簽名者可通過這種方式委託給無限數量的腳本,而無需創建任何鏈上數據,直到發生實際支出。
(2)廣義taproot (g’root): 幾個月後,Anthony Towns 提出了一種使用公鑰點(public key points)來承諾多種不同支出條件的方法,而不必使用類似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
特別聲明
免責聲明:本文不代表0x财经立場,且不構成投資建議,請謹慎對待,如需報導或加入交流群,請聯繫微信:VOICE-V。
來源:Defi之道原創