(十)web3面试题第三弹

(十)web3面试题第三弹

viEcho Lv5

1.什么交永续合约?什么交交割合约?

永续合约是“不过期的合约”,靠资金费率锚定现货
交割合约是“有期限的合约”,到期必须自动结算

2.资金费率?

资金费率是根据永续合约价格与现货价格之间的差异,定期在持有多头或空头头寸的交易者之间进行的资金支付。
⬆️ 在看涨市场中,资金费率为正,多头交易者向空头交易者支付资金费。
⬇️ 在看跌市场中,资金费率为负,空头交易者向多头交易者支付资金费。
一般交易所不收取资金费率转移的手续费,这些费用直接在交易者之间进行结算

资金费率 = 溢价指数 + 利率项

3.资金费率怎么得来的?

对于【永续合约】这种“没有交割日的衍生品”才有资金费率

资金费率由两个组成部分构成:利率和溢价。
其中,溢价是确保永续合约价格与标的资产价格趋同的关键因素。
LBank 采用固定利率,假设持有现金等价物的回报高于持有 BTC 等价物。
默认利率为每天 0.03%(每个资金费率间隔为 0.01%),但可能会根据市场条件(如联邦基金利率的变化)进行调整。

当永续合约价格与标记价格之间存在显著价差时,会使用溢价指数来强制实现价格趋同。
溢价指数针对每种交易工具单独计算,公式如下:

✅ 溢价指数(P)计算公式:
溢价指数(P) =[Max(0, 影响买入价格 − 现货价格) − Max(0, 现货价格 − 影响卖出价格)] / 现货价格

其中:
影响买入价格:购买名义影响量的价格
影响卖出价格:卖出名义影响量的价格

4.永续价,现货价,标记价,指数价?

名称 你看到的是什么 真正用途 会不会被操控
✅ 现货价 现货市场真实成交价 真实买卖价格 ❌ 很难
✅ 永续价 你合约下单的价格,合约市场自己的成交价 决定你盈亏的价格 ✅ 容易被影响
✅ 指数价 多家现货均价,多家主流现货交易所的加权平均价 定价“锚点” ❌ 基本不可操控
✅ 标记价 用来强平的价格,指数价+合理溢价修正 决定你爆不爆仓,保护多数正常交易者 ❌ 按规则算

一句话总结:赚钱看永续价,爆仓看标记价,公平看指数价,真实买卖看现货价

5. 强制平仓

指当账户的保证金不足以维持当前仓位时,系统自动接管仓位并平掉,以防止继续亏损到负值。
本质:仓位亏损太大 → 保证金不够用了 → 系统强制关闭仓位。
强平价格一般由 标记价格(Mark Price) 触发,而不是最新成交价。

6. 什么情况下会触发强制平仓

强制平仓的根本原因只有一个:维持保证金率(MMR)≥ 强平触发阈值(风险过高)。

常见触发场景包括:

  1. 行情反向导致浮亏过大
    仓位亏损吃掉保证金
    MMR 持续上升到危险区
    达到阈值 → 触发强平
  2. 仓位过大、杠杆过高,保证金不足
    杠杆越高,MMR 上升越快
    小波动也能导致触发强平
  3. 标记价格触发爆仓价
    强平以“标记价格”为准
    防止恶意成交导致爆仓
  4. 市场极端波动或流动性差
    无法及时平仓
    系统风控强制接管

7. 强制平仓下的系统操作

触发强平后,系统会进行以下操作(不同平台细节略有不同):

  1. 分步平仓(Partial Liquidation)
    系统首先尝试:
    只平掉部分仓位
    观察 MMR 是否降低到安全区
    若有效 → 停止强平
    若无效 → 继续下一步
    (此步骤能减少滑点与用户损失)

  2. 进入强平引擎(Liquidation Engine)
    若分步平仓无法恢复安全:
    系统接管剩余仓位
    以最优速度将仓位平掉
    用户无法再手动操作仓位

  3. 极端行情下触发自动减仓 ADL(Auto-Deleveraging)

