fairnessprovably fairdice
가능합니다. 온라인 주사위는 당신이 볼 수 없는 서버에서 굴려지고, 그 숫자가 당신의 판에 도착하기 전에 운영자가 바꾸는 것을 물리적으로 막는 것은 아무것도 없습니다. 결과만으로는 어느 쪽으로도 결코 증명되지 않으므로, 정직한 질문은 조작이 가능한지가 아닙니다. 조작이 없었음을 게임이 증명할 수 있는지입니다.
우리는 백개먼 게임을 만듭니다. 그러니 여기서 중립이 아닙니다. 바로 그렇기 때문에 불편한 부분까지 포함해 제대로 답하고 싶습니다.
왜 어느 사이트에서든 주사위가 조작된 것처럼 느껴질까
백개먼의 편차는 가혹하고 인간의 기억은 편향되어 있기 때문입니다. 주사위 두 개는 서른여섯 가지로 떨어집니다. 연속은 결함이 아니라 보장이며, 오늘 밤 어딘가에서 정직한 서버가 모든 말을 정확히 둔 누군가를 상대로 더블을 네 번 연속 굴릴 것입니다. 당신은 자신의 노출된 말을 때린 5-5를 기억합니다. 지난 화요일 당신을 구한 기적 같은 굴림은 기억하지 못합니다. 패배는 남고 탈출은 증발하며, 나쁜 판이 세 번 이어지면 주사위는 개인적인 것이 됩니다. 진짜 판, 진짜 찻집에서도 마찬가지입니다. 사십 년 동안 나무 말을 밀어온 사람에게 물어보십시오.
여기에 함정이 있습니다. 조작된 게임도 정확히 똑같이 느껴집니다. 연속은 어느 쪽으로도 아무것도 증명하지 않으므로, 당신의 증거가 주사위의 느낌이라면 정직한 서버와 부정한 서버를 구별할 수 없습니다. 우리도 구별할 수 없습니다. 이것은 온라인 주사위를 옹호하는 말이 아닙니다. 이것이 바로 그 문제입니다.
사이트가 실제로 주사위를 조작할 수 있을까
기술적으로는 가능하고, 어렵지도 않습니다. 서버는 굴리기 전에 판 전체를 봅니다. 속이려는 운영자라면 이렇게 할 수 있습니다.
- 가장 중요한 순간에만 백 번 중 몇 번의 굴림을 기울입니다. 때리는 굴림, 실패하는 바 진입, 진 판을 뒤집는 더블.
- 대국을 인위적으로 팽팽하게 유지해 세션을 길게 끌고, 패배를 아깝게 진 것처럼 보이게 합니다.
- 운영자에게 이해관계가 있는 쪽을 조용히 편듭니다.
- 플레이어가 돌릴 수 있는 어떤 통계 검정도 주사위가 계속 통과할 만큼 드물게만 합니다.
특정 사이트가 그렇게 한다고 주장하는 것이 아닙니다. 구조가 그것을 허용한다고 말하는 것입니다. 닫힌 서버는 잠긴 방입니다. 운영자는 홀로 굴리고 숫자를 알려주며 믿어달라고 합니다. 문 밖에서는 정직한 운영자와 부정한 운영자가 똑같아 보입니다.
인증된 난수 생성기가 공정함을 증명하지 않나
그 인증서가 실제로 무엇을 다루는지 읽어보십시오. 시험소는 생성기를 검사합니다. 시험대 위의 알고리즘이 통계 검사를 통과하는 수백만 개의 숫자를 만들어냅니다. 그것은 부품을 인증합니다. 전달에 대해서는 아무 말도 하지 않습니다. 즉 당신의 판에 도착한 숫자가 그 생성기에서, 그 순간에, 중간에 바뀌지 않고 왔는지에 대해서는 말입니다. 뒷방의 검정된 저울은 당신의 빵이 그것으로 달렸음을 증명하지 않습니다.
인증은 또한 한 시점의 스냅숏입니다. 운영 중인 서버는 끊임없이 다시 배포되고, 생성기와 당신의 게임 사이의 코드 경로는 시험소가 돌아간 뒤로도 계속 바뀝니다. 그래서 인증된 난수는 아무도 실제로 묻지 않은 질문에 답합니다. 중요한 질문은 좋은 주사위가 건물 어딘가에 존재하는지가 아닙니다. 오늘 밤 당신의 판이 매 굴림마다 그것을 받았는지입니다.
커밋 방식은 실제로 무엇을 바꾸는가
공정함을 약속에서 증명으로 옮깁니다. 판이 시작되기 전에 서버는 비밀 시드를 뽑고 그 지문, 즉 커밋먼트라 불리는 SHA-256 해시를 공개합니다. 판의 모든 굴림은 그 시드에서 굴림당 한 번의 HMAC-SHA256 계산으로 순서대로 유도됩니다. 판이 끝나면 서버는 시드를 공개합니다.
이제 누구나 두 가지를 확인할 수 있습니다. 공개된 시드를 해시하십시오. 첫 수 이전에 공개된 커밋먼트와 일치해야 합니다. 굴림을 다시 계산하십시오. 판에 나타난 모든 숫자와 일치해야 합니다. 서버가 당신의 국면을 본 뒤 주사위 하나라도 바꿨다면 계산이 맞지 않습니다. 조작은 시험할 수 없는 의심이기를 그만두고 잡을 수 있는 거짓말이 됩니다.
판 이전에 잠긴 주사위는 그 판에 반응할 수 없다.
이것이 핵심입니다. 쓸모 있는 조작은 반응적입니다. 노출된 말을 보고 때리는 숫자를 굴리는 것. 커밋 방식은 서버에게서 눈을 빼앗습니다. 전체 수열이 첫 수 이전에 고정되었고, 커밋먼트 이후의 어떤 손질도 수학적으로 드러나기 때문입니다. 다만 그것이 주사위를 상냥하게 만들지는 않습니다. 수열은 정직했을 뿐 자비롭지는 않았습니다. 당신은 여전히 최악의 순간에 바에 앉을 것이고, 이제 그것이 공정했음을 증명할 수 있습니다.
실제로 판을 어떻게 검증하는가
Orion에서는 이렇게 만들었습니다. 우리 서버에서 진행된 모든 판은 첫 굴림 이전에 만들어진 커밋먼트를 지니고, 서버는 모든 수를 근원에서 검증하며, 끝난 판을 확인하는 데는 약 1분이 걸립니다.
검증 페이지를 엽니다. 어떤 브라우저에서든 orion.arthea.ai/verify로 가십시오. 설치할 것도, 만들 계정도 없습니다.
대국 ID를 입력합니다. Orion의 모든 서버 대국에는 ID가 있습니다. 붙여 넣으십시오.
계산은 브라우저가 합니다. 페이지는 Web Crypto를 사용해 커밋먼트와 모든 굴림을 당신의 브라우저 안에서 로컬로 다시 계산합니다. 우리의 말은 검사에 들어가지 않습니다. 숫자 하나라도 바뀌었다면 재계산이 그것을 말해줄 것입니다.
검증 페이지는 오늘 이미 작동합니다. 게임 자체도 완성되었고, orion.arthea.ai/go의 문이 App Store와 Google Play 링크를 지니며 지금 이 순간 이용할 수 있는 것을 항상 보여줍니다. 어느 쪽이든 정직한 답은 그대로입니다. 그렇습니다, 온라인 백개먼은 조작될 수 있습니다. 해결책은 더 예쁜 약속이 아닙니다. 계산을 보여주는 주사위입니다.