{"content":{"title":"OP-DLC 2：大道至简","body":"![](https://sigweb3labs.sg.larksuite.com/space/api/box/stream/download/asynccode/?code=NDdhYWI0NGMyNDkxMzRlNTUwOTEzMmFhZDY1ZDhiYjhfQW9oeVp5cjg2NHlqbm5pNVdNQUJBcmJzS2JlZFp4U1FfVG9rZW46TkZMVWJUMmtQbzROd2d4cmNkdmxmZ0ZsZ3pjXzE3MjI4NDk0ODA6MTcyMjg1MzA4MF9WNA)\r\n\r\n原文标题：《OP-DLC 2 : Great Truths are Always Simple !》\r\n作者: mutourend & lynndell\r\n原文链接：https://blog.bitlayer.org/OP-DLC_2_Great_Truths_are_Always_Simple/\r\n\r\n# 1. 引言\r\nDiscreet Log Contract (DLC) 是由麻省理工学院的Tadge Dryja在2018年提出的一种基于预言机的合约执行框架。DLC允许两方根据预定义的条件进行有条件支付。双方预先确定可能的结果并进行预签名，并在预言机签署结果时使用这些预签名来执行支付。因此，DLC在保证比特币存款安全的同时，实现了新的去中心化金融应用。\r\n\r\n上一篇文章《[DLC原理解析及其优化思考](https://learnblockchain.cn/article/8939)》总结了DLC在隐私保护、复杂合约、资产风险低等方面的优势，也分析了DLC存在密钥风险、去中心化信任风险、串谋风险等问题，并将去中心化预言机、门限签名、乐观挑战机制等引入DLC，解决其应面临的各种问题。由于DLC中涉及预言机、Alice和Bob三个参与方，不同参与方之间串谋攻击穷举是相对复杂的，导致预防策略也是相对复杂度的。复杂的防御策略不是完美的，不符合大道至简，缺少简洁美。\r\n\r\n在比特币中，任意参与方的任意行为均需要通过UTXO实现。因此，使用共识机制确保UTXO正确，则能够抵抗任意攻击。类似，在DLC中，任意参与方的任意行为均需要通过CET（Contract Execution Transaction）实现。因此，使用乐观挑战机制确保CET正确，则能够抵抗任意攻击。具体而言，预言机质押2BTC后，则能够签署CET。在CET中添加乐观挑战机制。如果CET不被挑战，或成功应对挑战，则CET正确，能够完成结算，预言机解除质押且获得手续费；如果Oracle试图作恶，则任何人都可成功挑战，该CET将无法结算，预言机损失质押金且该预言机无法再对同一CET签名。符合大道至简，具有简洁美。\r\n\r\n# 2. DLC原理\r\n\r\nAlice和Bob签署对赌协议：投注第*ξ*个区块的哈希值是奇数或偶数。如果是奇数，则Alice赢得游戏，可提取资产；如果是偶数，则Bob赢得游戏，可提取资产。使用DLC，通过预言机传递第*ξ*个区块信息构造条件签名使得正确的获胜方赢得所有资产。\r\n\r\n椭圆曲线生成元为*G*，阶为*q*。预言机、Alice和Bob各自的密钥对分别为(z, Z), (x, X), (y, Y)。\r\n\r\n**注资交易（链上）：** Alice和Bob一起创建一笔注资交易，各自将10BTC锁在一个2-of-2的多签输出（一个公钥*X*属于Alice，一个公钥*Y*属于Bob）。\r\n\r\n**构建CET（链下）：** Alice和Bob创建CET1和CET2，用于花费注资交易。\r\n\r\n预言机计算承诺*R = k · G*，然后计算*S*和*S'*\r\n*S := R - hash(OddNumber, R) · Z*\r\n*S' := R - hash(EvenNumber, R) · Z*\r\n\r\n则Alice和Bob对应的新公钥如下：\r\n*PK^{Alice} := X + S*\r\n*PK^{Bob} := Y + S'*\r\n\r\n**结算链下->链上）：** 当第*ξ*个区块成功生成，则预言机根据该区块的哈希值，签署对应的CET1或CET2。\r\n\r\n如果哈希为奇数，则预言机如下签署*s*\r\n*s := k - hash(OddNumber, R) z*\r\n广播CET1。\r\n如果哈希为偶数，则预言机签署$s'$\r\n*s' := k - hash(EvenNumber, R) z*\r\n广播CET2。\r\n\r\n**提币（链上）：** 如果预言机广播CET1，则Alice可以计算出新私钥，并花费锁定的20个BTC\r\n*sk^{Alice} = x + s*\r\n\r\n如果预言机广播CET2，则Bob可以计算出新私钥，并花费锁定的20个BTC\r\n*sk^{Bob} = y + s'*\r\n\r\n**Bitlayer研究组发现：上述过程中，任意行为均需要通过CET实现。因此，仅需要使用乐观挑战机制确保CET正确，则能够抵抗任意攻击。错误的CET会被挑战，不被执行，而正确的CET会被执行。此外，预言机需要为恶意行为付出代价即可。**\r\n\r\n待挑战程序为*f(t)*，则应该如下构建CET\r\n*s = k - hash(f(t), R) z.*\r\n假设，真实情况为第$ξ$个区块的哈希值是奇数*odd*，即*f(ξ) = OddNumber*，预言机应该签署CET1\r\n*s := k - hash(OddNumber, R) z.*\r\n但是，预言机作恶，将函数值修改为*Even*，签署了CET2：\r\n*s' := k - hash(EvenNumber, R) z.*\r\n因此，任意用户均可根据*f(ξ) ≠ OddNumber*挫败该恶意行为。\r\n\r\n# 3. OP-DLC 2\r\n\r\nOP-DLC包括以下5个规定：\r\n\r\n* 预言机由一个联盟组成，联盟中有n个参与方，任意成员之一均可签署CET。质押2BTC，预言机才能发布签名赚手续费。如果某个成员作恶，则损失质押。其他成员可继续签署CET，确保用户能够出金。Alice和Bob也可成为预言机，可真正的做到只相信自己，信任最小化。\r\n\r\n* 如果预言机作恶，修改结果，则必然导致 *f1(ξ) ≠ z1, f2(z1) ≠ z2*的情况出现。因此，任意参与方均可发起挑战，即进行Disprove-CET1交易。\r\n\r\n* 如果预言机诚实签署CET，则任意参与方均不能发起有效的Disprove交易。1周后，CET可正确结算。此外，预言机获得0.05BTC奖励，作为其质押的2BTC 1周资金占用以及诚实签署CET的手续费。\r\n\r\n* 任意参与方均能够对Oracle_sign发起挑战：\r\n\r\n  * 若Oracle_sign诚实，则无法发起Disprove-CET1交易，1周后执行CET结算。此外，预言机质押解锁，并获得手续费；\r\n  * 若Oracle_sign不诚实，即任何人成功发起了Disprove-CET1交易，成功花费了connector A output，则该预言机的该签名无效，损失所质押的2BTC，且未来该预言机均不可再对该DLC合约发起相同结果的签名，因依赖该connector A output的Settle-CET1将永久失效。\r\n\r\n* OP-DLC中的挑战是Permissionless的，即任意参与方均可监督OP-DLC内的合约是否正确执行。因此，实现了对预言机的信任最小化。与闪电网络相比，Alice和Bob也可离线。因为预言机只有诚实签名才会结算CET，而作恶的预言机会被被任何人挑战和惩罚。\r\n\r\n![](https://sigweb3labs.sg.larksuite.com/space/api/box/stream/download/asynccode/?code=MWIyZGVlY2I0ODdjM2YzMzIzNWM0MWY0OTIwZWVjNWZfTmpjb1F1SVp6cGR0bnl0TFY4YXJDSE5TZUdtaUpXQzVfVG9rZW46TXhOV2JBR21Hb3NKOUR4WUQ1dmx6WDNFZ2duXzE3MjI4NDk0ODA6MTcyMjg1MzA4MF9WNA)\r\n\r\n**优点：**\r\n\r\n* **对资产控制度高，只信任自己：** Alice和Bob均可以成为预言机，签署CET。乐观挑战机制会挫败错误的CET，所以无法作恶。因此，OP-DLC可做到用户只相信自己。在BitVM中，用户需要作为Operator，并必须参与后续所有的入金，才能做到只信任自己。如果用户作为Operator只参与BitVM单个UTXO入金，该UTXO可被任意其它(n-1)个Operator合法报销，则该用户未来的出金，将仍需信任其它Operator会垫付。BitVM Operator的报销权限锁定在各单个入金UTXO上。\r\n* **资金利用率高：** 若用户只信任自己，需要的资金量不一样。OP-DLC中用户依赖自己出金，不需要用等量资金垫付；而BitVM中，用户需要等量资金垫付，然后报销。这带来了更大的资金压力。\r\n* 能签字的预言机需在OP-DLC入金时确定，但用户自己也可成为预言机，可自己给自己签。\r\n\r\n**缺点：**\r\n\r\n* **出金时间需1周：** 本质上OP-DLC和BitVM的资金时间成本都是存在且等量的。OP-DLC出金需经过挑战期才能拿到资金；如果BitVM依赖用户自己垫付，则等量垫付资金也需经过挑战期才能成功报销。如果BitVM依赖其它Operator垫付快速出金，则意味着需给Operator等量资金的资金时间成本作为手续费。\r\n* 需要预签的签名数量增长较快，与CET数量呈线性关系。需要尽可能多的CET，才能枚举所有的提币结果。\r\n\r\n# 4. 结论\r\n\r\nOP-DLC将乐观挑战机制引入到CET中，确保错误的CET不被结算，且相应的恶意预言机损失质押；确保正确的CET被执行，且预言机质押解锁并获得手续费。该方式能够抵抗任意攻击，具有简单美。\r\n\r\n**参考文献**\r\n\r\n1. [Specification for Discreet Log Contracts](https://github.com/discreetlogcontracts/dlcspecs)\r\n2. [Discreet Log Contracts](https://adiabat.github.io/dlc.pdf)\r\n3. [DLC原理解析及其优化思考](https://learnblockchain.cn/article/8939)\r\n4. [Optimistic Rollup](https://ethereum.org/en/developers/docs/scaling/optimistic-rollups/)\r\n5. [BitVM 2: Permissionless Verification on Bitcoin](https://bitvm.org/bitvm2.html)\r\n\r\n<!--EndFragment-->"},"author":{"user":"https://learnblockchain.cn/people/19509","address":null},"history":"bafkreify5pjflisn2qmpy7h7xf4mcvuzv2gh2daqkxlruurg5574wlg2fu","timestamp":1722936335,"version":1}