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
ブロックチェーンを利用したサービス開発について
Search
GMO次世代
October 13, 2016
Technology
1
1.1k
ブロックチェーンを利用したサービス開発について
2016年10月12日 GMOエンジニアトークにて公開
GMO次世代
October 13, 2016
Tweet
Share
More Decks by GMO次世代
See All by GMO次世代
ソース公開を通じて分かった非中央集権型アプリケーション(DApp)とは
jisedai
0
3.8k
AppleのARkitとGoogleの最新のARプラットフォーム ARCore 可能性と応用
jisedai
2
1.1k
IoT領域でのブロックチェーン実践
jisedai
1
1.6k
モバイルAR技術の最先端 Google Tangoを活用してバーチャル道案内スタッフを実現してみた
jisedai
1
1.1k
深層学習は金融市場をシミュレーションすることができるか?
jisedai
1
5.6k
Unity3DとOculus Riftで VR空間にWebコンテンツを表現する
jisedai
0
1.3k
Deep Learningによる株価変動の予想
jisedai
0
1.5k
Other Decks in Technology
See All in Technology
開発生産性向上サービスを作るFindyが自分たちで開発生産性を爆上げした組織づくりの歩み / Findy's path to boosting its own development productivity 2024-04-17
ma3tk
3
610
ChatworkのSRE部って実は 半分くらいPlatform Engineering部かもしれない
saramune
0
150
Cracking the KubeCon CfP
inductor
2
220
テストプロセスで大事にしていること #jasstnano
makky_tyuyan
0
160
生産性向上チームの紹介
cybozuinsideout
PRO
1
860
DevOpsDays History and my DevOps story
kawaguti
PRO
9
2.4k
継続的な改善 x ⾮連続的な進化
sansantech
PRO
3
140
ServiceNow Knowledge 24の歩き方 EYストラテジー・アンド・コンサルティング
manarobot
0
180
web-application-security
matsuihidetoshi
0
140
よく聞くけど使ったことないソフトウェアNo.1 KafkaとSnowflake
foursue
4
340
非同期推論システムによるコスト削減と信頼性向上
koki_nishihara
0
150
MySQL の SQL クエリチューニングの要所を掴む勉強会
andpad
2
6k
Featured
See All Featured
Java REST API Framework Comparison - PWX 2021
mraible
PRO
18
6.9k
Imperfection Machines: The Place of Print at Facebook
scottboms
260
12k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
241
1.2M
Scaling GitHub
holman
457
140k
Ruby is Unlike a Banana
tanoku
96
10k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
25
2.3k
5 minutes of I Can Smell Your CMS
philhawksworth
199
19k
What's new in Ruby 2.0
geeforr
337
31k
Happy Clients
brianwarren
92
6.4k
KATA
mclloyd
15
12k
GraphQLとの向き合い方2022年版
quramy
32
12k
We Have a Design System, Now What?
morganepeng
43
6.7k
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 を実⾏ • データストア連携 –
機密データの保管 – ファイルサイズの大きなデータの保存
• バージョンアップができない • トランザクション実⾏コストが高い • コストの支払い者がエンドユーザ
解決済み • バージョンアップができない • トランザクション実⾏コストが高い • コストの支払い者がエンドユーザ