Schnorr-Signatures
無腳本腳本和主根有什麼不同?
我最近閱讀了 Aaron van Wirdum 對無腳本腳本和taproot的外行解釋。我收集到兩者都利用 Schnorr 簽名的聚合來隱藏看起來正常的交易中的複雜腳本(智能合約)。將這兩個方案區分開來的更精細的細節是什麼?
比特幣中腳本最常見的用途之一是建構邏輯上的原子操作,例如“Tx2 當且僅當 Tx1 發生時才會發生”。
無腳本腳本告訴我們如何在不使用腳本的情況下使用 schnorr 簽名的附加屬性來建構原子事務。這樣做將使它們更加高效和私密。
Taproot 是一種使用 ECC 公鑰的附加屬性來允許使用者送出僅在需要時才顯示的腳本的想法。如果不需要,甚至根本不會透露腳本的存在。
這很有用,因為幾乎所有明智的契約條款(無論是智能的還是其他的)都可以重寫為“每個人都同意”和實際契約之間的頂級 OR,並且因為(使用 schnorr)您可以讓每個人都同意的單個簽名工作案子。
Taproot 本身不依賴於 schnorr 的特定屬性,可以為 ECDSA 等實施。從技術上講,主根在 EC 簽名本身之外工作,允許您通過單個普通簽名或其他一些條件進行消費,如果您通過簽名進行消費,則隱藏其他條件的存在。但是對於 ECDSA,使用單個公鑰來表示“每個人都同意”的情況並不容易,因此主根的用處要小得多。
因此,例如,如果您有一個輸出可以由 Alice 或 Bob 使用,但只能在時間限制之後使用,那麼使用 ECDSA 主根的模式將比沒有主根更有效:Alice 的密鑰將用於生成根,並且bob 的密鑰和超時將在隱藏腳本中。