前天,我刚发布文章宣布 启动第二期 AI + Web3 实战营,昨天就正式开营了。
第一个晚上,我主要让 AI 和我一起梳理了「BlockLever」最核心的机制设计,包括做多和做空 ETH 的实现逻辑和资金隔离方案。下面,是我让 AI 根据这第一节的内容所生成的部分核心的研发日志,特此分享出来。
项目概述
BlockLever 是一个创新的链上杠杆借贷协议,定位于轻量化的 Perp DEX。与传统 Perp 协议不同,我们不自建流动性池,而是巧妙地聚合现有的成熟协议:
- 借贷层:Venus Protocol(BNB Chain 最大借贷协议)
- 交易层:PancakeSwap(最佳流动性)
- 杠杆实现:闪电贷(Flash Loan)
核心特点:
- 🎯 统一使用 USDT/USDC 作为保证金
- ⚡ 支持 2-5x 杠杆,低倍数更安全
- 🔄 前端 Perp 交互体验,后端现货杠杆
- 🪶 无需自建流动性,极致轻量化
今天的核心工作
一、杠杆机制设计
1.1 做多 ETH 的实现逻辑
我们通过闪电贷 + 抵押目标资产的方式实现杠杆:
用户操作:投入 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 多头
关键创新点:
- ✅ 抵押目标资产(ETH),而非稳定币
- ✅ ETH 在 Venus 的抵押率达 80%,支持更高杠杆
- ✅ 一次交易完成开仓,Gas 友好
1.2 做空 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 空头
1.3 清算保护机制
做多 ETH(2x 杠杆) :
- 清算价格:开仓价下跌 41%
- 示例:2000 USDT 开仓 → 1176 USDT 清算
做空 ETH(2x 杠杆) :
- 清算价格:开仓价上涨 79%
- 示例:2000 USDT 开仓 → 3587 USDT 清算
对比传统 Perp:
- GMX/Gains: 支持 50-150x 高杠杆,但清算风险极高
- BlockLever: 2-5x 低杠杆,清算空间更大,适合稳健交易者
二、Venus 抵押品限制问题
2.1 问题发现
在设计做空流程时,我们发现了一个关键限制:
Venus 不支持 USDT/USDC 作为抵押品!
| 稳定币 | 可抵押 | 可借出 | 影响 |
|---|---|---|---|
| USDT | ❌ | ✅ | 做空受影响 |
| USDC | ❌ | ✅ | 做空受影响 |
| DAI | ✅ | ✅ | 完全支持 |
影响分析:
- ✅ 做多不受影响:抵押 ETH,借 USDT(USDT 可被借出)
- ❌ 做空受影响:需要抵押稳定币,但 USDT/USDC 不支持
2.2 解决方案:透明转换层
我们设计了一个用户无感知的稳定币转换机制:
前端显示:用户使用 USDT 作为保证金 ✅
后台执行:
开仓时:USDT → DAI(PancakeSwap)
Venus 抵押:DAI
平仓时:DAI → USDT(返还给用户)
用户体验:完全感知不到 DAI 的存在
成本分析:
- 转换损耗:每次开平仓约 0.7%
- 做空总成本:2.62%/月(含转换 + 利息 + Gas)
- 做多总成本:1.84%/月(无需转换)
技术实现:
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);
}
}
三、架构核心决策:资金隔离方案
这是今天最重要的架构决策!
3.1 问题:谁是 Venus 的借贷方?
方案一:协议合约统一借贷
所有用户 → BlockLever 协议合约 → Venus(单一账户)
方案二:每个用户独立借贷
用户 A → UserProxy A → Venus(账户 A)
用户 B → UserProxy B → Venus(账户 B)
用户 C → UserProxy C → Venus(账户 C)
3.2 方案一的致命缺陷
假设两个用户:
用户 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 无辜被清算!❌❌❌
这是绝对不能接受的!
3.3 最终方案:UserProxy 模式
我们采用 Instadapp DSA 同款的架构设计:
┌─────────────────────────────────────┐
│ 用户交互层 │
│ 用户 → BlockLeverProtocol (主入口) │
└──────────────┬──────────────────────┘
↓
┌─────────────────────────────────────┐
│ 代理层(资金隔离) │
│ BlockLeverFactory │
│ ├─ UserProxy A (用户 A 专属) │
│ ├─ UserProxy B (用户 B 专属) │
│ └─ UserProxy C (用户 C 专属) │
└──────────────┬──────────────────────┘
↓
┌─────────────────────────────────────┐
│ 外部协议层 │
│ Venus (独立账户) │
│ PancakeSwap │
│ 闪电贷 │
└─────────────────────────────────────┘
核心优势:
-
完全的风险隔离
- 用户 A 被清算 → 仅影响 UserProxy A
- 用户 B 完全不受影响
- 每个用户只对自己的风险负责
-
Venus 健康因子独立
- Venus 为每个 UserProxy 独立计算
- 清算决策基于个人风险
- 公平、精确
-
会计简单
- Venus 数据 = 用户真实数据
- 无需复杂的内部记账
- 易于审计
-
成本可接受
- 首次开仓:+$0.15(部署 proxy)
- 后续开仓:+$0.03
- 换来完全的资金安全
3.4 技术实现:EIP-1167 Minimal Proxy
为了优化 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];
}
}
成本对比:
- 传统部署:~2,000,000 gas ($35)
- EIP-1167:~50,000 gas ($0.90)
- 节省:97.5% 🎉
核心数据总结
成本分析(持仓 30 天)
做多 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%)
对比传统 Perp
| 维度 | 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 的差异化定位:
- ✅ 更安全的清算空间
- ✅ 更低的开发和运营成本
- ✅ 无需启动流动性
- ✅ 适合中长期持仓(<30 天)
技术亮点
1. 闪电贷实现杠杆
传统杠杆需要多次借贷循环,我们通过闪电贷一次完成:
传统方式(4-5 笔交易):
存 100 USDT → 借 75 USDT → 买 ETH → 存 ETH → 借 60 USDT → ...
Gas 成本:~$5-8
闪电贷方式(1 笔交易):
闪电贷 100 USDT → 买 ETH → 抵押 → 借 USDT → 还闪电贷
Gas 成本:~$2-3
效率提升:60%+
2. 透明的稳定币转换
用户无需关心 Venus 的限制,协议自动处理:
// 前端代码
openShort({
collateral: "USDT", // 用户只需选择 USDT
amount: 100,
leverage: 2
})
// 后端自动处理
if (collateral === "USDT") {
// 自动转换为 DAI
// 用户完全无感知
}
3. 资金完全隔离
每个用户拥有独立的智能合约账户:
用户 A 的资产 → UserProxy A (0x123...) → Venus 账户 A
用户 B 的资产 → UserProxy B (0x456...) → Venus 账户 B
独立清算,互不影响
最后小结
这次开营,我除了让 AI 最后帮我生成了这份研发日志,还生成了另外两份详细的文档:
- BlockLever 杠杆机制详细设计
- BlockLever 架构决策:借贷方案设计
另外,为了让这次实战营的童学们(包括后续陆续加入的)学习每一节视频时,能更方便地查看文档和代码,我会将每一节视频都创建一个单独的 github 分支。
在前一篇文章我还提过,实战营的模式能把学习效率提升到 60%~70% ;能把 学习时间压缩 5–6 倍,成本降低近 85% ;同样的投入时间,实战营的学习价值约为自学的 4.8 倍。 这些其实都很说明了实战营这种模式的真正价值。
最后,再提醒一下,目前实战营的价格依然为 399 刀,当达成第一个里程碑的时候就会涨价到 449 刀。而对于第一期学员则享受 299 刀的优惠价。