# dFuture 白皮书 **Published by:** [WorldCupCoin](https://paragraph.com/@worldcupcoin/) **Published on:** 2021-10-23 **URL:** https://paragraph.com/@worldcupcoin/dfuture ## Content dFuture 白皮书 v1.0 版本 v0.97 修改日期:2021.08.19 简介 在传统的交易市场,中心化的交易所被很多人质疑通过对交易数据的全面控制和不透明 的操作而作恶,包括插针、私自印币等。为解决这些问题,以 Uniswap 为代表的去中心化 交易所,在一定程度上解决了这些问题,但由于 AMM(Automated Market Maker)本 身机制的特点,交易双方还存在着一定的风险敞口,比如交易者在成交量较大时,会面临远 超中心化交易所的交易滑点;流动性提供商(LP)则面临着无常损失的风险。为了解决这个 问题,我们提出了全新的 QCAMM (Quoted Price and Constant Sum Based Automated Market Maker )机制。 dFuture 是用于在以太坊上进行自动化 Token 交易的协议,目前只提供针对主流币种 的,带杠杆的永续合约交易。dFuture 的核心设计是零无常损失、零滑点,对交易者和 LP 都非常友好,并提供了良好的流动性和交易深度。 在 dFuture 上,LP 只需要存入单一币种(目前为 USDT)提供流动性,在取出时,由于 获得多方收益,会得到等于或大于存入量的该币种(目前为 USDT)。价格使用实时的去中 心化交易所价格喂价,交易者直接按当前喂价,交易主流币/USDT 交易对,交易不存在滑点。 系统通过恒定和公式(X1 + Y1 = Z1,Z1 值恒定)来控制平台的裸头寸尽量为 0,从而 让 LP 的风险降到 0,使其可以接近无风险获利。 本文档概述了 dFuture 的核心机制和技术实现。完整的源代码见项目的 Github。 Protocol Website:dfuture.com Documentation:https://github.com/dFuture-finance/dFuture-introduction Code:https://github.com/dFuture-finance/ QCAMM 协议介绍 2.1QCAMM 协议概述 QCAMM (Quoted Price and Constant Sum Based Automated Market Maker )是基于外部报价和基于恒定和公式的动态费率的金融衍生品交易协议。 QCAMM 协议通过多个外部预言机、去中心化交易所,如 Chainlink、uniswap、 OpenOracle、Mdex、PancakeSwap 等,获得交易品类的当前综合报价,交易者按该 报价直接完成做多或做空的成交,不存在滑点,交易深度与 LP 的抵押额成正比。LP 只提供 单一币种抵押,不存在无常损失。 QCAMM 协议的主要特点包括:  外部喂价:交易价格并不是像 AMM 一样,由算法决定,而是从多个外部去中心化数 据源取到,包括预言机和去中心化交易所;  0 滑点:交易者在平台允许开仓金额范围内,以当前报价直接成交,不存在价格滑点;  交易深度深:交易者交易深度只取决于 LP 抵押金额,如果目前平台抵押 1000 万美金, 交易者可以用当前价格直接成交 1000 万美金的多单或空单;  没有无常损失:AMM 需要抵押交易对中的两种货币,比如 eth/usdt 交易对,需要 LP 同时抵押 eth 和 usdt,而 QCAMM 中,LP 只需要抵押单一的结算货币即可,在 dFuture 中,该结算货币为 USDT。因为仅抵押单一币种,所以 QCAMM 中不存在无常损失。 2.2QCAMM 协议风险控制原理 QCAMM 协议的一个重要目标是控制 LP 在平台暴露的风险头寸,从而实现 LP 在平台 的无风险获利。QCAMM 协议通过“动态手续费/动态持仓费”的机制,引入套利者角色在 平台主动交易,从而形成平台的动态平衡,将平台风险控制在较低水平波动。具体原理如下:  对交易平台而言,如果平台的多头持仓量和空头持仓量的数值相等,即多头头寸与空头 头寸抵消,裸头寸为 0,此时 LP 将不存在任何风险,可以持续获得交易者的交易手续 费和持仓利息,实现无风险获利;所以控制 LP 风险问题就转化为如何让裸头寸为 0;  QCAMM 协议通过“基于恒定和公式的动态手续费/动态持仓费”机制来控制裸头寸为 0,以动态手续费举例,恒定和公式是指“多单手续费+空单手续费=恒定值”。在裸头 寸较小时,平台向多头和空头同时收取交易手续费,其费率低于中心化交易所;在裸头 寸较大时,比如裸头寸方向为多头,此时开多单时需要缴纳更高的手续费,而开空单时, 平台将向交易者返还手续费;  通过返还手续费,平台存在套利空间,将吸引套利者进入交易。在出现返还手续费的状 态时,如裸头寸方向为多头,套利者可以通过在本平台下空单,在 Cefi 交易所如火币 下多单,抵消头寸风险,同时获得本平台的手续费返还,从而实现无风险套利;同时由 于套利者的交易,本平台的裸头寸将向 0 值回归,LP 风险敞口随之降低; 总之,QCAMM 协议的风险控制将长期处于一个动态平衡的过程中,从长期来看,LP 的风险敞口将一直维持在一个较低的水平线左右,从而实现 LP 的长期无风险获利。 2.3QCAMM 协议、AMM 协议和 Cefi 交易所的差异 由于设计思路上的较大差异,QCAMM 与 AMM 和 Cefi 交易所在功能特点方面存在 一定区别: 中心化交易所 AMM(uniswap) QCAMM(dFuture) 价格 订单薄价格 恒定积价格 外部报价 滑点 根据深度形成的滑点 根据恒定积,不可避免的 滑点 无滑点 交易深度 大于 AMM 深度差 大于中心化交易所的深度, 与 LP 抵押金额成线性相关 无常损失 没有 有 没有 交易手续费 高且不透明 低 动态调整 平台风险低时低于前两种交 易所; 交易模式 限价单/市价单 挂单/吃单 市价单 吃单 市价单 吃单 透明度 不透明 透明 透明 LP 池 无 有 有 LP 抵押币种 无 交易对双币种抵押 单一币种抵押 2.4基于 QCAMM 协议的永续合约与传统永续合约的差异 QCAMM 永续合约大部分特点与传统永续合约很类似,基于去中心化的特点,主要有 以下几点需要注意: 交易模式:在传统的永续合约交易中,主要存在限价单和市价单两种交易单类型,同时 交易者会有吃单(taker)和挂单(maker)两种交易状态。在 QCAMM 永续合约中,只 有市价单一种交易类型,该市价单没有滑点,深度最大为 LP 池金额的 3 倍;同时交易者无 论是开仓还是平仓,都只有吃单一种状态; 平台价格:平台价格是从多个外部去中心化数据源取到的价格,做为成交的基准价格存 在,并用于计算浮盈浮亏; 初始和维持保证金:交易者应非常熟悉初始和维持保证金,特别是维持保证金。用户的 保证金一旦低于维持保证金,系统将会强制平仓。强烈建议交易者在维持保证金比率以上就 进行平仓,以避免因强制平仓而产生的资金损失; 动态手续费:为了降低裸头寸给平台带来的交易风险,我们通过“恒定和”公式,保证 开多和开空的手续费之和总是一个固定值。在该公式的限定下,在平台开仓的手续费的费率 大小会随着裸头寸的大小变化,同时手续费可能为正也可能为负,为正时交易者付给平台交 易手续费,为负时平台将付给交易者交易手续费,该部分恒定收益由 LP 获得; 动态持仓利息:为了降低裸头寸给平台带来的交易风险,我们通过“恒定和”公式,保 证持多仓和持空仓的持仓利息之和总是一个固定值。在该公式的限定下,在平台持仓的持仓 利息的费率大小会随着裸头寸的大小变化,同时持仓利息可能为正也可能为负,为正时交易 者付给平台利息,为负时平台将付给交易者利息,该部分恒定收益由 LP 获得; 杠杆:与现货市场不同,合约市场允许交易者进行超过其本金的交易,即存在杠杆。随 着我们对 QCAMM 交易模式的深入理解,杠杆的倍率也会增加; LP 池:平台按风险高低划分了多个 LP 池,在高风险池中,交易者可以使用高杠杆交易 多种数字货币合约,这些数字货币合约可能由低风险波动的交易对和高风险波动的交易对共 同组成,交易者可能获得高收益,LP 也有可能获得更高的收益;在低风险池中,交易者可 以使用低杠杆交易多种数字货币合约,这些数字货币合约将由低风险波动的主流币种交易对 组成,交易者和 LP 都将获得更稳定的收益;对 LP 来说,其只需要按自己的风险偏好,选 择不同的 LP 池,完成 USDT 的流动性抵押,就可以获取收益; 透明交易:QCAMM 永续合约价格只取决于外部喂价,并通过特定算法避免外部喂价 被攻击,平台公平、透明、可信; 透明收费:QCAMM 永续合约的所有收费规则已经固化在智能合约中,对用户完全清 晰可见。 2.5基于 QCAMM 协议永续合约的进一步扩展 dFuture V1 版本中,通过外部报价接入了数字货币主流币的期货交易,对 QCAMM 协议来说,只要能通过去中心化方式取得外部报价,就可以在 QCAMM 协议下进行交易。 所以类似股票、外汇等众多交易品种在未来都可以在 dFuture 上形成交易,进一步扩展 dFuture 的交易品类和面向的交易者人群。 QCAMM 协议交易体系介绍 LP 针对抵押池提供流动性抵押后,交易者就可以对该抵押池中的多个交易对进行交易 了。dFuture 目前提供的是带杠杆的永续合约交易。交易者以当前实时的平台价格,进行买 多或者卖空的交易。交易者可以自由的设定本次交易的杠杆,初始范围为 1 到 30 倍之间。 交易确认后,交易者的保证金将被扣除。伴随着以太坊的每次出块,dFuture 会实时检查交 易者的当前仓位情况,如果持仓保证金率低于当前币种最低档位维持保证金率,交易者将爆 仓。dFuture 平台会对即将爆仓的交易者进行提醒,交易者可以对自己即将爆仓的交易追加 保证金,从而避免爆仓风险。 3.1报价体系 交易价格来自综合多个预言机、去中心化交易所的自动报价。为了避免单一交易所的价 格被攻击,导致 dFuture 的交易者受损,我们采用多个预言机和去中心化交易所做为数据 源,并对其报价进行加权平均,公式为:X1X2+Y1Y2+…=价格,其中 X1,Y1 为不同来 源的去中心化交易所或预言机的价格,X2,Y2…为加权数,X2+Y2+… = 1。我们目前选用 chainlink、uniswap、OpenOracle、Mdex、PancakeSwap 等做为外部报价来源,加 权后合成价格,即 dfuture 平台的“平台价格”。 我们同时还采取一些额外的保护措施,来避免由于现货市场价格出现中断或由于连接问 题而导致糟糕的市场表现。这些保护措施如下: 单一价格来源偏离:当某个交易所的最新价格偏离所有价格来源的中位数价格超过 5%时,该交易所的价格权重将被设置为零。 多价格来源偏差:如果超过 1 个交易所的最新价格出现大于 5%的偏差,则所有价 格来源的中位数价格将会取代其加权平均值,用作价格指数值。 交易所连接问题:如果一个交易所在 2 个以太坊出块内没有更新交易数据,则在计 算加权平均值时,该交易所的权重将为零。 当出现价格异常的时候平台会暂时关闭交易,直至问题被解决后恢复交易。平台价格可 以被视为公允的现货价格,我们以此来计算各合约的未实现盈亏。请注意,账户实际盈亏以 平仓时成交的市场价格为准。后续通过社区治理,可以添加更多的成熟的去中心化交易所和 预言机进入 dFuture 的报价体系。 3.2成交价格 成交价格为平台价格收取点差后的价格。该点差的收取目的,一方面是避免频繁的开平 仓的刷量攻击,另一方面,收取的点差收入将进入到风险保障基金,为交易者和 LP 提供一 定的交易保护。 平台价格我们记为 P,点差记为 M。多单成交价格为 P1 = P*(1+M),空单成交价格 P2 = P * (1-M); dFuture 平台初始化时,M 设定为 0.05%,同时开仓时没有点差,平仓时会 产生点差。M 值后续可以通过社区治理进行调整。 3.3动态交易手续费 交易者在 dFuture 平台上进行交易时,都需要缴纳交易手续费。与传统的交易平台不 同,为了控制平台交易风险,交易手续费根据平台目前裸头寸与 LP 池的比例将动态变化。 目前平台设定裸头寸与 LP 池比值最大为 1:1,所以裸头寸与 LP 池的比值在[-1,1]值域区间, 其中负值代表裸头寸为空单方向;正值代表裸头寸为多单方向;随着裸头寸与 LP 池的比值 在-1 到+1 之间滑动,多单手续费和空单手续费也会一起变动,不变的是多单手续费+空单 手续费恒定为恒定值。具体手续费的计算公式如下: D=(多单总头寸-空单总头寸)/ LP 池总金额 多单手续费 X1 = N1 + M1 * D; 空单手续费 Y1 = N1 – M1 * D; 多单手续费 X1 + 空单手续费 Y1 = 2N1(恒定值); M1 * D = 手续费偏移量; 其中 M1=1% ;N1=LP 手续费优势,这里以 0.03%为例; 手续费随 D 值变动列表: 多单总 头寸 空单总头 寸 LP 池总金 额 裸头寸/LP 池总 额 多单手续费 空单手续 费 恒定和 0 0 100 0 0.03% 0.03% 0.06% 0 1 100 -0.01 0.02% 0.04% 0.06% 0 3 100 -0.03 0.00% 0.06% 0.06% 0 5 100 -0.05 -0.02% 0.08% 0.06% 0 10 100 -0.1 -0.07% 0.13% 0.06% 0 50 100 -0.5 -0.47% 0.53% 0.06% 0 100 100 -1 -0.97% 1.03% 0.06% 1 0 100 0.01 0.04% 0.02% 0.06% 3 0 100 0.03 0.06% 0.00% 0.06% 5 0 100 0.05 0.08% -0.02% 0.06% 10 0 100 0.1 0.13% -0.07% 0.06% 50 0 100 0.5 0.53% -0.47% 0.06% 100 0 100 1 1.03% -0.97% 0.06% 交易费随 D 值变动如下图: 手续费与 D 值变动关系 同时,考虑到买卖单,特别是大额买卖单对 D 值的冲击影响,我们会通过对买入前和 买入后的 D 值进行加权平均处理,平滑买卖单的冲击,具体计算公式: D=(多单总头寸-空单总头寸)/ LP 池总金额 多单手续费 = 0.03% + 1%(用户下多单前的 D + 用户下多单后的 D)/ 2 空单手续费 = 0.03% - 1%(用户下空单前的 D + 用户下空单后的 D)/ 2 例:目前多单总头寸 110 万 USDT,空单总头寸 10 万 USDT,LP 池总金额 1000 万 USDT。 情况 1:交易者开 10 万 USDT 多单 用户下多单前的 D = (110 – 10 ) / 1000 = 0.1 用户下多单后的 D = (120 – 10 )/ 1000 = 0.11 多单手续费 = (0.03% + 1% * (0.1 + 0.11)/ 2) 100,000 = 0.135% * 100,000 = 135 此时平台收取交易者 135U 手续费; 情况 2:交易者开 10 万 USDT 空单 用户下空单前的 D = (110 – 10 ) / 1000 = 0.1 用户下空单后的 D = (110 – 20 )/ 1000 = 0.09 空单手续费 = (0.03% - 1% * (0.1 + 0.09)/ 2)100,000 = -0.065% * 100,000 = -65 此时平台会返还交易者 65U 手续费。 总结以上数据,可以明显发现,在裸头寸(多单总头寸-空单总头寸)占 LP 池总金额 0% - 3%时,平台向交易双方收取交易手续费,同时会向裸头寸倾斜的方向收取稍多一些的 手续费;在裸头寸占 LP 池总金额超过 3%时,裸头寸正方向的新开仓需要缴纳手续费,裸 头寸反方向的新开仓将获得手续费的返还。 所以,系统永远鼓励交易向降低裸头寸的方向倾斜,交易者可以通过反裸头寸方向交易 的方法额外获利。 3.4动态持仓利息 交易者在 dFuture 平台进行交易时,如果有持仓,需要支付持仓利息,其目的是控制 平台交易风险。与传统的交易平台不同,持仓利息根据平台目前裸头寸与 LP 池的比例将动 态变化。目前平台设定裸头寸与 LP 池比值最大为 1:1,所以裸头寸与 LP 池的比值在[-1,1] 值域区间,其中负值代表裸头寸为空单方向;正值代表裸头寸为多单方向;随着裸头寸与 LP 池的比值在-1 到+1 之间滑动,多单持仓利息和空单持仓利息也会一起变动,不变的是多 单持仓利息+空单持仓利息恒定为恒定值。具体持仓利息的计算公式如下: D=(多单总头寸-空单总头寸)/ LP 池总金额 多单持仓利息 X2 = N2 + M2 * D + L; 空单持仓利息 Y2 = N2 – M2 * D - L; 多单持仓利息 X2 + 空单持仓利息 Y2 = 2N2(恒定值); M2 * D = 利息偏移量; 其中 M2=0.05% ;N2(利息优势)=0%;L = 0; L 为当期基准费率,其含义为中心化交易所永续合约当前资金费率的加权平均值,目前 设置为 0,后期将通过去中心化预言机取该价格; 持仓利息随 D 值变化的变动值: 多单总头 寸 空单总头 寸 LP 池总金 额 裸头寸/LP 池总额 多单持仓利息 空单持仓利息 恒定和 0 0 100 0 0.0000% 0.0000% 0% 0 1 100 -0.01 -0.0005% 0.0005% 0% 0 10 100 -0.1 -0.005% 0.005% 0% 0 50 100 -0.5 -0.0250% 0.0250% 0% 0 100 100 -1 -0.0500% 0.0500% 0% 1 0 100 0.01 0.0005% -0.0005% 0% 10 0 100 0.1 0.005% -0.005% 0% 50 0 100 0.5 0.025% -0.025% 0% 100 0 100 1 0.050% -0.050% 0% 具体如下图所示: 持仓利息每 8 小时结算一次,扣除的利息会直接生效,返还的利息在用户平仓时一次性 结算。可以看到,在裸头寸(多单总头寸-空单总头寸)占 LP 池总金额 0% - 10%时,平台 向多空持仓双方收取持仓利息,同时会向裸头寸倾斜的方向收取稍多一些的利息费;在裸头 寸占 LP 池总金额超过 10%时,裸头寸方向的持仓需要缴纳利息,裸头寸反方向的持仓将获 得利息的返还。 所以,系统永远鼓励持仓向降低裸头寸的方向倾斜,交易者可以通过反裸头寸方向持仓 的方法额外获利。 3.5竞争性平仓 dFuture 会实时检查交易者的当前仓位情况,如果持仓保证金率低于当前币种最低档位 维持保证金率,交易者将爆仓。在交易者爆仓时,交易者账户存在如下两种情况,1.价格波 动不极端,交易者仓位还余留资金;2.价格波动太剧烈,交易者仓位没有资金剩余,发生了 穿仓。 dFuture 提供了竞争性平仓机制,让参与平台交易的“数据科学家”来帮助平台完成平 仓的动作。竞争性平仓是指,在出现交易者被强平时,“数据科学家”可以主动针对提示被 强平的账户发送平仓交易请求,在未穿仓时,平仓交易成功的“数据科学家”可以获得该仓 位剩余资金 Y,0 LP 池金额 3 倍时,不能开仓; 平台收费 7.1平台费用分配结构 交易者在平台交易时,需要支付两部分费用:交易手续费和利息。根据恒定和公式,平 台会稳定的产生交易手续费和利息盈余,这些 USDT 将直接按比例打给如下平台参与者: 40% 用于对 DFT 质押者进行空投,并链上透明; 20% 用于回购并销毁 DFT; 20% 用于团队做为运营费用; 20% 用于第三方 dex 二池流动性挖矿。 下一步工作 8.1关于平台收益动态平衡的设计 对一个交易平台而言,交易规则的设计是最重要的,而交易规则中最重要的就是交易收 费模式的设计,一个好的交易收费模式,要充分考虑到交易者和平台 LP 之间利益分配的公 平合理。如果平台的交易规则偏向 LP,让 LP 获取高额的收益率,而交易者需要缴纳高额的 手续费和交易风险,交易者将不愿意来平台交易,从长期看 LP 也无法获取收益;同理,如 果平台的交易规则偏向交易者,让 LP 的收益率很低,并长期暴露在风险敞口中,LP 将不愿 意为该平台提供流动性,导致交易者的可交易品类和可交易额度都会大幅下降,同时交易深 度也会变的糟糕;所以,只有更好的平衡交易者和 LP 之间的利益,一个交易平台才可以长 期、稳定、良性的发展。 基于以上的考虑,我们考虑在下一个版本中加入收益动态平衡的机制,通过去中心化的 链上算法,让交易者与 LP 在平台收益方面处于一种动态平衡的博弈中,让平台可以同时兼 顾两者的利益。 8.2关于进一步提升 LP 收益的设计 根据目前动态手续费和动态持仓利息的系统设计,我们预计裸头寸与 LP 池总金额的比 例应该长期在 0% - 10% 之间波动,这意味着 LP 池只需要提供 10%的金额就可以满足平台 的流动性要求,所以 LP 池 90%的金额都将做为沉淀资金存在。 在设定一定比例的准备金后,我们可以采用多种方式将这笔资金利用起来,从而进一步 提升 LP 的收益率,例如:  存入到类似 curve 的平台,提升收益率;  提供类似 Compound 的借贷功能,提升收益率; 8.3关于优化平台交易对的设计 dFuture 在同一个 LP 抵押池中,可以支持有限的多个交易对交易,其中可以包含主流 币和非主流币。我们可以针对每个交易对,建立健康度指标,包括日交易量、日交易人数等, 每经过一定的交易周期,比如 3 个月,我们可以根据健康度评分,将评分较差的交易对剔除 出抵押池,并纳入新的交易对。通过这种方式,我们可以一直保证交易对的活跃度和健康度, 一方面提升交易者的交易体验,另一方面可以提升 LP 资金的利用率和收益。 ## Publication Information - [WorldCupCoin](https://paragraph.com/@worldcupcoin/): Publication homepage - [All Posts](https://paragraph.com/@worldcupcoin/): More posts from this publication - [RSS Feed](https://api.paragraph.com/blogs/rss/@worldcupcoin): Subscribe to updates