Taproot

是什麼讓交叉輸入簽名聚合難以實現?

  • October 28, 2021

是什麼讓交叉輸入簽名聚合難以實現?除了設計空間的原因之外,為什麼它沒有進入 BIP-Taproot?(可以使用 MuSig、MuSig2 等實現一個輸入內的密鑰聚合,但不能使用 BIP-Taproot 跨不同輸入聚合簽名。)

Thorkil Vaerge 在Twitter 上提出了這個問題。

Pieter Wuille 在Twitter 上回答了這個問題。

交叉輸入聚合最重要的複雜性在AJ Towns的這個比特幣開發郵件列表文章中進行了解釋。

TL;DR:如果軟分叉更改了檢查的簽名,它們不能更改聚合在一起的內容。當它們與 BIP341 的 OP_SUCCESSx 升級機制互動時,這尤其複雜,這很容易讓未來的軟分叉完全改變腳本語義。這裡沒有什麼根本上的難點——只是為了確保一切都能很好地協同工作,需要復雜的工程設計。

Pieter 在關於 BIP-Taproot的倫敦 BitDevs蘇格拉底研討會上補充道:

嫁接和交叉輸入聚合就是如此深刻的概念變化。你不能允許以後建造它們。這是腳本工作方式的結構性變化。這些東西不是以後可以添加到 Taproot 之上的東西。你需要一個繼任者。跨輸入聚合,腳本驗證的概念不再是每個輸入的東西,而是每個交易的東西。你不能以最佳效率做到這一點,我想你可以發明一些東西。內置的可擴展性類型是新的操作碼、新的公鑰類型、新的 sighash 類型,所有這些都變得相當容易,並且與不立即執行相比幾乎沒有缺點。腳本執行的真正結構變化,他們需要別的東西。

引用自:https://bitcoin.stackexchange.com/questions/100216