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
4.2k
ソース公開を通じて分かった非中央集権型アプリケーション(DApp)とは
GMO次世代
October 20, 2017
Tweet
Share
More Decks by GMO次世代
See All by GMO次世代
AppleのARkitとGoogleの最新のARプラットフォーム ARCore 可能性と応用
jisedai
2
1.3k
IoT領域でのブロックチェーン実践
jisedai
1
1.8k
モバイルAR技術の最先端 Google Tangoを活用してバーチャル道案内スタッフを実現してみた
jisedai
1
1.3k
深層学習は金融市場をシミュレーションすることができるか?
jisedai
1
6.3k
Unity3DとOculus Riftで VR空間にWebコンテンツを表現する
jisedai
0
1.5k
ブロックチェーンを利用したサービス開発について
jisedai
1
1.2k
Deep Learningによる株価変動の予想
jisedai
0
1.7k
Other Decks in Technology
See All in Technology
監視のこれまでとこれから/sakura monitoring seminar 2025
fujiwara3
6
640
JSX - 歴史を振り返り、⾯⽩がって、エモくなろう
pal4de
3
1k
Kotlinで学ぶ 代数的データ型
ysknsid25
5
1.1k
_第3回__AIxIoTビジネス共創ラボ紹介資料_20250617.pdf
iotcomjpadmin
0
120
新卒3年目の後悔〜機械学習モデルジョブの運用を頑張った話〜
kameitomohiro
0
350
DenoとJSRで実現する最速MCPサーバー開発記 / Building MCP Servers at Lightning Speed with Deno and JSR
yamanoku
1
140
成立するElixirの再束縛(再代入)可という選択
kubell_hr
0
480
AWS全冠したので振りかえってみる
tajimon
0
150
TODAY 看世界(?) 是我們在看扣啦!
line_developers_tw
PRO
0
490
Uniadex__公開版_20250617-AIxIoTビジネス共創ラボ_ツナガルチカラ_.pdf
iotcomjpadmin
0
120
ユーザーのプロフィールデータを活用した推薦精度向上の取り組み
yudai00
0
430
Create a Rails8 responsive app with Gemini and RubyLLM
palladius
0
130
Featured
See All Featured
Building a Modern Day E-commerce SEO Strategy
aleyda
41
7.3k
Practical Orchestrator
shlominoach
188
11k
Navigating Team Friction
lara
186
15k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
Automating Front-end Workflow
addyosmani
1370
200k
The World Runs on Bad Software
bkeepers
PRO
68
11k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
780
How to Ace a Technical Interview
jacobian
276
23k
Code Review Best Practice
trishagee
68
18k
Art, The Web, and Tiny UX
lynnandtonic
299
21k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
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/