Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
ブロックチェーンを利用したサービス開発について
Search
GMO次世代
October 13, 2016
Technology
1.3k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ブロックチェーンを利用したサービス開発について
2016年10月12日 GMOエンジニアトークにて公開
GMO次世代
October 13, 2016
More Decks by GMO次世代
See All by GMO次世代
ソース公開を通じて分かった非中央集権型アプリケーション(DApp)とは
jisedai
0
4.6k
AppleのARkitとGoogleの最新のARプラットフォーム ARCore 可能性と応用
jisedai
2
1.5k
IoT領域でのブロックチェーン実践
jisedai
1
2k
モバイルAR技術の最先端 Google Tangoを活用してバーチャル道案内スタッフを実現してみた
jisedai
1
1.4k
深層学習は金融市場をシミュレーションすることができるか?
jisedai
1
7k
Unity3DとOculus Riftで VR空間にWebコンテンツを表現する
jisedai
0
1.6k
Deep Learningによる株価変動の予想
jisedai
0
1.9k
Other Decks in Technology
See All in Technology
SDDの運用にめげずに向き合った話
sansantech
PRO
1
140
IoTデバイスを繋げるプロトコルMatterをAndroidで使用する方法
harutiro
0
120
UniFi(ユニファイ)AIカメラの現場活用
ludicmind
1
400
検証フェーズはAIの回答を判断するための学習機会
toru_kubota
2
560
AI時代のPRレビューにどう向き合うか?
kairim0
1
130
ブラウザとサーバーから考えるAI時代のフロントエンド監視
shogo4131
3
690
Datadog の学び方 - あるいは、オブザーバビリティを学ぶとは何か
mananyuki
1
520
脆弱性診断って、何をしているの? 〜弱点を見つけて、会社の改善につなげるまで〜
keeg
0
780
FOSS4Gを活用した自治体業務DXの試み
470715
0
140
AI時代のAPI開発を加速する品質ガードレール / API Quality Guardrails in the AI Era
yokawasa
0
170
AI駆動開発、viviONの1年 ── うまくいったこと・いかなかったこと
vivion
0
280
しろおびから始める!ログ活用の第一歩
shumei_ito
0
820
Featured
See All Featured
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
3
3.9k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
550
Making the Leap to Tech Lead
cromwellryan
135
10k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
18k
Google's AI Overviews - The New Search
badams
0
1.6k
Design in an AI World
tapps
1
350
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
620
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
480
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
870
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
300
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
450
Transcript
ブロックチェーンを利⽤した サービス開発について GMOインターネット株式会社 次世代システム研究室
ブロックチェーンを利⽤した サービス開発について GMOインターネット株式会社 次世代システム研究室 スマートコントラクト - 事実を証明できるプログラム -
1. ブロックチェーンとは 2. スマートコントラクトとは 3. 開発中サービスの紹介 4. スマートコントラクトの問題点と解決法
• ビットコインの利⽤箇所の増加 • ビットコインはブロックチェーン実装の ひとつ • 改ざんが難しい • 耐障害性
• トランザクション (Tx):記録されるメッセージ • ブロック:一定期間のトランザクション集合 • ハッシュ:ひとつ前のブロックのハッシュ値 Tx Tx Tx
ハッシュ ブロック 5
• Tx を変更するとブロックのハッシュ値が変更 • ハッシュの計算は数⼗秒程度かかる Tx Tx Tx ハッシュ 6
ブロック
• ハッシュ が変更するとブロックのハッシュ値が変更 • 先端までのすべてのブロックを変更するのは難しい ⇒過去の改ざんが難しい Tx Tx Tx ハッシュ
7 ブロック
• 全ノードが全データを持っている ⇒サービスがダウンしにくい 8
• 改ざんされたくないデータを記述 • 作成者のサイン – 確かに、その人が作成したことを証明 AさんがBさんへ100円渡す Tx 9 A
Tx AさんがBさんへ100円渡す Tx Tx BさんがCさんへ2,000円渡す CさんがAさんへ1,000円渡す A B C 10
Tx Tx Tx 所持⾦ Aさん: 2,500円 Bさん: 1,200円 Cさん: 4,000円
11
• ブロックチェーンに書き込むプログラム • トランザクションにコード Tx contract Class { uint variable;
function funcA() { variable= 1; } function funcB() constant returns (uint) { return variable; } } Tx Tx Class.funcA()
• 2014年に最初のリリース • OSSのブロックチェーンのひとつ – C++ – Go • Solidityによりスマートコントラクトを実装
• JavaScript に似た高級言語 • Ethereum で動作するコードにコンパイル可能 • ブラウザIDE がおすすめ –
https://ethereum.github.io/browser-solidity/ – JavaScript VM、Ethereum クライアント接続可能
contract SimpleStorage { uint storedData; function set(uint x) { storedData
= x; } function get() constant returns (uint) { return storedData; } }
• データを保存するコントラクト • constant はトランザクションを生成しな い Tx SimpleStorage インスタンスを作成 Tx
Tx contract.set(10) contract.set(20) contract.get() = 10
contract Coin { address public minter = msg.sender; mapping (address
=> uint) public balances; function mint(address receiver, uint amount) { if (msg.sender != minter) return; balances[receiver] += amount; } function send(address receiver, uint amount) { if (balances[msg.sender] < amount) return; balances[msg.sender] -= amount; balances[receiver] += amount; } }
• 仮想通貨のコントラクト – 発⾏、送⾦ • msg.sender は送信者アドレス • 連想配列でそれぞれの所持⾦を管理
• 誰が何をいつしたかを証明できる – すべての記録が残る – 改ざんができない • 応⽤例 – 通貨
• ビットコインなど – “モノ”の所有権 • 近いうちに、、、
• ブロックチェーン – 改ざんが難しい可⽤性の高い記録台帳 • スマートコントラクト – 事実を証明 • 誰が、何を、いつ
– ブロックチェーンに書き込むプログラム
• Node Proxy – Ethereum ノード以外でTx を実⾏ • データストア連携 –
機密データの保管 – ファイルサイズの大きなデータの保存
• バージョンアップができない • トランザクション実⾏コストが高い • コストの支払い者がエンドユーザ
解決済み • バージョンアップができない • トランザクション実⾏コストが高い • コストの支払い者がエンドユーザ