CTV 和 CSFS 如何提升 BitVM 橋

作者:Robin Linus

來源:https://delvingbitcoin.org/t/how-ctv-csfs-improves-bitvm-bridges/1591

摘要: CTV 通過消除對一筆預簽名承諾交易和根本上基於誠實參與者的安全假設,提升了 BitVM 橋。此外,CSFS 極大地提升了資本效率並降低了啟動負擔。

引言

在 BitVM 中,我們使用承諾了輸入的限制條款(input-commiting covenants)來表示狀態,比如說,我們將 “如果沒有人發起挑戰,運營者就可以從橋接合約中取出資金” 這一狀態表示為一個具體的輸出,挑戰者可以將它燒掉,以表明他們認為運營者的取款需求是惡意的,從而迫使運營者進入挑戰流程。相反,在皆大歡喜情形中,該輸出能夠 “倖存” 度過整個挑戰期,然後運營者就可以用它來執行取款交易。

當前的 BitVM 橋接合約設計依賴於模擬的限制條款,以保證存款的安全性。這種承諾需要 1-of-n 誠實參與者假設,並且在實踐中會引入多種不合人意的複雜性。一直到最近,我們都以為 CTV 是不足以替代承諾交易的,因為 CTV 被設計為僅承諾 輸出,而不承諾 輸入。然而,真相表明,有一個技巧可以啟用我們所需的功能。

腳本簽名技巧

關鍵的想法是利用這樣一個事實:CTV 可以承諾所有輸入的腳本簽名。假設我們想要表達 “輸入 A 僅與輸入 B 一起才能花費”,我們可以這樣做:

  1. 定義輸入 B 為一個(傳統的) P2SH 腳本。
  2. 預先使用 SINGLE|NONE 這個 sighash 標籤生成一個簽名,本質上是隻簽名了輸入 B。這個簽名僅僅承諾了輸入 B,又因為 P2SH 並非隔離見證類型,所以這個簽名將出現在輸入 B 的 “腳本簽名(scriptSig)” 字段中。
  3. 定義輸入 A 是一個 P2TR 輸出,幷包含著一個 CTV 條件,該 CTV 的模板哈希值承諾了未來一筆交易的(各輸入的)腳本簽名,也就包括了輸入 B 的簽名。

結果是:輸入 A 承諾了輸入 B 的簽名,這個簽名又承諾了輸入 B 。所以輸入 A 只有跟輸入 B 一起才能花費。

細節

這樣的承諾是單向的:輸入 A 承諾了輸入 B,但反之不成立。雙向的承諾在理論上會更好,但因為哈希循環,是無法實現的(即使我們擁有 TXHASH 或其它內省操作碼)。

對我們的橋接合約來說,只要能約束輸入 B 總是被燒掉,就足夠了。但這個用 CTV 也是無法實現的 —— 那樣的話,模板哈希值將必須承諾自己的 腳本簽名,而簽名已經承諾了輸入 B、它的 TXID —— 這樣就產生了一個哈希循環。

為了解決這個問題,我們重新設計了交易圖,使得即使輸入 B 不跟輸入 A 一起被花費,合約也依然是安全的。新設計的具體內容超出了本文的範圍,因為需要你對橋接合約的架構有更加深入的瞭解。

具體的提升

  • CTV 帶來了無條件的存款安全性。即使所有的運營者都是惡意的,他們也無法從橋接合約中盜取資金。雖然我們依然依賴於一個根本上的活性假設來保證取款,簡化後的啟動程序讓我們可以大大擴大運營者集合 —— 可能是一個數量級。所以至少一個運營者保持在線的假設就有更大概率為真了。
  • CSFS 替代了 Lamport 簽名,將交易的體積降低了大約 10 倍。這大大地降低了橋接合約運營者的資本開銷。
  • 非硬化的密鑰派生隨著 CSFS 的啟用成為可能,讓任何人都可以非交互地計算出運營者的公鑰。這大大簡化了資金鎖入的流程,因為運營者需要提供的數據量減少了。
  • 在當前的設計中,資金鎖入依然需要一個運營者簽名,這就帶來了審查的可能。雖然這可以使用別的系統來緩解,我們的長期目標是通過改變橋接合約來指出完全的非交互式鎖入,從而完全消除交互需要

出於這些理由,BitVM 聯盟強烈支持 CTV + CSFS 提議。

結論

上述技巧表明,靈活地使用 CTV 和 CSFS,我們就可以極大地簡化 BitVM 橋接合約的構造,同時提高安全性和效率。通過移除對預簽名承諾交易的需要、移除根本上的誠實參與者假設,CTV 讓橋接合約可以獲得無條件的安全保證。與此同時,CSFS 可以降低資本開銷和操作複雜性,為更可擴展、更去中心化的橋接合約鋪平道路。雖然還有一些開放性挑戰 —— 比如讓資金鎖入編程完全非交互的操作 —— 新的設計代表著邁向信任最小化、實用的比特幣互操作性的重大一步。

來源
免責聲明:以上內容僅為作者觀點,不代表Followin的任何立場,不構成與Followin相關的任何投資建議。
喜歡
收藏
評論