공정한 주사위, 페어플레이
마지막 굴림의 더블에 진 백개먼 플레이어라면 누구나 한 번쯤 생각했을 것입니다. 이 주사위는 공정한가? 그것은 어떤 백개먼 앱에든 던져야 할 올바른 질문입니다. 여기, 우리 주사위가 정확히 어떻게 생성되는지, 왜 우리를 포함해 그 누구도 그것을 기울일 수 없는지, 그리고 게임의 나머지 부분은 어떻게 정직하게 유지되는지를 설명합니다.
완료된 게임을 직접 검증하세요
말은 값싼 법이니, 여기 직접 실행해 볼 수 있는 증거가 있습니다. 경기가 끝나면 우리는 그 서버 시드와, 첫 번째 굴림 이전에 공개했던 커밋먼트를 공개합니다. 아래에 그 공개 번들을 붙여 넣으면, 이 페이지는 모든 주사위를 처음부터 다시 도출합니다. 우리 서버가 실행한 것과 정확히 같은 계산이며, 주사위가 일치하는지 알려 줍니다. 우리는 주사위 수학을 공개적으로 다시 구현합니다. 깔끔하게 다시 도출된다는 것은 모든 주사위가 공개된 시드에서 나온다는 것을 증명하므로, 어떤 굴림도 바꿔치기되거나 다시 굴려지지 않았음을 뜻합니다. 완전한 초록색 「증명 가능하게 공정함」 결과를 얻으려면, 게임 시작 시 앱이 기록한 클라이언트 시드를 추가하세요. 그것은 당신 자신의 엔트로피가 섞였음을 증명하므로, 주사위가 미리 정해져 있었을 수도 없게 됩니다.
주사위: 증명 가능하게 공정하며, 서버에서 굴려집니다
모든 게임의 모든 굴림은 우리 게임 서버에서 실행되는 난수 생성기가 만들어 내며, 그것은 증명 가능하게 공정합니다. 첫 번째 굴림 전에 우리는 커밋먼트, 즉 주사위가 나올 비밀 시드의 암호학적 지문을 공개합니다. 경기가 끝나면 그 시드를 공개하고, 누구든 그로부터 모든 주사위를 다시 도출해 우리가 미리 잠가 둔 커밋먼트와 대조할 수 있습니다. 우리를 믿지 마세요, 직접 검증하세요. 위의 도구가 바로 그 일을 합니다. 당신 자신의 클라이언트 시드도 섞이기 때문에, 주사위는 우리를 포함해 그 누구도 고르거나 바꿔치기하거나 다시 굴릴 수 없습니다.
그에 못지않게 중요한 것은 굴림이 어디에서 일어나는가입니다. 주사위는 결코 당신의 기기에서 생성되지 않으며, 당신의 휴대폰은 서버가 이미 굴린 결과를 표시할 뿐입니다. 이 하나의 설계 결정이 주사위 부정행위의 온 가족을 제거합니다. 변조된 앱은 다시 굴릴 수 없고, 지연 스파이크는 굴림을 복제할 수 없으며, 어떤 클라이언트 측 술수도 다음 숫자를 엿볼 수 없습니다. 다음 숫자는 서버가 만들어 내기 전까지 어디에도 존재하지 않기 때문입니다.
그리고 굴림은 결코 조정되지 않습니다. 「참여 곡선」도, 역전 장치도, 연패 중인 플레이어를 위한 밀어주기도 없습니다. 생성기는 누가 이기고 있는지 알지도, 신경 쓰지도 않습니다.
보드: 모든 수마다 검증됩니다
보드 자체가 어긋나거나 조작될 수 있다면 공정한 주사위도 의미가 거의 없을 것입니다. 그래서 게임은 엄격한 서버 권위 모델로 돌아갑니다. 당신의 기기는 보드가 어떻게 생겼는지 서버에 결코 알리지 않고, 오직 당신의 의도만 보냅니다(「이 말을 13포인트에서 8포인트로 옮겨라」). 서버는 그 수를 공식 규칙과 공식 보드에 비추어 검증하며, 규칙에 어긋나는 수는 변조된 클라이언트가 무엇을 주장하든 그냥 거부됩니다.
그다음 이중 확인이 이어집니다. 상태가 갱신될 때마다 서버는 진짜 보드 위치의 간결한 지문(해시)을 방송합니다. 당신의 기기는 자신의 로컬 보드에서 같은 지문을 계산해 비교합니다. 말이 하나라도 다르면, 클라이언트는 자신의 사본을 버리고 서버로부터 다시 동기화합니다. 이렇게 두 플레이어가 언제나 같은 게임을 보고 있음이 증명되고, 어긋남은 한 번의 왕복으로 스스로 치유되며, 오래되었거나 조작된 보드로 플레이할 수 있는 틈은 존재하지 않습니다.
상대: Glicko-2 매치메이킹
공정함은 당신이 누구를 상대하는가와도 관련됩니다. 이곳의 레이팅은 Glicko-2를 사용합니다. Elo의 현대적 후계로, 당신의 실력과 그 추정에 대한 시스템의 신뢰도를 함께 추적하므로, 새 플레이어는 쉰 판 동안 남의 디딤돌이 되는 대신 자신의 진짜 수준으로 빠르게 수렴합니다. 매치메이킹은 당신을 비슷한 레이팅의 상대와 짝지어 주고, 레이팅 대상 결과는 매 게임 후 시스템에 다시 반영됩니다.
그 결과, 이겼을 때는 동급의 상대를 앞선 것입니다. 졌을 때는 배울 진짜 무언가가 있으며, 대개는 전략 가이드에 있습니다.
공정한 주사위는 실제로 어떤 느낌인가
여기 불편한 진실이 있습니다. 진정으로 무작위인 주사위는 대부분의 사람이 예상하는 것보다 기복이 심하게 느껴집니다. 진짜 무작위성은 네 번 연속 더블, 1포인트 보드를 앞둔 진입 실패의 연속, 그리고 마지막 굴림의 기적을, 확률이 예측하는 바로 그 빈도로 만들어 냅니다. 17/36의 샷이 두 번 연속 빗나가는 일은 네 번 중 한 번보다 더 자주 일어납니다. 기억은 어이없는 일을 간직하고 평범한 것은 버립니다. 그래서 노련한 온라인 플레이어라면 누구나 「조작된 주사위」 이야기를 하나쯤 갖고 있지만, 이곳에서는 어떤 통계 감사도 그중 하나조차 뒷받침한 적이 없습니다.
직감을 보정하고 싶다면, 확률 기초 가이드가 진짜 숫자를 펼쳐 놓습니다. 36가지 조합, 모든 거리에서의 적중 확률, 바에서의 진입 확률. 특정한 어떤 숫자든 36번 중 11번 나온다는 것을 알면, 「불가능한 불운」은 「그저 흔한 화요일」로 바뀝니다.
더 깊은 기술적 내용, 즉 생성기의 종류, 커밋-리빌 증명이 작동하는 방식, 그리고 「조작된」 연속에 얽힌 심리를 원하시나요? 블로그에 있습니다. 서버 측 RNG가 실제로 어떻게 작동하는지.
우리의 약속
- 서버에서 생성되는, 증명 가능하게 공정한 주사위: 결코 기기에서 굴려지지 않고, 어떤 플레이어나 상황을 위해서도 조정되지 않으며, 게임이 끝나면 누구나 검증할 수 있습니다.
- 근원에서의 규칙 집행: 모든 수는 서버가 검증하며, 변조된 클라이언트는 아무것도 얻지 못합니다.
- 지속적인 보드 검증: 갱신마다 해시로 대조하고, 불일치가 있으면 스스로 치유합니다.
- 실력 기반 짝짓기: Glicko-2 레이팅과 레이팅 기반 매치메이킹.
공정한 주사위란, 테이블에 남은 유일한 우위가 실력이라는 뜻이며, 실력은 배울 수 있습니다. 규칙으로 시작하고, 전략으로 다듬은 뒤, 실전에서 시험해 보세요. 아래 테이블은 무료이고, 브라우저에서, 설치 없이 이용할 수 있습니다.