ソース公開を通じて分かった非中央集権型アプリケーション(DApp)とは
by
GMO次世代
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
ソース公開を通じて分かった非中央集権型 アプリケーション(DApp)とは GMOインターネット株式会社 次世代システム研究室
Slide 2
Slide 2 text
アジェンダ 非中央集権型アプリケーション (DApp) GMOブロックチェーンオープンソース 提供プロジェクト DApp開発の注意点 問題点 まとめ
Slide 3
Slide 3 text
DAppとは何か DApp: Decentralized Application サービス提供者(第三者)を信頼することなく、当事者間で動作するプログラム 従来 DApp (P2P)
Slide 4
Slide 4 text
DAppのメリット 中間マージンの削減 信頼性を担保するためのシステム投資 サービス提供者に情報や資産を預けるリスクの排除 支払いに必要なカード情報等 取引に必要な株や仮想通貨
Slide 5
Slide 5 text
DAppに不可欠なスマートコントラクト ● スマートコントラクトのロジック・実行結果はブロックチェーン に記録され、公開される。 ● 利用者はロジックを確かめ、結果を確信して実行する スマートコントラクト実行基盤としてはEthereum が有名
Slide 6
Slide 6 text
EthereumベースのZ.com Cloud ブロックチェーン ● アクセスコントロールされたデータス トア ● 代払い機能 ● API ● セミパブリック型ネットワーク PaaS型ブロックチェーンプラットフォーム 「Z.com Cloud ブロックチェーン」 ConoHaブロックチェーン もあります
Slide 7
Slide 7 text
アジェンダ 非中央集権型アプリケーション(DApp) GMOブロックチェーンオープンソース 提供プロジェクト DApp開発の注意点 問題点 まとめ
Slide 8
Slide 8 text
提供イメージ デモ環境もあります
Slide 9
Slide 9 text
ラインナップ ● 医療機関カルテ共有システム ● 転売抑止チケット ● 地域トークン ● トークントレーダー
Slide 10
Slide 10 text
医療機関カルテ共有システム 患者自身で医療機関への医 療情報(カルテ)の共有ができ るスマートコントラクトサービ ス
Slide 11
Slide 11 text
転売抑止チケット + チケットレス 不正転売の抑止とチケットレ ス化を実現するスマートコント ラクトサービス
Slide 12
Slide 12 text
転売抑止チケットのポイント 複数の業者が相乗りできる チケットを販売代理店が発券したことが保証される チケットの転売には所有者自身の鍵の移転が必要 困難
Slide 13
Slide 13 text
地域トークン トークンの発行・運用ができる スマートコントラクトサービス トークンはERC20準拠
Slide 14
Slide 14 text
補足:ERC20 Ethereumにおけるトークンの標準仕様のこと 新たな資金調達手段(ICO)に利用されるなど注目されている ※ERCはEthereum Request for Commentsの略 https://github.com/ethereum/EIPs
Slide 15
Slide 15 text
トークントレーダー トークンを取引所に預けること なくエンドユーザ同士で直接ト レードできるスマートコントラク トサービス Indexer: 取引所 Maker: 売買情報を掲示する人 Taker: 取引情報を元に約定 (売買)注文をする人 ERC20準拠
Slide 16
Slide 16 text
トークントレーダー Indexer: 取引所 Maker: 売買情報を掲示する人 Taker:約定(売買)注文をする人
Slide 17
Slide 17 text
トークントレーダー 許容量設 定 許容量設 定 Indexer: 取引所 Maker: 売買情報を掲示する人 Taker:約定(売買)注文をする人
Slide 18
Slide 18 text
トークントレーダー ブロックチェーン に許容量記録 Indexer: 取引所 Maker: 売買情報を掲示する人 Taker:約定(売買)注文をする人
Slide 19
Slide 19 text
トークントレーダー 売出 Indexer: 取引所 Maker: 売買情報を掲示する人 Taker:約定(売買)注文をする人
Slide 20
Slide 20 text
トークントレーダー 買付 Indexer: 取引所 Maker: 売買情報を掲示する人 Taker:約定(売買)注文をする人
Slide 21
Slide 21 text
トークントレーダー 注文転送 Indexer: 取引所 Maker: 売買情報を掲示する人 Taker:約定(売買)注文をする人
Slide 22
Slide 22 text
トークントレーダー 承諾 マルチサイン Indexer: 取引所 Maker: 売買情報を掲示する人 Taker:約定(売買)注文をする人
Slide 23
Slide 23 text
トークントレーダー 取引指示 Indexer: 取引所 Maker: 売買情報を掲示する人 Taker:約定(売買)注文をする人
Slide 24
Slide 24 text
トークントレーダー ブロックチェーンに記録 取引成立 Indexer: 取引所 Maker: 売買情報を掲示する人 Taker:約定(売買)注文をする人
Slide 25
Slide 25 text
トークントレーダー 結果確認 結果確認 Indexer: 取引所 Maker: 売買情報を掲示する人 Taker:約定(売買)注文をする人
Slide 26
Slide 26 text
トークントレーダー解説 実装の元となった「SWAP」について 「許容量」の意味 「取引指示」詳細
Slide 27
Slide 27 text
トークントレーダーは「SWAP」の実装です SWAPとは オフチェーンで当事者間で直接価値の移転を行うためのプロトコル定義 詳細は「Swapの重要な点」で検索(あとで)
Slide 28
Slide 28 text
「許容量」に関係するERC20の関数 ERC20の(スマート)コントラクトで定義されている「approve」「allowance」 https://theethereum.wiki/w/index.php/ERC20_Token_Standard
Slide 29
Slide 29 text
「許容量」の意味 許容量の設定はapprove関数で行う approve("取引コントラクトのアドレス", 数量) 許容量はallowance関数で確認できる Maker/Takerは取引コント ラクトの許容量を設定する ※Indexerでは無い 許容量を超えた 取引は指示できない
Slide 30
Slide 30 text
取引指示について Indexerが取引指示をする理由 =板情報を更新するため TokenTraderコントラクトで取引が処理される Taker/Makerのサインを含むので、Indexerは取引指示に対して 何も修正できない
Slide 31
Slide 31 text
TokenTraderコントラクトが取引指示を処理する https://github.com/zcom-cloud-blockchain/oss-token-trader/blob/master/provider/contracts/TokenTrader.so l#L13-L35
Slide 32
Slide 32 text
TokenTraderコントラクト詳細 _makerAddress: Makerのアドレス (_maker|_taker)TokenAddr: Maker/Takerのトークンコントラクトのアドレス (_maker/_taker)Amount: Maker/Takerのコントラクト数量 (_maker/_taker)Sign: Maker/Takerのサイン Takerのアドレスはサインに 含まれない
Slide 33
Slide 33 text
TokenTrader.sol サインの検証部分 Takerの サイン内容 Makerの サイン内容 recoverAddress()でIndexerが知りうる注文内容と、 Taker/Makerがサインした注文内容を検証
Slide 34
Slide 34 text
アジェンダ 非中央集権型アプリケーション(DApp) GMOブロックチェーンオープンソース 提供プロジェクト DApp開発の注意点 問題点 まとめ
Slide 35
Slide 35 text
DAppとしてのコントラクトのあるべき姿 コントラクトには何の権 限も持たない。
Slide 36
Slide 36 text
コントラクトアンチパターン modifier onlyFromAdmin() 作成者の特権
Slide 37
Slide 37 text
このコントラクトの問題点 コントラクトの実質的な管理者 が存在する事になる →中央集権的 modifier onlyFromAdmin()
Slide 38
Slide 38 text
アジェンダ 非中央集権型アプリケーション(DApp) GMOブロックチェーンオープンソース 提供プロジェクトについて DApp開発の注意点 問題点 まとめ
Slide 39
Slide 39 text
サービス提供者の問題 そもそも利用に必要な仮想通貨を持って るの?(=エンドユーザ問題) これだとサービス提供者に利益 がない 利用者・minerだけのメリット
Slide 40
Slide 40 text
解決策 代払い機能を使って解決 サービス提供者はProxyコントラク トでアクセス権を制御 利用者はAPI経由でコ ントラクトをcallする
Slide 41
Slide 41 text
アジェンダ 非中央集権型アプリケーション(DApp) GMOブロックチェーンオープンソース 提供プロジェクト DApp開発の注意点 問題点 まとめ
Slide 42
Slide 42 text
まとめ DAppによって中間マージンを減らし、コストの削減が可能です。 仮想通貨の代払い機能を備えたZ.com Cloud ブロックチェーンでDAppを構築する事 で、幅広いユーザにサービスを提供することが可能となります
Slide 43
Slide 43 text
ご清聴ありがとうございました GMOブロックチェーン オープンソース提供プロジェクト https://guide.blockchain.z.com/ja/docs/oss/