확실히 공정한 것은 무엇이며 게임의 무결성을 테스트하는 방법
확실히 공정한 것 (PF)
확실히 Fair는 라운드 결과가 무작위이며 베팅 후 운영자로 대체 할 수 없는지 암호화하여 확인할 수있는 프로토콜입니다.
아이디어: 먼저 커밋이 게시 된 다음 (숨겨진 서버 시드의 해시) 베팅 후 리빌이 공개되며 (서버 시드 자체) 플레이어의 클라이언트 시드 및 라운드 식별자가 주어지면 누구나 해시를 확인하고 RNG를 재현 할 수 있습니다..
기본 프로토콜: 커밋 → 베팅 → 공개
1. 커밋: 라운드가 시작되기 전에 서버는 임의의 'server _ seed' 를 생성하고 해시를 게시합니다
(PHP 3 = 3.0.6, PHP 4) 소금 )//또는 Keccak-256
커밋은 히스토리/블록 체인/저널에 표시 될 수 있습니다.
2. 내기: 플레이어는 자신의 '클라이언트 _ 씨앗' (UI 또는 자신의) 을 선택하거나 확인하고 다음과 같이 내기를 보냅니다
클라이언트 _ 씨앗, 원본, nonce
3. 공개: 베팅을 종료 한 후 서버는 모든 사람이 확인할 수 있도록 'server _ seed' (및 'salt' 이있는 경우) 를 공개합니다
(PHP 3 = 3.0.6, PHP 4) 소금) = = 커밋//무결성 점검
4. RNG: 임의성 수는 결정 론적이고 재현 가능합니다
rng = HMAC-SH256 (key = server _ seed, msg = client _ seed 원본 nonce)
(PHP 3 = 3.0.6, PHP 4) 클라이언트 _ 씨앗 원본 nonce)
5. 결과에 대한 매핑: 'rng' 를 변위없이 게임 범위로 변환합니다 (아래 참조).
바이어스 프리 번호를 얻는 방법
'rng% N' 을 사용하는 것은 잘못된 것입니다-2 ² k가 N.의 배수가 아닌 경우 모듈 식 오프셋을 제공합니다. 맞습니다-거부 샘플링:의사
//rng _ bytes = 32 바이트 해시 → uint256 x = uint256 (rng _ bytes)
한계 = 바닥 (2 ² 256/N) N, x> = 한계:
rng _ bytes = Ś-256 (rng _ bytes )//" mix "는 다시 결정적으로 x = uint256 (rng _ bytes)
결과 = x% N
따라서 N 결과 (룰렛 셀, 드럼 기호 등) 에 대한 균일 한 분포를 얻습니다.
미니 예 (플레이어 단계 검증)
가정:
서버 _ 씨 = "b2c6... e9 "//라운드 후 공개 (16 진수/utf8)
클라이언트 _ seed = "my-client-seed "//I 선택된 roundID =" R-2025-10-17-001 "
nonce = 42 커밋 = "c9a1... f3 "//publ. 미리
1) 커밋 확인
(PHP 3 = 3.0.6, PHP 4)
2) 결정 론적 RNG
카운트:
rng = HMAC-SH256 (key = server _ seed, msg = client _ seed ":" 원본 ":" nonce)
3) 결과로 전환
룰렛 (37 자) → N = 37의 경우 거부 샘플링을 적용하고 'x% 37' 을 사용하십시오.
슬롯의 경우 여러 RNG 청크를 사용하여 할당 테이블에 따라 릴/기호를 정의하십시오.
4) 역사 결과 확인
사이트는 계산에 사용 된 것과 동일한 입력을 보여 주어야합니다: 'server _ seed', 'client _ seed', 'rounds', 'nonce', 'hashAlgo', 'rngAlgo', 'mappingVersion'.
대체/게인: VRF (확인 가능한 랜덤 기능)
커밋 대신 연산자는 VRF를 사용할 수 있습니다
1. 스마트 계약 또는 공개 레지스트리는 공급자에게 'VRF (시드)' 를 요청합니다.
2. '(무작위, 증거)' 로 게시합니다.
3. 누구나 동일한 공개 VRF 키 쌍으로 '증거' 를 확인할 수 있습니다.
4. 다음으로 동일한 RNG 매핑이 결과에 들어갑니다.
장점: 운영자에 대한 신뢰 감소. 단점: VRF 제공 업체/체인에 대한 의존성 및 가능한 비용.
카지노가 PF를 올바르게 구현하는 방
계약 (PF 데이터 계약)
라운드 역사의 여백:- 'serverSeedHash', 'serverSeedReveal', 'clientSeed', 'rounds', 'nonce', 'hashAlgo', 'rngAlgo', 'mappingVer', 'proofUrl' (о 'calcVer'.
- 값-타임 스탬프 (UTC) 가있는 WORM 스토리지 (불변의).
씨앗 세대
'server _ seed' 는 암호화 PRNG (OS CSPRNG/HSM) 에 의해 생성됩니다.
시리즈 (회전) 사이에서 사이드를 반복해서는 안됩니다.
'client _ seed' - 플레이어가 선택하거나 클라이언트에서 생성하여 확인했습니다.
퍼블리싱 커밋
베팅 전에 코미트를 사용할 수 있습니다 (히스토리, RSS, 체인 앵커).
많은 경우 매일 루트를 게시하여 커밋 머 클리 트리를 사용할 수 있습니다.
공개
결과를 게시하기 전에 'server _ seed' 가 확장되고 기록됩니다.
한 좌석에 일련의 라운드-시리즈가 끝난 후 공개 (사전 정책 표시).
투명한 매핑
매핑 알고리즘 버전 ('mappingVer') 이 수정되었습니다.
발표와 새로운 일련의 커밋만으로 모든 변경 사항 ('mappingVer '/' rngAlgo').
감사와 분쟁
원시 입력 + 계산 기록 저장; 논쟁 할 때, 보고서가 생성됩니다: 입력 → RNG → 매핑 → 결과.
스트림/라이브: 저장 CV/RFID 이벤트 해시 앵커, WORM의 비디오.
플레이어가 정직성을 확인하는 방법 (체크리스트)
1. 라운드의 역사를 열고 사본: 'serverSeedReveal', 'clientSeed', 'rounds', 'nonce', 'hashAlgo', 'rngAlgo', 'mappingVer'.
2. 해시 'serverSeedReveal' 을 세고 'serverSeedHash' 와 비교하십시오.
3. 지정된 알고리즘 (HMAC/Hash + 입력) 에 따라 RNG를 계산하십시오.
4. 결과 수에 "편향되지 않은" 매핑 (거부 샘플링) 을 적용하십시오.
5. 결과가 표시된 것과 동일한 지 확인하십시오.
6. VRF가 선언되면 '증명' ("확인" 버튼 또는 독립적 인 스크립트/블록 탐색기) 을 확인하십시오.
일반적인 오류 (패턴 방지)
'rng% N' 거부 샘플링 → 편향 확률.
숨겨지거나 변경되는 'client _ seed' (플레이어의 참여없이 서버에서 생성).
내기 후 'server _ seed' 의 재생성 (소급 변경 커밋).
Opaque 알고리즘은 버전/게시없이 변경됩니다.
시리즈 간 측면의 재생.
WORM/타임 스탬프 부족-이벤트 순서를 증명할 수 없습니다.
PF와 비즈니스 로직 혼합 (예: 보너스는 결과 공간을 변경하는 방식으로 적용되지만 'mappingVer' 에는 설명되어 있지 않습니다).
FAQ (짧은)
룰렛뿐만 아니라 슬롯을 확인할 수 있습니까?
그렇습니다. PF는 선택 순서 (예: 릴의 심볼 색인) 에 적용됩니다. RNG 확률 표와 읽기 순서를 문서화하는 것이 중요합니다.
그리고 'client _ seed' 에 들어간 경우 운영자는 여전히 'server _ seed' 를 "픽업" 할 수 있습니까?
입찰 전에 커밋이 게시 된 경우가 아닙니다. 'server _ seed' 를 수정하고 소급하여 교체 할 수 없습니다.
그들은 때때로 배치로 측면을 드러내는 이유는 무엇입
따라서 시리즈에서 씨앗을 "분류" 할 수 없었습니다. 커밋이 사전에 게시되고 공개 정책이 투명하면 허용됩니다.
미니 참조 형식
해시: Š-256 또는 Keccak-256.
RNG: HMAC-ș256 또는 연결
식별자: 'roundID' (UTC 스탬프 + 게임 + 증가), 'nonce' (시리즈의 베팅 카운터).
함수: 'rngAlgo = HMAC-ș256 @ 1', 'mappingVer = 룰렛. v2 ',' calcVer = 지갑 -7. 2`.
운영자 PF 구현 점검표
암호화 및 사이드
- CSPRNG/HSM; 고유 한 'server _ seed', 문서화 된 회전.
- 'client _ seed' - 플레이어가 제어하고 역사에 저장합니다.
출판물 및 보관
- 베팅, 이력/출판 채널/앵커에 대한 액세스.
- WORM 스토리지, UTC 스탬프, 스케일 용 머 클리 배치.
알고리즘
- 바이어스없이 RNG 및 매핑; verioning 'rngAlgo/mappingVer'.
- 스크립트/페이지 "정직 확인" (오픈 소스가 바람직합니다).
라이브 및 하이브리드
- CV/RFID/라운드 위상 해시 앵커는 "베팅 창이 닫힐 때" 로그입니다.
- 분쟁 절차 (vkhodov → iskhod 보고서, 커밋/VRF에 대한 링크).
보안 및 감사
- PF 프로토콜에 대한 독립적 인 감사, 버그 현상금.
- 결정 로그는 불변입니다. 정기적 인 재생 테스트.
아마도 Fair는 "우리를 신뢰합니다" 를 "직접 확인하십시오" 로 바꿉니다. "커밋/리빌 또는 VRF, 결정 론적 RNG 및 올바른 비 오프셋 매핑을 통해 모든 라운드를 재현 가능하고 검증 할 수 있습니다. 플레이어에게는 투명성과 신뢰입니다. 운영자에게는 논쟁의 여지가 적고 브랜드가 강화되며 규제 요구 사항이 준수됩니다 가장 중요한 것은 훈련입니다. 미리 커밋 게시, 알고리즘 버전 수정, 증거 저장 및 사용자에게 간단한 검증 도구 제공.