解析 Bitlayer 针对bitVM桥的不足而提出的OP-DLC提款桥方案作者: @Nickqiaoo & @faustliu1997 在刚刚的推文thread中

CN
10 個月前

解析 Bitlayer 针对bitVM桥的不足而提出的OP-DLC提款桥方案

作者: @Nickqiaoo & @faustliu1997

在刚刚的推文thread中,我们简要科普了BitVM2即基于BitVM的乐观提款桥方案

https://x.com/eternal1997L/status/1789275685145723295

该方案基于“垫付-报销”模型,让Operator替BitVM桥给用户提款,之后Operator向BitVM桥申请报销,若报销申请存在谎报,任何人可以通过欺诈证明进行挑战。

但BitVM桥的落地难度大(短期内很难实现),而且存在活性/可用性问题,且无法满足资金透明的需求:BitVM桥会统一收纳存款者的钱,某种程度上是一个混杂很多钱的池子。

为了解决上述BitVM桥的活性问题,以及为有特定需求的人提供独立干净的资金出入通道,BitLayer团队额外增设了名为OP-DLC的跨链桥方案,在BitVM2的乐观桥之外,采用了类似于http://DLC.link的DLC桥,为用户提供BitVM桥和OP-DLC桥两个出入口,以此降低对BitVM桥乃至于BitVM联盟的依赖。

DLC:谨慎日志合约

DLC(Discreet Log Contracts)名为谨慎日志合约,由MIT的Digital Currency Initiative提出,该技术最早用于在比特币上实现一种轻量级的智能合约,不需要把合约的内容上链,就可以通过链下交互式通讯和预签名等方法,在比特币链上实现出保护隐私的智能合约功能。下面我们通过一个赌球案例来说明DLC的工作原理。

假设Alice与Bob要对3天后举行的皇马和巴萨的比赛结果打赌,两人各出1个btc。如果皇马胜出,则Alice可以获得1.5 BTC,Bob只能收回0.5 BTC,这就相当于Alice赚0.5个BTC,Bob亏损0.5 BTC;如果巴萨胜出,Alice只能收回0.5 BTC,Bob则可以拿走1.5 BTC。如果平局,两人各自从拿回1个BTC。

如果我们要让上述对赌过程变得去信任化,就要想办法防止任何一方耍赖,如果单纯用2/2多签或是2/3多签,显然还不够去信任。DLC针对这一要点给出了自己的解决方案(要依赖于第三方预言机)。其整个工作流程大体可以分为四部分。

以前面的Alice和Bob为例,首先,双方在链下创建一笔fund交易,这可以把彼此的1枚BTC锁在2/2多签地址上,如果这笔fund交易生效,则该多签地址里的2枚BTC需要双方都授权,才能被花费。

当然,这笔Fund交易先不上链,只留存在链下的Alice和Bob客户端本地,他们都知道这笔交易生效后会有什么后果。目前双方只是在进行理论推演,然后根据推演的结果达成一系列协议。

在DLC创建的第一阶段,我们可以确定的是,双方将在未来把各自的1枚BTC锁入一个多签地址中。

第二步,双方继续推演未来可能发生的事件和结果:比如,当球赛结果公布后,可能是Alice赢Bob输、Alice输Bob赢、平局等多种可能,这会导致前述2/2多签地址中的比特币出现不同的分配结果。

不同的结果需要由不同的交易指令来触发,这些“可能在未来上链的交易指令”被称为CET,即合约执行交易(Contract Execution Transaction)。Alice和Bob要事先推演出所有的CET,生成包含全部CET的交易数据集。

例如,根据前述Alice和Bob对赌的几种可能结果,Alice创建出以下几种CET:

CET1:Alice可从多签地址获得1.5枚BTC,Bob可获得0.5枚BTC;

CET2:Alice可从多签地址获得0.5枚BTC,Bob可获得1.5枚BTC;

CET3:双方各自可获得1枚BTC。

我们以CET1为例(Alice拿 1.5 BTC,Bob拿 0.5 BTC):

这笔交易的意思是,把多签地址中的1.5枚BTC,转移到一个由Alice和预言机输出结果共同触发的Taproot地址,另外0.5枚BTC转移给Bob的地址。此时对应的事件是:皇马胜出,Alice赢0.5BTC,Bob输0.5BTC。

