随机数通过构建在 Curve25519 的 Ristretto group 之上的 VRF 生成,并使用 RFC 9381 所描述的类 Schnorr 签名进行证明。proof 和输出会通过来自 MagicBlock VRF signer PDA 的已签名 callback 返回给 rollup。你的程序会先验证 caller,然后在游戏逻辑中使用该随机数。 像Documentation Index
Fetch the complete documentation index at: https://docs.magicblock.gg/llms.txt
Use this file to discover all available pages before exploring further.
random_u32、random_u8_with_range 和 random_bool 这样的辅助工具,可以轻松将 [u8; 32] 输出转换为可用值。由于请求和消费步骤都发生在 ephemeral execution window 内,用户能够获得具备可验证公平性的实时结果,而无需依赖外部服务器。
流程

- 你的程序会通过 CPI 调用 MagicBlock VRF program,并将一个请求追加到队列中。
- 一旦你的随机数请求进入队列,某个预言机就会提取该请求并执行随机数计算。
- 完成后,它会将结果和 proof 返回给 MagicBlock VRF program。VRF program 验证 proof 后,会通过预定义函数回调你的程序,从而“消费”该随机数。
MagicBlock 的 VRF Program 是开源且经过审计的。
Audit
阅读完整审计报告
Quickstart
学习如何添加随机数能力

