2019년 12월 17일
유사난수(pseudo-random number)를 사용하는 슬롯 머신 털기...
2017년에 "Planet Money"에 올라왔던 슬롯 머신 털기에 성공했다가 결국 잡힌(실패한?) 이들 이야기가 얼마 전 다시 올라왔길래 듣고 간단하게 남겨본다.
슬롯머신은 다들 아다시피 3개(혹은 그 이상)의 돌아가는 원통이 있고 손잡이를 이용해서 돌아가는 원통을 멈추었을 때에 3개의 원통에 그려져 있는 그림(체리, 다이아몬드, 수정 등)이 모두 같은 무늬일 경우 돈을 버는(Jackpot) 구조이다.
슬롯머신의 결과를 순서쌍으로 나타내면 (체리, 다이아몬드, 다이아몬드)와 같이 나타낼 수 있고, 손잡이를 당길 때마다(매 시행)의 결과를 차례대로 적으면 수열로 표시 할 수 있다.
(체리, 다이아몬드, 다이아몬드) -> (체리, 다이아몬드, 수정) -> (수정, 체리, 다이아몬드) -> ...
당연히 순서쌍의 가짓수는 무한하지 않지만, 특정 순서쌍, 예를 들면 (수정, 수정, 수정)과 같이 당첨되는(Jackpot) 순서쌍은 가끔씩은 나와야한다. 이러한 당첨되는 순서쌍(Jackpot)이 주기적으로 나온다면(예: 12번에 1번) 당연히 슬롯머신 플레이어는 당첨 되기 전의 11회차는 아주 적은 금액으로 최소 베팅을 할 것이고 12번째 당첨되는 순서쌍(Jackpot)이 나올 때에 베팅을 늘릴 것이다. 때문에 슬롯머신 결과 순서쌍은 무작위로 나와야지 행운에 따라 결과가 좌우되는 순수 도박이 될 것이다.
하지만 만약에 슬롯머신 결과 순서쌍이 나오는 순서를 알 수 있다면, 위에서 12번에 1번 씩 당첨되는 순서쌍(Jackpot)이 나오는 경우의 예와 같이 도박이 아니라, 이를 알아챈 영리한 플레이어들이 카지노로 부터 일방적으로 돈을 따게 될 것이다. 실제로 그러한 일이 세계 곳곳의 카지노에서 벌어졌다. 2017년에 처음 방송된 "Planet Money"의 에피소드에 따르면 미국 캘리포니아 남부에 있는 원주민 보호구역 카지노인 페창가에서 수상한 플레이어가 대부분 1센트만 베팅하며 슬롯머신 게임을 하다가 갑자기 베팅액을 높인 직후 당첨되는 순서쌍(Jackpot)이 나오곤 했다고 한다.
조사한 결과 그 수상한 플레이어는 1센트 씩만 베팅하면서 나오는 슬롯머신 결과 순서쌍을 본인의 아이폰에 화면을 터치해서 입력하고 있었고 입력된 결과는 모처에 있는 서버로 전송되어 슬롯머신 결과 순서쌍이 나오는 패턴을 파악했다고 한다. 슬롯머신 결과는 임의(random)로 나오는 것이어야 하지만, 실제 많은 컴퓨터에서는 완전한 임의 결과 혹은 난수(random number)를 사용하기 어렵고, 일정한 패턴이 반복되지만 보통 사람들은 알아차리기 어려운 유사난수(pseudo-random number)를 사용한다. 이에 슬롯머신 결과 10회차 정도를 입력하면 해당 슬롯머신의 유사난수 패턴을 파악하여 언제 당첨되는 순서쌍(Jackpot)이 나오는지를 정확히 예측 할 수 있던 것이다.
이렇게 유사난수를 파훼하여 카지노의 슬롯머신에서 큰 돈을 딴 일당은 체포되고 법의 심판을 받았다고 한다. 이를 보니 룰렛 휠의 운동량을 계산하여 결과를 예측하고 카지노에서 룰렛 게임으로 돈을 많이 딴 에드워드 소프(Edward Thorp)가 생각난다. 당시에 소프는 카지노로 부터 견제와 협박은 받았지만 법의 제재는 받지 않았다. 게임 장치를 해킹한 것도 아니고 단지 계산을 도와주는(?) 장치를 활용했을 뿐이라서 말이다. 과연 소프와 유사난수 패턴을 예측한 이들의 차이는 무엇일까? 단지 불법화되기 이전과 이후에 시도했다는 점 뿐 아닐까?
https://bit.ly/2sxDIxH
이렇듯 유사난수는 보안상의 문제가 있어서 항상 문제가 된다. 보안성 높은 유사난수를 만들기 위해서는 남들이 모르고 있는 아주 큰 소수(prime number)를 사용하기도 한다.
하지만 이러한 유사난수는 결국 취약성이 있고 따라서 요즘은 '진짜 난수'인 양자난수 발생기를 사용하기도 한다. 양자난수는 "슈뢰딩거의 고양이" 현상을 활용하여 난수를 생성하므로 어떠한 패턴도 없다(고 알려져 있다). 한국에서는 이와이엘이라는 곳에서 양자난수생성기를 제작했다.
# by | 2019/12/17 10:21 | 세상보는 이야기 | 트랙백 | 덧글(0)





☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]