メインコンテンツへスキップ
ランダム値は Curve25519 の Ristretto group 上に構築された VRF によって生成され、RFC 9381 に記載された Schnorr ライクな署名で証明されます。proof と出力は、MagicBlock VRF signer PDA からの署名付き callback により rollup へ返されます。あなたのプログラムは caller を検証し、その後ゲームロジックでランダムネスを使用します。 random_u32random_u8_with_rangerandom_bool のような helper utilities により、[u8; 32] の出力を簡単に実用的な値へ変換できます。request と consume の手順は ephemeral execution window 内で行われるため、ユーザーは外部サーバーに依存せず、検証可能な公平性を備えたリアルタイム結果を得られます。

フロー

フローは “Request for randomness” から始まります。
  1. あなたのプログラムは CPI で MagicBlock VRF program を呼び出し、queue に request を追加します。
  2. ランダムネス request が queue に入ると、oracle が request を取り出してランダムネス計算を行います。
  3. 完了すると、結果と proof が MagicBlock VRF program に返されます。proof の検証後、VRF program は事前定義された関数を通じてあなたのプログラムへ callback し、ランダムネスを “consume” します。
MagicBlock の VRF Program はオープンソースで監査済みです。

Audit

監査レポート全文を読む

Quickstart

ランダムネス機能の追加方法を学ぶ