Three Stars Slot 서비스 종료

NEOWIZ PLAY STUDIO Blockchain Lab
NBLab
Published in
4 min readOct 30, 2018

PLAY THE CRYPTO WORLD

안녕하세요 NBLab입니다.

서비스 종료 공지

NBLab이 자체적으로 개발한 난수 생성 (RNG) 알고리즘을 세상에 알리기 위해 2018년 9월 13일 공개하였던 Three Stars Slot 이 곧 서비스를 종료할 예정입니다.

따라서, 2018년 10월 31일 이후엔 서비스를 이용하실 수 없습니다.

운영모델 공유

NBLab이 서비스 기간 동안 적용했던 여러 운영 모델을 공유 하고자 합니다.

Inline Action 모델

초기에 NBLab은 Inline Action 을 이용한 운영모델을 사용하였습니다.

이 모델의 핵심인 Inline Action 은 서로 다른 두 기능을 하나의 기능으로 만들 수 있습니다. Three Stars Slot 의 경우 송금 기능과 슬롯 실행 기능을 하나의 기능으로 통합하기 위해 Inline Action 을 사용하였습니다.

Inline Action Model

컨트랙트가 사용자로 부터 Inline action을 요청 받을 경우 사용자 대신 모든 기능을 수행하게 됩니다. 이 때, 컨트랙트는 사용자가 요청한 모든 기능에 대한 권한을 가지고 있어야 합니다.

초기 Three Stars Slot 의 경우 컨트랙트는 사용자에게 송금 권한을 요구 하였습니다. 만약 컨트랙트를 만든 사람이 악의를 가지고 있었다면 사용자가 입력한 금액보다 더 많은 양을 송금하도록 요청이 가능합니다. (물론 그런 일은 일어나지 않았습니다.) 즉, 서비스 관점에서 Inline Action 모델은 사용자에게 높은 권한을 요청해야할 경우 적합하지 않은 모델입니다.

Notification 모델

Inline Action 을 사용하는 대신 Notification 을 이용해 서로 다른 기능을 통합할 수 있습니다. 송금이 완료되면 Notification 발생합니다. 해당 Notification 이 발생하면 슬롯 실행 기능이 실행되는 구조 입니다.

Notification Model

Notification Model의 경우 컨트랙트에 취약성이 존재할 수 있다는 단점을 가지고 있습니다. 송금이 되지 않았음에도 불구하고 Notification이 발생하는 몇가지 취약점이 발견되었습니다. 이 경우 사용자는 송금을 하지 않고도 플레이를 할 수 있습니다.

관련된 취약성은 다음의 포스트를 참조하시기 바랍니다.

NBLab의 제안 — 프록시 컨트랙트 모델

저희가 최종적으로 제안하는 모델은 inline 액션 모델과 notification 모델의 장점을 혼합한 방식입니다. 방식은 다음과 같습니다.

사용자가 프록시 컨트랙트에 송금을 하게 되면 Notification 이 발생하게 됩니다. (Notification Model) 이 Notification 이 발생하면 프록시 컨트랙트는 실제 슬롯 컨트랙트에게 송금기능과 슬롯 실행기능을 Inline Action 으로 실행합니다. (Inline Action Model)

Proxy Contract Model

프록시 컨트랙트 모델의 경우 컨트랙트는 Proxy 의 송금 권한만 가지고 있으면 되기에 사용자에게 송금 권한을 요청하지 않습니다. 또한 예측하지 못하였던 Notification 취약성이 발생하더라도 Proxy에 실제로 송금이 되었을 시에만 슬롯 실행이 되기에 Notification 취약성을 완벽히 방어할 수 있습니다.

마치는 글

앞으로 블록체인과 관련된 다양한 실험을 선보일 예정입니다.
그동안 Three Stars Slot 을 이용해주신 모든 분께 감사드립니다.

PLAY THE CRYPTO WORLD
NBLab 드림

--

--