2021年11月,液态网络进行了脚本升级,增加了31个操作码,专注于简化和改进契约:交易自省、64位算术等。借助这些操作码,液态网络可以部署高级智能合约,为想要减少传统金融世界中常见的信任要求的交易者提供金融产品。
举两个这样的金融产品的例子,一个是部分成交的非托管限价单,另一个是完全抵押的期权合约。Blockstream设计并实现了智能合约来展示这些用例,展示了液态网络作为比特币金融层的能力。
限价单
限价单允许资产的买方或卖方(做市商)设定他们愿意在市场上购买或出售该资产的价格。然后,一个单独的交易者将决定“接受”这个报价并执行交易。这通常在中心化交易所完成,交易所将托管双方的资金,然后使用内部结算系统将资金分配给每一方。该系统依需要用户信任第三方托管自己的资产,这些资产可能会由于他们的系统被黑客入侵或内部盗窃而丢失,第三方有可能消失或带着资金潜逃。
过去在液态网络上进行这种交易是可能的,但存在严重的限制,例如双方的私钥需要持续在线或交易需要完全填充。例如,如果一个做市商希望以单价20,000美元的价格出售5个L-BTC,而买方希望以该价格购买2个L-BTC,那么在没有做市商干预的情况下执行此交易并没有简单的方法,除非修改订单。这需要人工干预或使用在线的私钥,这增加了复杂性并带来了安全风险。
液态网络自省操作码(introspection opcodes)可用于构建契约——一种智能合约,可确保仅当交易符合特定标准时才能花费输出。通过契约,做市商可以将5个L-BTC锁定在一个契约中,该契约允许任何人移除任意数量的L-BTC,只要他们向卖家支付20,000美元的单价就可以购买对应数量的L-BTC。该契约还允许卖方拿走剩余的抵押品来取消订单。在接受者(taker)想要执行交易之前,无需将限价订单契约的资金发布到区块链,从而节省区块链的空间和潜在费用。
资金交易:Alice将5个L-BTC添加到限价单契约中。 购买交易:Bob支付40,000美元从契约中获得2个L-BTC(减去网络费用)。
期权合约
一个更高级的用例是覆盖看涨期权合约,它是由标的资产抵押的期权。在这种情况下,期权卖方出售在未来某个时间点(称为到期日)以设定价格购买资产的权利(但不是义务)。在该日期之后,如果该权利未被行使,设保人(grantor)可以收回抵押品。当持有人愿意在未来以更高的价格出售时,期权合约可用于赚取利润,或者作为期权受让人在冒最小资金风险的情况下获得资产敞口的一种方式。
期权合约通常通过第三方托管资金或通过与受信任的交易对手进行交易来提供,这些交易对手必须被指望履行其义务。使用受信任的第三方时,用户面临资金丢失或冻结的风险,无论是由于技术故障、监管行动还是盗窃。在信任交易对手时,存在交易对手无法履行义务的风险。大部分TradFi市场都依赖于这种模式,这意味着只有一些关系良好的大公司是值得信赖的,并且必须提供保险以确保它们能够履行义务。但在不需要任何中介的情况下使用智能合约时,这些问题就会消失。
期权契约构建
期权合约中一般有两方——授予人(授予购买抵押品的选择权)和受让人(授予未来购买资产的选择权)。然后可以交易这些头寸。在液态网络中的实现中,这两个位置由不同的代币表示:Grantor代币和期权代币。
期权合约定义了以下条款:
- 抵押资产——做市商出售的资产。[1]
- 结算资产 ——接受者必须支付给做市商的资产。
- 行权价格 —— 必须为一份合约的抵押资产支付的结算资产金额。
- 合约规模 ——必须转移的抵押资产的最低金额,并且必须是该价值的整数倍。
- 行使开始日期——可以行使期权的日期。
- 行使到期日——设保人可以要求收回其抵押品的日期。
期权生命周期
定义
期权创建者定义上面指定的参数,以创建生成选项和Grantor代币的能力。最初,不会生成期权或Grantor代币,也不会锁定任何抵押品。液态网络允许通过再发行代币生成这些代币——一种特殊的资产,可用于转账以生成相关资产。定义过程会产生其中两个代币,称为Option Token Generator和Grantor Token Generator。这些代币被放入限制其生成能力的契约中,除非将抵押品存入单独的契约中,称为抵押契约。
提供资金
任何用户都可以通过将抵押品存入抵押品契约来为期权合约提供资金。将抵押品存入抵押品契约的用户能够为每个合约大小的抵押品数量生成一对期权和Grantor代币。例如,如果合约大小是1M sats L-BTC,如果用户存入100M sats L-BTC,他们将能够生成各100个代币。然后,用户可以自由出售他们希望持有的头寸(或者如果他们希望做市,则出售两个代币)。
撤销
如果用户希望取消他们在期权合约中的头寸,他们可以销毁期权和Grantor代币,以检索合约大小的抵押品。当用户想要锁定利润或止损时,他们可能会这样做,但无法找到交易对手来平仓。
到期
如果合同到期,Grantor代币的持有者可以烧掉他们的代币并索取相关的抵押品。抵押契约确保交易只能在到期日之后完成。对于每个销毁的代币,用户都可以从抵押契约中索取一个合约大小的抵押品。
行权
如果期权代币的持有者希望行使他们的期权,他们可以在将结算资产的执行价格支付给结算契约的同时销毁代币。通过这种方式,他们能够索取合同规模的抵押物。该契约的存在是为了允许Grantor代币的持有者索取受让人支付的款项。
结算声明
Grantor代币的持有者能够索要行使期权的用户支付的结算资产金额。这是通过烧毁任意数量的Grantor代币并从结算契约中索取适当数量的资金来完成的。
阅读期权白皮书
有关这些构造细节的更多信息,请阅读Sanket Kanjalkar、Andrew Poelstra和我自己的新白皮书“使用Elements的非托管期权”。 如需进一步讨论,您还可以加入液态网络社区Telegram并直接提问。
在接下来的几周内,我们将发布这些构造的参考实现,以便您可以使用液态网络创建自己的期权合约。或者,您也可以在液态网络上构建其他有趣的用例。
[1]对于L-BTC看涨期权,L-BTC是抵押资产;对于L-BTC看跌期权,L-USD是抵押资产。虽然这些资产服务于不同的市场目的,但从技术角度来看,它们本质上是相同的。