충돌 게임의 결과 확인: 알고리즘, 보안

1) 검증 목적: 정확히 확인한 내용

불확실성: 연산자는 내기 후 (서버 시드 해시의 커밋으로 인해) 결과를 변경할 수 없습니다.

재현성: 입력하면 게임에서 보여준 것과 동일한 승수를 얻을 수 있습니다.

절차 무결성: 메시지 형식, 증분 'nonce', 반올림 규칙 및 "집 가장자리" 는 사양에 따라 엄격하게 적용됩니다.

2) 검증이 불가능한 데이터

1. 서버 씨앗 해시 (커밋) - 해당 '서버 씨앗' 을 사용하기 전에 게시됩니다.

2. 서버 씨앗 (기간이 끝날 때 공개).

3. 클라이언트 씨앗 (씨앗; 직접 설정하거나 플랫폼이 생성합니다).

4. Nonce (현재 '서버 씨앗' 내의 베팅 카운터).

5. 해시 알고리즘 (일반적으로 'HMAC-ș256' 또는 'Ś-256').

6. 메시지 형식 (예: '": "'), 정확한 구분 기호/케이스/인코딩.

7. 해시 매핑 공식 → 승수 (및 반올림/최소 규칙).

💡 전체 사양은 운영자의 공정성/공정성 섹션에 있어야합니다. 무언가가 없으면 이것은 적기입니다 (§ 10 참조).

3) 검증 알고리즘 (7 단계)

1. 커밋을 비교하십시오: 'Ś-256 (ServerSeed)' 을 세고 게시 된 'ServerSeedHash' 와 비교하십시오.

2. 메시지 수집: 엄격하게 플랫폼 형식 (예: 'msg = ClientSeed + ":" + Nonce').

3. 라운드 해시 계산:
  • 'HMAC-ș256': 'RoundHash = HMAC _ ș256 (key = ServerSeed, msg = 메시지)';
  • 'Ś-256': 'RoundHash = ș256 (ServerSeed | | 메시지)' 또는 사양에 지정된대로.
  • 4. 임의성 추출: 첫 번째 'k' 비트 (종종 52) → 정수 'r', 'u = r/2 ² k' 를 사용하십시오.
  • 5. 매핑 공식을 적용하십시오: 'u' 를 승수로 변환하십시오 (하우스 에지/특수 케이스는 게임 문서에 따라 고려됩니다).
  • 6. 게임 규칙에 따라 반올림 (예: 최대 2 자, 최소 1 명). 00 × 등).
  • 7. 역사상 라운드 합계와 비교하십시오. 우연의 일치 = 올바른 정직.

4) 의사 코드 (파이썬/JS에 적합)

파이썬
(PHP 3 = 3.0.6, PHP 4)

hmac, hashlib, 수학 가져 오기

def round _ hash (server _ seed: bytes, client _ seed: str, nonce: int) -> bytes:
메시지 = f "{client _ seed}: {nonce}". 인코딩 ("utf-8") 형식은 사양을 참조하십시오
hmac 반환. (PHP 3 = 3.0.6, PHP 4) sha256). 소화 () 또는 hashlib. sha256 (...)

def take _ u _ from _ hash (h: bytes, k _ bits = 52) -> 플로트:
우리는 전체 r로 k 가장 중요한 비트를 취합니다
r = int. from _ bytes (h, "big")>> (256 - k _ bits)
return r/( 1 <<k _ bits) u 달력 [0, 1)

(PHP 3 = 3.0.6, PHP 4)
스튜브! 게임 문서에서 공식으로 바꾸기
예를 들어 때때로 형식의 변환이 사용됩니다. 충돌 = 바닥 ((const/( r + 1)) 100 )/100
및/또는 "집 가장자리" 는 드문 강제 1입니다. 00 ×. 실제 검사에서이 스터브를 사용하지 마십시오.
최대 반환 (1. 00, 라운드 (1. 0/max (1e-12, 1. 0 - u), 2))

def 확인 (server _ seed _ hex, server _ seed _ hash _ hex, client _ seed, nonce, show _ multiply):
서버 _ 씨 = 바이트. fromhex (server _ seed _ hex)
1) 커밋
hashlib를 주장하십시오. sha256 (server _ seed). hexdigest () = = server _ seed _ hash _ hex. 아래쪽 ()
2-3) 라운드 해시
h = round _ hash (서버 _ seed, 클라이언트 _ seed, nonce)
4) u
(PHP 3 = 3.0.6, PHP 4)
5-6) 매핑 + 반올림
calc _ mult = stub _ mapping (u)
7) 비교
복귀 복근 (calc _ mult-show _ multiply) <1e-9

중요: 'stub _ mapping' 대신 플랫폼의 공정성 섹션에서 정확한 공식을 적용하십시오. 그렇지 않으면 수표가 잘못됩니다.

5) 특별한 경우와 함정

한 라운드에서 두 번의 베팅: 많은 플랫폼은 같은 라운드에 배치 되더라도 각 베팅에 대해 'nonce' 증분이 있습니다 (예: bet A → 'nonce = 42', bet B → 'nonce = 43'). 역사별로 확인하십시오.

