Gate 广場「創作者認證激勵計畫」優質創作者持續招募中!
立即加入,發布優質內容,參與活動即可瓜分月度 $10,000+ 創作獎勵!
認證申請步驟:
1️⃣ 打開 App 首頁底部【廣場】 → 點擊右上角頭像進入個人首頁
2️⃣ 點擊頭像右下角【申請認證】,提交申請等待審核
立即報名:https://www.gate.com/questionnaire/7159
豪華代幣獎池、Gate 精美周邊、流量曝光等超過 $10,000 的豐厚獎勵等你拿!
活動詳情:https://www.gate.com/announcements/article/47889
DLC原理解析及其優化思考
原文標題:《Bitlayer Core Technology: DLC and Its Optimization Considerations》
作者:lyndell 和 mutourend,Bitlayer 研究小組
原文連結:
1.引言
Discreet Log Contract (DLC) 是由麻省理工學院的Tadge Dryja在2018年提出的一套基於預言機的合約執行方案。 DLC 允許兩方根據預先定義的條件進行有條件付款。各方確定可能的結果並進行預簽名,並在預言機簽署結果時使用這些預簽名來執行付款。因此,DLC可實現新的去中心化金融應用,同時確保比特幣存款的安全。
与闪电网络相比,DLC具有以下显著优势:
雖然DLC在比特幣生態應用中極具優勢,但仍存在一些風險和問題,如:
為此,本文提出一些方案與優化思路,解決DLC的風險與問題,提升比特幣生態系的安全性。
2.DLC原理
Alice和Bob簽署一個對賭協議:投注第n+k個區塊的雜湊值是奇數或偶數。如果是奇數,則Alice贏得遊戲,可在t時間內提取資產;如果是偶數,則Bob贏得遊戲,可在t時間內提取資產。使用DLC,透過預言機傳遞第n+k的區塊訊息來建構條件簽名使得正確的獲勝方贏得所有資產。
初始化:橢圓曲線生成元為G,階為q。
金鑰產生:預言機、Alice和Bob獨立產生各自的私鑰和公鑰。
注資交易: Alice和Bob一起創建一筆注資交易,各自將1BTC鎖在一個2-of-2的多簽輸出(一個公鑰X屬於Alice,一個公鑰Y屬於Bob)。
合約執行交易:Alice和Bob創建兩筆合約執行交易(Contract ution Transaction, CET),用於花費注資交易。
預言機計算承諾
$R:=k·G$
然後,計算S和S’
$S:=R 哈希(OddNumber,R) ⋅ Z,$
$S’:=R 哈希(偶數,R) ⋅ Z$
廣播(R,S,S’)。
Alice和Bob各自計算對應的新公鑰
$PK^{愛麗絲}:=X+ S,$
$PK^{鮑伯}:=Y+ S’.$
結算:當第n+k個區塊出現後,預言機根據該區塊的雜湊值,產生對應的s或s’。
$s:=k-hash(OddNumber,R) ⋅ z$
$s’:=k 哈希(偶數,R) ⋅ z$
提幣:Alice或Bob其中一個參與者能根據預言機廣播的s或s’,提取資產。
$sk^{愛麗絲}:= x + s.$
$sk^{鮑伯}:= y + s’.$
分析:Alice計算的新私鑰sk^{Alice} 與新公鑰PK^{Alice} 滿足離散對數關係
$sk^{愛麗絲} ⋅ G= (x+s) ⋅ G=X+S=PK^{愛麗絲}$
該情況下,Alice提幣會成功。
同理,Bob計算的新私鑰sk^{Bob} 與新公鑰PK^{Bob} 滿足離散對數關係
$sk^{鮑伯} ⋅ G= (y+s’) ⋅ G=Y+S’=PK^{鮑伯}$
該情況下,Bob提幣會成功。
另外,如果預言機廣播s,對Alice有用,但是對Bob沒用。因為,Bob無法用來計算對應的新私鑰sk^{Bob}。同理,如果預言機廣播s’,對Bob有用,但是對Alice沒用。因為,Alice無法用來計算對應的新私鑰sk^{Alice}。
最後,上述描述省略了時間鎖。需要增加時間鎖,使得一方計算新私鑰,在t時間內提幣。否則,如果超出t時間,則另一方使用原私鑰就能提走資產。
3.DLC優化
3.1 金鑰管理
在DLC協定中,預言機的私鑰和承諾的隨機數至關重要。如果預言機的私鑰和承諾的隨機數洩漏或遺失,則容易導致以下4種安全問題:
(1)預言機遺失私鑰z
如果預言機遺失私鑰,則DLC 無法結算,導致需要執行DLC 退款合約。因此,DLC協議中設定了退款交易,以防止預言機遺失私鑰。
(2)預言機洩漏私鑰z
如果預言機的私鑰洩露,則所有基於該私鑰的DLC 都面臨詐欺結算風險。竊取私鑰的攻擊者可以簽署想要的任何訊息,實現對未來所有合約結果的完全控制。此外,攻擊者不僅限於發布單一簽章訊息,還可以發布衝突的訊息,如同時簽署第n+k個區塊的雜湊值為奇數和偶數。
(3)預言機洩漏或重複使用隨機數k
如果預言機洩漏隨機數k,則在結算階段,不管預言機廣播s或s’,攻擊者均可如下計算出預言機的私鑰z
$z:=(ks)/哈希(OddNumber, R)$
$z:=(k-s’)/hash(EvenNumber, R)$
如果預言機重用隨機數k,則經過2次結算,攻擊者可以根據預言機廣播的簽名,根據以下四種情況之一解方程組,求出預言機的私鑰z,
情況1:
$s_1=k-hash(OddNumber_1, R) ⋅ z$
$s_2=k-hash(OddNumber_2, R) ⋅ z$
情況2:
$s_1’=k-hash(偶數_1, R) ⋅ z$
$s_2’=k-hash(偶數_2, R) ⋅ z$
情況3:
$s_1=k-hash(OddNumber_1, R) ⋅ z$
$s_2’=k-hash(偶數_2, R) ⋅ z$
情況4:
$s_1’=k-hash(偶數_1, R) ⋅ z$
$s_2=k-hash(OddNumber_2, R) ⋅ z$
(4)預言機遺失隨機數k
如果預言機遺失隨機數k,則對應的DLC 無法結算,需要執行DLC 退款合約。
因此,為提高預言機私鑰的安全性,應使用BIP32衍生出子秘鑰或孫金鑰,用於簽章。此外,為提高隨機數的安全性,應使用私鑰和計數器的雜湊值k:=hash(z, counter),作為隨機數k,以防隨機數重複或遺失。
3.2 去中心化預言機
在DLC中,預言機的角色至關重要,提供了決定合約結果的關鍵外部數據。為提高這些合約的安全性,則需要去中心化預言機。與中心化預言機不同,去中心化預言機將提供準確和防篡改資料的責任分散到多個獨立節點上,可以減少依賴單一故障點的風險,並降低操縱或針對性攻擊的可能性。透過去中心化預言機,DLC可以實現更高程度的無需信任和可靠性,確保合約執行完全依賴預定條件的客觀性。
Schnorr門限簽名可以實現去中心化預言機。 Schnorr門限簽名具有以下優點:
因此,Schnorr门限签名协议在提高安全性、可靠性、灵活性、可扩展性和可追责性等的去中心化预言机中具有显著优势。
3.3 去中心化與金鑰管理耦合
在密鑰管理技術中,預言機擁有一個完整密鑰z,基於完整密鑰z和增量ω ,使用BIP32,能夠派出大量的子密鑰z+{ω }^{(1)}和孫密鑰z+ω ^{(1)}+ω ^{(2)}。對於不同的事件,預言機能夠使用不同的孫私鑰z+ω ^{(1)}+ω ^{(2)}對對應的事件msg產生對應的簽章σ 。
在去中心化預言機應用場景下,有n個參與方,需要t+1個參與者進行門限簽名。其中,t。 n個預言機節點各自擁有一個私鑰分片z_i, i=1,…,n。這n個私鑰分片z_i對應一個完整私鑰z,但是完整私鑰z從頭到尾不出現。在完整私鑰z不出現的前提下,t+1個預言機節點使用私鑰分片z_i, i=1,…,t+1對訊息msg’產生簽章分片σ_i’ ,簽名分片σ_i’合併為完整的簽名σ ‘。驗證方使用完整公鑰Z能夠校驗訊息簽章對(msg’,σ ')的正確性。由於需要t+1個預言機節點聯合產生閘限簽名,所以具有較高的安全性。
但是,在去中心化預言機應用程式場景下,完整私鑰z不出現,無法直接使用BIP32進行金鑰派生。換言之,預言機去中心化技術與金鑰管理技術無法直接耦合。
論文Distributed Key Derivation for Multi-Party Management of Blockchain Digital Assets提出閘限簽章場景下的分散式金鑰派生方法。論文的核心思想是根據拉格朗日插值多項式,私鑰分片z_i與完整私鑰z滿足如下插值關係
上式兩邊均加上增量ω ,則得到下列等式
此等式顯示:私鑰分片z_i加上增量ω ,與完整私鑰z加上增量ω 仍滿足內插關係。換言之,子私鑰分片z_i+ω與子密鑰z+ω滿足內插關係。因此,各個參與方能夠使用私鑰分片z_i加上增量ω 衍生出子私鑰分片z_i+ω,用於產生子簽章分片,並使用對應的子公鑰Z+ω ⋅ G能夠進行有效性驗證。
但是,需要考慮增強型與非增強型BIP32。增強型BIP32以私鑰、鏈碼和路徑為輸入,計算SHA512,輸出增量和子鏈碼。而非增強型BIP32以公鑰、鏈碼和路徑為輸入,計算SHA512,輸出增量和子鏈碼。閘限簽章情況下,私鑰不存在,所以只能使用非增強型BIP32。或使用同態雜湊函數,則有增強型BIP32。但是,同態雜湊函數與SHA512不同,與原BIP32不相容。
3.4 OP-DLC:預言機信任最小化
DLC中,Alice和Bob之間的合約是根據預言機簽名的結果來執行的,因此需在一定程度上信任預言機。所以,預言機的行為正確,是DLC運作的一大前提。
要為預言機去信任化,已有研究根據n個預言機的結果執行DLC,減少對單一預言機的依賴。
增加預言機數量,並沒有實現對預言機的去信任化。因為當預言機作惡後,合約受損方沒有鏈上申訴通道。
因此,本節提出OP-DLC,在DLC中引入樂觀挑戰機制。 n個預言機在參與設置DLC之前,需事先質押建構permisssionless 鏈上OP遊戲,承諾不作惡。若有任何一個預言機作惡,則Alice或Bob或任何其它誠實預言機或其它第三方誠實觀察者,均可發起挑戰。如果挑戰方贏得遊戲,則鏈上懲罰作惡預言機,罰沒其押金。此外,OP-DLC也可採用"k-of-n"模型來簽名。其中,k值甚至可為1。因此,信任假設降為只要網路中有一個誠實的參與者就可發起OP挑戰,懲罰作惡的預言機節點。
當根據Layer2計算結果,對OP-DLC結算時:
因此,OP-DLC使得預言機節點之間互相監督,使得預言機信任最小化。此機制只需要一個誠實參與方,容錯率99%,較好地解決了預言機共謀風險。
3.5 OP-DLC + BitVM雙橋
當DLC用於跨鏈橋,DLC合約結算時需要進行資金分配:
因此,為解決上述問題,本節提出OP-DLC + BitVM雙橋。此方案使得用戶即可透過BitVM的permissionless bridge進行入金與出金,也可透過OP-DLC 機制入金與出金,實現任意粒度找零,且提高資金流動性。
在OP-DLC中,預言機為BitVM聯盟,Alice為普通用戶,Bob為BitVM聯盟。在設定OP-DLC時,所建構的CET中,給用戶Alice的output可在Layer1上立即花費,給Bob的output中建構一個「Alice能參與挑戰的DLC遊戲」並設定timelock鎖定期。當Alice想要出金:
此外,當使用者Alice想要從Layer2出金,但OP-DLC合約內預設的CET沒有符合的金額,則Alice可選擇以下方式:
因此,OP-DLC + BitVM雙橋具有以下優勢:
4. 結論
DLC出現在Segwit v1(Taproot)啟動之前,且已實現DLC通道與閃電網路的集成,並將DLC擴展為可在同一DLC通道內更新執行連續合約。借助Taproot和BitVM等技術,將可在DLC內實現更複雜的鏈下合約驗證結算,同時結合OP挑戰機制,實現預言機信任最小化。
參考文獻