Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ソース公開を通じて分かった非中央集権型アプリケーション(DApp)とは
Search
GMO次世代
October 20, 2017
Technology
0
4k
ソース公開を通じて分かった非中央集権型アプリケーション(DApp)とは
GMO次世代
October 20, 2017
Tweet
Share
More Decks by GMO次世代
See All by GMO次世代
AppleのARkitとGoogleの最新のARプラットフォーム ARCore 可能性と応用
jisedai
2
1.2k
IoT領域でのブロックチェーン実践
jisedai
1
1.7k
モバイルAR技術の最先端 Google Tangoを活用してバーチャル道案内スタッフを実現してみた
jisedai
1
1.2k
深層学習は金融市場をシミュレーションすることができるか?
jisedai
1
5.9k
Unity3DとOculus Riftで VR空間にWebコンテンツを表現する
jisedai
0
1.4k
ブロックチェーンを利用したサービス開発について
jisedai
1
1.1k
Deep Learningによる株価変動の予想
jisedai
0
1.6k
Other Decks in Technology
See All in Technology
テストを楽に書きたい
tomorrowkey
1
190
ゼロから実装まで!機械学習入門
natsuki0726
0
190
ADRを運用して3年経った僕らの現在地
onk
PRO
13
5.7k
マーケットプレイス版Oracle WebCenter Content For OCI
oracle4engineer
PRO
2
240
OPENLOGI Company Profile for engineer
hr01
1
12k
From naive to advanced RAG: the complete guide
glaforge
0
150
ガバメントクラウド開発と変化と成長する組織 / Organizational change and growth in developing a government cloud
kazeburo
4
810
Castor - Le Task Runner PHP qui simplifie votre Workflow
lyrixx
1
280
DenoでもViteしたい!インポートパスのエイリアスを指定してラクラクアプリ開発
bengo4com
2
2k
Slackbot × RAG で実現する社内情報検索の最適化
howdy39
2
340
Grafana エコシステムの活用事例 on ABEMA
tetsuya28
4
260
分析者起点の企画を成功させた連携面の工夫
lycorptech_jp
PRO
1
260
Featured
See All Featured
Design by the Numbers
sachag
278
19k
Imperfection Machines: The Place of Print at Facebook
scottboms
264
13k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
191
16k
Fashionably flexible responsive web design (full day workshop)
malarkey
404
65k
Debugging Ruby Performance
tmm1
73
12k
Into the Great Unknown - MozCon
thekraken
31
1.4k
In The Pink: A Labor of Love
frogandcode
139
22k
Put a Button on it: Removing Barriers to Going Fast.
kastner
58
3.5k
jQuery: Nuts, Bolts and Bling
dougneiner
61
7.5k
Why Our Code Smells
bkeepers
PRO
334
57k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
27
1.9k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
4
120
Transcript
ソース公開を通じて分かった非中央集権型 アプリケーション(DApp)とは GMOインターネット株式会社 次世代システム研究室
アジェンダ 非中央集権型アプリケーション (DApp) GMOブロックチェーンオープンソース 提供プロジェクト DApp開発の注意点 問題点 まとめ
DAppとは何か DApp: Decentralized Application サービス提供者(第三者)を信頼することなく、当事者間で動作するプログラム 従来 DApp (P2P)
DAppのメリット 中間マージンの削減 信頼性を担保するためのシステム投資 サービス提供者に情報や資産を預けるリスクの排除 支払いに必要なカード情報等 取引に必要な株や仮想通貨
DAppに不可欠なスマートコントラクト • スマートコントラクトのロジック・実行結果はブロックチェーン に記録され、公開される。 • 利用者はロジックを確かめ、結果を確信して実行する スマートコントラクト実行基盤としてはEthereum が有名
EthereumベースのZ.com Cloud ブロックチェーン • アクセスコントロールされたデータス トア • 代払い機能 • API
• セミパブリック型ネットワーク PaaS型ブロックチェーンプラットフォーム 「Z.com Cloud ブロックチェーン」 ConoHaブロックチェーン もあります
アジェンダ 非中央集権型アプリケーション(DApp) GMOブロックチェーンオープンソース 提供プロジェクト DApp開発の注意点 問題点 まとめ
提供イメージ デモ環境もあります
ラインナップ • 医療機関カルテ共有システム • 転売抑止チケット • 地域トークン • トークントレーダー
医療機関カルテ共有システム 患者自身で医療機関への医 療情報(カルテ)の共有ができ るスマートコントラクトサービ ス
転売抑止チケット + チケットレス 不正転売の抑止とチケットレ ス化を実現するスマートコント ラクトサービス
転売抑止チケットのポイント 複数の業者が相乗りできる チケットを販売代理店が発券したことが保証される チケットの転売には所有者自身の鍵の移転が必要 困難
地域トークン トークンの発行・運用ができる スマートコントラクトサービス トークンはERC20準拠
補足:ERC20 Ethereumにおけるトークンの標準仕様のこと 新たな資金調達手段(ICO)に利用されるなど注目されている ※ERCはEthereum Request for Commentsの略 https://github.com/ethereum/EIPs
トークントレーダー トークンを取引所に預けること なくエンドユーザ同士で直接ト レードできるスマートコントラク トサービス Indexer: 取引所 Maker: 売買情報を掲示する人 Taker:
取引情報を元に約定 (売買)注文をする人 ERC20準拠
トークントレーダー Indexer: 取引所 Maker: 売買情報を掲示する人 Taker:約定(売買)注文をする人
トークントレーダー 許容量設 定 許容量設 定 Indexer: 取引所 Maker: 売買情報を掲示する人 Taker:約定(売買)注文をする人
トークントレーダー ブロックチェーン に許容量記録 Indexer: 取引所 Maker: 売買情報を掲示する人 Taker:約定(売買)注文をする人
トークントレーダー 売出 Indexer: 取引所 Maker: 売買情報を掲示する人 Taker:約定(売買)注文をする人
トークントレーダー 買付 Indexer: 取引所 Maker: 売買情報を掲示する人 Taker:約定(売買)注文をする人
トークントレーダー 注文転送 Indexer: 取引所 Maker: 売買情報を掲示する人 Taker:約定(売買)注文をする人
トークントレーダー 承諾 マルチサイン Indexer: 取引所 Maker: 売買情報を掲示する人 Taker:約定(売買)注文をする人
トークントレーダー 取引指示 Indexer: 取引所 Maker: 売買情報を掲示する人 Taker:約定(売買)注文をする人
トークントレーダー ブロックチェーンに記録 取引成立 Indexer: 取引所 Maker: 売買情報を掲示する人 Taker:約定(売買)注文をする人
トークントレーダー 結果確認 結果確認 Indexer: 取引所 Maker: 売買情報を掲示する人 Taker:約定(売買)注文をする人
トークントレーダー解説 実装の元となった「SWAP」について 「許容量」の意味 「取引指示」詳細
トークントレーダーは「SWAP」の実装です SWAPとは オフチェーンで当事者間で直接価値の移転を行うためのプロトコル定義 詳細は「Swapの重要な点」で検索(あとで)
「許容量」に関係するERC20の関数 ERC20の(スマート)コントラクトで定義されている「approve」「allowance」 https://theethereum.wiki/w/index.php/ERC20_Token_Standard
「許容量」の意味 許容量の設定はapprove関数で行う approve("取引コントラクトのアドレス", 数量) 許容量はallowance関数で確認できる Maker/Takerは取引コント ラクトの許容量を設定する ※Indexerでは無い 許容量を超えた 取引は指示できない
取引指示について Indexerが取引指示をする理由 =板情報を更新するため TokenTraderコントラクトで取引が処理される Taker/Makerのサインを含むので、Indexerは取引指示に対して 何も修正できない
TokenTraderコントラクトが取引指示を処理する https://github.com/zcom-cloud-blockchain/oss-token-trader/blob/master/provider/contracts/TokenTrader.so l#L13-L35
TokenTraderコントラクト詳細 _makerAddress: Makerのアドレス (_maker|_taker)TokenAddr: Maker/Takerのトークンコントラクトのアドレス (_maker/_taker)Amount: Maker/Takerのコントラクト数量 (_maker/_taker)Sign: Maker/Takerのサイン Takerのアドレスはサインに
含まれない
TokenTrader.sol サインの検証部分 Takerの サイン内容 Makerの サイン内容 recoverAddress()でIndexerが知りうる注文内容と、 Taker/Makerがサインした注文内容を検証
アジェンダ 非中央集権型アプリケーション(DApp) GMOブロックチェーンオープンソース 提供プロジェクト DApp開発の注意点 問題点 まとめ
DAppとしてのコントラクトのあるべき姿 コントラクトには何の権 限も持たない。
コントラクトアンチパターン modifier onlyFromAdmin() 作成者の特権
このコントラクトの問題点 コントラクトの実質的な管理者 が存在する事になる →中央集権的 modifier onlyFromAdmin()
アジェンダ 非中央集権型アプリケーション(DApp) GMOブロックチェーンオープンソース 提供プロジェクトについて DApp開発の注意点 問題点 まとめ
サービス提供者の問題 そもそも利用に必要な仮想通貨を持って るの?(=エンドユーザ問題) これだとサービス提供者に利益 がない 利用者・minerだけのメリット
解決策 代払い機能を使って解決 サービス提供者はProxyコントラク トでアクセス権を制御 利用者はAPI経由でコ ントラクトをcallする
アジェンダ 非中央集権型アプリケーション(DApp) GMOブロックチェーンオープンソース 提供プロジェクト DApp開発の注意点 問題点 まとめ
まとめ DAppによって中間マージンを減らし、コストの削減が可能です。 仮想通貨の代払い機能を備えたZ.com Cloud ブロックチェーンでDAppを構築する事 で、幅広いユーザにサービスを提供することが可能となります
ご清聴ありがとうございました GMOブロックチェーン オープンソース提供プロジェクト https://guide.blockchain.z.com/ja/docs/oss/