BSV 上的点对点结算衍生品:远期合约

这篇具有很好参考价值的文章主要介绍了BSV 上的点对点结算衍生品:远期合约。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

远期合约简介

远期合约是两方在特定未来时间以预定价格买卖资产的衍生工具。它是一种非常常见的对冲波动性的工具。因此,使用 USD 远期合约可以对冲 USD 兑 BSV 汇率的波动。

合约交易是点对点吗?,智能合约,区块链,智能合约

远期合约的收益图

例如,Alice 与 Bob 签订了一份 USD 远期合约。Alice 同意从现在起一个月后以每 BSV 100 USD 的价格从 Bob 那里购买 5000 USD (即每 USD 100,000 聪(=0.01 BSV ))。

Alice 是一名矿工,必须每月支付电费,并希望减轻波动风险。该合同到期后将赋予她 5000 USD 的权利,无论当时的 BSV 汇率如何。 Bob 是一名交易员,他将这份合约作为一种投机手段,期望 BSV 的价格上涨并获利。

他们同意以 BSV 结算合同。各方将相互支付约定价格与 BSV 市场价格之间的差额¹。因此,如果 BSV 的 USD 价值贬值(即 BSV 价格下跌),Bob 将向 Alice 支付差额。同样,如果 BSV 升值,Alice 将不得不支付给 Bob。

BSV USD 远期合约

有了这种远期合约,价格波动风险得到了缓解,但它引入了交易对手风险。Alice 或 Bob 可能在合同到期时不履行合同并拒绝付款。

我们分两步使用 BSV 上的智能合约来实现合约:

  1. Alice 和 Bob 各自将 50 个 BSV (5000 USD * 0.01 BSV / USD )锁定到以下合约中。抵押品不需要第三方保管人。
  2. 当合约到期且预言机公布现货价格时,可以使用公布的价格分割抵押品。交易对手风险得到缓解,因为任何一方都不能作弊。
import "rabin.scrypt";

// price info published by oracle
struct OraclePrice {
    // spot/market price
    int price;
    int time;
}

// a USD forward contract settled in bitcoin, as denominated
contract Forward {
    Ripemd160 alice;
    Ripemd160 bob;

    // how much bitcoin Alice plans to sell to Bob, in dollars
    int dollars;

    // predetermined delivery price, in satoshis / dollar
    int deliveryPrice;
    // contract mature time
    int matureTime;

    RabinPubKey oraclePubKey;

    public function settle(OraclePrice op, RabinSig sig, SigHashPreimage txPreimage) {
        Tx.checkPreimage(txPreimage);

        // oracle signs serialized price data
        bytes msg = serializePrice(op);
        // verify price info
        require(RabinSignature.checkSig(msg, sig, this.oraclePubKey));

        // verify price is for the agreed-on matrue time
        require(op.time == this.matureTime);

        // total collateral amount, in satoshis
        int totalSats = SigHash.value(txPreimage);

        // Bob pays Alice the difference; could be nagative
        int payoff = this.dollars * (op.price - this.deliveryPrice);
        int aliceAmount = totalSats / 2 + payoff;
        if (aliceAmount < 0) aliceAmount = 0;   //bounded
        int bobAmount = totalSats - aliceAmount;
        if (bobAmount < 0) bobAmount = 0;       //bounded

        // split according to the price when the contract is mature

        bytes aliceScript = Utils.buildPublicKeyHashScript(this.alice);
        bytes aliceOutput = Utils.buildOutput(aliceScript, aliceAmount);

        bytes bobScript = Utils.buildPublicKeyHashScript(this.bob);
        bytes bobOutput = Utils.buildOutput(bobScript, bobAmount);

        require(hash256(aliceOutput + bobOutput) == SigHash.hashOutputs(txPreimage));
    }

    // serialized price data. It is what oracle signs
    static function serializePrice(OraclePrice op) : bytes {
        return num2bin(op.price, 4) + num2bin(op.time, 4);
    }
}
远期合约源代码

智能合约中的预言机使用 Rabin Signature 签署喂价(第 29 行)并使用 OP_PUSH_TX 分割抵押品,即 100 个 BSV 。

合同到期有三种可能:

  1. 价格等于 100K sats/ USD (即每个 BSV 100 USD )。第 38 行的收益为 0。Alice 和 Bob 各取回他们的 50 个 BSV 。

  2. 价格高于 100K sats/dollar。例如,它是 200K sats/dollar(即 BSV 价格跌至 50 USD )。 Bob 将支付 Alice 5000 * (200K -100K) = 5 亿 sats = 5 个 BSV 。 Alice 得到 55 个 BSV ,Bob 得到 45 个。

  3. 价格低于 100K sats/dollar。例如,它是 50K sats/dollar(即 BSV 价格上涨到 200 USD )。 Alice 将支付 Bob 5000 * (100K -50K) = 2.5 亿 sats = 2.5 个 BSV 。 Alice 得到 47.5 个 BSV ,Bob 得到 52.5 个。

讨论

