探索加密行业风口:3EX
DLC原理解析及其优化思考
原文标题:《Bitlayer Core Technology: DLC and Its Optimization Considerations》
作者: lynndell & mutourend, Bitlayer Research Group
1、引言
Discreet Log Contract (DLC) 是由麻省理工学院的Tadge Dryja在2018年提出的一套基于预言机的合约执行方案。DLC 允许两方根据预定义的条件进行有条件付款。各方确定可能的结果并进行预签名,并在预言机签署结果时使用这些预签名来执行支付。 因此,DLC可实现新的去中心化金融应用,同时保证比特币存款的安全。
与闪电网络相比,DLC具有以下显著优势:
隐私性:DLC在隐私保护方面优于闪电网络,合约细节仅在参与方之间分享,而不会在区块链上存储。相比之下,闪电网络交易通过公开的通道和节点路由,其信息公开且透明;
财务合约的复杂性和灵活性:DLC能够直接在比特币网络上创建和执行复杂的金融合约,如衍生品、保险和赌约等,而闪电网络主要用于快速的小额支付,无法支持复杂应用;
降低对手方风险:DLC资金被锁定在多签合约中,只有在预定义事件的结果出现时才会释放,减少了任一方不遵守合约的风险。尽管闪电网络减少了信任需求,但在通道管理和流动性提供方面仍存在一定的对手方风险;
无需管理支付通道:DLC操作无需创建或维护支付通道,而这是闪电网络的核心组成部分,通道管理既复杂又耗资源;
特定用例的可扩展性:闪电网络在一定程度上提高了比特币的交易吞吐量,而DLC在比特币上的复杂合约方面提供了较好的可扩展性。
虽然DLC在比特币生态应用中极具优势,但是仍存在一些风险和问题,如:
密钥风险:预言机的私钥和承诺的随机数具有泄露或丢失风险,导致用户资产损失;
中心化信任风险:预言机中心化问题,容易导致拒绝服务攻击;
去中心化无法密钥派生:如果预言机去中心化,则预言机节点仅拥有私钥分片。但是,去中心化的预言机节点无法基于私钥分片直接使用BIP32进行密钥派生;
串谋风险:如果预言机节点之间串谋、或与参与方串谋,则仍没解决预言机的信任问题。需要一个可靠的监督机制,使得预言机信任最小化;
固定面额找零问题:条件签名需要在构建合约之前有确定性的可枚举事件集合来构建交易。因此,DLC用于资产重新分配会有最小金额的限制,导致存在固定面额的找零问题。
为此,本文提出一些方案和优化思路,解决DLC的风险和问题,提高比特币生态系统的安全性。
2、DLC原理
Alice和Bob签署一个对赌协议:投注第n+k个区块的哈希值是奇数或偶数。如果是奇数,则Alice赢得游戏,可在t时间内提取资产;如果是偶数,则Bob赢得游戏,可在t时间内提取资产。使用DLC,通过预言机传递第n+k的区块信息来构造条件签名使得正确的获胜方赢得所有资产。
初始化:椭圆曲线生成元为G,阶为q。
密钥生成:预言机、Alice和Bob独立生成各自的私钥和公钥。
预言机的私钥为z,公钥为Z,满足关系Z=z⋅G;
Alice的私钥为x,公钥为X,满足关系X=x⋅G;
Bob的私钥为y,公钥为Y,满足关系Y=y⋅G。
注资交易: Alice和Bob一起创建一笔注资交易,各自将1BTC锁在一个2-of-2的多签输出(一个公钥X属于Alice,一个公钥Y属于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提币会成功。