当:流动性极差 or 市场剧烈波动 or 强平引擎无法顺利平仓

系统会:
对高杠杆、高收益用户进行自动减仓
降低整体平台风险

  1. 强平完成后通知用户
    平台会向用户展示:强平价格,强平数量,剩余保证金(可能为 0),强平原因(MMR 达到阈值等)

8.现货WS推送渠道

Channel 推送对象 粒度
grid-orders-spot 现货网格的主订单 较粗
grid-orders-contract 合约网格的主订单 较粗
grid-sub-orders 每一条小网格委托(子订单) 最细

9.合集出价,合集转移,合集转账(批量提币的gas优化)

合集出价:

订单不指定 tokenId,设置一个条件过滤:如某个 NFT 系列的合约地址
卖家任意持有该系列的 NFT,都可以“成交”此订单

合集转移:

指批量把某个合集中的多个 NFT 一次性转给别人
传统 ERC-721(不支持批量),每个 TokenId = 1 次链上调用,每次ERC721 transfer = 消耗 40k ~ 60k gas

① 用 ERC-721A(Azuki)
特点:支持连续 Mint → 节省 gas
但不支持批量 transfer。只优化 mint。

② 采用 ERC-1155
ERC-1155 支持:

1
safeBatchTransferFrom(...)

一次交易转移多个 tokenId,gas 大幅降低。

③ 自定义批量转移合约(最常用)

1
2
3
4
5
6
7
8
9
10
function batchTransfer(
address nft,
address from,
address to,
uint256[] calldata ids
) external {
for(uint i=0; i<ids.length; i++){
IERC721(nft).safeTransferFrom(from, to, ids[i]);
}
}

优点:
多笔 transfer 合并为一笔交易
gas 显著降低(约 30~50%)
钱包、CEX、NFT 市场都常用这种方案
缺点:
still loops → gas > 80k per NFT
无法突破 ERC721 的限制

④ DelegateCall 聚合器(合约钱包风格)
由用户授权一个合约来批量调用 transfer:
user allows aggregator to move tokens
aggregator multicalls all transfers in one transaction
类似 Gem.xyz / Blur Sweep 的操作。
节省 gas 20–50%

10.Erc711 approve-token授权哪些场景下会用到这个token授权?

  • NFT市场挂单出售
  • NFT拍卖(拍卖合约需要在拍卖结束时把 NFT 交给赢家)
  • 链游(GameFi)NFT 装备 / 道具使用
    1
    2
    3
    4
    5
    6
    7
    链游的 NFT 通常用于:
    上链装备
    召唤合成
    NFT 锁仓
    NFT 质押

    大部分操作需要游戏合约“移动 NFT”,否则游戏合约无法从你钱包把 NFT 转入游戏逻辑
  • NFT 质押(Staking)/ 抵押借贷(NFTfi / BendDAO
  • 批量转移 / 批量提取(Aggregator / 汤姆猫 Sweep 机器人)
  • 空投 Claim(某些 NFT 空投需要授权)
    1
    2
    3
    4
    5
    6
    7
    8
    9
    你持有某 NFT
    项目方空投新 NFT 或合成 NFT
    可能会:
    销毁旧 NFT
    转走你的 NFT
    替换成新的

    这些“转移行为”都需要授权。
    (但正规的空投应该只 require signature,不应该 require approve —— 否则容易钓鱼。)
  • CEX/钱包托管(托管的钱包代操作 NFT)
  • 批量销毁(Burn)/ NFT 进化(Upgrade / Merge)
  • Title: (十)web3面试题第三弹
  • Author: viEcho
  • Created at : 2025-12-09 17:59:55
  • Updated at : 2025-12-09 19:34:33
  • Link: https://viecho.github.io/2025/1209/web3-interview3.html
  • License: This work is licensed under CC BY-NC-SA 4.0.
Comments