当然,要花费这1.5枚BTC,Alice必须拿到预言机发送的“皇马胜出”结果签名。换句话说,只有当预言机输出“皇马胜利”的消息后,Alice才能够把这1.5枚BTC转走。至于CET2和CET3的内容,我们可以以此类推,在此不赘述。

需要注意的是,CET本质是一笔待上链待生效的交易,如果Alice提前把CET1广播出去,或是在“巴萨胜出”的情况下,仍然把“皇马胜出”后才能顺利触发的CET1上链,会发生什么?

前面的示意图中,我们提到,CET1上链后,会把原始多签地址中锁定的2枚BTC转走,0.5枚BTC转给Bob,1.5枚BTC转到一个Taproot地址中,预言机输出“皇马胜出”后,Alice方能解锁Taproot地址锁定的BTC。效果如下图所示。

同时,这个Taproot地址受到时间锁限制,如果在时间锁规定的窗口期内,Alice无法成功提走1.5枚BTC,则Bob有权把这些钱直接拿走。

所以,只要预言机是诚实的,Alice就无法拿走这1.5枚BTC,等时间锁期限耗尽,Bob可以把这1.5枚BTC拿走。再算上CET1上链时直接转给Bob的那0.5枚BTC,最后所有的钱都会归Bob所有。

对于Alice而言,无论自己最终是赢还是输,最有利的做法都是把正确的CET上链,把无效的CET上链会让自己输更多钱。

其实上述CET在构建时,对Taproot的schnorr签名做了改进,可以理解为利用预言机的公钥+事件结果,针对不同结果构造出彼此独立的地址。之后,等预言机公布某个结果对应的签名,才能花费该结果对应的地址上锁定的BTC。

当然,这里面存在一种额外的可能。假如Alice知道自己输了,干脆不把自己构建的CET1上链,这个时候怎么办?这个很好解决,因为Bob可以针对“alice输,Bob赢”一事构建出自定义的CET,这个CET达成的效果和Alice构建的CET基本一致,只是具体细节不一样,但结果是一样的。

上面讲述的就是最关键的CET构建流程。而DLC的第三步,是Alice和Bob双方进行通讯,检查对方构建的CET交易,带上自己对该CET的签名,检查无误后,可以信任彼此,便各自出资1枚BTC,锁入最开始提到的那个Alice和Bob的2/2多签地址,然后等待某个CET被上链,触发后续的流程。

最后,等预言机公布结果,拿到预言机对结果的签名后,任意一方可以把正确的CET上链,让多签地址中锁定的2枚BTC被再分配,如果输家抢先把错误的CET上链,会让自己损失所有的钱,如果把正确的CET上链,输家还可以收回0.5BTC。

可能有人会问,DLC与普通的2/3多签有何不同?首先,2/3多签下,任意两方串谋即可盗走全部资产,而DLC通过提前构建CET集合的方式,让对手方之间把全部的场景都限制住了,就算预言机参与串谋,造成的损失往往也有限。

其次,多签需要各方针对具体的待上链交易进行签名,而在DLC的设定下,预言机只需要对特定事件的结果进行签名,不需要知道CET/待上链交易的内容,甚至完全不需要知道有Alice和Bob这两个人,只需要像普通的预言机那样和用户进行正常的交互即可。

我们可以认为,DLC本质是把对多签参与方的信任转变成了对预言机的信任,只要预言机不参与作恶,就可以保证DLC的协议设计足够去信任。理论上来说,DLC可以采用比较成熟完善的第三方预言机,来避免作恶。而http://DLC.link和BitLayer利用了DLC的这种特性,把桥的信任问题转嫁给了第三方预言机。

此外,Bitlayer的DLC桥还支持自建的预言机节点,在此之上加上了一层欺诈证明,当自建的预言机把无效的CET上链时,允许任何人对其进行挑战。关于其OP-DLC桥的原理,我们将在下面展开简述。


免责声明:本文章仅代表作者个人观点,不代表本平台的立场和观点。本文章仅供信息分享,不构成对任何人的任何投资建议。用户与作者之间的任何争议,与本平台无关。如网页中刊载的文章或图片涉及侵权,请提供相关的权利证明和身份证明发送邮件到support@aicoin.com,本平台相关工作人员将会进行核查。

分享至:
APP下載

X

Telegram

Facebook

Reddit

複製鏈接