🎲 链上随机数 & VRF
从入门到实战 · 30 章
⚡ 真随机 · 可验证 · 防操纵
01
随机数基础
概念
真随机 vs 伪随机 · 链上为什么需要随机数 · NFT铸造/游戏/抽奖场景
02
链上随机数的挑战
安全
确定性环境 · 区块哈希局限 · 矿工/验证者操纵风险
03
区块哈希作为随机源
原理
blockhash() 原理 · 安全风险 · 为什么不能单独依赖
04
Commit-Reveal 方案
经典
两阶段提交 · Commit & Reveal · 优缺点分析
05
Commit-Reveal 实战
Solidity
keccak256 承诺 · 防止抢跑攻击 · 完整代码
06
RANDAO 方案
去中心化
RANDAO 工作原理 · 参与者贡献 · 聚合生成
07
RANDAO 激励机制
经济
奖励与惩罚 · 防止不揭示或恶意行为
08
RANDAO 的局限性
偏斜攻击
最后一个参与者偏斜 · VDF 解决方案
09
VRF 概念
可验证
VRF 定义 · 与哈希区别 · 三大特性
10
VRF 密码学原理
椭圆曲线
椭圆曲线配对 · BLS 签名 · 生成与验证
11
Chainlink VRF 介绍
预言机
Chainlink VRF 是什么 · 信任模型 · 为什么选择
12
VRF v1 vs v2
版本
差异 · v2 改进:订阅模式、更低成本、灵活配置
13
VRF 订阅管理
操作
创建订阅 · 添加消费者 · LINK 充值
14
VRF 请求流程
回调
请求随机数 · 等待回调 · 接收并处理
15
VRF Solidity 集成 (上)
配置
导入接口 · keyHash, fee, callbackGasLimit
16
VRF Solidity 集成 (下)
合约
完整示例 · 处理随机数 · 防止重复请求
17
VRF vs Commit-Reveal
对比
安全性 · 成本 · 适用场景分析
18
VRF 在 NFT 铸造
应用
随机稀有度 · Token ID · 公平铸造
19
VRF 在链上游戏
应用
随机地图 · 命中率 · 掉落物品
20
VRF 在 DAO 治理
应用
随机选择提案 · 分配权重 · 防女巫
21
VRF 在 DeFi
应用
随机清算 · 分配收益 · 防 MEV
22
VRF 安全最佳实践
安全
多随机源 · gas 限制 · 回调失败处理
23
VRF 成本优化
经济
批量请求 · 订阅模式 · 选择 keyHash
24
VRF 测试与模拟
Hardhat
本地测试 · 模拟 Chainlink 节点 · 测试用例
25
VRF 前端集成
ethers.js
调用合约 · 监听事件 · 展示随机结果
26
VRF 跨链应用
Layer2
L2 随机数 · 跨链消息传递 · 同步
27
VRF 未来发展
zkVRF
零知识证明 VRF · 更低验证成本
28
VRF 常见陷阱
避坑
随机数重用 · 未验证来源 · gas 估算错误
29
实战:VRF 抽奖系统
全栈
合约 + 前端完整实现 · 链上抽奖
30
课程总结与展望
结业
核心回顾 · 学习资源 · 未来路径