比特幣 Taproot 升級在即:它的來源、內容與影響是什麼?

買賣虛擬貨幣

吳說作者|袁奔

本期編輯|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 的目標正是提升比特幣地址的匿名思想,讓所有的地址看起來都一樣,你無法從地址分析交易的型別。使用 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 的升級到底會對比特幣帶來怎樣的影響,是否能達到預期的目標,都只有交給時間來驗證了。

免責聲明:

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

推荐阅读