Taproot 升級確實有一些亮點,但更多的Taproot 更像是對SegWit 遺留問題的完善和補充。
吳說作者| 袁奔
本期編輯| Colin Wu
近期(2021年11月14日左右),比特幣將迎來自己的的一次重要的軟分叉升級Taproot,超過90% 的礦工同意了這次升級,因此不太可能會出現SegWit 升級時出現的社區分叉論戰。似乎此次升級並沒有引起太多的關注,但是也有不少文章將其稱作最重要的升級。
Taproot 升級到底是什麼,它是否真的讓人激動不已?
Taproot 本身是主根系植物的意思,大概就像下圖這樣。而Taproot 提出者GregoryMaxwell 解釋道,他希望比特幣交易支付的過程中,能夠像主根系植物一樣,關注大大的主根,而隱藏那些不必要的細小分支。
通往不可能三角之路
不論什麼樣的區塊鏈進行升級,終究解決的都是區塊鏈中的不可能三角問題。區塊鏈世界中的不可能三角理論是由Vitalik 在一篇名為《On sharding blockchains》的文章中提出的。它是指,一個區塊鍊網絡中要同時實現去中心化,安全,性能(效率,擴展性)三個條件是非常困難的,往往現實是我們在提升某兩個條件的時候,不得不以犧牲第三個條件為代價。
而此次的Taproot 升級其實也並未脫離這個大的框架。 Taproot 升級主要對應了兩個方面。首先的一個目的是進一步提高其匿名性的能力,也就是進一步提升安全性。另一方面則是期望通過改變區塊本身的數據結構來提升交易的性能,減少交易中不必要的數據負擔。
分解Taproot
Taproot 升級是三個相輔相成的BIP 的統稱,其中包括了Schnorr 簽名(BIP 340),Taproot(BIP 341)和TapScript(BIP 342)。
Schnorr 簽名
Schnorr 簽名是由德國密碼學家Claus Schnorr 提出的,但是因為專利原因,Schnorr 簽名直到2008 年才可以免費使用,這就使得2008 年誕生的比特幣與之失之交臂(這裡指2008 年發表的原始論文),採用了ECDSA 簽名。
目前來看,Schnorr 簽名幾乎是在性能,安全性上全方位超越了ECDSA 簽名,更重要的是,Schnorr 和ECDSA 採用相同的橢圓曲線算法,所以在升級的問題上更加容易實施。而其中Schnorr 中最亮眼的部分在於作用於交易輸出層面的聚合簽名。
在多重簽名條件下,我們往往要往交易數據中放入多個簽名,尤其是當簽名多的時候,這將帶來很大的交易費和內存負擔。但是利用聚合簽名,我們可以把多個簽名組合成一個簽名,就像下圖所示的那樣。
類似的,在Schnorr 簽名下,也可以對公鑰進行聚合,這大大的提升了比特幣網絡在交易時的性能。
而在驗證的時候,傳統的ECDSA 只能支持一一驗證的方式,但Schnoor 得益於它的聚合思想,可以在節點上進行批量的驗證。
直根
我們知道匿名一直是比特幣追求的一個重要的安全問題,在地址層面上,雖然比特幣地址的偽匿名性一定程度上隔離了物理世界身份和鏈上世界地址,但是不同的交易,地址的類型卻割裂的非常明顯。下面的這些地址的交易類型一目了然,這就導致了攻擊者對交易進行地址分析的可能。
而Taproot 的目標正是提升比特幣地址的匿名思想,讓所有的地址看起來都一樣,你無法從地址分析交易的類型。使用Taproot 可以合併獨立的P2PKH 和P2SH,使得彼此無法區分,其負擔的交易費卻是一樣的,而這也正是利用了Schnorr 的思想。
同時,Taproot 將Schnorr 用來創建默克爾抽象語法樹(MAST,一種將抽象語法樹和默克爾樹融合的數據結構)。在以前的情況中,假設我們有一筆交易,這筆交易設置的條件是,用戶A 在交易發起的前30 天可以使用交易,用戶B 在交易發起的30 天起可以使用交易。最終無論誰使用了交易,用戶A,B 的信息都將被暴露出去,這顯然是不必要的。
而在MAST 中,只有使用了交易的用戶會被暴露出去,而另一個用戶的信息將被隱藏,這大大保護了用戶的隱私問題。
TapScript
BIP 342 是關於Taproot 腳本實施的具體內容,它增加了一些操作碼用於執行,部署Taproot,Schnorr,軟分叉等代碼層面的功能,,如「OP_CHECKSIGADD」。禁用了「OP_CHECKMULTISIG」和「OP_CHECKMULTISIGVERIFY」 這樣的低效操作碼。修訂了「OP_CHECKSIG」和「OP_CHECKSIGVERIFY」以便可以提供Schnorr 的功能。整體上完善了比特幣腳本的內容,以便適應Taproot 升級。
總結
總結來看,Taproot 升級確實有一些亮點,但更多的Taproot 更像是對SegWit 遺留問題的完善和補充,正如bip-0341 中摘要所描述的那樣:“This document proposes a new SegWit version 1 output type …”這僅僅是SegWit 輸出層面的一個新的解決思路。
另一個問題是,Taproot 升級是一個軟分叉,其中包括Schnorr 真正的激活也要到明年才開始,所以Taproot 本身的升級過程也非一朝一夕,如果P2TR(Taproot 下的地址)未能成為主流,那麼P2TR 顯然並未達成其匿名於其他地址的目的。
此外,還有一種聲音質疑了Taproot 實際的效果,其認為Taproot 會導致地址空間碎片化,使得攻擊者更容易分析。
對於普通用戶來說,Taproot 的最直觀的好處就是降低了交易費用,提升了交易的匿名性和效率。無論如何Taproot 的升級到底會對比特幣帶來怎樣的影響,是否能達到預期的目標,都只有交給時間來驗證了。
展開全文打開碳鏈價值APP 查看更多精彩資訊