6 个版本

0.0.6 2024 年 3 月 20 日
0.0.5 2024 年 3 月 20 日
0.0.1 2024 年 2 月 19 日

#4#dlc

Download history 209/week @ 2024-03-10 297/week @ 2024-03-17 5/week @ 2024-03-24 59/week @ 2024-03-31

每月 257 次下载

Unlicense

200KB
4K SLoC

dlctix

离散对数合约 (DLCs) 票证化,以实现比特币上条件支付合约的即时入场。

本项目是 Backdrop Build V3 小组 的一部分

摘要

要详细了解此概念,请参阅我的完整博客文章

一群人彼此不信任,但信任一些第三方中介,称为 Oracle。 他们想在某个未来事件上下注,并根据 Oracle 的结果重新分配资金(如果有),包括 Oracle。现实世界的例子包括

  • 期货合约(例如衍生品合约)
  • 保险合同
  • 保证金(例如租车押金)
  • 博彩
  • 比赛奖品

离散对数合约 (DLCs) 可以在比特币上以极高的效率执行此类条件支付。它们已经存在很多年了,但传统的 DLC 无法扩展到涉及许多人用少量资金购买的大型合同,例如彩票或众筹,因为传统的 DLC 需要链上比特币贡献 来自每个购买者 - 否则合同将不安全。这种共同资助合同的费用很快变得不切实际。还存在隐私问题:每个参与者都会永久地将他们的链上比特币与相关 DLC 关联。

在我的 Ticketed DLCs 方法中,一个名为市场制造商的单一不可信方可以将他们的链上资本租用来用于链上 DLC,而 DLC 参与者的入场费则通过链下支付协议,如 Fedimint eCashLightning 支付给市场制造商。市场制造商可以通过收取参赛者预付费来从中获利,这笔费用覆盖了锁定其链上资本在整个 DLC 期间的机会成本。

多链竞赛参与者从链下市场制造者那里购买特定的SHA256前图像,称为票据密钥。通过这种方式,多链竞赛参与者是购买从多链中提取潜在付款的能力。如果没有正确的票据密钥,任何赢利都将返还给市场制造者。

一旦预言机发布证明确认了多链的真实结果,市场制造者可以向多链获胜者发放链下付款。作为交换,市场制造者从每个参赛者那里接收一个付款前图像,这允许市场制造者收回其链上资本。

在最佳情况下,如果所有人都合作并且付款在链下进行,那么只有两个链上交易:市场制造者为多链提供资金,以及资金退回给市场制造者。结果是,对谁参与了多链或获胜者的链上可见性为零,同时在链上执行的绝对最佳效率,同时仍然保留了链上合同执行的保证。假设预言机是可信的,那么正确的获胜者最终总会得到付款,无论市场制造者或参赛者是否合作、勾结或离线。

代码

此存储库是使用哈希锁的票据多链合同的可重用Rust实现。

它实现了所有各方(包括参赛者和市场制造者)成功执行票据多链所需的交易构建、多重签名和验证步骤。它不包括任何网络代码,也不打包比特币或闪电网络钱包。相反,这个crate是更高层次应用程序的通用构建块,可以在更具体的环境中实现票据多链。

为了证明这种方法的有效性,我编写了一系列集成测试,这些测试利用远程比特币Regtest节点来模拟和测试票据多链的链上执行的各种阶段和路径。可视化这些阶段的最有效方法是使用交易图。

教程

要查看示例,请参阅基本集成测试,其中包含了关于多链构建、签名和执行阶段发生的一切的非常详细的注释和描述。

依赖项

~9.5MB
~135K SLoC