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.2k
ブロックチェーンを利用したサービス開発について
2016年10月12日 GMOエンジニアトークにて公開
GMO次世代
October 13, 2016
Tweet
Share
More Decks by GMO次世代
See All by GMO次世代
ソース公開を通じて分かった非中央集権型アプリケーション(DApp)とは
jisedai
0
4k
AppleのARkitとGoogleの最新のARプラットフォーム ARCore 可能性と応用
jisedai
2
1.3k
IoT領域でのブロックチェーン実践
jisedai
1
1.7k
モバイルAR技術の最先端 Google Tangoを活用してバーチャル道案内スタッフを実現してみた
jisedai
1
1.2k
深層学習は金融市場をシミュレーションすることができるか?
jisedai
1
6k
Unity3DとOculus Riftで VR空間にWebコンテンツを表現する
jisedai
0
1.4k
Deep Learningによる株価変動の予想
jisedai
0
1.7k
Other Decks in Technology
See All in Technology
Next.jsとNuxtが混在? iframeでなんとかする!
ypresto
1
230
iOS/Androidで同じUI体験をネ イティブで作成する際に気をつ けたい落とし穴
fumiyasac0921
1
110
Oracle Cloud Infrastructureデータベース・クラウド:各バージョンのサポート期間
oracle4engineer
PRO
29
13k
20241120_JAWS_東京_ランチタイムLT#17_AWS認定全冠の先へ
tsumita
2
310
【Pycon mini 東海 2024】Google Colaboratoryで試すVLM
kazuhitotakahashi
2
570
DynamoDB でスロットリングが発生したとき/when_throttling_occurs_in_dynamodb_short
emiki
0
270
アプリエンジニアのためのGraphQL入門.pdf
spycwolf
0
110
VideoMamba: State Space Model for Efficient Video Understanding
chou500
0
200
Why App Signing Matters for Your Android Apps - Android Bangkok Conference 2024
akexorcist
0
130
開発生産性を上げながらビジネスも30倍成長させてきたチームの姿
kamina_zzz
2
1.7k
プロダクト活用度で見えた真実 ホリゾンタルSaaSでの顧客解像度の高め方
tadaken3
0
220
複雑なState管理からの脱却
sansantech
PRO
1
160
Featured
See All Featured
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.1k
A Tale of Four Properties
chriscoyier
156
23k
Faster Mobile Websites
deanohume
305
30k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.4k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
28
2k
Into the Great Unknown - MozCon
thekraken
32
1.5k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
0
120
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
GraphQLとの向き合い方2022年版
quramy
43
13k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
109
49k
StorybookのUI Testing Handbookを読んだ
zakiyama
27
5.3k
[RailsConf 2023] Rails as a piece of cake
palkan
52
4.9k
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 を実⾏ • データストア連携 –
機密データの保管 – ファイルサイズの大きなデータの保存
• バージョンアップができない • トランザクション実⾏コストが高い • コストの支払い者がエンドユーザ
解決済み • バージョンアップができない • トランザクション実⾏コストが高い • コストの支払い者がエンドユーザ