Safe Hold'em - 공정성 검증

Provably Fair 시스템으로 모든 게임 결과를 검증할 수 있습니다

Provably Fair란?

Provably Fair는 블록체인 기술에서 영감을 받은 투명한 게임 검증 시스템입니다. 이 시스템을 통해 게임 결과가 조작되지 않았음을 수학적으로 증명할 수 있습니다.

📨 쉽게 이해하기: "봉인된 봉투" 비유

1. 게임 전: 서버가 봉인된 봉투에 "이번 게임의 카드 순서"를 적어 넣습니다. 그리고 봉투 겉면의 사진(해시)만 보여줍니다.

2. 베팅: 당신은 봉투 안을 볼 수 없으니 결과를 모릅니다. 당신이 설정한 클라이언트 시드도 함께 사용되므로 서버도 결과를 바꿀 수 없습니다.

3. 게임 후: 시드를 교체하면 봉투를 열어 원본을 공개합니다. 봉투의 사진(해시)과 실제 봉투(서버 시드)가 일치하면 조작이 없었음이 증명됩니다!

🔒
사전 약속
게임 전 서버 시드 해시를 미리 공개하여 결과 변경 불가
🎲
공동 생성
서버 + 플레이어 시드로 결과 생성, 양측 조작 불가
사후 검증
게임 후 서버 시드 공개로 누구나 결과 검증 가능
핵심 보장: 카지노도 플레이어도 게임 결과를 예측하거나 조작할 수 없습니다. 모든 게임은 암호학적으로 안전하며, 언제든지 검증할 수 있습니다.

게임 유형 비교

두 가지 홀덤 게임이 제공되며, 각각 다른 규칙과 공정성 검증 방식을 사용합니다.

항목 Safe Hold'em (1인) 6-Max 멀티플레이
게임 종류 Casino Hold'em Texas Hold'em No-Limit
대전 방식 플레이어 vs 딜러 (AI) 플레이어 vs 플레이어 (2~6명)
베팅 라운드 1회 (플랍 후 콜/폴드) 4회 (프리플랍/플랍/턴/리버)
베팅 옵션 Ante + AA사이드, 콜(2x)/폴드 체크/벳/콜/레이즈/폴드/올인
클라이언트 시드 개인별 설정 가능 "default" 고정 (공용)
시드 공개 시점 시드 변경 시 매 핸드 종료 후
수수료 하우스 에지 ~2.16% 팟의 5% 레이크
왜 멀티플레이어는 클라이언트 시드가 "default"로 고정되나요?

멀티플레이어 게임에서는 여러 플레이어가 같은 덱을 공유합니다. 만약 한 플레이어가 클라이언트 시드를 변경하면 다른 모든 플레이어의 카드도 바뀌게 됩니다. 따라서 공용 시드("default")를 사용하고, 대신 모든 플레이어가 게임 시작 전 덱 해시를 확인할 수 있어 공정성이 보장됩니다.

작동 원리 (Step by Step)

  1. 시드 생성 (게임 세션 시작)

    서버가 랜덤한 서버 시드를 생성하고, 이 시드의 SHA-256 해시값만 플레이어에게 공개합니다.

    예: 해시값 "3f2a1b..." → 이 해시로는 원래 시드를 알 수 없음

  2. 클라이언트 시드 설정

    Safe Hold'em (1인): 플레이어가 자신만의 클라이언트 시드를 자유롭게 설정할 수 있습니다. 기본값은 "default"이지만 언제든 변경 가능합니다.

    6-Max 멀티플레이어: 클라이언트 시드는 "default"로 고정됩니다. 여러 플레이어가 같은 테이블에서 플레이하므로 개인별 시드 설정이 불가능하지만, 모든 플레이어가 동일한 덱 해시를 사전에 확인할 수 있어 공정성이 보장됩니다.

    플레이어 시드가 결과에 영향을 주므로 서버 단독 조작 불가

  3. 게임 진행

    서버 시드 + 클라이언트 시드 + 논스(게임 번호)를 조합하여 HMAC-SHA256으로 덱을 셔플합니다.

    Fisher-Yates 알고리즘으로 52장 카드 완전 무작위 셔플

  4. 결과 확인

    게임이 끝나면 서버 시드가 공개됩니다. 공개된 시드의 해시가 게임 전 공개된 해시와 일치하는지 확인합니다.

  5. 독립 검증

    공개된 모든 정보(서버 시드, 클라이언트 시드, 논스)로 아래 검증 도구를 사용해 직접 결과를 재현할 수 있습니다.

Safe Hold'em 검증 방법 (초보자 가이드)

