Aviator 알고리즘 해설: 완벽 기술 가이드
Aviator의 가장 중요한 특징 중 하나는 프로버블리 페어(provably fair) 알고리즘입니다. 이는 어떤 라운드의 크래시 포인트든 공정하게 결정되었고 조작되지 않았음을 누구나 독립적으로 검증할 수 있게 해 주는 암호학적 시스템입니다. 이 가이드에서는 작동 방식, 그 배경이 되는 수학, 그리고 직접 결과를 검증하는 방법을 설명합니다.
"프로버블리 페어"란 무엇인가요?
기존 카지노 게임에서는 운영사가 결과를 조작하지 않았다고 믿어야 합니다. 프로버블리 페어 시스템은 암호학적 해시 함수를 사용하여, 일단 확정된 결과를 사후에 바꾸는 것이 수학적으로 불가능하도록 만들어 이러한 신뢰 요구를 없앱니다.
핵심 원리는 다음과 같습니다.
- 라운드 전에 서버가 해시를 공개하여 결과를 확정(commit)합니다
- 라운드 후에 서버가 원상(해시를 생성하는 데 사용된 시드)을 공개합니다
- 확정된 해시가 공개된 시드와 일치하는지 직접 검증할 수 있습니다
- 일치한다면 결과는 조작되지 않은 것입니다
SHA-512 해시 함수
SHA-512(Secure Hash Algorithm 512-bit)는 프로버블리 페어 게임에 필요한 두 가지 핵심 속성을 지닌 암호학적 해시 함수입니다.
속성 1: 결정성
같은 입력은 항상 같은 출력을 만듭니다.
- 입력: "hello" → 출력:
9b71d224bd62f3785d96d46ad3ea3d73319bfbc2890caadae2dff72519673ca72323c3d99ba5c11d7c7acc6e14b8c5da0c4663475c2e5c3adef46f73bcdec043
속성 2: 원상 저항성
해시 출력값이 주어져도 이로부터 입력을 역으로 알아내는 것은 계산상 불가능합니다. 전 세계의 모든 컴퓨팅 능력을 동원하더라도 주어진 SHA-512 해시의 입력을 찾는 데에는 우주의 나이보다 더 긴 시간이 걸립니다.
즉, 서버가 라운드 전에 해시를 공개했다면 나중에 기반 시드를 바꾸는 순간 완전히 다른 해시가 만들어지므로, 시드를 바꿀 수 없고 바꾸면 즉시 알아챌 수 있습니다.
입력값: 서버 시드와 세 개의 클라이언트 시드
Aviator의 크래시 포인트는 네 가지 입력값으로 생성됩니다.
서버 시드
라운드 전에 서버가 생성하는 무작위 문자열입니다. 서버는 베팅을 받기 전에 이 시드의 SHA-256 해시를 공개하고, 라운드가 끝나면 시드 자체를 공개합니다.
클라이언트 시드
해당 라운드에서 가장 먼저 베팅한 세 명의 플레이어의 클라이언트 시드가 수집되어 라운드 상세 정보에 표시됩니다. 이 값들은 서로 독립된 플레이어에게서 나오므로 운영사는 결합된 입력값을 미리 알 수 없습니다.
입력값 결합
서버 시드와 세 개의 클라이언트 시드를 이어 붙여 SHA-512로 해시합니다. 그 결과로 나오는 128자리 16진수 문자열이 크래시 포인트를 결정합니다.
크래시 포인트는 어떻게 계산되나요?
Spribe는 SHA-512 해시를 배수로 바꾸는 정확한 산식을 공개하지 않습니다. 아래 설명은 Bustabit이 대중화한 공개 참조 구조(논스를 사용하는 HMAC-SHA256 라운드 해시)를 사용하여, 해시가 어떻게 P(crash ≥ x) = 0.97/x 분포를 따르는 배수가 되는지 보여 줍니다. Aviator의 SHA-512 파이프라인도 같은 원리를 따릅니다. 즉, 해시의 앞쪽 비트를 가져와 배수로 대응시킨 뒤 하우스 엣지를 적용합니다.
참조 구조에서 크래시 포인트는 결정론적 과정을 통해 도출됩니다.
1단계: 라운드 해시 생성
round_hash = HMAC-SHA256(server_seed, client_seed + ":" + nonce)그러면 다음과 같은 64자리 16진수 문자열이 만들어집니다.
a7b3c8d2e9f14056789012345678901234567890abcdef1234567890abcdef122단계: 해시에서 숫자 추출
해시의 처음 8자(32비트)를 가져와 16진수에서 10진수로 변환합니다.
h = parseInt(hash.substring(0, 8), 16)
// Example: "a7b3c8d2" → 2,813,000,914h가 가질 수 있는 최댓값은 2^32 − 1 = 4,294,967,295입니다.
3단계: 크래시 포인트 공식 적용
crash_point = floor((1 − houseEdge) × 2^32 / (2^32 − h)) / 100여기서 houseEdge = 0.03(3%)입니다.
간단히 하면 다음과 같습니다.
crash_point = floor(0.97 × 4,294,967,296 / (4,294,967,296 − h)) / 100특수 사례: 즉시 크래시
하우스 엣지를 직접 반영하는 별도의 조건이 있습니다. 다음 조건이 성립하면
h mod 33 === 0...공식 결과와 관계없이 라운드는 1.00×에서 즉시 크래시합니다. 이는 1/33 ≈ 3.03%의 확률로 발생하며 하우스 엣지를 구현합니다.
구체적인 예시로 살펴보기
어떤 라운드 해시의 처음 16진수 8자가 4f2a1b3c라고 가정해 보겠습니다.
h = 0x4f2a1b3c = 1,328,284,988
2^32 = 4,294,967,296확인: 1,328,284,988 mod 33 === 0 인가? 아니요 → 공식으로 진행합니다.
crash_point = floor(0.97 × 4,294,967,296 / (4,294,967,296 − 1,328,284,988)) / 100
= floor(4,166,117,577 / 2,966,682,308) / 100
= floor(1.4043...) / 100
= 140 / 100
= 1.40×이 라운드의 크래시 포인트는 1.40×가 됩니다.
이 공식이 올바른 분포를 만드는 이유
P(crash ≥ x) = 0.97 / x라는 공식은 이 구조에서 수학적으로 도출됩니다.
크래시 포인트가 x 이상이 되려면 해시에서 도출된 값 h가 다음을 만족해야 합니다.
0.97 × 2^32 / (2^32 − h) ≥ x
→ 2^32 − h ≤ 0.97 × 2^32 / x
→ h ≥ 2^32 × (1 − 0.97/x)균등한 무작위 h가 이를 만족할 확률은 다음과 같습니다.
P(h ≥ 2^32 × (1 − 0.97/x)) = 1 − (1 − 0.97/x) = 0.97/x따라서 정확히 P(crash ≥ x) = 0.97/x가 됩니다. 하우스 엣지 공식이 크래시 포인트 도출 과정에 수학적으로 내장되어 있는 것입니다.
직접 결과를 검증하는 방법
1단계: 라운드 데이터 기록
어떤 라운드든 끝난 뒤 다음을 기록해 두세요.
- 서버 시드 해시(라운드 전에 표시됨)
- 서버 시드(라운드 후에 공개됨)
- 처음 세 명의 베터의 클라이언트 시드
2단계: 해시 확정값 검증
SHA-256(server_seed)를 계산하여 사전에 확정된 해시와 일치하는지 확인합니다. 일치하면 서버 시드는 확정 이후 바뀌지 않은 것입니다.
3단계: 크래시 포인트 재계산
위의 공식을 사용하여 시드로부터 크래시 포인트를 다시 계산합니다. 표시된 크래시 포인트와 일치하면 해당 라운드는 공정했던 것입니다.
AviatorStats 프로버블리 페어 검증기 사용하기
AviatorStats.com의 프로버블리 페어 검증기(Provably Fair Checker) 도구는 이 전체 과정을 자동으로 처리합니다.
- 공개된 서버 시드와 라운드 상세 정보에 표시된 세 개의 클라이언트 시드를 입력합니다
- 도구가 SHA-512 결합값을 계산하고 h를 추출한 뒤 크래시 공식을 적용하여 예상 크래시 포인트를 표시합니다
- 게임에 표시된 결과와 비교합니다. 정확히 일치해야 합니다
이를 통해 직접 계산하지 않고도 라운드의 공정성에 대해 암호학적 확신을 얻을 수 있습니다.
프로버블리 페어가 보장하는 것과 보장하지 않는 것
보장하는 것:
- 크래시 포인트가 확정 이후 변경되지 않았음
- 결과가 시드에 의해 수학적으로 결정됨
- 하우스 엣지가 명시된 대로 정확히 3%임
- 누구나 과거의 어떤 라운드든 독립적으로 검증할 수 있음
보장하지 않는 것:
- 특정 라운드에서 승리하는 것
- 결과의 연속이 개별 플레이어에게 "공정"하다는 것
- 전략으로 내재된 하우스 엣지를 극복할 수 있다는 것
- 과거 결과가 미래 결과를 예측한다는 것(예측하지 못합니다)
프로버블리 페어 시스템은 투명성을 위한 장치이지 승리를 위한 도구가 아닙니다. 게임이 공지된 대로 운영되고 있음을 보장해 주며, 이는 그 자체로 가치가 있지만 장기 기대값의 수학과는 별개의 문제입니다.
Aviator 분석 도구 이용하기
저희의 live statistics, distribution analysis, trend charts, provably fair verifier로 Aviator 데이터를 분석해 보세요. 모든 도구는 무료이며 가입이 필요 없습니다.
관련 가이드
게임 가이드:
전략 및 분석:
사기 경고:
플랫폼 가이드:
면책 조항: 이 기술적 설명은 교육 목적으로 제공됩니다. 알고리즘을 이해한다고 해서 결과를 예측하는 데 어떠한 이점도 생기지 않습니다. Aviator의 결과는 매 라운드 전에 암호학적으로 예측할 수 없습니다. 항상 책임감 있게 게임하세요.