입증된 공정성이란 무엇이며 어떻게 작동하나요?

아래의 입증된 공정한 계산기를 사용해 결과를 검증하고, Cloudbet 오리지널 게임의 정직한 배당률을 확인하세요.
Above are two provably fair tools: a Game Verification Tool — paste your Server Seed, Client Seed, and Nonce from any round to reconstruct and confirm the outcome — and a Server Seed Verification Tool — verify that a revealed server seed matches the hash Cloudbet published before you played.

Cloudbet Originals에 베팅할 때, 모든 결과는 여러분이 직접 검증할 수 있습니다. 추측도, 속임수도 없습니다 — 오직 직접 확인 가능한 순수한 무작위성뿐입니다.

"입증된 공정성"이란 무엇인가요?

입증된 공정성(Provably Fair)은 온라인 카지노에서 모든 게임 결과가 정직하며 플레이어가 독립적으로 검증할 수 있도록 보장하는 시스템입니다. 그저 카지노를 믿는 것이 아니라, 결과가 플레이 중에 조작되거나 변경되지 않았다는 수학적 증거를 직접 얻을 수 있습니다.

Cloudbet 입증된 공정성의 강점:

  1. Cloudbet Originals는 최신 입증된 공정성 프로토콜로 운영되므로, 모든 결과는 조작이 불가능하고 독립적으로 검증 가능하며 수학적으로 공정합니다.
  2. 라운드가 끝나고 시드가 공개되면, 누구나 그 결과가 정직하게 생성되었다는 것을 수학적으로 확실하게 검증할 수 있습니다.
  3. 매 라운드의 설계도를 미리 받는 것과 같습니다 — 숨겨진 속임수도, 게임 이후의 변명도 없습니다.

입증된 공정성을 갖추려면

입증된 공정성이 되려면 두 가지를 증명해야 합니다.

  1. 모든 게임이 진정으로 무작위적이고 조작이 불가능한 숫자 시퀀스에 접근할 수 있어야 합니다 — 이 페이지에서 다루는 부분입니다.
  2. 그 무작위 시퀀스가 고정되고 투명한 방식으로 게임 결과를 결정해야 합니다 — 같은 숫자가 주어지면 항상 같은 결과가 나와야 합니다. 이 부분은 게임마다 다르며, Mines를 비롯한 다른 Originals에서 어떻게 작동하는지 확인해 보세요.

진정한 무작위성을 보장하기 위해, 플레이어와 Cloudbet 양쪽 모두가 숫자 생성에 기여합니다 — 따라서 어느 한쪽도 혼자서 결과를 통제할 수 없으며, Cloudbet은 사후에 자신의 입력값을 바꾸지 않았다는 것을 증명해야 합니다.

주요 용어

  1. 비트(Bit): 디지털 정보의 기본 단위로, "1" 또는 "0"입니다. 비트의 문자열은 2진수로 숫자를 표현합니다.
  2. 바이트(Byte): 8비트로, 최대 256개의 값을 나타낼 수 있습니다. 저희 시드는 32바이트(256비트) 숫자를 사용합니다.
  3. 시드(Seed): 난수 생성기의 시작 입력값입니다. 같은 시드는 항상 같은 결과를 만들어냅니다.
  4. 서버 시드(Server seed): Cloudbet의 비밀 코드로, 플레이 전에 생성되는 32바이트 암호학적 난수 문자열이며, 고정된 뒤 플레이 후 공개됩니다.
  5. 클라이언트 시드(Client seed): 플레이어의 코드로, 직접 설정하거나 브라우저가 생성하도록 할 수 있습니다(최대 255자).
  6. 논스(Nonce): 같은 시드 쌍으로 플레이할 때마다 증가하는 라운드 카운터로, 모든 라운드가 고유하도록 보장합니다.
  7. 해시 / 커밋먼트(Hash / Commitment): 플레이 전에 공유되는 서버 시드의 안전한 지문입니다. 되돌릴 수 없어 아무도 이를 통해 거꾸로 시드를 추측할 수 없지만, 시드가 공개된 후 직접 해시를 계산해 보면 동일한 커밋먼트가 나와야 합니다.
  8. 라운드 시그니처(Round Signature): 서버 시드, 클라이언트 시드, 논스를 결합해 해시한 것으로, 여러분의 라운드 결과를 결정하는 실제 입력값입니다.
  9. SHA3-256: 커밋먼트와 라운드 시그니처를 생성하는 데 사용되는 해싱 알고리즘입니다. 같은 입력은 항상 같은 고정 길이 출력을 만들어내며, 이 과정은 되돌릴 수 없습니다.
  10. SHAKE256: 라운드 시그니처를 게임 결과를 만드는 무작위 숫자 스트림으로 바꾸는 유연한 SHA-3 알고리즘입니다 — 매번 같은 입력에 같은 출력을 내놓기 때문에 검증이 가능합니다.
  11. 모듈로(Modulo): 한 숫자를 다른 숫자로 나눈 나머지입니다(예: 16 % 5 = 1) — 무작위 숫자를 정해진 결과 집합 중 하나로 변환하는 데 사용됩니다.
  12. 시드 재설정(Rotate seeds): 새로운 무작위 쌍을 위해 두 시드를 모두 새로고침하는 것입니다.