1인 플레이 게임의 공정성을 직접 확인하는 방법입니다. 천천히 따라해 보세요!

준비물: 게임 기록 페이지에서 확인할 수 있는 시드 정보

Step 1: 시드 정보 확인하기

  1. 게임 중 시드 확인

    게임 화면에서 ☰ 메뉴 → 시드 설정을 클릭하면 현재 시드 정보가 표시됩니다:

    • 서버 시드 해시: 게임 전 공개된 해시값 (나중에 검증에 사용)
    • 클라이언트 시드: 내가 설정한 시드 (기본값: default)
    • 논스(Nonce): 현재 게임 번호
  2. 게임 플레이

    평소처럼 게임을 진행합니다. 모든 게임은 논스 번호가 자동으로 1씩 증가합니다.

  3. 시드 변경하기

    시드 설정 → 새 클라이언트 시드 입력 → 시드 변경 클릭

    이때 이전 서버 시드가 공개됩니다! 이 시드를 메모하세요.

Step 2: 게임 검증하기

  1. 아래 검증 도구로 이동

    이 페이지 하단의 "게임 결과 직접 검증하기" 폼으로 이동합니다.

  2. 정보 입력하기

    • 서버 시드: 공개된 이전 서버 시드 (64자 문자열)
    • 클라이언트 시드: 해당 게임 당시 사용한 클라이언트 시드
    • 논스: 검증할 게임의 번호
    • 서버 시드 해시: 게임 전 표시됐던 해시값 (선택)
  3. 검증 버튼 클릭

    "검증하기" 버튼을 누르면:

    • 카드 순서가 그대로 재현됩니다
    • 해시 일치 여부가 표시됩니다
    • 실제 게임 결과와 비교할 수 있습니다
검증 성공 조건:
1. 계산된 해시 = 게임 전 공개된 해시 ✓
2. 재현된 카드 순서 = 실제 게임 카드 순서 ✓

시드 구성 요소

요소 설명 공개 시점
서버 시드 서버가 생성한 64자 랜덤 문자열 시드 변경 시 (게임 후)
서버 시드 해시 서버 시드의 SHA-256 해시 (검증용) 게임 시작 전
클라이언트 시드 플레이어가 설정한 랜덤 문자열 항상 공개
논스 (Nonce) 게임 횟수 카운터 (매 게임 자동 증가) 항상 공개

덱 셔플 알고리즘

// HMAC-SHA256 기반 Fisher-Yates 셔플 combined = serverSeed + ':' + clientSeed + ':' + nonce for (i = 51; i > 0; i--) { hash = HMAC_SHA256(combined + ':' + i, serverSeed) j = parseInt(hash.substring(0, 8), 16) % (i + 1) swap(deck[i], deck[j]) } // 카드 배치: // deck[0-1]: 플레이어 카드 // deck[2-3]: 딜러 카드 // deck[4-6]: 플랍 (공용 카드 1-3) // deck[7]: 턴 (공용 카드 4) // deck[8]: 리버 (공용 카드 5)

게임 결과 직접 검증하기

게임 기록에서 확인한 시드 정보를 입력하면 해당 게임의 카드 순서와 결과를 직접 검증할 수 있습니다.

🎮 게임별 클라이언트 시드 입력 안내:
  • Safe Hold'em (1인): 본인이 설정한 시드 입력 (설정 안 했으면 "default")
  • 6-Max 멀티플레이: 반드시 "default" 입력 (변경 불가)

※ 6-Max 멀티플레이어는 "default" 고정입니다

※ 1인: 게임 번호 / 멀티: 핸드 번호 (1부터 시작)

하우스 에지 & 레이크 시스템

게임의 공정성을 보장하면서도 사이트 운영을 위해 최소한의 수수료만 적용합니다. 덱 조작이나 결과 조작은 절대 불가능합니다.

Safe Hold'em (1인)

~2.16%
최적 전략 기준 하우스 에지
배당표에 따른 수학적 확률

6-Max 멀티플레이어

5%
팟에서 레이크 공제
최대 레이크 캡 적용
투명한 운영 원칙:
  • 덱 셔플은 Provably Fair로 100% 무작위
  • 하우스는 배당표/레이크로만 수익 창출
  • 결과 조작, 특정 플레이어 불이익 절대 불가
  • 모든 게임 기록은 검증 가능하게 저장

6-Max 멀티플레이어 공정성 검증

멀티플레이어 게임은 Safe Hold'em과 다른 방식의 Provably Fair 시스템을 사용합니다. 여러 플레이어가 같은 덱을 공유하므로 특별한 방식으로 공정성을 보장합니다.

