메인 콘텐츠로 건너뛰기
랜덤 값은 Curve25519의 Ristretto group 위에 구축된 VRF를 통해 생성되며, RFC 9381에 설명된 Schnorr 유사 서명을 사용해 증명됩니다. proof와 출력은 MagicBlock VRF signer PDA의 서명된 callback으로 rollup에 반환됩니다. 여러분의 프로그램은 caller를 검증한 뒤 게임 로직에서 랜덤니스를 사용합니다. random_u32, random_u8_with_range, random_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

랜덤니스 기능 추가 방법 배우기