前天,我刚发布文章宣布 启动第二期 AI + Web3 实战营,昨天就正式开营了。
第一个晚上,我主要让 AI 和我一起梳理了「BlockLever」最核心的机制设计,包括做多和做空 ETH 的实现逻辑和资金隔离方案。下面,是我让 AI 根据这第一节的内容所生成的部分核心的研发日志,特此分享出来。
BlockLever 是一个创新的链上杠杆借贷协议,定位于轻量化的 Perp DEX。与传统 Perp 协议不同,我们不自建流动性池,而是巧妙地聚合现有的成熟协议:
核心特点:
我们通过闪电贷 + 抵押目标资产的方式实现杠杆:
用户操作:投入 100 USDT,2x 做多 ETH
底层执行:
1. 用户转入 100 USDT 保证金
2. 闪电贷借入 100 USDT(杠杆资金)
3. 用 200 USDT 在 PancakeSwap 买入 0.1 ETH
4. 将 0.1 ETH 存入 Venus 作为抵押
5. 从 Venus 借出 100 USDT
6. 还闪电贷
7. 完成!用户现在持有价值 200 USDT 的 ETH 多头
关键创新点:
做空的逻辑正好相反:抵押稳定币,借出目标资产
用户操作:投入 100 USDT,2x 做空 ETH
底层执行:
1. 用户转入 100 USDT
2. 闪电贷借入 0.05 ETH(价值 100 USDT)
3. 在 PancakeSwap 卖出 0.05 ETH 得到 100 USDT
4. 将 200 USDT 存入 Venus 作为抵押
5. 从 Venus 借出 0.05 ETH
6. 还闪电贷
7. 完成!用户现在持有等价于 100 USDT 的 ETH 空头
做多 ETH(2x 杠杆):
做空 ETH(2x 杠杆):
对比传统 Perp:
在设计做空流程时,我们发现了一个关键限制:
Venus 不支持 USDT/USDC 作为抵押品!
稳定币 | 可抵押 | 可借出 | 影响 |
|---|---|---|---|
USDT | ❌ | ✅ | 做空受影响 |
USDC | ❌ | ✅ | 做空受影响 |
DAI | ✅ | ✅ | 完全支持 |
影响分析:
我们设计了一个用户无感知的稳定币转换机制:
前端显示:用户使用 USDT 作为保证金 ✅
后台执行:
开仓时:USDT → DAI(PancakeSwap)
Venus 抵押:DAI
平仓时:DAI → USDT(返还给用户)
用户体验:完全感知不到 DAI 的存在
成本分析:
技术实现:
contract StablecoinConverter {
struct CollateralConfig {
bool isSupported;
bool needsConversion;
address convertTo; // 转换为 DAI
}
function convertToVenusCollateral(address token, uint256 amount)
internal returns (address outputToken, uint256 outputAmount)
{
if (token == DAI) {
return (token, amount);
}
// USDT/USDC 自动转换为 DAI
outputAmount = _swapOnPancake(token, DAI, amount);
return (DAI, outputAmount);
}
}
这是今天最重要的架构决策!
方案一:协议合约统一借贷
所有用户 → BlockLever 协议合约 → Venus(单一账户)
方案二:每个用户独立借贷
用户 A → UserProxy A → Venus(账户 A)
用户 B → UserProxy B → Venus(账户 B)
用户 C → UserProxy C → Venus(账户 C)
假设两个用户:
用户 A(保守):
- 抵押 10 ETH (20,000 USDT)
- 借款 5,000 USDT
- 个人健康因子:3.4(非常安全)
用户 B(激进):
- 抵押 100 ETH (200,000 USDT)
- 借款 160,000 USDT
- 个人健康因子:1.06(濒临清算)
协议整体(Venus 视角):
- 总抵押:110 ETH (220,000 USDT)
- 总借款:165,000 USDT
- 整体健康因子:1.13
如果 ETH 暴跌 15%:
用户 A:
- 个人健康因子:2.89(仍安全)
- 应该:不被清算 ✅
用户 B:
- 个人健康因子:0.90(触发清算)
- 应该:被清算 ❌
协议整体:
- 健康因子:0.96 < 1.0
- Venus 清算整个协议
- 结果:用户 A 无辜被清算!❌❌❌
这是绝对不能接受的!
我们采用 Instadapp DSA 同款的架构设计:
┌─────────────────────────────────────┐
│ 用户交互层 │
│ 用户 → BlockLeverProtocol (主入口) │
└──────────────┬──────────────────────┘
↓
┌─────────────────────────────────────┐
│ 代理层(资金隔离) │
│ BlockLeverFactory │
│ ├─ UserProxy A (用户 A 专属) │
│ ├─ UserProxy B (用户 B 专属) │
│ └─ UserProxy C (用户 C 专属) │
└──────────────┬──────────────────────┘
↓
┌─────────────────────────────────────┐
│ 外部协议层 │
│ Venus (独立账户) │
│ PancakeSwap │
│ 闪电贷 │
└─────────────────────────────────────┘
核心优势:
为了优化 gas 成本,我们使用 EIP-1167 标准:
import "@openzeppelin/contracts/proxy/Clones.sol";
contract BlockLeverFactory {
address public immutable implementation;
mapping(address => address) public userProxies;
function getOrCreateProxy(address user) external returns (address) {
if (userProxies[user] == address(0)) {
// 仅 45 bytes 的极简代理,部署成本 ~50k gas
address proxy = Clones.clone(implementation);
IUserProxy(proxy).initialize(user);
userProxies[user] = proxy;
}
return userProxies[user];
}
}
成本对比:
做多 ETH:
开仓:0.59 USDT (闪电贷 + swap)
持仓:0.66 USDT (Venus 利息 8% APR)
平仓:0.59 USDT
总计:1.84 USDT (1.84%)
做空 ETH:
开仓:0.69 USDT (含稳定币转换)
持仓:1.23 USDT (Venus 利息 15% APR)
平仓:0.695 USDT
总计:2.615 USDT (2.62%)
维度 | BlockLever | GMX V2 | dYdX | Hyperliquid |
|---|---|---|---|---|
最大杠杆 | 5x | 50x | 20x | 50x |
资金费率 | 无(仅借贷利息) | 0.01%/小时 | 0.01%/小时 | 0.01%/小时 |
清算空间(2x) | 41%-79% | ~4% | ~10% | ~4% |
流动性来源 | Venus+PancakeSwap | GLP 池 | 订单簿 | 订单簿 |
开发成本 | 低(聚合) | 高(自建) | 高(自建) | 高(自建) |
适合用户 | 稳健交易者 | 高风险偏好 | 专业交易员 | 专业交易员 |
BlockLever 的差异化定位:
传统杠杆需要多次借贷循环,我们通过闪电贷一次完成:
传统方式(4-5 笔交易):
存 100 USDT → 借 75 USDT → 买 ETH → 存 ETH → 借 60 USDT → ...
Gas 成本:~$5-8
闪电贷方式(1 笔交易):
闪电贷 100 USDT → 买 ETH → 抵押 → 借 USDT → 还闪电贷
Gas 成本:~$2-3
效率提升:60%+
用户无需关心 Venus 的限制,协议自动处理:
// 前端代码
openShort({
collateral: "USDT", // 用户只需选择 USDT
amount: 100,
leverage: 2
})
// 后端自动处理
if (collateral === "USDT") {
// 自动转换为 DAI
// 用户完全无感知
}
每个用户拥有独立的智能合约账户:
用户 A 的资产 → UserProxy A (0x123...) → Venus 账户 A
用户 B 的资产 → UserProxy B (0x456...) → Venus 账户 B
独立清算,互不影响
这次开营,我除了让 AI 最后帮我生成了这份研发日志,还生成了另外两份详细的文档:
另外,为了让这次实战营的童学们(包括后续陆续加入的)学习每一节视频时,能更方便地查看文档和代码,我会将每一节视频都创建一个单独的 github 分支。
在前一篇文章我还提过,实战营的模式能把学习效率提升到 60%~70% ;能把 学习时间压缩 5–6 倍,成本降低近 85% ;同样的投入时间,实战营的学习价值约为自学的 4.8 倍。 这些其实都很说明了实战营这种模式的真正价值。