Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Daocasinoにおけるstate channel実装

180 views

Published on

DaocasinoというEthereum上で動くカジノゲーム向けのプロトコルがあります。プレイの度に結果をスマートコントラクトでブロックチェーンに書き込んだのでは手数料と待ち時間が非常に大きなストレスとなります。当プロトコルにおいてはstate channelを用いてプレイの度にブロックチェーンに書き込まずとも不正ができないようになっています。このstate channelがどのような仕組みになっているのか説明します。

Published in: Engineering
  • Be the first to comment

Daocasinoにおけるstate channel実装

  1. 1. ビットバンク株式会社 Daocasino state channel Yuma Wakimoto
  2. 2. Copyright © bitbank, inc. アウトライン 1. Daocasinoとは 2. Daocasinoにおけるstate channelとは? 3. シーケンス図 4. ダイスゲームのデモ 5. ダイスゲームを用いた具体的な説明
  3. 3. Copyright © bitbank, inc. Daocasinoとは 非中央集権なカジノゲーム用のミドルウェアプロトコル
  4. 4. Copyright © bitbank, inc. Daocasinoにおけるstate channelとは? 1ゲーム毎にゲーム結果を毎回ブロックチェーンに書き込まず、プレイヤー側とカジノ側 双方のアプリケーション上で結果を管理する - トランザクション手数料を少なくできる - 承認待ちによる無駄な待ち時間を減らせる
  5. 5. Copyright © bitbank, inc. シーケンス図
  6. 6. Copyright © bitbank, inc. ダイスゲーム実演 ダイスゲーム実演 https://github.com/DaoCasino/dc-sdk-example
  7. 7. Copyright © bitbank, inc. ダイスゲームを用いた具体的な説明 1. ゲーム開始(open channel) 2. Playerが賭け金と出目の予想を決める(play game) 3. ランダムナンバー(出目)の生成 (game state) 4. ゲーム結果判定の授受 (game state) 5. チャンネルステート授受 (cahnel state) 6. Playerが賭け金と出目の予想を決めるに戻るかゲーム終了(close channel)
  8. 8. Copyright © bitbank, inc. シーケンス図
  9. 9. Copyright © bitbank, inc. 賭け金のデポジット(open channel) Playerはデポジットとして指定量のBET(Daocasino専用通貨)のアクセス権をコントラク トに付与する。 - ゲーム終了時にもしPlayer側が損していた場合、ゲームのコントラクトがデポジット されたBETから損失額を徴収できる - Playerはデポジットした額以上の損失が出てしまう賭け方はできない - Playerはデポジット以上の損失が出ない限りゲームを繰り返す事ができる
  10. 10. Copyright © bitbank, inc. シーケンス図
  11. 11. Copyright © bitbank, inc. Playerが賭け金と出目の予想を決める(play game) Playerは賭け金と出目の予想を決めてPlayボタンを押す
  12. 12. Copyright © bitbank, inc. シーケンス図
  13. 13. Copyright © bitbank, inc. ランダムナンバー生成(game state) ゲームの流れは 1. playerが出目の予測を決定する 2. 出目(ランダムナンバー)が決定する 3. 結果判定 従って、以下の条件でランダムナンバーを生成する必要がある - Player側は生成されるランダムナンバーを事前に予測できない (シードを自由に選 択できない) - Bankroller側は恣意的にランダムナンバーを決定できない
  14. 14. Copyright © bitbank, inc. ランダムナンバー生成(game state)
  15. 15. Copyright © bitbank, inc. ゲーム結果判定の授受 (game state)
  16. 16. Copyright © bitbank, inc. シーケンス図
  17. 17. Copyright © bitbank, inc. お互いの残高の授受 (cahnel state)
  18. 18. Copyright © bitbank, inc. シーケンス図
  19. 19. Copyright © bitbank, inc. Playerが賭け金と出目の予想を決めるに戻るかゲー ム終了(close channel) Playerがゲームを続ける意思がなければゲーム終了となりその時の結果(残高)が Ethereumのブロックチェーンに書き込まれ、続行するのであれば再度賭け金と出目を 予想しPlayerがゲームを続ける意思が無くなるまで同じ処理を繰り返す。

×