在比特幣中,任意參與方的任意行爲均需要通過 UTXO 實現。因此,使用共識機制確保 UTXO 正確,則能夠抵抗任意攻擊。類似,在 DLC 中,任意參與方的任意行爲均需要通過 CET(Contract ution Transaction)實現。因此,使用樂觀挑戰機制確保 CET 正確,則能夠抵抗任意攻擊。具體而言,預言機質押2B TC 後,則能夠簽署 CET。在 CET 中添加樂觀挑戰機制。如果 CET 不被挑戰,或成功應對挑戰,則 CET 正確,能夠完成結算,預言機解除質押且獲得手續費;如果 Oracle 試圖作惡,則任何人都可成功挑戰,該 CET 將無法結算,預言機損失質押金且該預言機無法再對同一 CET 簽名。符合大道至簡,具有簡潔美。
2.DLC 原理
Alice 和 Bob 簽署對賭協議:投注第ξ個區塊的哈希值是奇數或偶數。如果是奇數,則 Alice 贏得遊戲,可提取資產;如果是偶數,則 Bob 贏得遊戲,可提取資產。使用 DLC,通過預言機傳遞第ξ個區塊信息構造條件簽名使得正確的獲勝方贏得所有資產。
Bitlayer Research:OP-DLC 2大道至簡
原文標題:《Bitlayer Core Technology: DLC and Its Optimization Considerations》
原文作者:mutourend & lynndell, Bitlayer Research Group
1.引言
Discreet Log Contract (DLC) 是由麻省理工學院的 Tadge Dryja 在 2018 年提出的一種基於預言機的合約執行框架。DLC 允許兩方根據預定義的條件進行有條件支付。雙方預先確定可能的結果並進行預簽名,並在預言機簽署結果時使用這些預簽名來執行支付。因此,DLC 在保證比特幣存款安全的同時,實現了新的去中心化金融應用。
上一篇文章《DLC 原理解析及其優化思考》總結了 DLC 在隱私保護、複雜合約、資產風險低等方面的優勢,也分析了 DLC 存在密鑰風險、去中心化信任風險、串謀風險等問題,並將去中心化預言機、門限簽名、樂觀挑戰機制等引入 DLC,解決其應面臨的各種問題。由於 DLC 中涉及預言機、Alice 和 Bob 三個參與方,不同參與方之間串謀攻擊窮舉是相對複雜的,導致預防策略也是相對複雜度的。複雜的防禦策略不是完美的,不符合大道至簡,缺少簡潔美。
在比特幣中,任意參與方的任意行爲均需要通過 UTXO 實現。因此,使用共識機制確保 UTXO 正確,則能夠抵抗任意攻擊。類似,在 DLC 中,任意參與方的任意行爲均需要通過 CET(Contract ution Transaction)實現。因此,使用樂觀挑戰機制確保 CET 正確,則能夠抵抗任意攻擊。具體而言,預言機質押2B TC 後,則能夠簽署 CET。在 CET 中添加樂觀挑戰機制。如果 CET 不被挑戰,或成功應對挑戰,則 CET 正確,能夠完成結算,預言機解除質押且獲得手續費;如果 Oracle 試圖作惡,則任何人都可成功挑戰,該 CET 將無法結算,預言機損失質押金且該預言機無法再對同一 CET 簽名。符合大道至簡,具有簡潔美。
2.DLC 原理
Alice 和 Bob 簽署對賭協議:投注第ξ個區塊的哈希值是奇數或偶數。如果是奇數,則 Alice 贏得遊戲,可提取資產;如果是偶數,則 Bob 贏得遊戲,可提取資產。使用 DLC,通過預言機傳遞第ξ個區塊信息構造條件簽名使得正確的獲勝方贏得所有資產。
橢圓曲線生成元爲 G,階爲 q。預言機、Alice 和 Bob 各自的密鑰對分別爲(z, Z), (x, X), (y, Y)。
注資交易(鏈上): Alice 和 Bob 一起創建一筆注資交易,各自將 10 BTC 鎖在一個 2-of-2 的多籤輸出(一個公鑰 X 屬於 Alice,一個公鑰 Y 屬於 Bob)。
構建 CET(鏈下):Alice 和 Bob 創建 CET 1 和 CET 2 ,用於花費注資交易。
預言機計算承諾 R = k · G,然後計算 S 和 S'
S := R - hash(OddNumber, R) · Z
S' := R - hash(EvenNumber, R) · Z
則 Alice 和 Bob 對應的新公鑰如下:
PK^{Alice} := X + S
PK^{Bob} := Y + S'.
結算(鏈下->鏈上):當第ξ個區塊成功生成,則預言機根據該區塊的哈希值,簽署對應的 CET 1 或 CET 2 。
如果哈希爲奇數,則預言機如下籤署 s
s := k - hash(OddNumber, R) z
廣播 CET 1 。
如果哈希爲偶數,則預言機簽署 s'
s' := k - hash(EvenNumber, R) z
廣播 CET 2 。
提幣(鏈上):如果預言機廣播 CET 1 ,則 Alice 可以計算出新私鑰,並花費鎖定的 20 個 BTC
sk^{Alice} = x + s
如果預言機廣播 CET 2 ,則 Bob 可以計算出新私鑰,並花費鎖定的 20 個 BTC
sk^{Bob} = y + s'
Bitlayer 研究組發現:上述過程中,任意行爲均需要通過 CET 實現。因此,僅需要使用樂觀挑戰機制確保 CET 正確,則能夠抵抗任意攻擊。錯誤的 CET 會被挑戰,不被執行,而正確的 CET 會被執行。此外,預言機需要爲惡意行爲付出代價即可。
待挑戰程序爲 f(t),則應該如下構建 CET
s = k - hash(f(t), R) z.
假設,真實情況爲第ξ個區塊的哈希值是奇數 odd,即 f(ξ) = OddNumber,預言機應該簽署 CET 1
s := k - hash(OddNumber, R) z.
但是,預言機作惡,將函數值修改爲 Even,簽署了 CET 2 :
s' := k - hash(EvenNumber, R) z.
因此,任意用戶均可根據 f(ξ) ≠ OddNumber.挫敗該惡意行爲。
3.OP-DLC 2
OP-DLC 包括以下 5 個規定:
若 Oracle_sign 誠實,則無法發起 Disprove-CET 1 交易, 1 周後執行 CET 結算。此外,預言機質押解鎖,並獲得手續費;
若 Oracle_sign 不誠實,即任何人成功發起了 Disprove-CET 1 交易,成功花費了 connector A output,則該預言機的該簽名無效,損失所質押的2B TC,且未來該預言機均不可再對該 DLC 合約發起相同結果的簽名,因依賴該 connector A output 的 Settle-CET 1 將永久失效。
優點:
缺點:
4.結論
OP-DLC 將樂觀挑戰機制引入到 CET 中,確保錯誤的 CET 不被結算,且相應的惡意預言機損失質押;確保正確的 CET 被執行,且預言機質押解鎖並獲得手續費。該方式能夠抵抗任意攻擊,具有簡單美。
參考文獻