🔑 핵심 차이점:
항목Safe Hold'em (1인)6-Max Multiplayer
서버 시드 시드 변경 시 새로 생성 테이블(방) 생성 시 1회 생성
클라이언트 시드 플레이어가 자유롭게 설정 "default" 고정 (변경 불가)
논스 게임마다 +1 핸드(라운드)마다 +1
시드 공개 시점 시드 변경 시 테이블 종료 시
해시 확인 시드 설정 메뉴에서 🔒 버튼 또는 게임 종료 시 자동 표시

왜 멀티플레이어는 클라이언트 시드를 변경할 수 없나요?

덱 셔플 공식: HMAC-SHA256(서버시드 + 클라이언트시드 + 논스)

멀티플레이어에서는 모든 플레이어가 같은 덱을 사용합니다. 만약 한 플레이어가 클라이언트 시드를 변경하면 덱 전체가 바뀌어 다른 플레이어들의 카드도 변경됩니다.

따라서 공용 시드 "default"를 사용하고, 대신 모든 플레이어가 게임 전 동일한 덱 해시를 확인할 수 있어 공정성이 보장됩니다.

작동 원리

  1. 테이블 생성

    테이블이 생성될 때 서버 시드서버 시드 해시가 생성됩니다.

    해시만 플레이어에게 공개, 원본 시드는 비공개

  2. 핸드 시작

    논스가 1 증가하고 덱이 셔플됩니다: serverSeed + "default" + nonce

    클라이언트 시드는 항상 "default"로 고정

  3. 게임 진행

    플레이어들이 베팅하고, 커뮤니티 카드가 순차적으로 공개됩니다.

    카드 순서는 핸드 시작 시 이미 결정됨

  4. 테이블 종료

    테이블을 떠나거나 게임이 완전히 종료되면 서버 시드가 공개됩니다.

    공개된 시드로 모든 핸드의 덱 순서를 검증할 수 있습니다!

6-Max 검증 방법 (Step by Step)

  1. 게임 중: 해시 확인

    게임 화면 상단의 🔒 버튼을 클릭하여 현재 서버 시드 해시를 확인합니다.

    이 해시를 메모해 두면 나중에 검증할 수 있습니다.

  2. 플레이 중: 논스 확인

    각 핸드의 논스(핸드 번호)를 확인합니다. 핸드마다 1씩 증가합니다.

    예: 첫 핸드 = 논스 1, 두 번째 핸드 = 논스 2

  3. 게임 종료: 시드 확인

    테이블 종료 시 서버 시드가 자동으로 팝업됩니다.

    이 시드를 복사해 두세요!

  4. 검증 도구 사용

    아래 검증 폼에 다음 정보를 입력합니다:

    서버 시드 게임 종료 시 공개된 64자 문자열
    클라이언트 시드 default (반드시 이 값 입력!)
    논스 검증할 핸드의 번호 (1, 2, 3...)
    서버 시드 해시 게임 전 확인한 해시 (선택사항)
  5. 결과 비교

    "검증하기" 버튼을 누르면 해당 핸드의 덱 순서가 재현됩니다.

    실제 게임에서 받은 카드와 비교하여 일치 여부를 확인하세요.

✅ 멀티플레이어 검증 요약:
  • 클라이언트 시드는 항상 "default"를 입력하세요
  • 논스는 검증할 핸드 번호를 입력하세요 (1부터 시작)
  • 서버 시드는 테이블 종료 시에만 공개됩니다
  • 한 테이블에서 플레이한 모든 핸드를 같은 서버 시드로 검증할 수 있습니다

Safe Hold'em 규칙 요약

Casino Hold'em 게임: Safe Hold'em은 플레이어 vs 딜러로 진행되는 카지노 게임입니다. 일반 Texas Hold'em과 달리 베팅 기회가 1회뿐이며 (플랍 후 콜/폴드), 기본 베팅과 AA 사이드를 동시에 베팅할 수 있습니다.

딜러 퀄리파이

딜러는 4 이상의 페어 (4-4 이상)가 있어야 퀄리파이됩니다.

기본 보너스 배당표

플레이어 승리 시 기본 베팅에 자동 적용

핸드배당
로열 플러시100:1
스트레이트 플러시20:1
포카드10:1
풀하우스3:1
플러시2:1
기타1:1

AA 보너스 배당표 (선택 사이드 베팅)

플레이어 2장 + 플랍 3장으로 평가. 포기해도 지급됨

핸드배당
로열 플러시100:1
스트레이트 플러시50:1
포카드40:1
풀하우스30:1
플러시20:1
스트레이트 / 쓰리카드 / 투 페어 / AA 페어7:1

6-Max 멀티플레이 규칙 요약

