借助Taproot和BitVM等技术,将可在DLC内实现更复杂的链下合约验证结算,同时结合OP挑战机制,实现预言机信任最小化。
原文标题:《Bitlayer Core Technology: DLC and Its Optimization Considerations》 作者: lynndell & mutourend, Bitlayer Research Group 原文链接:https://medium.com/@Bitlayer/bitlayer-core-technology-dlc-and-its-optimization-considerations-6fc5ebaae92c
Discreet Log Contract (DLC) 是由麻省理工学院的Tadge Dryja在2018年提出的一套基于预言机的合约执行方案。DLC 允许两方根据预定义的条件进行有条件付款。各方确定可能的结果并进行预签名,并在预言机签署结果时使用这些预签名来执行支付。 因此,DLC可实现新的去中心化金融应用,同时保证比特币存款的安全。
与闪电网络相比,DLC具有以下显著优势:
虽然DLC在比特币生态应用中极具优势,但是仍存在一些风险和问题,如:
为此,本文提出一些方案和优化思路,解决DLC的风险和问题,提高比特币生态系统的安全性。
Alice和Bob签署一个对赌协议:投注第n+k个区块的哈希值是奇数或偶数。如果是奇数,则Alice赢得游戏,可在t时间内提取资产;如果是偶数,则Bob赢得游戏,可在t时间内提取资产。使用DLC,通过预言机传递第n+k的区块信息来构造条件签名使得正确的获胜方赢得所有资产。
初始化:椭圆曲线生成元为G,阶为q。
密钥生成:预言机、Alice和Bob独立生成各自的私钥和公钥。
合约执行交易:Alice和Bob创建两笔合约执行交易(Contract Execution Transaction, CET),用于花费注资交易。
预言机计算承诺 $R:=k ⋅ G$
然后,计算S和S'
$S:=R-hash(OddNumber,R) ⋅ Z,$ $S':=R-hash(EvenNumber,R) ⋅ Z$
广播(R,S,S')。
Alice和Bob各自计算对应的新公钥
$PK^{Alice}:=X+ S,$ $PK^{Bob}:=Y+ S'.$
结算:当第n+k个区块出现后,预言机根据该区块的哈希值,生成对应的s或s'。
如果第n+k个区块的哈希值为奇数,则预言机计算并广播s
$s:=k-hash(OddNumber,R) ⋅ z$
如果第n+k个区块的哈希值为偶数,则预言机计算并广播s'
$s':=k-hash(EvenNumber,R) ⋅ z$
提币:Alice或Bob其中一个参与方能根据预言机广播的s或s',提取资产。
如果预言机广播s,则Alice可以计算出新私钥sk^{Alice} ,并提取锁定的2个BTC
$sk^{Alice}:= x + s.$
如果预言机广播s',则Bob可以计算出新私钥sk^{Bob},并提取锁定的2个BTC
$sk^{Bob}:= y + s'.$
分析:Alice计算的新私钥sk^{Alice} 与新公钥PK^{Alice} 满足离散对数关系
$sk^{Alice} ⋅ G= (x+s) ⋅ G=X+S=PK^{Alice}$
该情况下,Alice提币会成功。
同理,Bob计算的新私钥sk^{Bob} 与新公钥PK^{Bob} 满足离散对数关系
$sk^{Bob} ⋅ G= (y+s') ⋅ G=Y+S'=PK^{Bob}$
该情况下,Bob提币会成功。
此外,如果预言机广播s,对Alice有用,但是对Bob没用。因为,Bob无法用于计算出对应的新私钥sk^{Bob}。同理,如果预言机广播s',对Bob有用,但是对Alice没用。因为,Alice无法用于计算出对应的新私钥sk^{Alice}。
最后,上述描述省略了时间锁。需要添加时间锁,使得一方计算出新私钥,在t时间内提币。否则,如果超出t时间,则另一方使用原私钥就能提走资产。
在DLC协议中,预言机的私钥和承诺的随机数至关重要。如果预言机的私钥和承诺的随机数泄露或丢失,则容易导致以下4种安全问题:
(1)预言机丢失私钥z 如果预言机丢失私钥,则DLC 无法结算,导致需要执行 DLC 退款合约。因此,DLC协议中设置了退款交易,以防止预言机丢失私钥。
(2)预言机泄露私钥z 如果预言机的私钥泄露,则所有基于该私钥的 DLC 都面临欺诈结算风险。窃取私钥的攻击者可以签署想要的任何消息,实现对未来所有合约结果的完全控制。此外,攻击者不仅限于发布单个签名消息,还可以发布冲突的消息,如同时签署第n+k个区块的哈希值为奇数和偶数。
(3)预言机泄露或重用随机数k 如果预言机泄露随机数k,则在结算阶段,不管预言机广播s或s',攻击者均可如下计算出预言机的私钥z
$z:=(k-s)/hash(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(EvenNumber_1, R) ⋅ z$ $s_2'=k-hash(EvenNumber_2, R) ⋅ z$
情况3: $s_1=k-hash(OddNumber_1, R) ⋅ z$ $s_2'=k-hash(EvenNumber_2, R) ⋅ z$
情况4: $s_1'=k-hash(EvenNumber_1, R) ⋅ z$ $s_2=k-hash(OddNumber_2, R) ⋅ z$
(4)预言机丢失随机数k 如果预言机丢失随机数k,则对应的DLC 无法结算,需要执行 DLC 退款合约。 因此,为提高预言机私钥的安全性,应使用BIP32派生出子秘钥或孙密钥,用于签名。此外,为提高随机数的安全性,应使用私钥和计数器的哈希值k:=hash(z, counter),作为随机数k,以防随机数重复或丢失。
DLC中,预言机的作用至关重要,提供了决定合约结果的关键外部数据。为提高这些合约的安全性,则需要去中心化预言机。与中心化预言机不同,去中心化预言机将提供准确和防篡改数据的责任分散到多个独立节点上,可以减少依赖单一故障点的风险,并降低操纵或针对性攻击的可能性。通过去中心化预言机,DLC可以实现更高程度的无需信任和可靠性,确保合约执行完全依赖于预定条件的客观性。
Schnorr门限签名可以实现去中心化预言机。Schnorr门限签名具有以下优势:
在密钥管理技术中,预言机拥有一个完整密钥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不兼容。
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%,较好地解决了预言机串谋风险。
当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双桥具有以下优势:
DLC出现在Segwit v1(Taproot)激活之前,且已实现DLC通道与闪电网络的集成,并将DLC扩展为可在同一DLC通道内更新执行连续合约。借助Taproot和BitVM等技术,将可在DLC内实现更复杂的链下合约验证结算,同时结合OP挑战机制,实现预言机信任最小化。
Specification for Discreet Log Contracts Discreet Log Contracts Scaling DLC Part1: Off-chain Discreet Log Contracts Scaling DLC Part2: Free option problem with DLC Scaling DLC Part3: How to avoid free option problem with DLC Lightning Network DLC on Lightning DLC Private Key Management Part 1 DLC Private Key Management Part 2: The Oracle’s private keys DLC Key Management Pt 3: Oracle Public Key Distribution BitVM: Compute Anything on Bitcoin BitVM 2: Permissionless Verification on Bitcoin BitVM Off-chain Bitcoin Contracts BIP32 BIP44 Schnorr signature FROST: Flexible Round-Optimized Schnorr Threshold Signatures A Survey of ECDSA Threshold Signing Distributed Key Derivation for Multi-Party Management of Blockchain Digital Assets Segregated Witness Optimistic Rollup Taproot
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!