WEEX 唯客博客, 原文標題:《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 Execution Transaction)實現。因此,使用樂觀挑戰機制確保CET正確,則能夠抵抗任意攻擊。具體而言,預言機質押2BTC后,則能夠簽署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一起創建一筆注資交易,各自將10BTC鎖在一個2-of-2的多簽輸出(一個公鑰X屬於Alice,一個公鑰Y屬於Bob)。 構建CET(鏈下):Alice和Bob創建CET1和CET2,用於花費注資交易。 預言機計算承諾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’. 結算(鏈下->鏈上):當第ξ個區塊成功生成,則預言機根據該區塊的哈希值,簽署對應的CET1或CET2。 如果哈希為奇數,則預言機如下籤署s s := k – hash(OddNumber, R) z 廣播CET1。 如果哈希為偶數,則預言機簽署s’ s’ := k – hash(EvenNumber, R) z 廣播CET2。 提幣(鏈上):如果預言機廣播CET1,則Alice可以計算出新私鑰,並花費鎖定的20個BTC sk^{Alice} = x + s 如果預言機廣播CET2,則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,預言機應該簽署CET1 s := k – hash(OddNumber, R) z. 但是,預言機作惡,將函數值修改為Even,簽署了CET2: s’ := k – hash(EvenNumber, R) z. 因此,任意用戶均可根據f(ξ) ≠ OddNumber.挫敗該惡意行為。 3.OP-DLC 2 OP-DLC包括以下5個規定: 預言機由一個聯盟組成,聯盟中有n個參與方,任意成員之一均可簽署CET。質押2BTC,預言機才能發布簽名賺手續費。如果某個成員作惡,則損失質押。其他成員可繼續簽署CET,確保用戶能夠出金。Alice和Bob也可成為預言機,可真正的做到只相信自己,信任最小化。 如果預言機作惡,修改結果,則必然導致 f1(ξ) ≠ z1, f2(z1) ≠ z2 的情況出現。因此,任意參與方均可發起挑戰,即進行Disprove-CET1交易。 如果預言機誠實簽署CET,則任意參與方均不能發起有效的Disprove交易。1周后,CET可正確結算。此外,預言機獲得0.05BTC獎勵,作為其質押的2BTC 1周資金占用以及誠實簽署CET的手續費。 任意參與方均能夠對Oracle_sign發起挑戰: 若Oracle_sign誠實,則無法發起Disprove-CET1交易,1周后執行CET結算。此外,預言機質押解鎖,並獲得手續費; 若Oracle_sign不誠實,即任何人成功發起了Disprove-CET1交易,成功花費了connector A output,則該預言機的該簽名無效,損失所質押的2BTC,且未來該預言機均不可再對該DLC合約發起相同結果的簽名,因依賴該connector A output的Settle-CET1將永久失效。 OP-DLC中的挑戰是Permissionless的,即任意參與方均可監督OP-DLC內的合約是否正確執行。因此,實現了對預言機的信任最小化。與閃電網路相比,Alice和Bob也可離線。因為預言機只有誠實簽名才會結算CET,而作惡的預言機會被被任何人挑戰和懲罰。 優點: 對資產控制度高,只信任自己:Alice和Bob均可以成為預言機,簽署CET。樂觀挑戰機制會挫敗錯誤的CET,所以無法作惡。因此,OP-DLC可做到用戶只相信自己。在BitVM中,用戶需要作為Operator,並必須參與後續所有的入金,才能做到只信任自己。如果用戶作為Operator只參與BitVM單個UTXO入金,該UTXO可被任意其它(n-1)個Operator合法報銷,則該用戶未來的出金,將仍需信任其它Operator會墊付。BitVM Operator的報銷許可權鎖定在各單個入金UTXO上。 資金利用率高:若用戶只信任自己,需要的資金量不一樣。OP-DLC中用戶依賴自己出金,不需要用等量資金墊付;而BitVM中,用戶需要等量資金墊付,然後報銷。這帶來了更大的資金壓力。 能簽字的預言機需在OP-DLC入金時確定,但用戶自己也可成為預言機,可自己給自己簽。 缺點: 出金時間需1周:本質上OP-DLC和BitVM的資金時間成本都是存在且等量的。OP-DLC出金需經過挑戰期才能拿到資金;如果BitVM依賴用戶自己墊付,則等量墊付資金也需經過挑戰期才能成功報銷。如果BitVM依賴其它Operator墊付快速出金,則意味著需給Operator等量資金的資金時間成本作為手續費。 需要預簽的簽名數量增長較快,與CET數量呈線性關係。需要儘可能多的CET,才能枚舉所有的提幣結果。 4.結論 OP-DLC將樂觀挑戰機制引入到CET中,確保錯誤的CET不被結算,且相應的惡意預言機損失質押;確保正確的CET被執行,且預言機質押解鎖並獲得手續費。該方式能夠抵抗任意攻擊,具有簡單美。 WEEX唯客交易所官網:weex.com
Bitlayer Research:「OP-DLC 2」優化機制詳解
Previous: TON網路TVL超3.62億美元,一個月增加超104%
Next: 香港財政司司長:對於香港虛擬資產的發展非常樂觀