블록체인 도박 시스템의 안전성 보장 방안

in #dice7 years ago (edited)

블록체인 도박 시스템

초창기 블록체인 기술이 활용될 시나리오 중 하나로 뽑힌 것이 바로 도박 시스템입니다.

도박 시스템에서 가장 중요한 것은 바로 신뢰성이며, 신뢰성을 보장해줄 수 있는 것은 중앙 기관입니다.

하지만 제3의 중개기관이 아닌 도박운영장이 신뢰성을 보장하며 기기를 제공하는 시스템에서 우리는 여전히

신뢰를 할 수 없습니다.

이를 해결하기 위해서 나온 것이 바로 가상화폐 도박 시스템입니다.


2012년 출시된 satoshidice 는  비트코인 거래 중 가장 인기 있는 주소 top 10안에 포진 할 정도로 많은 거래가 이루어지고 있습니다.


또한 이를 통해 다양한 사업 아이템으로 등장하여 많은 기업들이 가상화폐 도박 시스템을 출시하였습니다.


하지만 이러한 가상화폐 도박 시스템 또한 중앙기관(사이트 운영자)가 동작한다는 점에서 신뢰성을 보장할 수 없습니다. 그렇다면 가상화폐 도박 시스템이 신뢰성을 보장할 수 있는 이유를 알아보겠습니다.


가상화폐 도박의 신뢰성

가상화폐 사이트의 신뢰성에 대해서는 아시는 분들도 있겠지만, 모르시는 분들을 위해서 설명드리겠습니다.

먼저 각 사이트는 fairness 라고 하는 메뉴를 통해서 자신들의 공정성에 대해 어떻게 보장하는지 이야기 하고 있습니다.

위 사진은 비트코인 도박 사이트인 safedice의 fairness 공개내역입니다.

보시는 것처럼 Server seed Hash, Nonce, Account seed 이렇게 총 3개의 값이 존재합니다.

Server seed Hash 란 서버에서 임의로 생성한 임의의 값을 Hash 함수를 통해 변환된 값입니다.

Nonce란 지금까지 수행한 Dice의 횟수입니다.

Account seed란 이 사이트를 동작하고 있는 나의 컴퓨터에서 임의로 생성한 값입니다.

이러한 값들을 통해서 공개된 공식에 따라 주사위 던지기의 결과가 생성됩니다.

위의 공식에 따라서 만약 해쉬 값이 0X111bviafdg9adfg이러한 값이 나온다면

여기서 앞에 5자리 값인 111bv를 십진수로 변환한 값이 바로 주사위의 결과가 됩니다.

111bv는 10진수로 변환하게 되면 4379 값이 나오게 되고 이는 43.79 라는 값이 되게 됩니다.

내가 만약 50%미만의 값이 나온다고 베팅을 하였을때 43.79가 나오게 되었음으로 나의 승리가 되는 것입니다.


이렇게 내가 위의 3개의 값만 알 수 있다면 나올 수 있는 결과 값을 알수 있다는 것을 통해서 공정성이 증명되게 되는 것입니다.

그렇다면 combination 을 구하는 공식에서 베팅 전 내가 알 수 있는 값은 어떤 것일까요?

Nonce는 말씀드린것처럼 베팅의 횟수 임으로 내가 몇번 베팅했는지 알면 알 수 있는 값이며, Account Seed는 이미 공개 되어 있습니다.

그렇지만 Server seed hash는 알 수 가 없습니다.

왜냐하면 Hash 함수는 단방향 함수로 hash 값을 안다고 하여 Input 값을 알 수 가 없기 때문입니다.


그렇다면 fairness 확인은 어떻게 증명되는지 보여드리겠습니다.

베팅을 하고 나고 베팅 내역을 보게 되면 거기에 대한 정보가 나오게 됩니다.

보이는 것처럼 여기에서는 Server seed 값을 알 수가 없음으로 이 값에 대한 증명이 불가능합니다.

하지만 fairness에서 Randomize를 통해서 server seed hash값을 변경시키게 되면 이전에 사용했던 server seed hash의 

server seed 값을 공개되게 됩니다.

다음은 hash값을 변경시켜 server seed 가 공개된 사진입니다.

이렇게 server seed가 공개된 것을 통해서 이제 우리는 combination에 필요한 모든 값을 알 수 있게 되었습니다.

따라서 베팅 결과가 조작된 것이 아니라는 것도 알 수 있게 됩니다.


하지만 이 값을 알아내 엄청난 돈을 번 사람도 있습니다.

2015년 6월 가장 큰 가상화폐 도박 운영장 중 하나인 primedice라는 곳에서 약 백만달러의 돈을 승리로 가져간 사례가 있습니다.

http://www.newsbtc.com/2015/06/30/primedice-bitcoin-gambling-site-hacked-for-1m/

hufflepost라는 사람은 primedice 서버의 취약점을 발견하여 server seed hash값이 아닌 server seed 값을 얻어내는 방법을 알아 냈고 베팅 결과를 미리 예측하여 100만 달러를 가져간 뒤 사라졌습니다.


이렇게 여전히 보안성에 대한 취약성 또한 존재하며 임의로 생성되는 값이 정말로 임의로 생성되는 값인지에 대해서는 우리가 알 수 가 없습니다. 따라서 현재 존재하는 가상화폐가 사기성이 없는지에 대해서도 판단이 어렵구요.


그래서 최근 출시되고 있는 것이 바로 이더리움 스마트 컨트랙트 기반의 도박 시스템으로 이는 다음 번에 이야기하도록 하겠습니다. 






Sort:  

Congratulations @freesam02! You have completed some achievement on Steemit and have been rewarded with new badge(s) :

Award for the number of upvotes

Click on any badge to view your own Board of Honnor on SteemitBoard.
For more information about SteemitBoard, click here

If you no longer want to receive notifications, reply to this comment with the word STOP

By upvoting this notification, you can help all Steemit users. Learn how here!