WGC
WorldGameCommunity게임 뉴스 · 한국어/영어
데일리 에디션
1211월
에디션
English
초안 사이트입니다. 콘텐츠는 검토 중이며 바뀔 수 있습니다.

블록체인 위에서 주사위 굴리기: 공정한 아이템 드롭이 어려운 이유

모두가 지켜보는 컴퓨터는 주사위를 굴리기에 최악의 장소다. 블록체인 게임이 부정행위자가 예측하지 못하게 무작위 전리품, 치명타, 카드 팩을 만드는 방법과 '검증 가능한 무작위성'이 실제로 증명하는 것을 정리했다.

WGC 뉴스 데스크 · · 5분 읽기
블록체인 위에서 주사위 굴리기: 공정한 아이템 드롭이 어려운 이유

모든 게임은 주사위로 돌아간다. 치명타, 아이템 드롭, 카드 팩, 맵 시드, 셔플 순서. 그 모든 것 뒤에 난수가 있다. 일반 게임 서버에서 난수를 얻는 건 아무 일도 아니다. 공개 블록체인에서는 이 분야 전체에서 가장 어려운 문제 중 하나다.

블록체인이 무작위에 약한 이유

블록체인은 모든 노드가 같은 코드를 돌려 같은 답을 얻기 때문에 작동한다. 그래서 믿을 수 있다. 하지만 이는 시스템 안에 비공개이고 예측 불가능한 무작위의 원천이 없다는 뜻이기도 하다. 스마트 계약이 볼 수 있는 건 다른 모두도 볼 수 있다.

초기 개발자들은 현재 블록의 타임스탬프나 최근 블록의 해시처럼 무작위처럼 보이는 값을 썼다. 문제는 이렇다.

  • 누구나 읽을 수 있다. 플레이어가 만든 스마트 계약이 같은 '무작위' 결과를 먼저 계산한 뒤 행동할지 말지 정할 수 있다.
  • 블록 생산자가 영향을 줄 수 있다. 블록을 만드는 쪽은 블록의 내용과 시점을 어느 정도 통제할 수 있어서, 마음에 들지 않는 결과가 나오는 블록은 아예 내지 않는 선택도 할 수 있다.

일이 틀어질 때

대표적인 교훈은 2018년 이더리움 게임 포모3D(Fomo3D)다. 카운트다운 복권처럼, 타이머가 끝나기 전 마지막으로 '키'를 산 사람이 상금을 가져가는 게임이었다. 첫 라운드에서 한 플레이어가 수수료를 높게 붙인 자기 거래로 네트워크를 가득 채워, 시계가 0이 될 때까지 다른 사람의 거래가 끼어들지 못하게 하는 방법으로 1만 ETH 넘게 챙겼다. 엄밀히 말해 무작위 버그는 아니었지만, 공개 체인에서는 영리한 플레이어가 게임이 의존하는 조건 자체를 조작할 수 있다는 걸 보여 줬다.

확률형 아이템 같은 구조에도 같은 원리가 적용된다. 결과를 예측하거나 살짝 비틀 수 있다면, 누군가는 반드시 그렇게 한다.

해법: 검증 가능한 무작위 함수

블록체인 게임에서 가장 널리 쓰이는 답은 검증 가능한 무작위 함수(VRF)다. 가장 잘 알려진 서비스가 체인링크 VRF다.

원리를 쉽게 풀면 이렇다. 1. 게임 계약이 난수를 요청한다. 2. 체인 밖의 운영자가 자신의 비밀 키와, 운영자가 통제할 수 없는 요청 정보를 함께 써서 난수를 만든다. 3. 운영자는 난수와 함께 그것이 그 입력값으로 올바르게 만들어졌다는 암호학적 증명을 돌려보낸다. 4. 계약은 난수를 쓰기 전에 체인 위에서 증명을 확인한다. 증명이 맞지 않으면 난수는 거부된다.

그 결과 운영자는 몰래 조작할 수 없고, 플레이어는 미리 예측할 수 없으며, 누구나 나중에 확인할 수 있는 무작위성이 생긴다.

다른 방법들

VRF만 있는 건 아니다.

  • 커밋-리빌. 플레이어들이 먼저 비밀의 해시를 숨긴 채 제출하고 나중에 공개한다. 여러 플레이어의 비밀을 합치면 누구도 혼자 통제하지 못한 숫자가 나온다. 저렴하지만 느리고, 결과가 마음에 들지 않는 사람이 공개를 거부할 수도 있다.
  • 프로토콜 무작위성. 이더리움은 지분 증명으로 전환한 뒤 검증인들의 기여로 RANDAO라는 값을 만든다. 유용하지만 검증인이 여전히 약간의 영향력을 가지므로, 큰 판돈이 걸린 결과를 이것만으로 정하는 건 권장되지 않는다.
  • 오프체인 서버. 많은 '블록체인' 게임이 그냥 자기 서버에서 주사위를 굴리고 결과만 기록한다. 빠르고 싸지만, 결국 스튜디오를 믿어야 하는 처음 상태로 돌아간다.

플레이어에게 의미하는 것

블록체인 게임이 '증명 가능하게 공정한' 드롭을 광고한다면 어떻게 증명하는지 물어보자. 답이 VRF나 잘 설계된 커밋-리빌이라면 그 주장은 검증할 수 있다. 주사위를 스튜디오 서버에서 굴린다면, 결과는 체인에 기록돼도 공정함까지 증명되지는 않는다.

왜 중요한가

공정한 무작위성은 블록체인 게임이 일반 게임에서는 보기 드문 것을 줄 수 있는 지점이다. 믿기만 해야 하는 드롭률이 아니라 확인할 수 있는 드롭률이다. 확률형 아이템과 가챠 확률이 한국의 확률 공개 의무화를 포함해 세계 곳곳에서 규제 대상이 된 업계에서는 의미가 크다. 동시에 '온체인'이 자동으로 '공정'을 뜻하지는 않는다는 점도 기억하자. 중요한 건 주사위 뒤의 설계다.

블록체인이 게임 로직을 다루는 방식은 다크 포레스트, 가스비와 레이어 2 해설에서 더 볼 수 있다.

오류 신고