Texas Hold'em No-Limit: 6-Max는 최대 6명이 함께 플레이하는 정통 노리밋 텍사스 홀덤입니다. Safe Hold'em(1인)과 달리 다른 플레이어들과 직접 대결하며, 모든 라운드에서 베팅, 레이즈, 콜, 폴드가 가능합니다.

게임 흐름

  1. 프리플랍: 핸드카드 2장 받고, 스몰/빅 블라인드 강제 베팅 후 첫 베팅 라운드
  2. 플랍: 커뮤니티 카드 3장 오픈, 두 번째 베팅 라운드
  3. : 커뮤니티 카드 1장 추가 오픈, 세 번째 베팅 라운드
  4. 리버: 마지막 커뮤니티 카드 1장 오픈, 최종 베팅 라운드
  5. 쇼다운: 남은 플레이어들의 패 비교, 가장 좋은 5장 조합 승리

베팅 액션

액션설명
체크베팅하지 않고 턴 넘기기 (앞에 베팅이 없을 때만 가능)
베팅 라운드에서 첫 베팅하기
상대의 베팅과 같은 금액 베팅하기
레이즈상대의 베팅보다 더 많이 베팅하기
폴드패를 버리고 게임에서 빠지기
올인보유한 칩 전액 베팅하기

바이인/블라인드 구조

승리 조건

💡 Safe Hold'em vs 6-Max 차이점:
항목 Safe Hold'em (1인) 6-Max (멀티)
게임 규칙 Casino Hold'em Texas Hold'em NL
상대 딜러 (컴퓨터) 다른 플레이어들
베팅 라운드 1회 (플랍 후) 4회 (프리플랍~리버)
클라이언트 시드 개인 설정 가능 "default" 고정
시드 공개 시점 시드 변경 시 테이블 종료 시

패 순위 (높은 순서)

순위핸드설명예시
1로열 플러시같은 무늬 A-K-Q-J-10A♠ K♠ Q♠ J♠ 10♠
2스트레이트 플러시같은 무늬 연속 5장9♥ 8♥ 7♥ 6♥ 5♥
3포카드같은 숫자 4장K♠ K♥ K♦ K♣ 7♠
4풀하우스트리플 + 페어Q♠ Q♥ Q♦ 9♣ 9♠
5플러시같은 무늬 5장A♦ J♦ 8♦ 6♦ 3♦
6스트레이트연속 숫자 5장10♠ 9♥ 8♦ 7♣ 6♠
7트리플 (쓰리카드)같은 숫자 3장J♠ J♥ J♦ K♣ 5♠
8투 페어페어 2개A♠ A♥ 8♦ 8♣ K♠
9원 페어같은 숫자 2장10♠ 10♥ A♦ 7♣ 3♠
10하이 카드가장 높은 카드A♠ J♥ 9♦ 6♣ 2♠

자주 묻는 질문 (FAQ)

Q: 서버가 유리하게 조작할 수 있나요?

아니요, 불가능합니다. 서버 시드의 해시가 게임 전에 공개되므로 게임 도중 시드를 변경할 수 없습니다. 또한 클라이언트 시드가 결과에 영향을 주므로 서버 단독으로 원하는 결과를 만들 수 없습니다.

Q: 플레이어가 결과를 예측할 수 있나요?

아니요, 불가능합니다. 공개되는 것은 서버 시드의 해시값뿐이며, 해시에서 원래 시드를 역산하는 것은 현재 컴퓨터 기술로는 불가능합니다 (SHA-256의 암호학적 특성).

Q: 왜 클라이언트 시드를 변경해야 하나요?

기본 시드로도 공정한 게임이 보장되지만, 자신만의 시드를 설정하면 추가적인 보안과 개인화된 무작위성을 얻을 수 있습니다. (클라이언트 시드 변경은 Safe Hold'em 1인 플레이에서만 가능합니다.)

Q: 6-Max에서는 왜 클라이언트 시드를 설정할 수 없나요?

멀티플레이어 게임에서는 여러 플레이어가 동시에 같은 덱을 공유합니다. 만약 개인별 클라이언트 시드를 허용하면 특정 플레이어의 시드 변경이 다른 플레이어의 게임 결과에도 영향을 미치게 됩니다. 대신 모든 플레이어가 게임 시작 전 동일한 덱 해시를 확인할 수 있어 공정성이 보장됩니다.

Q: 과거 게임을 검증하려면?

게임 기록 페이지에서 해당 게임의 서버 시드, 클라이언트 시드, 논스를 확인한 후 이 페이지의 검증 도구에 입력하면 카드 순서와 결과를 직접 재현할 수 있습니다.