게임 준비 과정

매 라운드가 시작되기 전에 서버 시드와 클라이언트 시드, 두 개의 숫자가 생성됩니다.

Cloudbet의 게임 서버는 Node.js의 암호학적 randomBytes 함수를 사용해 서버 시드를 생성합니다 — 32바이트(256비트) 숫자로, 사실상 안전한 디지털 동전 던지기를 256번 반복하는 것과 같습니다. 시드 쌍이 교체될 때까지 비밀로 유지됩니다. 이후에 바뀌지 않는다는 것을 증명하기 위해, 서버는 즉시(SHA3-256을 사용해) 이를 해시해 커밋먼트를 만들며, 이는 플레이 전에 여러분에게 공유됩니다 — 따라서 시드가 공개된 후 직접 해시를 계산해 여전히 일치하는지 확인할 수 있습니다.

클라이언트 시드는 기본적으로 여러분의 브라우저가 생성하지만, 직접 설정할 수도 있습니다.

Cloudbet의 증명 가능한 공정성 시스템을 설명하는 다이어그램. 서버 시드(Server Seed)는 SHA3-256으로 해시되어 플레이 전에 표시되는 커밋먼트(Commitment)가 되고, 클라이언트 시드(Client Seed)는 플레이어의 브라우저에서 생성됩니다.

게임 진행 중

여러분의 서버 시드, 클라이언트 시드, 논스는 하나로 합쳐져 SHA3-256으로 해시되어 단일 라운드 시그니처가 됩니다 — 두 사람이 각자 이름의 절반씩을 비밀리에 제공해, 어느 쪽도 전체 결과를 미리 알 수 없는 것과 비슷합니다.

Cloudbet의 증명 가능한 공정성 시스템이 서버 시드, 클라이언트 시드, 논스(Nonce)를 결합해 SHA3-256으로 하나의 라운드 시그니처(Round Signature)로 해시하는 과정을 보여주는 다이어그램.

그 라운드 시그니처는 이후 SHAKE256에 입력되어, 게임 결과를 결정하는 무작위 숫자 스트림을 생성합니다. SHAKE256은 같은 입력에 항상 같은 출력을 내놓기 때문에, 공개된 시드와 논스를 가진 사람이라면 누구나 정확한 결과를 재현할 수 있습니다 — 이것이 바로 검증을 가능하게 하는 핵심입니다. 이 무작위 숫자 스트림을 실제 게임 결과(지뢰가 어디에 있는지, 주사위가 어떤 값을 보여주는지 등)로 변환하는 방식은 게임마다 다릅니다 — Mines를 비롯한 다른 Originals에서 어떻게 작동하는지 확인해 보세요.

라운드 시그니처가 SHAKE256에 입력되어 모든 증명 가능하게 공정한 게임 결과의 기반이 되는 난수 스트림을 생성하는 과정을 보여주는 다이어그램.

공정한 게임 결과는 거부 샘플링(rejection sampling)에도 의존합니다. 이는 무작위로 생성된 숫자가 특정 결과를 불균등한 나눗셈으로 인해 편향되게 선택하지 않고, 모든 가능한 결과 중에서 진정으로 동등한 확률로 선택되도록 보장하는 방법입니다.

거부 샘플링의 자세한 예시로, 10면체 주사위를 굴리는 경우를 짧게 설명해 보겠습니다. 여기서는 가능한 결과가 10가지이므로 P는 10입니다.

일반적으로 10면체 주사위를 굴리는 것은 무작위로 숫자 "X"를 생성한 다음 X 모듈로 10을 계산하는 방식으로 이루어집니다. 이는 주사위 굴리기와 마찬가지로 10가지 가능한 결과를 갖기 때문입니다. 하지만 거부 샘플링 없이 이렇게 하면 낮은 결과값에 부당하게 유리해집니다. X가 무작위 4비트 숫자라고 가정해 봅시다. 그러면 2⁴=16가지 값(0에서 15)이 가능합니다. 이때 X 모듈로 10(X % 10)의 모든 가능한 결과는 다음과 같습니다.

  1. X가 0에서 9 사이인 경우: 0 … 9
  2. X가 10에서 15 사이인 경우: 0 … 5

이를 시각화하면 다음과 같습니다.

증명 가능한 공정성 시스템에 왜 기각 샘플링(rejection sampling)이 필요한지 보여주는 표. 이 과정이 없으면 주사위 결과가 고르지 않게 편향되어 나타납니다.