我们只实施了基本的智能合约作为概念证明。有很多方法可以使它更实用,我们列出了其中的一些。

  • 最大曝光:当价格上涨到 1100K sats/ USD ( BSV 价格下跌到 90.9 USD )。 Bob 将支付 Alice 5000 * (1100K -100K) = 50 亿 sats = 50 个 BSV 。如果价格进一步上涨,Bob 将无法用 50 BSV 抵押品支付全部金额。需要更多的抵押品来应对更多的波动风险。

  • 以 USD 结算:当 USD 代币可用于 BSV 时,合约可以以 USD 而非 BSV 结算。也可以使用 USD 抵押品。

  • 故障安全:如果预言机没有发布所需的价格数据,我们可以在智能合约中添加一个公共函数,让 Alice 和 Bob 都签署以取回他们的抵押品。

  • 多个预言机:为了降低恶意预言机的风险,可以使用多个预言机。

总结

我们展示了一个以 BSV 结算的 USD 远期合约。它可以很容易地扩展到任何需要根据外部未来价值划分以 BSV 计价的资金的金融工具。标的资产可以是任何东西,例如黄金、小麦或石油。只要有预言机发布价格,就可以使用上面的智能合约构建远期合约。


[1] 这种类型的远期称为不可交割远期。文章来源地址https://www.toymoban.com/news/detail-807009.html

到了这里,关于BSV 上的点对点结算衍生品:远期合约的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 华为防火墙IPsec点对点配置解析

    主机直连的接口为trust区域,防火墙之间互联的接口为untrust区域 ike proposal xx //首先创建ike proposal xx 这一步的作用就是创建协商ike SA的时候使用的相关安全套件,默认防火墙就会设置了一些默认的安全套件的组合。这一步设置的内容就是用于IKE SA的协商,IPsec双方使用协商好的

    2024年02月05日
    浏览(44)
  • C#实现udp点对点通信的完整示例

    udp和tcp都是传输协议,最大的不同是,tcp通信前需要建立连接,是更可靠的通信协议,而udp是一个无连接的传输协议,可直接发送数据。两种协议不分优劣,各有各的应用场景,实际应用往往会同时使用两种协议。 C#代码实现udp通信的步骤比较简单。 假设:A要向B发送消息。

    2024年02月16日
    浏览(39)
  • SpringBoot整合 websocket 实现群聊,点对点聊天

    1.websocket websocket最伟大之处在于服务器和客户端可以在给定的时间范围内的任意时刻,相互推送信息。浏览器和服务器只需要要做一个握手的动作,在建立连接之后,服务器可以主动传送数据给客户端,客户端也可以随时向服务器发送数据。 第一、WebSocket是HTML5中的协议,支

    2024年02月08日
    浏览(36)
  • ffmpeg点对点音视频udp协议传输

    参考:https://zhuanlan.zhihu.com/p/636152437?utm_id=0 ffmpeg查看可用设备: 局域网内两台设备间 局域网内两台设备间

    2024年04月10日
    浏览(44)
  • 思科路由器点对点故障的解决方法

    思科路由器采用CPOS接口,节省了一个TM传输设备,配线也简单多了,同时还节省很多的同轴电缆,用一根光纤全部解决,CPOS接口内部分为了多个接口,通过这种接口可以用一个端口与多个物理接口相连。   这种连接和帧中继、X.25的虚连接不同,实际上仍然是物理相连,在传

    2024年02月05日
    浏览(51)
  • 同城跑腿系统源码,点对点配送,帮你省时省力

    随着互联网的发展,越来越多的人开始依赖网络来解决生活中的各种问题。而同城跑腿系统就是其中一个受欢迎的解决方案。 ​同城跑腿系统是指一种基于互联网的服务,通过在线平台将用户和服务提供者连接起来,以便用户可以轻松地安排他们的日常任务和需求。 一、同

    2024年02月06日
    浏览(55)
  • VB点对点聊天文件传输系统设计与实现

    本程序使用VB语言编程,使用WinSock控件完成的点对点(P2P)聊天和文件传输程序。可以实现两台机器间互发消息,并且有聊天和文件传输记录,安全可靠。 p2p WinSock,聊天和文件传输程序,VB P2P是一种技术,但更多的是一种思想,有着改变整个互联网基础的潜能的思想。

    2024年02月13日
    浏览(40)
  • C语言的UDP多线程点对点发送消息

    windows下使用Dev C++调试 Server段: /**  * 编译命令:gcc udps.c -lws2_32 -lmycon -lwinmm -o us.exe  */ Client端: /**  * 编译命令:gcc udpc.c -lws2_32 -lmycon -lwinmm -o uc.exe  */ mycon.h(32位) mycon.h(64位) 仅供学习

    2024年02月16日
    浏览(45)
  • Kindelia-Chain+HVM:点对点函数式计算网络

    开源代码见: https://github.com/Kindelia/Kindelia-Chain(Rust) https://github.com/kindelia/hvm(Rust) Kindelia基于以太坊,但对其进行了改进: Kindelia-Chain白皮书见: Kindelia: a peer-to-peer functional computer Kindelia: a peer-to-peer functional computer 里程碑规划为: 2022.1~2022.7:完成白皮书和客户端原型,

    2023年04月08日
    浏览(36)
  • 基于多智能体点对点转换的分布式模型预测控制

    matlab2020正常运行 基于多智能体点对点转换的分布式模型预测控制资源-CSDN文库

    2024年01月22日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包