안녕하세요.
드디어 실전입니다. 정말 완벽한 추첨을 진짜 진행해볼까요.

1. 위 그림을 가만히 보시면, 룰렛을 돌려서 나오는 아이템 가치가 다 다르게 보이시지요?
x100, x1000 과 같이 잭팟이 있고 심지어 잭팟확률까지 1%라고 떡하니 써있네요.
결국 무작위로 공정하게 1/8의 확률로 나오는게 아니라 룰렛 안에서 조작되서
꽝이 많이 나오고, 잭팟은 잘 안나오게 되겠지요.
2. 정말 공정한 것은 미래를 알 수 없는 어떤 자연현상이나
주식가격 같은 것이라고 생각하시는 분도 계시겠지만,
- 예전 화이트 크리스마스(12/25일에 눈이오면) 또는 아닌경우를
맞추는 사람에서 선물을 주는 이벤트나 스포츠 토토 같은
미래에 일어날 일을 추첨에 사용하는 경우가 있는데,
승부조작가다가 걸리는 사건이 종종 있는 것을 보면 당연히 조작이
가능하다는 것을 알 수 있을 것입니다.
- 주식가격 역시, 주가 조작하다가 걸리는 것 많이 보셔서
충분히 조작이 가능하다는 것을 아실 것 같고요.
- 지난 편에 말씀드렸지만 이런 분야에 최고봉은 '양자난수' 입니다.
그런데, 양자난수는 정말 조작불가능한 무작위라고 하더라도
문제는 이 결과를 믿을 수 있을까요?
양자난수 주사위가 하필이면 내가 판돈을 높게 제시한 딱 그순간에,
이상하게 1만 연속으로 10번 나왔다면 믿을 수 있을까요? (전달 서버 등에서 조작 가능)
3. 이제 정말 완벽하고 공정한 룰렛을 돌려봅시다.
- 참가자 : A, B, C 세명
- 룰렛 : 1~6까지 주사위처럼 6칸으로 구성
- 돌리는방법 :
1) A, B, C 각자 종이에 룰렛을 몇칸 돌릴지 (=Spin)
아무도 모르게 종이에 적어 박스에 넣는다. (1~6중에 선택)
예) A=3, B=5, C=1을 적었다고 가정하자
2) 모두 박스에 종이를 넣은 것을 확인하고. 절대 조작할 수 없는 상태에서 3장을 모두 공개한다.
3) 각자 적어낸 숫자만큼 룰렛이 돌아가서 최종 숫자를 결정한다.
(모두 더하되, 원형이므로 6을 넘어가면 다시 1,2,3 순서대로 진행)
예) A가 3을 냈으니, 3 진행 = 1,2,3
B가 5를 냈으니, A가 돌린 3에서 5칸 진행 = 4,5,6,1,2
C가 1을 냈으니, B까지 돌린 2에서 1칸 진행 = 3
- 당첨자 결정 : 최종 당첨 숫자 3을 적어낸 사람이 당첨. 없을경우 가장 근접자 (중복일 경우 둘다)
자, 이런 방법이면 종이를 바꿔치기하거나 다른 조작을 못한다고 가정했을때
완벽한 추첨이라고 할 수 있겠죠?
저는 C이고 A,B가 저를 골탕먹이고 당첨금을 나눠 가지려고 아무리 모의하고 담합을 하더라도
(심지어 10.000명중 9,999명이 담합해도), 단하나의 내가 결정한 숫자하나로
최종 결과가 완전히 뒤집히고 결정되기 때문에
나는 이결과를 100% 믿을 수 있게 되는 것입니다.
3. 이제 온라인에서 이를 구현하려면 어떻게 할까요
- 각자가 제출하는 값을 암호화해서 모두가 볼수있게 공개해서 제출한다.
제출시 봉인되고 공개되기 때문에 절대 수정이 불가.
- 마감까지 Time Lock이 걸리고, 마감후 (이미 암호화되서 공개된 모두의 Spin 값들을)
봉인을 자동으로 해제하고,
모두의 Spin을 더해서(룰렛을 굴려서) 최종 숫자를 결정한다.
이제 곧 테스트 추첨을 실제로 진행해 보겠습니다.
당첨되신 분께는 소정의 사은품을, 이 로직이 불완전함을 입증하시는
분께는(조작을 통해 본인이 당첨된다든가 함을 증명) 엄청난 사은품을 드릴 생각입니다.