러스트 사이트의 프로버블리 페어 원리와 롤 검증하는 법
서버 시드 해시, 클라이언트 시드, 논스, HMAC-SHA256을 쉬운 말로 풀고, 직접 재현할 수 있는 계산 예시와 러스트 스킨 사이트의 어떤 롤이든 확인하는 단계별 루틴을 알려 드립니다.
순위에 올린 10곳 모두 게임을 프로버블리 페어로 표기합니다. 이 표현에는 정확한 의미가 있고, 그 뒤의 검증은 무료 해시 도구나 몇 줄의 코드로 직접 돌려볼 수 있습니다. 실제로 돌려 보는 플레이어는 거의 없습니다. 이 가이드는 이 시스템이 무엇을 증명하는지, 무엇을 빼놓는지, 롤을 처음부터 끝까지 검증하는 방법을 설명합니다.
요약하면 이렇습니다. 베팅하기 전에 사이트가 비밀 값을 확정하고 그 지문을 보여 줍니다. 나는 내 입력값을 더합니다. 베팅이 끝난 뒤 사이트가 비밀을 공개하고, 지문이 일치하는지, 모든 결과가 입력값에서 나왔는지 확인할 수 있습니다. 숫자가 맞아떨어지면 사이트는 내 베팅을 본 뒤에 결과를 바꿀 수 없었던 것입니다.
프로버블리 페어가 해결하는 문제
스킨 사이트에서는 서버가 모든 결과를 정합니다. 케이스를 열든, 동전을 던지든, 크래시 배수를 기다리든, 내가 보는 것은 들여다볼 수 없는 기계에서 만들어진 숫자의 애니메이션입니다. 어떤 형태의 증명이 없다면 운영사가 내 베팅이 클 때 롤을 몰래 불리하게 밀어 넣지 않는다는 것을 믿는 수밖에 없습니다.
면허를 받은 온라인 카지노는 보통 규제 기관과 난수 생성기에 대한 제3자 감사로 이에 답합니다. 대부분의 스킨 사이트는 대신 암호학적 방식에 의존합니다. 플레이어에게 큰 장점이 하나 있습니다. 감사 기관을 믿을 필요 없이 내 컴퓨터에서 계산을 반복할 수 있다는 것입니다.
이 발상을 커밋먼트 방식이라고 합니다. 사이트가 비밀을 카드에 적어 봉투에 봉하고, 게임이 시작되기 전에 봉투를 내게 건네는 장면을 떠올려 보세요. 사이트는 나중에 들키지 않고 카드를 바꿀 수 없고, 나는 카드를 미리 읽을 수 없습니다.
세 가지 입력값: 서버 시드, 클라이언트 시드, 논스
러스트 사이트의 거의 모든 프로버블리 페어 시스템은 같은 재료를 씁니다. 이름은 사이트마다 조금씩 다르지만 역할은 같습니다.
서버 시드
사이트가 생성하는 긴 무작위 문자열입니다. 아는 사람은 모든 결과를 예측할 수 있으므로 플레이하는 동안은 비밀로 유지됩니다. 대신 보이는 것은 보통 SHA-256으로 만든 해시입니다. 해시는 단방향 지문입니다. 같은 입력은 언제나 같은 64자 출력을 내고, 입력의 한 글자만 바뀌어도 출력이 완전히 달라지며, 해시에서 시드로 거슬러 올라갈 현실적인 방법은 없습니다.
클라이언트 시드
내 쪽에서 오는 문자열입니다. 사이트가 기본값을 만들어 주고, 대부분은 공정성이나 설정 패널에서 수정할 수 있게 해 줍니다. 역할은 사이트가 특별히 나에게 불리한 서버 시드를 고르지 못하게 하는 것입니다. 사이트는 내가 무엇을 입력할지 알기 전에 자신의 시드를 확정했으므로, 둘을 맞춰 조작할 방법이 없었습니다.
논스
0이나 1에서 시작해 같은 시드 쌍에서 베팅할 때마다 하나씩 올라가는 카운터입니다. 서버 시드 하나와 클라이언트 시드 하나를 수백 번의 베팅에 재사용하면서도 매번 새로운 결과를 얻게 해 줍니다.
결과를 확인하고 싶을 때는 사이트에 시드를 교체해 달라고 요청합니다. 사이트는 이전 서버 시드를 평문으로 공개하고, 새 서버 시드의 해시를 보여 주고, 논스를 초기화합니다. 이전 시드로 플레이한 모든 것을 이제 검증할 수 있습니다.
입력값이 결과가 되는 과정
가장 흔한 방식은 HMAC-SHA256입니다. HMAC은 비밀 키와 메시지를 결합해 해시를 만드는 표준 방법입니다. 대부분의 러스트 사이트에서 서버 시드가 키이고, 메시지는 클라이언트 시드와 논스를 이어 붙인 것이며, 흔히 clientseed:nonce처럼 콜론으로 연결합니다. 라운드 번호나 게임 ID를 더하는 사이트도 있으므로, 정확한 공식은 항상 사이트 자체의 공정성 페이지에서 읽으세요.
출력은 64자의 16진수 문자열입니다. 사이트는 그 문자열의 일부를 0과 1 사이의 숫자로 바꿉니다. 일반적인 방법은 처음 16진수 8자(32비트)를 정수로 바꿔 4,294,967,296, 즉 2의 32제곱으로 나눕니다. 그 소수가 게임에 대응됩니다.
- 다이스와 업그레이더: 100을 곱해 0.00에서 99.99까지의 롤을 얻고 목표와 비교합니다.
- 룰렛: 휠의 칸 수를 곱하고 내림해서 칸을 고릅니다.
- 케이스: 케이스의 전체 티켓 수를 곱하므로, 티켓의 1%를 차지하는 스킨은 롤의 1%에서 당첨됩니다.
- 크래시: 하우스 엣지가 들어 있는 공식에 숫자를 넣어 배수로 바꿉니다. 그 공식과 캐시아웃 목표에 갖는 의미는 크래시 전략 가이드에서 설명합니다.
직접 재현할 수 있는 계산 예시
아래 시드는 이 예시를 위해 지어낸 것이므로, 어떤 HMAC-SHA256 계산기로든 저희 계산을 확인할 수 있습니다.
- 서버 시드: example-server-seed-01. SHA-256 해시는 a5275da7ccca3f73으로 시작합니다. 플레이하기 전에 사이트가 보여 줄 해시가 이것입니다.
- 클라이언트 시드: my-own-client-seed. 논스: 1. 따라서 메시지는 my-own-client-seed:1입니다.
- 서버 시드를 키로, 그 메시지를 입력으로 하는 HMAC-SHA256의 결과는 4cdcf221로 시작합니다.
- 16진수 4cdcf221은 10진수로 1,289,548,321입니다. 4,294,967,296으로 나누면 약 0.30025입니다.
- 0~100 다이스 스케일에서는 30.02의 롤입니다. 15칸 룰렛 휠에서는 0.30025에 15를 곱하면 약 4.5이며, 내림하면 4번 칸입니다(첫 칸을 0으로 센 경우).
같은 시드를 논스 2로 돌리면 6486ccbd로 시작하는 완전히 다른 해시가 나오고, 계산하면 약 0.3927입니다. 첫 번째 롤에서는 두 번째 롤에 대해 아무것도 알 수 없습니다. 그 독립성이 핵심입니다. 베팅 기록에서 읽어 낼 패턴은 없습니다. 결과마다 새로운 해시이기 때문입니다.
직접 롤을 검증하는 단계별 방법
처음 전체 확인에는 시간이 좀 걸립니다. 그 뒤로는 복사와 붙여넣기 몇 분이면 됩니다. 결과가 실제로 중요해지기 전에 과정을 익히도록 먼저 소액 잔액으로 해 보세요.
- 베팅하기 전에 공정성 패널을 엽니다. 보통 게임 화면, 푸터, 프로필 설정에서 링크되어 있습니다. 해시된 서버 시드를 휴대폰 메모나 스크린샷처럼 사이트 밖에 저장하세요.
- 내 클라이언트 시드를 설정합니다. 기본값을 직접 입력한 것으로 바꾸세요. 키보드를 아무렇게나 두드리면 됩니다. 기억할 필요는 없습니다.
- 플레이하고, 중요한 베팅을 기록합니다. 베팅마다 표시된 논스를 적어 두거나, 나중에 베팅 기록에서 찾습니다.
- 시드를 교체합니다. 사이트가 이전 서버 시드를 공개합니다. 복사하세요.
- 커밋먼트를 확인합니다. 공개된 서버 시드를 아무 SHA-256 도구에 넣습니다. 출력은 1단계에서 저장한 해시와 글자 하나까지 일치해야 합니다.
- 롤을 다시 계산합니다. 공개된 서버 시드, 내 클라이언트 시드, 논스로 HMAC-SHA256을 계산한 뒤 사이트가 공개한 변환을 적용합니다. PHP에서는 hash_hmac 호출 한 번이고, Python의 hmac 모듈은 두어 줄로 같은 일을 합니다.
- 비교합니다. 계산한 숫자가 내 기록에 남은 결과와 같아야 합니다.
대부분의 사이트는 시드를 붙여 넣는 자체 검증기도 제공합니다. 편리하지만 운영사 자신의 코드로 돌아갑니다. 사이트에 전혀 의존하지 않는 검증을 위해서는 독립된 도구나 직접 만든 스크립트를 적어도 한 번은 쓰세요.
공용 게임은 조금 다르게 작동합니다
다이스, 업그레이더, 솔로 케이스 오픈 같은 싱글 플레이 모드는 개인 시드 쌍으로 돌아갈 수 있습니다. 잭팟, 코인플립, 케이스 배틀, 룰렛 라운드, 크래시처럼 여러 플레이어가 하나의 결과를 공유하는 게임은 한 플레이어의 클라이언트 시드가 모두의 결과를 정하게 할 수 없습니다. 사이트들은 몇 가지 흔한 방식으로 이를 처리합니다.
- 해시 체인. 크래시에서 흔합니다. 사이트가 긴 해시 체인을 미리 생성하는데, 각 라운드의 해시는 다음 라운드 해시의 SHA-256입니다. 첫 라운드가 플레이되기 전에 체인의 마지막 해시를 공개하며, 공개된 라운드마다 그 앞 라운드로 해시가 이어지는지 확인할 수 있습니다. 체인의 모든 결과는 누군가 베팅하기 전에 확정되어 있었습니다.
- 사이트 밖의 공개 시드. 사이트가 자신의 서버 시드를 확정한 뒤, 공개 블록체인의 미래 블록 해시처럼 누구도 미리 알 수 없는 값을 섞습니다. 사이트가 확정했을 때 그 블록은 존재하지 않았으므로, 사이트는 자신의 시드를 거기에 맞춰 조작할 수 없었습니다.
- 라운드별 커밋먼트. 잭팟과 코인플립에서는 라운드가 열릴 때 라운드의 해시된 시드가 나타나고, 끝날 때 평문 시드와 당첨 티켓이 표시됩니다.
검증의 발상은 어느 경우나 같습니다. 라운드 전에 공개되었던 커밋먼트를 찾고, 공개된 값이 그것과 일치하는지 확인한 뒤, 결과를 다시 계산합니다. 공용 팟에서 당첨 티켓이 어떻게 승자가 되는지는 코인플립과 잭팟 확률 가이드를 보세요. 케이스 배틀은 두 방식을 섞은 것으로, 케이스 배틀 해설에서 다룹니다.
프로버블리 페어가 증명하지 못하는 것
검증된 롤이 증명하는 것은 좁은 한 가지입니다. 결과가 내가 베팅하기 전에 사이트가 확정한 입력값에서 나왔다는 것입니다. 유용하지만, 플레이어들은 이 배지가 뒷받침하는 것보다 훨씬 많은 의미를 읽어 내곤 합니다.
- 하우스 엣지에 대해서는 아무것도 말해 주지 않습니다. 엣지가 큰 크래시 게임도 완벽하게 프로버블리 페어일 수 있습니다. 엣지는 난수를 배수나 당첨 확률로 바꾸는 공개된 공식 안에 들어 있습니다. 공정하다는 것은 사이트가 자기 규칙을 따랐다는 뜻이며, 그 규칙은 시간이 지나면 여전히 사이트에 유리합니다.
- 가격을 검증하지 않습니다. 케이스가 스킨을 Steam 커뮤니티 마켓에서 팔리는 값보다 훨씬 높게 표기하면, 롤은 공정해도 케이스는 여전히 가성비가 나쁠 수 있습니다. 아이템 가격이 실제 확률을 슬며시 어떻게 바꾸는지는 업그레이더 가이드에서 보여 드립니다.
- 출금은 다루지 않습니다. 사이트가 흠잡을 데 없는 시드를 운영하면서도 출금을 늦추고, 계정을 동결하고, 약관을 고쳐 쓸 수 있습니다. 그래서 공정성은 저희 평가 방식에서 출금 속도, 신뢰도와 함께 여러 입력값 중 하나일 뿐입니다.
- 누군가 확인해야만 작동합니다. 아무도 비교하지 않는 커밋먼트는 페이지에 적힌 문자열일 뿐입니다.
공정성 페이지의 위험 신호
시드 검증은 사이트를 테스트할 때의 일상적인 단계입니다. 다음은 저희가 의심하게 되는 것들이며, 대략 가벼운 것부터 심각한 것 순입니다.
| 보이는 것 | 의미 | 대처 |
|---|---|---|
| 클라이언트 시드를 바꿀 수 없음 | 사이트가 내 개인 롤의 모든 입력값을 통제함 | 싱글 플레이 모드를 더 조심해서 다룰 것 |
| 검증기 버튼은 있으나 공식이 공개되지 않음 | 사이트 자체 코드로만 결과를 확인할 수 있음 | 큰 금액을 입금하기 전에 고객 지원에 정확한 공식을 요청할 것 |
| 서버 시드 해시가 베팅한 뒤에야 나타남 | 진짜 커밋먼트가 없음 | 게임을 프로버블리 페어로 취급하지 말 것 |
| 이전 서버 시드를 공개할 수 없음 | 검증할 수 있는 것이 없음 | 위와 같음 |
| 공개된 시드의 해시가 저장한 커밋먼트와 다름 | 시드가 바뀌었거나 페이지가 고장 남 | 플레이를 멈추고, 모든 것을 캡처하고, 고객 지원에 연락할 것 |
마지막 줄에 해당한다면 증거를 보관하세요. 저장한 해시, 공개된 시드, 베팅 ID, 각 베팅의 시각입니다. 한 번의 불일치는 표시 버그일 수 있지만, 저희가 사이트를 재점검하게 만드는 바로 그런 신빙성 있는 플레이어 제보입니다.
일반 플레이어를 위한 현실적인 루틴
모든 베팅을 검증할 필요는 없습니다. 가벼운 루틴만으로도 세션을 숙제로 만들지 않고 대부분의 문제를 잡을 수 있습니다.
- 새 사이트에서 플레이를 시작할 때마다 새 클라이언트 시드를 설정하세요.
- 플레이하기 전에 해시된 서버 시드를 캡처하세요.
- 세션이 끝나면 시드를 교체하고 커밋먼트를 확인하세요. SHA-256 계산 한 번이면 됩니다.
- 큰 업그레이더 손실이나 이겼어야 한다고 확신한 배틀처럼 가장 중요했던 결과 한두 개를 다시 계산하세요.
- 가끔은 사이트의 검증기 대신 독립된 도구로 전체 확인을 반복하세요.
깨끗한 검증이란 내가 입는 손실이 공개된 수학이 예측한 만큼이고 그 이상은 아니라는 뜻입니다. 엣지는 모든 롤에 여전히 있습니다. 실용적인 다음 단계는 그 예상 손실 중 오락의 값으로 얼마를 치를지 미리 정하는 것입니다. 책임 있는 도박 페이지에서 간단한 한도와 이를 지키는 데 도움이 되는 도구를 다룹니다.
자주 묻는 질문
프로버블리 페어 사이트도 속일 수 있나요?
확정된 결과를 바꾸면 해시 검증이 실패하므로 바꿀 수 없습니다. 하지만 높은 하우스 엣지를 운영하거나, 케이스의 아이템 가격을 부풀리거나, 출금을 늦출 수는 있습니다. 프로버블리 페어는 롤이 만들어지는 방식만 다루기 때문입니다.
클라이언트 시드를 꼭 바꿔야 하나요?
필수는 아니지만 바꾸는 것이 좋습니다. 서버 시드 해시가 보인 뒤에 내가 고른 클라이언트 시드라면, 사이트가 내 입력을 염두에 두고 자기 시드를 고를 수 없었다는 뜻이 됩니다.
사이트는 왜 플레이하기 전에 서버 시드를 그냥 보여 주지 않나요?
서버 시드와 클라이언트 시드를 모두 아는 사람은 앞으로의 모든 결과를 계산할 수 있습니다. 해시를 쓰면 사이트가 미래의 롤을 드러내지 않고도 자기 시드를 확정할 수 있습니다.
롤을 검증하려면 어떤 도구를 쓰나요?
SHA-256과 HMAC-SHA256 계산기라면 무엇이든 됩니다. 무료 온라인 도구와 PHP, Python, JavaScript의 내장 함수도 포함됩니다. 편의를 위해서는 사이트의 검증기를, 중요한 확인에는 독립된 도구를 쓰세요.
SHA-256은 이 용도로 충분히 안전한가요?
네. 널리 쓰이는 표준이며 비트코인 채굴에도 쓰입니다. 이를 되돌리거나 같은 해시를 내는 두 번째 시드를 찾을 알려진 현실적인 방법은 없습니다.
계속 읽기
관련 가이드
러스트 도박 보너스, 무료 케이스, 프로모 코드의 실제 가치
무료 케이스의 가치는 최상위 아이템이 아니라 평균 드롭이고, 무료 잔액의 가치는 롤오버를 거치고 살아남는 몫입니다. 코드를 입력하기 전에 러스트 사이트의 흔한 보너스에 가격을 매기는 법을 알려 드립니다.
러스트 케이스 배틀 해설: 모드, 확률, 공정한 배틀 고르는 법
케이스 배틀은 안에 든 케이스의 하우스 엣지를 바꾸지 않습니다. 바뀌는 것은 얼마나 크게 이기거나 지느냐입니다. 방식별 작동 원리, 그 뒤의 수학, 참가할 만한 배틀을 가려내는 법을 알려 드립니다.
책임 있는 스킨 도박: 한도, 위험 신호, 도움받을 곳
스킨은 실제 돈의 감각을 쉽게 잃게 만듭니다. 위험 신호, 실제로 지켜지는 한도, 자기 배제와 차단 도구, 오늘 바로 연락할 수 있는 무료 상담 창구를 다룹니다.