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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
GMO次世代
October 20, 2017
Technology
4.5k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ソース公開を通じて分かった非中央集権型アプリケーション(DApp)とは
GMO次世代
October 20, 2017
More Decks by GMO次世代
See All by GMO次世代
AppleのARkitとGoogleの最新のARプラットフォーム ARCore 可能性と応用
jisedai
2
1.4k
IoT領域でのブロックチェーン実践
jisedai
1
2k
モバイルAR技術の最先端 Google Tangoを活用してバーチャル道案内スタッフを実現してみた
jisedai
1
1.4k
深層学習は金融市場をシミュレーションすることができるか?
jisedai
1
6.9k
Unity3DとOculus Riftで VR空間にWebコンテンツを表現する
jisedai
0
1.6k
ブロックチェーンを利用したサービス開発について
jisedai
1
1.3k
Deep Learningによる株価変動の予想
jisedai
0
1.8k
Other Decks in Technology
See All in Technology
AI時代のエンジニアキャリアについて今一度考える
sakamoto_582
1
1.2k
依頼文化をやめる日 EM視点で語るPlatform EngineeringとInclusive SRE / Discussing Platform Engineering and Inclusive SRE from an EM's Perspective
shin1988
3
1.7k
デジタル・デザイン構想 by Sayaka Ishizuka
y150saya
0
190
組織における AI-DLC 実践
askul
0
310
プライバシー保護の理論と実践
lycorptech_jp
PRO
1
240
インフラ寄りSREでも 開発に踏み出せる〜境界を越えてユーザー体験に向き合いたい〜
sansantech
PRO
0
480
Hatena Engineer Seminar 37 jj1uzh
jj1uzh
0
430
「ちゃんとやっている」は独りよがりだった ― 不安に寄り添うインシデント対応へ / Towards incident response that addresses anxieties
chmikata
1
520
“全部コピーしない”ファイルデータの活用 : — FSx for ONTAP × S3 Tables × Icebergで作るメタデータカタログ
yoshiki0705
0
420
なぜ私たちのSREプラクティスはなかなか機能しないのか 〜システムより先に組織を見る〜 / Why our SRE practices aren't really working
vtryo
0
670
ゼロをイチにする仕事が終わったあと
smasato
0
290
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
11k
Featured
See All Featured
How to build a perfect <img>
jonoalderson
1
5.8k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.2k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.2k
The Curse of the Amulet
leimatthew05
2
13k
For a Future-Friendly Web
brad_frost
183
10k
Ethics towards AI in product and experience design
skipperchong
2
320
The Cult of Friendly URLs
andyhume
79
6.9k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
3
1.1k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.8k
The Cost Of JavaScript in 2023
addyosmani
55
10k
YesSQL, Process and Tooling at Scale
rocio
174
15k
How GitHub (no longer) Works
holman
316
150k
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/