주사위 결과 0에서 5까지는 각각 서로 다른 두 개의 X값을 통해 나올 수 있는 반면, 결과 6-9는 오직 하나의 X값을 통해서만 나올 수 있습니다. 즉 주사위 결과 0에서 5가 나올 확률이 6-9보다 두 배 높다는 뜻이며, 이는 공정하지 않습니다.

증명 가능하게 공정한 난수 생성기가 기각 샘플링을 생략할 경우 과도하게 나타나는 특정 주사위 결과를 강조한 표.

이는 16이 10으로 나누어떨어지지 않기 때문에 발생합니다. 그래서 거부 샘플링에서는 10으로 정확히 나누어떨어지는 가장 큰 숫자를 찾습니다. 4비트에서 X가 가질 수 있는 가장 큰 값은 15이고, 이 값의 범위 내에서 10으로 나누어떨어지는 가장 큰 배수는 10입니다. 따라서 10 이상으로 생성된 모든 무작위 숫자는 거부됩니다. 이렇게 하면 X의 가능한 값은 오직 0 … 9만 남게 됩니다. 참고: 숫자가 거부되면 새로운 숫자가 다시 추출됩니다.

기각 샘플링이 Cloudbet의 증명 가능한 공정성 시스템을 편향 없이 만들어, 모든 주사위 결과에 동일한 확률을 부여하는 방식을 보여주는 표.

거부 단계를 거친 후, X를 P로 나눈 나머지를 계산해 0에서 P 사이의 숫자를 얻습니다. 이 숫자가 1/P의 확률을 가진 결과 중 어느 것을 선택할지 결정합니다.

게임 결과를 검증하는 방법

  1. 플레이하기 전에 커밋먼트와 클라이언트 시드를 기록해 두세요.
  2. 라운드가 끝난 후, 시드를 교체해 사용된 서버 시드가 공개되도록 하세요.
  3. 공개된 서버 시드를 SHA3-256으로 해시해 보세요 — 저장해 둔 커밋먼트와 일치해야 합니다. 이는 게임 도중 시드가 변경되지 않았음을 확인해 줍니다.
  4. 서버 시드, 클라이언트 시드, 논스를 아래의 검증 계산기에 붙여넣으세요 — 처음부터 결과를 재구성해 줍니다.
  5. 이를 실제 게임에서 본 결과와 비교하세요. 일치한다면 라운드가 공정했다는 확인이며, 일치하지 않는다면 조작의 신호이지만(Cloudbet에서는 그런 일이 일어나지 않습니다).

FAQ: 입증된 공정성 관련 질문과 답변

1. 왜 시드값이 이렇게 길고 무작위처럼 보이나요?

무작위성이 공정성의 핵심이기 때문입니다. 긴 문자열은 Cloudbet과 플레이어 모두가 결과를 예측하거나 조작하는 것을 방지합니다. 엔트로피가 높을수록 신뢰도도 높아집니다.

2. 클라이언트 시드를 바꿀 수 있나요?

네. 게임 내 공정성 설정에서 언제든지 자신만의 클라이언트 시드를 입력할 수 있습니다. 원하는 만큼 자주 교체할 수 있습니다.

3. 서버 시드가 원래의 해시와 일치하지 않으면 어떻게 되나요?

무언가 잘못된 것입니다. 해싱의 핵심 목적은 게임이 시작되기 전에 시드가 고정되었음을 증명하는 것입니다. 불일치는 조작의 신호가 되겠지만, Cloudbet에서는 그런 일이 일어나지 않습니다.

4. 이 과정을 이해하려면 암호학을 알아야 하나요?

아닙니다. 복잡한 계산은 도구가 전부 처리해 줍니다. 그저 복사, 붙여넣기하고 검증하기만 하면 됩니다.

5. 해시란 정확히 무엇인가요?

디지털 서명이라고 생각하시면 됩니다. 암호학적 알고리즘으로 서버 시드를 뒤섞어 생성됩니다. 누군가 나중에 시드를 변경하려 하면 해시값이 달라지므로, 부정행위를 즉시 알아챌 수 있습니다.

6. 제3자 도구로도 결과를 검증할 수 있나요?

네. Cloudbet의 시스템은 독립적인 검증 도구와 호환되므로, 저희 플랫폼 밖에서도 결과를 이중으로 확인할 수 있습니다.

7. 어차피 게임이 재미있으면 되는 거 아닌가요, 왜 이게 중요하죠?

공정성은 부가 기능이 아니라 필수 조건이기 때문입니다. 암호화폐로 베팅할 때는 완전한 통제권과 추측이 필요 없는 환경을 누릴 자격이 있습니다. 입증된 공정성은 이를 기본값으로 만들어 줍니다.

입증된 공정성 게임 설명:

  1. 입증된 공정성 - Mines
  2. 입증된 공정성 - Pump
  3. 입증된 공정성 - Plinko
  4. 입증된 공정성 - Dice
  5. 입증된 공정성 - Dice: Golden Ticket
  6. 입증된 공정성 - Limbo
  7. 입증된 공정성 - Roulette