'클라이언트 씨앗' 변경: 시드를 변경할 때 일반적으로 'nonce' 가 재설정됩니다 (또는 새 스트림이 시작됩니다). 플랫폼의 규칙을 비교하십시오.

배치 '서버 시드': 하나의 '서버 시드' 가 일련의 라운드에서 작동하면 새로운 커밋이 게시됩니다. 다른 시대의 씨앗을 혼동하지 마십시오.

반올림/최소: 두 번째 부호의 불일치-경우의 90% 에서 반올림/최소 규칙의 오류 (예: 고정 1) 특별한 조건에서 00 ×).

인코딩/공간: 여분의 공간/라인 피드, 잘못된 경우, 논 -8 중단 체크.

6) 빠른 라운드 확인 목록

1. 'Ś-256 (ServerSeed)' 은 출판 된 'ServerSeedHash' 와 일치합니까?

2. '메시지' 와 'nonce' 형식이 올바르게 형성되어 있습니까?

3. 사양에 따라 엄격하게 적용되는 알고리즘 ('HMAC-ș256 '/' Ś-256') 및 키/필드 순서는?

4. 매핑과 반올림이 문서와 동일합니까?

5. 특별한 경우 (희귀 한 "인스턴트 충돌", 최소 1) 여부 00 ×, 마우스 가드)?

6. 결과는 페니에 대한 게임의 역사와 일치합니까?

7) 제어 자동화 (실습)

로그: 'client _ seed', 시퀀스 'nonce', 타임 스탬프, 최종 승수를 유지하십시오.

샘플링: '서버 씨앗' 의 "포효" 후 무작위 20-50 라운드를 통해 스크립트를 실행하십시오. 일치 비율을 수정하십시오 (100% 여야합니다).

회귀: 게임/제공자 버전을 변경할 때 동일한 세트를 실행하십시오.

내보내기: 소스가있는 상점 CS/JSON-이것이 "감사 트랙" 입니다.

8) 안전: 실수를하지 않고 자신을 속이는 방법

로컬/오프라인 확인: 운영자의 웹 유효성 검사기에만 의존하지 마십시오. 자신의 스크립트를 유지하십

완전한 데이터 패키지없이 수식/형식 없음-확인 없이는 라운드를 신뢰하지 마십시오.

강력한 '클라이언트 씨앗': 무작위로 물어보고 정기적으로 변경하십시오 (이것은 RTP를 증가시키지는 않지만 재현성에 대한 질문은 제외합니다).

TLS/세션: HTTPS 전용 로그인, 2FA, 기록 로그인 및 업로드 추적.

다른 사람에게 '서버 씨앗' 을 제공하지 마십시오. 기간 후에 운영자가 게시합니다. 귀하의 임무는 사전에 "확인" 하지 않고 확인하는 것입니다.

9) 전형적인 "신인 오류"

현장 주문 혼합 ('ClientSeed: Nonce' 대신 'Nonce: ClientSeed').

하나 대신 0에서 'nonce' 를 계산하십시오 (또는 그 반대).

플랫폼의 전체 라운드 (전역 nonce) 의 해시가 사용되었지만 개인 'nonce' 가 필요합니다.

뱅커의 반올림 대 바닥/ceil.

아직 노출되지 않은 '서버 씨앗' 에 대해 확인하십시오.

10) 운영자의 "적색 깃발"

기간이 시작되기 전에 공개 서버 종자 해시가 없습니다.

클라이언트 씨앗을 설정하거나 nonce를 볼 수 없습니다.

공개 승수 해시 매핑 공식은 없습니다.

라운드 이력은 조정을위한 최소한의 데이터를 제공하지 않습니다.

형식과 알고리즘은 통지/사양 아카이브없이 변경되었습니다.

11) 호주 상황 (AU)

통화: AUD에서 승/베팅 기록을 유지하고 스토리 업로드를 유지하십시오 (지원, 논란의 여지가있는 문제).

책임있는 플레이 (RG): 예금/시간 제한, 일시 정지 및 자체 제외-선의의 앱에서 사용 가능; 그것들을 사용하십시오.

플랫폼 관행: 선의의 운영자를 위해 Fairness/Fairly Fair 블록에는 완전한 설명과 검증 예가 포함되어 있습니다. 세부 사항이 부족하면 다른 서비스를 선택해야합니다.

12) 결론

Crash 게임의 결과를 확인하는 것은 명확한 절차입니다

'서버 씨앗 해시' 커밋 검증,
  • '서버 시드', '클라이언트 시드', '노스' 및 알고리즘으로 '라운드 해시' 복원,
  • 게시 된 매핑 공식 및 반올림 규칙 적용

리뷰와 게임 기록에서 동일한 승수.

자신의 스크립트, 로그 입력 및 정기적으로 임의의 라운드를 확인하십시오. 그래서 당신은 정직을 말이 아니라 수학적으로 확인합니다.

Caswino Promo