什么是谨慎日志合约?如何在比特币上实现差价合约?
某种程度上,谨慎日志差价合约(DLCFD)使得我们可以解耦持有/使用 BTC 与价格波动的风险(他们通常是相连的)。
原标题:用 DLC 在比特币上实现差价合约
作者:Nadav Kohen
来源:BTCStudy
2020 年 12 月 17 日,Roman 和我缔结了一种特别的谨慎日志合约(DLC),叫做 “差价合约(CFD)”,或者说 “谨慎日志差价合约(DLCFD)”。Roman 拿着价值 22.80 美元的比特币进入合约,最终也将拿着同样多美元价值的比特币离开合约。当然,在此期间,比特币跟美元的汇率会变化,也就是,如果比特币的美元汇率下降,那么我就必须给 Roman 支付差价,使他能拿到价值 22.80 美元的比特币、退出合约;反之,如果比特币的美元汇率上升,Roman 就只能拿着比进入合约时更少的比特币离开合约 —— 他要给我支付差价,最终他拿走的比特币仍然价值 22.80 美元。
从 Roman 的角度看,差价合约使他可以持有比特币而不承担比特币价格波动的风险(假定他想用美元给自己的资产计价)。无论比特币的美元汇率走高还是走低,这个差价合约都会为他覆盖差价,让他能留存固定的美元价值。Roman 的支付曲线如上图所示(断言机的结果是 BTC/USD 汇率)。他在 BTC/USD 的汇率为 22800 美元的时候拿着 10000 聪进入合约,因此,你可以注意到,如果汇率没有变化,他将拿回自己的 10000 聪,如果汇率上升,他就会损失一些聪,最终他得到的美元价值不变。另一种理解思路是,假设我们重新绘制这条曲线,以美元而不是聪来计量其得到的支付,那就会变成一条平线 —— 不论 BTC/USD 汇率如何变化,他得到的总是 22.80 美元。
但是,从我的角度来看(也即上图支付曲线的颠倒版本),这是一种对 BTC/USD 汇率的看多头寸,意思是,我在赌 BTC/USD 的汇率会走高,从而 Roman 要给我支付差价。
某种程度上,DLCFD 使得我们可以解耦 持有/使用 BTC 与价格波动的风险(他们通常是相连的)。只要有人认为 BTC/(其它资产) 的价格会涨,其他人(比如商人)就可以跟他们订立差价合约,
从而在一定时间内固定自己的资金的价值(以这些其它资产计)。而当这个人希望给其他人支付 BTC 时,TA 可以退出差价合约,这样从 TA 自己的角度看,TA 几乎从未暴露在 BTC 价格波动的风险下,而且依然能使用 BTC 作为一种支付基础设施。
现在我们知道差价合约是什么了,也知道了它的一些用场。现在我们来研究一下如何在比特币上执行 DLCFD。一个 DLC 由一笔链上注资交易和一组链下交易(称为 “合约执行交易(CET)”)组成。合约的每一种可能的结局,都有一笔 CET 与之对应,并且 CET 的输出就反映了该结果下各方可得的支付。每一笔 CET 都花费链上注资交易的 2-of-2 多签名输出,而且,每个 CET 的花费条件都包含断言机对各 CET 专属消息的签名,从而强制执行断言机合约。想更多了解 DLC 的原理,请看我们之前的系列博客,或者开发中的DLC 规范(包含了额外的资源)。
就像我们在之前的《波动性 DLC》中提到的,DLC 理论上支持任意数量的结果(因此支持任意的断言机合约)。但是,在现实中,我们需要压缩结果的数量到合理的情形,以方便参与者的沟通和减少计算负担。我们讨论了常量值结果的连续间隔如何可以通过断言机签名每个结果的每个二进制位(也就是比特)来压缩到微不足道的大小。这使得我们可以无视不重要的数位、创建可以覆盖许多结果的交易,比如说,如果我们可以忽略最后 10 个比特(因为无论它们数值为何,支付额都是一样的),我们可以构造出一次性 覆盖 2 ^ 10 = 1024 个结果的交易。也就是说我们只需要创建、发送和存储 1 个适配器签名,而不是 1024 个!
我们的断言机Skrik承诺签名 BTC/USD 的 17 个二进制位的形式(支持从 0 美元/BTC 到 131071 美元/BTC 之间的所有价格数值)。
在我们的波动性合约中,我们使用这种压缩技巧,用不到 20 笔交易覆盖了所有不在我们预期的价格范围(17000 美元到 21000 美元)一直到 131071 美元的情形。不过,你可以注意到,在 CFD 的情形中,只有一方拥有定值期权(contant-valued collar),而且需要覆盖的情形要更少。这就是我们需要用到的第一个新工具:舍入间隔。
在合约谈判期间,Roman 和我同意,所有结果的支付额都只需精确到 100 聪;若是价格高于 3 万美元,可以只精确到 1000 聪(请注意,即时比特币价值 13 万美元,1000 聪也不过价值 1.30 美元,只是锁定资产的一小部分)。这种合意使我们可以在所有地方使用使用 CET 压缩算法,而不是只能在定值期权中使。具体来说,它使我们可以利用支付曲线上任何平坦的地方(不陡峭的地方),因为这些地方是相对平坦的,我们就可以将一大部分舍入同一个 1000 聪的结果组中,并压缩这个间隔。
关于【什么是谨慎日志合约?如何在比特币上实现差价合约?】的延伸阅读
火星财经加密周报 | 6月7日
本周欧盟选举开始,加密行业监管政策可能受影响。Tether CEO担心欧盟MiCA稳定币要求会对市场产生负面影响。RoaringKitty可能清算其GME股票头寸,Solana币价增长受益于Meme币交易活动。特朗普竞选团队收到近3亿美元捐款,西班牙90%的World ID持有者支持Worldcoin回归。加密专家密切关注欧盟选举对MiCA、DeFi、NFT等领域的影响。比特币可能因CPI创新高和降息预期上涨,ETH表现落后。Blast提醒DApp在6月25日前分配所有Gold和Points给用户。Bitget Launchpad项目BWB投入总人数增长,IO.NET初始总供应量为5亿枚。五月加密市场大多数指标下跌,但以太坊质押收入上涨,NFT市场交易额下降。加密货币可以解决人类挑战,DeFi夏季最新更新包括Ethena、Etherfi、Karak等项目。Notcoin交易量增加,L2争斗白热化,市场流动性改善,Meme板块吸引资金流入,NFT市场情绪低迷。Shardeum、Merlin和0G Labs与多家合作伙伴合作推进去中心化项目发展。
7月降息“没戏了”?加密市场应声下挫
美国5月非农就业报告强劲,加密市场早盘稳定但下午走低。比特币价格达到历史新高,市场情绪积极,预计未来几周将再创新高。分析师认为,比特币的四年周期是影响因素,预测2025年10月11日将达到新的历史高点。尽管存在泡沫市场的迹象,但与加密货币挂钩的永续期货并没有出现投机热情。市场逐渐成熟和稳定,受到机构兴趣和采用的影响。投资者关注下周的美国CPI数据和美联储货币政策决议。比特币未平仓合约创历史新高,市场情绪积极。
这个方案效率高吗?一下是我们这个 DLCFD 的一些数据:
- 不使用舍入,需要签名 86718 个 CET,这需要大量的计算时间和大约 65 MB 的数据空间
- 将超过 30000 美元的所有结果都舍入到 1000 聪,只需签名 20547 个 CET,需要 15 MB 存储
- 注意,这个数量的大部分都来自 10000 到 30000 的价格区间内。本质上,曲线上超过 30000 美元的平坦部分,可以被压缩到寥寥数个 CET 中!
- 将 0 美元到 30000 美元的结果都舍入到 100 聪,并将上一条的价格区间舍入到 1000 聪:5511 个 CET,只要求 3.5 MB 的空间
- 注意,在支付曲线上最陡峭的地方,即使仅仅是舍入到 100 聪(价值 1~3 美分),可以将 CET 的数量降低 4 倍!
如果你对更多细节感兴趣,舍入间隔技术已经被包含到 “数字结果提案” 中,并且已经在bitcoin-s 库的一个实验性分支中实现。
让我们得以执行 CFD 的第二个大胆的工具是 Antoine Riard 的 “非交互式协议提案”。当 Roman 和我最初广播我们的注资交易时,我马上意识到,我们犯了一个错误。我们已经同意使用 50 聪/vByte 的手续费率,但并没有检查这个费率在当时合不合理;那时候的平均手续费率远远超过 100 聪/vByte!我没有要求我们重新连接并建立一个新合约,这需要我们重新签名几千个 CET,而是使用 “子为父偿(CPFP)” 单方面追加手续费,简单来说就是用一笔过高手续费的交易来花费过低手续费的交易的输出,从而让整体的手续费率变得合理、让两笔交易对矿工来说都变得有吸引力(因为他们没法只让子交易上链;如果父交易得不到确认,子交易就是无效的)。因此,我广播了一笔CPFP 交易,让我们的注资交易得以确认,这样就完全不需要我和 Roman 再有什么交互。要是我又犯了傻,我的 CPFP 交易无法为父交易提供足够多的手续费,那么我可以使用 “手续费替换(RBF)”,用带有更高手续费的子交易来替换原来的 CPFP 交易。(译者注:CPFP 和 RBF 都是为比特币交易追加手续费、使之更快得到确认的方法)
我们也使用非交互式协议的 CPFP 机制来确认我们的 CET,它原来也是使用 50 聪/vByte 的手续费率的,Roman 广播了一笔子交易来补充手续费。
最终,我们的断言机广播了对结果(BTC 价格为 23472 美元)的签名,然后你会看到,在我们的 CET 中,Roman 得到了 0.000974 BTC(23427 * 0.000974 = 22.82),正好在我们的舍入共识范围内(100 聪等于 0.023 美元),也正好是 22.82 美元!
就像我们在上一篇博客中提到的,不远的将来我们将支持门限断言机签名,比如使用 3 个断言机中的 2 个来执行一个差价合约。我正在撰写一个关于实现方案的提议,很快就能在 DLC 规范仓库放出!
一个更加长期,但依然非常重要的额外优化是在闪电网络上支持 DLCFD。我们现在的代码已经完全支持链上的 CFD 了,但因为链上手续费很高,只有比较大额的合约才有经济意义。闪电网络的 DLCFD 不仅可以让合约的执行变得几乎没有手续费,而且是即时确认的,甚至还可以在流动的通道中启用Rainbow合成资产的免信任版本!
敬请期待谨慎日志合约开发的进展,已经我们在 Surebits 的其它很棒的工作!
责任编辑:Felix
免责声明:本文仅代表作者个人观点,不代表链观CHAINLOOK立场,不承担法律责任。文章及观点也不构成投资意见。请用户理性看待市场风险,以及遵守所在国家和地区的相关法律法规。
图文来源:Nadav Kohen,如有侵权请联系删除。转载或引用请注明文章出处!