比特幣 Taproot 到底改變了什麼?

看到以 bc1p 開頭的比特幣地址時,錢包畫面通常仍只顯示一串收款資訊。可是,這筆資產背後可能只需要一把鑰匙,也可能預先安排合作簽署、逾時取回與緊急備援等多條花費路徑。外觀同樣簡潔,內部條件卻可以差很多。
過去的複雜腳本往往要在支出時公開更多條件,連沒有實際使用的備援安排也可能跟著曝光。條件愈多,見證資料通常愈大,旁觀者也更容易辨認資產採用了哪一類安全設計。
Taproot 的核心改變,是讓一筆輸出可以同時準備「以調整後的輸出金鑰簽署」與「執行某一條腳本」兩類路徑,並盡量只公開真正用到的證明。它結合 Schnorr 簽章、金鑰調整與默克爾樹承諾,改善部分複雜花費的效率、隱私與擴充空間;這些收益仍取決於實際路徑和軟體怎麼使用。
兩條路徑共用一個門牌
Taproot 輸出會在鏈上放入一個輸出公鑰。建立者可以把主要金鑰和一棵腳本樹的承諾結合,算出這個公開值;任何人看見它時,無法直接讀出樹中預備了多少條條件。
日後支出有兩種主要方式。第一種是金鑰路徑:持有人用對應私鑰產生有效的 Schnorr 簽章,見證裡通常只需放入簽章。第二種是腳本路徑:支出者公開實際採用的腳本、滿足條件所需的資料,以及一段默克爾證明,讓全節點確認這條腳本從一開始就包含在承諾中。
這像一扇門同時準備日常鑰匙與封存的緊急程序。合作順利時走最短路徑;合作失敗、等待期屆滿或特定條件成立時,才拆開相應的備援信封。公開資料仍足以讓所有驗證者依共識規則檢查,其他未使用的信封則不必一起攤開。
合作時可能只留下單一簽章
Schnorr 簽章的線性結構,讓多名參與者可以透過額外的聚合簽署協議,共同產生一個可由聚合公鑰驗證的簽章。鏈上看到的金鑰路徑支出,因而可能來自單一持有人,也可能是多人合作完成;單靠簽章外觀未必能分辨。
這項能力對多重簽章與合作式合約很有用。參與者都同意正常結果時,可以把複雜協調留在鏈下,最後只留下精簡的共同簽章。資料較少,通常也意味著占用較少區塊空間。
不過,Taproot 不會把既有多重簽章自動壓縮。安全的金鑰聚合需要專門協議,還要處理參與者識別、臨時數、簽署回合與中途離線等問題。若錢包實作或備份流程沒有支援,新的簽章能力不會自行補上操作缺口。
樹狀承諾只揭露實際使用的分支
當一份安全安排包含多條備援規則,Taproot 可以把每條腳本當成樹葉,逐層計算成一個默克爾根,再把這份承諾揉進輸出公鑰。使用某片樹葉時,只要公開該腳本與通往根部的相鄰雜湊,就能證明它早已被承諾,無須交出其他樹葉內容。
因此,某筆 UTXO 若預備了「兩人共同簽署」「等待一段時間後由另一把鑰匙取回」與「緊急門檻簽署」等路徑,真正動用其中一條時,其餘條件可以繼續隱藏。未使用葉子的完整腳本不必放進當次見證,但通往根部的默克爾路徑仍會占用空間;樹越深,證明通常越長。
腳本路徑仍會留下線索。外界能看見實際執行的腳本、相關公鑰與默克爾路徑,也知道這次沒有走金鑰路徑;樹的深度、重複使用的資料或常見範本,還可能協助辨認錢包類型。Taproot 減少的是不必要揭露,沒有把公開帳本變成密文。
效率與隱私增益都有條件
金鑰路徑通常很精簡,複雜條件也能在合作成功時呈現為單一簽章。可是,實際手續費仍由整筆交易的輸入、輸出、見證大小與當時費率共同決定。若必須走一條很長的腳本路徑,公開腳本與默克爾證明仍會占用空間;簡單的 Taproot 交易也不保證在每種比較方式下都比其他格式便宜。
隱私改善同樣有範圍。金鑰路徑可以降低單人與多人合作支出的外觀差異,腳本樹也能藏住未使用條件。然而,交易金額、輸入與輸出的關聯仍公開可見,地址重複使用、找零模式和前後交易仍可能形成線索。Taproot 無法單獨阻止鏈上分析。
新的收款格式也不會改寫既有資產。舊 UTXO 已經帶著原本的花費條件;想改用 Taproot,通常要由控制者建立一筆新交易,把資產送往相容的新輸出。這個過程仍需核對收款資訊、保存鑰匙並承擔鏈上費用。
新能力仍要靠軟體與人正確使用
Taproot 以軟分叉方式加入規則,升級後的全節點會完整檢查 SegWit v1 輸出的新花費條件。腳本路徑採用 Tapscript,讓簽章檢查使用 Schnorr、加入可組合多把鑰匙門檻的 OP_CHECKSIGADD,並預留日後以軟分叉擴充的機制。舊軟體可以繼續處理原本支援的格式,卻未必認得 bc1p 地址,也無法替使用者建立或驗證新的完整語意。協議具備能力,並不等於每套錢包、交易所或硬體裝置都同時支援。
腳本樹還會增加設計責任。建立者必須確認每條備援路徑真的可用、等待條件符合預期、參與者保存正確資料,而且日後知道該如何組合支出。樹中藏著一條寫錯的路徑,平時可能完全看不出來,真正遇到事故時才暴露問題。
所以,Taproot 最重要的改變,可以濃縮為「把常用的合作結果放在簡潔金鑰路徑,把備援條件放進只在需要時揭露的腳本樹」。Schnorr 簽章讓合作式簽署更有效率,默克爾承諾縮小不必要的公開範圍,Tapscript 則替後續腳本擴充留下較整齊的空間。它改善了表達花費條件的方法,同時保留比特幣由每個驗證者自行檢查規則的核心。