跳到正文

    按 / 搜索,按 [ 和 ] 前往上一页和下一页。

    深入原理

    TOKEN 铸造曲线

    已实现亏损如何转化为代币供应。供应量从零开始,先按先平坦后衰减的曲线铸造;所有者切换之后,每一美元亏损铸造当前供应量的一个固定份额。

    两个阶段

    代币供应量从零开始,因此一开始不可能按供应量自身的份额铸造。铸造分两个阶段进行:

    1. 上线曲线(见下文):先是平坦速率,然后是衰减的尾段。
    2. 供应份额规则:从所有者通过时间锁启用它的那一刻开始。这次切换只发生一次,且不可撤销;切换时,新规则的常数会被设定为让每美元的边际铸造量保持不变。

    上线曲线

    曲线分为两个区段,由 Tokenomics 合约中的三个参数决定:平坦阈值 F = $2,000,000,平坦速率 R = 每美元 100 个 TOKEN,尾段尺度 S = $120,000,000。它跟踪两个状态变量:

    • T:记账资金池(见偿付能力与队列),可以为负;
    • H:尾段进度,即至今按尾段计价的累计铸造基数,只增不减。
    rate = R                       while T < F   (the flat region, including any negative T)
    rate = R · (S / (S + H))²      otherwise     (the tail)
    

    铸造基数是你已实现亏损中符合条件的部分(见下文),并不总是等于计入记账资金池的金额。每次铸造时,系统把基数分配到两个区段,按速率的积分铸造,因此把一笔亏损拆成多笔,最多只会因取整多出几 wei:

    T −= wins paid in the batch
    flat = T < F ? min(basis, F − T) : 0           (a negative T leaves more flat room)
    tail = basis − flat
    r1 = S · 1e18 / (S + H)
    r2 = S · 1e18 / (S + H + tail)
    minted = flat · R / 1e18 + ((R · r1 / 1e18) · r2 / 1e18) · tail / 1e18
    H += tail
    T += what the LP received
    
    尾段铸造速率随着尾段推进,每 1 美元亏损计价基数所铸造的代币数量;按合约的铸造算法和已部署参数计算。0255075100$0$25M$50M$75M$100M10085.268.549.829.8记账资金池低于阈值时为平坦速率计入尾段的累计亏损基数每 1 美元的代币
    尾段铸造速率. 随着尾段推进,每 1 美元亏损计价基数所铸造的代币数量;按合约的铸造算法和已部署参数计算。

    只增不减的尾段进度

    H 是一个只升不降的高水位。分配把 LP 超过 $10,000,000 的价值转给质押者时,T 会回落,但 H 保持不变。尾段一旦推进,速率就会永久地相应降低:尾段亏损累计达到 S 后,速率降为 R 的四分之一,无论其间 LP 有多少次被分配给质押者。这就是上图以 H 而不是 LP 为横轴的原因。

    因此,早期交易者的铸造速率远高于后来者。这是有意为之。

    切换之后:按供应份额铸造

    切换之后,无论记账资金池处于什么水平,每一美元的铸造基数都按代币供应量的一个固定份额铸造:

    c36     = R_now · 1e36 / supply_at_switch      fixed once (R_now: the curve's marginal rate)
    x       = c36 · g / 1e36                       g: the effective basis, below
    minted  = supply · (e^x / (1 + 1e−15) − 1)     supply: the token supply before this mint
    

    e^x 按 wad(18 位小数)计算,结果再向下扣除 1000 wei(以 wad 计)的余量,约为 1e15 分之一。H 不再增长。由于每一美元都铸造当时供应量的同一份额,供应量没有上限:它随累计亏损增长,已有持仓按同样的比例被稀释。

    资不抵债奖励

    切换之后,补足低于零的记账资金池的亏损计数更多:

    g_below0 = min(credit, −T)            the part of what the loss adds to T that lands below zero
    m        = 1 + 4u(2 − u),  u = min(1, t / 3 days)
    g        = basis + (m − 1) · g_below0
    

    t 是记账资金池跌破零以来经过的时间。m 在 3 天 内从一倍上升到 5×,只要 T 仍低于零就保持在这个水平。一次结算使 T 低于零时开始计时,使它回到零或以上时清零,因此下次 T 跌破零时奖励重新从一倍开始。亏损的其余部分按一倍计。

    什么算作「亏损」

    • 亏损平仓,保证金来自余额,队列为空:亏损减去 2% 的亏损手续费;如果平仓所用的密钥指定了获批的构建者,再减去构建者费,两者都从 LP 收到的部分中扣出。记账资金池上升同样的数额。
    • 亏损平仓,有待付款排队:不收手续费,亏损进入专用桶;基数为全部亏损,记账资金池也上升全部亏损。专用桶只决定这笔现金先用于支付排队的盈利方。
    • 爆仓:无论队列处于什么状态,基数都是损失的全部保证金。记账资金池上升保证金减去爆仓手续费(如果收取了手续费)。在爆仓价或更差价格执行的平仓按爆仓结算,基数相同。
    • 保证金来自排队待付款的仓位:亏损平仓按被注销的那部分待付款铸造,收取亏损手续费时扣除手续费;爆仓注销全部待付款,不收手续费,并按全部待付款铸造。记账资金池按同样的数额变动。

    批量与延迟铸造

    一次平掉多个仓位时,整个批次只铸造一次;铸造数量按各仓位的基数比例分配,采用最大余数法,余数相同时优先分给靠前的仓位。爆仓按每个仓位分别铸造。

    Exchange 以固定的 gas 额度调用 Tokenomics。如果调用失败,平仓照常完成,这次铸造的输入被保存下来,之后的所有铸造都排在它后面,这样按原顺序补铸时,铸造数量与直接铸造完全一致。任何人都可以触发补铸,我们的维护程序也会这样做。

    最后更新: