Three Stars Slot 서비스 종료
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을 요청 받을 경우 사용자 대신 모든 기능을 수행하게 됩니다. 이 때, 컨트랙트는 사용자가 요청한 모든 기능에 대한 권한을 가지고 있어야 합니다.
초기 Three Stars Slot 의 경우 컨트랙트는 사용자에게 송금 권한을 요구 하였습니다. 만약 컨트랙트를 만든 사람이 악의를 가지고 있었다면 사용자가 입력한 금액보다 더 많은 양을 송금하도록 요청이 가능합니다. (물론 그런 일은 일어나지 않았습니다.) 즉, 서비스 관점에서 Inline Action 모델은 사용자에게 높은 권한을 요청해야할 경우 적합하지 않은 모델입니다.
Notification 모델
Inline Action 을 사용하는 대신 Notification 을 이용해 서로 다른 기능을 통합할 수 있습니다. 송금이 완료되면 Notification 발생합니다. 해당 Notification 이 발생하면 슬롯 실행 기능이 실행되는 구조 입니다.
Notification Model의 경우 컨트랙트에 취약성이 존재할 수 있다는 단점을 가지고 있습니다. 송금이 되지 않았음에도 불구하고 Notification이 발생하는 몇가지 취약점이 발견되었습니다. 이 경우 사용자는 송금을 하지 않고도 플레이를 할 수 있습니다.
관련된 취약성은 다음의 포스트를 참조하시기 바랍니다.
NBLab의 제안 — 프록시 컨트랙트 모델
저희가 최종적으로 제안하는 모델은 inline 액션 모델과 notification 모델의 장점을 혼합한 방식입니다. 방식은 다음과 같습니다.
사용자가 프록시 컨트랙트에 송금을 하게 되면 Notification 이 발생하게 됩니다. (Notification Model) 이 Notification 이 발생하면 프록시 컨트랙트는 실제 슬롯 컨트랙트에게 송금기능과 슬롯 실행기능을 Inline Action 으로 실행합니다. (Inline Action Model)
프록시 컨트랙트 모델의 경우 컨트랙트는 Proxy 의 송금 권한만 가지고 있으면 되기에 사용자에게 송금 권한을 요청하지 않습니다. 또한 예측하지 못하였던 Notification 취약성이 발생하더라도 Proxy에 실제로 송금이 되었을 시에만 슬롯 실행이 되기에 Notification 취약성을 완벽히 방어할 수 있습니다.
마치는 글
앞으로 블록체인과 관련된 다양한 실험을 선보일 예정입니다.
그동안 Three Stars Slot 을 이용해주신 모든 분께 감사드립니다.
PLAY THE CRYPTO WORLD
NBLab 드림