[mud님 曰] 카지노 시스템 30년 경력 전문가가 들려주는 카지노 시스템 트릭과 알고리즘, 해킹 팁입니다. 도박에 중독되게 만드는 알고리즘, 하면 할수록 잃지만 깨닫지 못하게 만드는 트릭을 수학적 알고리즘과 심리학으로 풀어 나갑니다. 용어 중 믿고 싶은 것만 믿는 “선택적 해설(Selective Exposition)”과 “도박꾼의 착각(Gamblers Fallacy)”은 많은 것을 생각하게 해 주네요. “주사위에는 메모리가 없다!” 개인적으로 두고두고 새기고 싶은 명언입니다!
이 글은 온라인 하드웨어 매거진 Hackaday에 2015년 8월 31일 소개된 전문가 기고 “카지노 해킹하기: 세상에 공짜는 없다(Beating The Casino: There is NO Free Lunch)”를 우리말로 요약해 옮긴 것이다. 작가 Voja Antonic는 유고슬라비아 베오그라드 출신 엔지니어로 1977년 Z80 마이크로 프로세서 프로젝트를 시작으로 1983년 DIY 마이크로컴퓨터 프로젝트 Galaksija를 포함, 현재까지 50개 이상의 프로젝트를 발표한 바 있는 베테랑 마이크로 컨트롤러 전문가다.
[내용 요약] 하드웨어 엔지니어로 힘든 시절을 보내다 보면 어느덧 카지노 장비 업체에서 일하는 자신을 발견하게 될 것이다. 엔지니어는 “내부자”로서 카지노 트릭에 관한 많은 것을 알게 된다. 필자는 약 30년 동안 이런 일을 했다. 요즘 사용되는 카지노 도박 머신 프로젝트를 수도 없이 수행했고, 카지노 소유자와 도박꾼들을 많이 알고 있다.
독자들은 궁금할 것이다. 카지노는 도대체 어떤 트릭을 쓰길래 사람들로 하여금 카지노에서 돈을 쓰도록 만드는 걸까? 필자는 오늘 이 자리를 빌어 그 답을 알려 드리겠다. 카지노에 기술적 트릭같은 건 애시당초 존재하지 않는다. 카지노 운영자들이 정직하기 때문이 아니다. 굳이 트릭을 사용할 필요가 없기 때문이다. (카지노 운영자는 가만히 앉아 있기만 하면 되고) 수학과 심리학이 모든 걸 알아서 다 해 준다.
도박은 위험한 만큼 얻는 것도 클까? 수학적인 대답은 “그렇지 않다”다. 행운같은 건 없다. 이 말을 믿을지 말지는 전적으로 독자의 선택이지만, 도박을 하든 하지 않든 카지노 도박 기계의 원리를 아는 것은 중요하다. 적을 알아야 하기 때문이다.
아래 차트는 카지노에서 슬롯 머신으로 도박을 하는 경우 플레이어의 판돈이 어떻게 되는지를 보여준다. 판돈은 “S”에서 시작된다. 처음에는 조금만 따거나 잃는다. 많이 딸 때도 있다. 하지만 장기적으로 보면 그래프가 0으로 향해서 가고 있다는 걸 볼 수 있다. 이 차트는 게임의 평균 차트로 결과가 항상 똑같지는 않을 것이다. 하지만 대부분 거의 비슷하다. 운좋은 날 돈을 딸 수도 있겠지만 오랜 시간을 적용해 보면 예제 차트와 동일한 결과를 얻게 된다.
도박 머신은 이 그래프를 미리 만들어 놓지 않는다. 앞으로 그래프가 어떻게 변할지 정해놓지도 않는다. 비밀스러운 계획같은 건 없다. 단순한 산수의 규칙이 있을 뿐이다. 이 규칙은 얼마를 따게 할지 돈의 액수를 결정한다. 승률을 정하는 경우도 있다. 이 규칙을 랜덤 프로세스와 조합하면 이런 그래프가 탄생한다. 이게 전부다. 격식을 갖춰 말하자면 게임은 공정하고, 규정대로 진행된다. 게임을 할 적마다 카지노측은 카지노 운영에 드는 비용을 일부 가져가지만 오드(Odd)는 양쪽에 있어 공정하다.
그런데 이상한 점이 하나 있다. 게임이 정말로 공정하다면 어째서 카지노를 소유한 사람들은 부자가 되고, 도박하는 사람들은 점점 가난해 지는 걸까? 이유는 뻔하다. (그렇게 만들었기 때문이다. 카지노는 고객이 게임을 할 때마다 일정 금액을 가져간다. 그리고 게임을 할수록 잃을 확률을 높인다.) 사람들은 카지노가 매 게임마다 일정 금액을 가져가는 걸 당연하게 여긴다. 수학과 심리학 효과는 여기서 비롯된다. 고객이 어떤 게임을 하든 고객이 플레이 버튼을 누르거나 새로운 게임을 시작할 때마다 소액의 돈이 빠져나간다. 빠른 게임인 경우 몇 초 단위로 돈이 빠져 나가 카지노는 돈을 더 번다. 빠져 나가는 돈은 소액이지만 누적되면 엄청난 액수다. 카지노 게임 개발자라면 게임 속도를 빠르게 할수록 카지노측이 좋아한다는 것 정도는 알고 있어야 한다.
아래 차트는 왜 게임이 빨라야 하는지 보여 준다. 왼쪽 차트는 게임을 처음 시작했을 때다. 승률은 50대 50. 가우시안 분포도와 비슷하다. 크게 따거나 잃는 경우도 물론 있을 것이다. 플레이어가 위험을 즐기는 스타일인 경우 특히 그렇다. 하지만 게임을 할수록 잃을 확률이 점점 많아지므로 공정한 게임이 아니라는 것! 이걸 아는 게 중요하다.
왼쪽 차트는 플레이어가 플레이 버튼을 다시 누르고 시작하는 첫 게임에만 적용된다. 게임을 5번 하면 누적된 결과가 눈에 들어오기 시작한다. 게임을 30회 하고 나면 결과가 확실하게 보일 것이다. 그럼에도 불구하고 플레이어는 게임을 계속한다. 돈을 다 잃을 때까지. 이래도 공정하다고 할 수 있을까?
오래 전 필자는 한 포커 회사의 요청으로 비디오 게임을 개조했던 적이 있다. 각각의 라운드에서 이기면 새로운 게임을 할 수 있는 게임이었다. 카드 숫자가 7보다 큰지 적은지를 맞춰서 이기면 방금 번 돈의 2배를 받고, 지면 전부 잃는다. 플레이어는 앞면이 보이지 않는 카드가 7보다 큰지 작은지를 결정해서 버튼을 눌러야 한다.
필자는 이 게임기 펌웨어를 8비트 6502 마이크로프로세서용으로 리버스 엔지니어 하는 작업을 했다. 코드를 디스어셈블 해서 작동 원리를 살펴보다가 필자는 크게 놀랐다. 앞면이 보이지 않는 카드 뒷면에는 숫자 자체가 아예 존재하지 않았다! 그 대신에 플레이어의 승패를 결정하는 기능만 있었다! 플레이어가 버튼을 누르면 이미 정해놓은 승패에 해당하는 숫자의 카드가 랜덤으로 생성되어 해당 비트맵 이미지가 비디오 메모리에 기록되었다.
필자는 그동안 카지노에서 숱한 사람들을 만났다. 그들은 잃게 되는 경우 “젠장, 다른 버튼을 누를걸…” 하고 탄식한다. 필자는 그들에게 어떤 버튼을 누르던 결과는 마찬가지라고 차마 말해줄 수 없었다.
도박의 심리학
도박 머신은 플레이어가 이기는 경우에만 요란한 사운드를 들려 준다는 것. 카지노에 가 봤다면 누구나 알 것이다. 빵빠레나 벨소리가 크게 울리고, 다음 게임을 하라는 화면으로 바뀐다. 많이 딴 사람은 기억에 남고 두고두고 자주 언급되지만, 잃은 사람은 잊혀진다. 도박으로 성공할 수 있다는 환상은 여기서 비롯된다. 이것을 전문 용어로 선택적 해석( Selective Exposition)이라고 한다. 선택적 해석은 도박 중독뿐만 아니라 초능력, 천문학, 돌팔이 등등을 맹목적으로 믿도록 만드는 데도 큰 역할을 한다.
첫번째 차트를 다시 살펴보자. 노란 아이콘은 웃는 표정이다. 각각의 게임에서 이기는 경우 플레이어는 기뻐하고 희망을 갖게 된다. 아이콘은 전부 웃는 표정이다. 유일하게 마지막 아이콘만 찡그리고 있다. 이길 때는 크게 이겨서 놀라게 하지만 질 때는 조금씩 느리게 진다. 이걸 알아차리는 건 힘든 일이다. 행복은 크게 느끼고, 불행은 조금씩 느낀다고 해서 행복하다고 할 수 있을까? 그거야 플레이어가 생각하기 나름이겠지만 환상이 제대로 먹혀들어 간다는 것만은 확실하다. 플레이어는 스스로를 패자라고 생각하지 않는다. 가진 돈 전부를 잃었다 해도 말이다. 플레이어는 알고 있다. 돈이 생기면 다시 카지노에 와서 행운을 잡기 위해 도박을 할 거라는 걸.
첫번째 차트를 다시 보자. 판돈이 2배가 되는 순간 플레이어는 게임을 끝냈어야 했다. 플레이어도 이 점에는 동의할 것이다. 하지만 판돈이 2배가 되는 순간은 플레이어가 이성을 잃는 순간이기도 하다. 플레이어의 행복 호르몬 지수가 치솟는다.이런 정신 상태는 중요한 결정을 내려야 하는 순간에 도움이 되지 않는다. 판단력을 흐리게 하기 때문이다. 플레이어는 자신에게 행운이 찾아 왔다고 착각하고 게임을 계속한다. 이것이 도박을 하는 모든 사람들을 옭아매는 덫이다. 카지노에 왜 햇빛이 드는 창문이 없는지, 시계가 왜 없는지 궁금해 한 적이 있는가? 시간을 잊고 오로지 도박에만 전념하도록 만들어야 되기 때문이다.
적시에 도박을 마치고 자리에서 일어나는 현명한 플레이어는 극소수다. 이기기 시작했는데, 승리가 목전에 있는데 자리를 박차고 일어나기란 정말 힘든 일이다. 도박꾼이 돈이 떨어지지도 않았는데 게임을 중단하는 이유는 단지 하나, 슈퍼 잭팟을 터뜨렸을 때다. 슈퍼 잭팟이 터지면 게임을 멈추고 즐겨야 할 시간이다. 플레이어는 딴 돈을 갖고 카지노를 나선다. 하지만 내일의 태양은 항상 뜬다. 플레이어어는 다음날 카지노를 다시 찾는다. 돈을 더 벌기 위해서. 지난번에 많이 땄기 때문에 더 많은 판돈을 건다. 그리고 게임을 계속한다. 잭팟으로 딴 돈을 모두 잃을 때까지.
최근 필자는 마세도니아 남부에 위치한 멋진 카지노에서 장비를 설치한 적이 있다. 이 카지노는 그리스 고객들이 많이 찾는 곳이었다. 어느날 한 그리스 여성이 24,000€(우리돈 3천1백만원 상당)의 잭팟을 터뜨렸다. 주위 사람들이 모두 환호했다. 순간 필자는 생각했다. 만일 그녀가 현명하다면 그길로 떠나서 다시는 카지노에 발길을 옮기지 말아야 한다고. 2주일 후 필자가 그곳에 다시 갔을 때 카지노 직원이 말해주었다. 그녀가 다시 돌아와 판돈의 절반 가량을 잃었다고. 그로부터 2주일 후 그녀는 가진 돈 전부를 잃었다.
도박의 미신
전부 그런 건 아니겠지만 도박하는 사람들 중에는 미신을 믿는 사람이 많다. 행운의 날이 따로 있고, 행운의 옷, 행운의 번호, 행운의 뭔가를 믿는다. 그래서 그들은 잃고 딸 때마다 항상 이유를 붙인다. 위의 첫번째 차트에서 이긴 이유는 행운의 색상인 파란색 티셔츠를 입고 게임을 했기 때문이고, 진 이유는 다리를 꼬고 앉아서 운이 바뀌었기 때문. 내일 카지노 정문을 들어가기 전에 행운의 주문을 외는 걸 잊으면 안된다. 미신을 믿는다는 건 수학과 논리에 약하다는 걸 의미한다. 특히 비판적 사고력이 결여된 경우가 많다. 비판적으로 사고할 줄 아는 사람이라면 애시당초 도박 세계에 발을 들여놓지도 않았을 것이다.
도박하는 사람들은 확률 이론에 무지하다. 그래서 도박꾼의 착각(Gamblers Fallacy)이라는 패러독스에 자주 빠진다. 도박꾼의 착각은 동일한 결과가 되풀이되면 다음번에는 반대 결과가 일어난다고 믿는 것을 의미한다. 예를 들어 룰렛판에서 검은 색이 여러번 나온다면 사람들은 다음번에는 붉은 색이 나올 거라고 생각한다. 반면 빙고 게임이나 로또를 하는 사람들은 특정 번호가 자주 나오면 그 번호가 적중률이 높다고 생각하고 자주 사용한다. 전부 잘못된 생각이다. 룰렛 휠이 붉은색 판에 10번 멈추더라도 다음번에 붉은색 판이나 검은색 판에 멈출 확률은 반반이다. 수학자들의 말처럼 주사위에는 메모리가 없기 때문이다.
많은 사람들이 로터리, 카지노, 온라인 게임을 해킹헤 배팅 결과를 맞추고 싶어한다. 불행하게도 대부분 게임에 있어 수학적 알고리즘은 단순함 그 자체다. 그래서 익스플로잇 가능한 취약점을 발견하기가 힘들다. 예를 들어 보자. “슈퍼 빙고”에 근접할 정도로 거의 이겨 갈수록 이길 가능성은 점점 작아진다. 이를테면 7/39 로또에서 번호 6개를 맞춘 사람은 당첨에 아주 근접했다고 생각할 것이다. 하지만 사실은 근접은 커녕 훨씬 멀어졌다. 224개 숫자 중에서 1개를 선택해서 맞추지 못할 확률은 99.6%, 맞출 확률은 0.4%다. 이래도 아주 근접한 것일까?
안간의 두뇌는 일상 생활에서는 올바른 추정을 잘 하는 편이다. 하지만 확률 이론과 단위가 큰 숫자에 관한 한 쉽게 속는다. 여기에 선택적 해설(Selective Exposition)이 더해져 그른 판단을 내리게 된다. 도박 게임 개발자들은 이것을 잘 알고 있다. 그래서 그들은 돈을 딴 사람에 관한 이야기는 여기저기 퍼뜨리려고 노력하지만 돈을 잃은 수천 수백만명에 관해서는 입을 다문다.
카지노를 해킹할 수 있을까?
불가능하지는 않다. 블랙잭 게임을 예로 들자. 불법 도구를 사용하거나 대단한 기억력의 소유자라면 가능할 수도 있다. 물론 영구적으로 카지노에서 쫓겨날 위험도 있겠지만. 온라인 도박 게임에서 버그를 찾는 사람들도 있다. 하지만 익스플로잇 가능한 버그를 발견할 가능성보다는 버그를 찾기 위해 테스트 하는 데 더 많은 돈이 들 가능성이 크다. 온라인 카지노라면 해킹이 가능하지 않을까? 온라인 도박 해킹은 프로 개발자들과의 대결이다. 그들은 높은 보수를 받고 고용되어 카지노 게임을 개발했고, 당신같은 사람들이 시스템을 해킹하지 못하도록 하기 위해 많은 시간과 자원을 들였다. 그들고 맞설 준비가 되어 있는가? 충분한 지식이 있고 많은 시간과 공을 들인다면 해킹에 성공할 수도 있을 것이다.
도박 머신 중에서는 기계식 랜더마이저와 자동화 리딩이 가장 취약하다. 개조해서 빛의 강도를 높인 레이터 포인트 등을 이용하면 광학적 판독장치(바코드나 OCR 소프트웨어 카메라)를 속일 수 있다. 125 KHz, 13,56 MHz jammer의 RFID 리더도 마찬가지다. 이런 류의 공격을 방지하는 센서를 갖추지 않는 카지노들이 많다. 어쨌거나 이런 공격은 너무 위험하므로 공격은 신중하게 접근할 필요가 있다. 감시 카메라에도 조심해야 한다.
아인슈타인은 이렇게 말했다. “룰렛은 딜러가 쳐다보지 않는 틈을 타서 테이블에서 돈을 훔치지 않고서는 이기기 힘든 게임”이라고. 그런 의미에서 필자 생각에 아인슈타인은 아마도 역사상 가장 위대한 해커였던 것 같다.
촐처: http://hackaday.com/2015/08/31/beating-the-casino-there-is-no-free-lunch/
아주 재밌게 읽었습니다