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.3k
ソース公開を通じて分かった非中央集権型アプリケーション(DApp)とは
GMO次世代
October 20, 2017
Tweet
Share
More Decks by GMO次世代
See All by GMO次世代
AppleのARkitとGoogleの最新のARプラットフォーム ARCore 可能性と応用
jisedai
2
1.4k
IoT領域でのブロックチェーン実践
jisedai
1
1.9k
モバイルAR技術の最先端 Google Tangoを活用してバーチャル道案内スタッフを実現してみた
jisedai
1
1.4k
深層学習は金融市場をシミュレーションすることができるか?
jisedai
1
6.7k
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が実装する時代、人間は仕様と検証を設計する
gotalab555
1
640
SREチームをどう作り、どう育てるか ― Findy横断SREのマネジメント
rvirus0817
0
360
登壇駆動学習のすすめ — CfPのネタの見つけ方と書くときに意識していること
bicstone
3
130
データの整合性を保ちたいだけなんだ
shoheimitani
8
3.2k
Red Hat OpenStack Services on OpenShift
tamemiya
0
140
猫でもわかるKiro CLI(セキュリティ編)
kentapapa
0
130
CDKで始めるTypeScript開発のススメ
tsukuboshi
1
580
Greatest Disaster Hits in Web Performance
guaca
0
300
Exadata Fleet Update
oracle4engineer
PRO
0
1.1k
22nd ACRi Webinar - ChipTip Technology Eric-san's slide
nao_sumikawa
0
100
こんなところでも(地味に)活躍するImage Modeさんを知ってるかい?- Image Mode for OpenShift -
tsukaman
1
170
20260208_第66回 コンピュータビジョン勉強会
keiichiito1978
0
200
Featured
See All Featured
Crafting Experiences
bethany
1
55
The Curious Case for Waylosing
cassininazir
0
240
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
280
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
58
50k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
0
210
From π to Pie charts
rasagy
0
130
Writing Fast Ruby
sferik
630
62k
Un-Boring Meetings
codingconduct
0
200
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
120
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.1k
Utilizing Notion as your number one productivity tool
mfonobong
3
220
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
160
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/