Más contenido relacionado
La actualidad más candente (20)
Similar a 20170417 ブロックチェーン講演 「ブロックチェーンのエンタープライズでの活用」 (20)
20170417 ブロックチェーン講演 「ブロックチェーンのエンタープライズでの活用」
- 2. Copyright © 2017 Bigtree Technology&Consulting Ltd. All Rights Reserved. 2
今日のゴール
・ブロックチェーンをより身近に感じてもらう
・興味を持った方にちょっと動かしてみようと感じてもらう
- 3. Copyright © 2017 Bigtree Technology&Consulting Ltd. All Rights Reserved. 3
自己紹介
• 名前
– 廣末 丈士(ひろすえ たけし)
• 仕事
– システム開発のリーダ、新技術検証
• 好きな技術・サービス
– Amazon Web Service
– Docker(コンテナ技術)
– Block Chain
- 4. Copyright © 2017 Bigtree Technology&Consulting Ltd. All Rights Reserved. 4
0 背景
1 DAppsとは
2 スマートコントラクトとは
3 エンタープライズでの利用について
4 課題
5 弊社の取り組み
6 スマートコントラクト基盤
7 デモ
アジェンダ
- 6. Copyright © 2017 Bigtree Technology&Consulting Ltd. All Rights Reserved. 6
ブロックチェーンは、世界中に点在するコンピューターにデータを分散することで、中央
集権を置かずに破壊・改ざんが困難なネットワークを作る技術です。
金融分野でBitCoinに代表されるブロックチェーンを用いた金融サービス開発が盛り上がり
を見せています。
ブロックチェーン技術を用いた非中央集権なアプリケーションで自動的に実行できる契約
(スマートコントラクト)を利用すると、ユーザ同士が直接取引を行うことができ、金融
分野のみならず非金融分野でも社会に大きな変化をもたらす可能性があると言われていま
す。
ここでは、スマートコントラクトによるブロックチェーンのエンタープライズでの活用に
ついて、ご説明させていただきます。
背景
- 8. Copyright © 2017 Bigtree Technology&Consulting Ltd. All Rights Reserved. 8
DAppsとは、ブロックチェーンを用いた自律分散型アプリケーション
=Decentraized Appliction
従来型のアプリは、中央集権型アプリケーション(Centraized Application)
代表例:ブロックチェーン上の仮想通貨のBitCoin
DAppsとは
ブロックチェーン上の
アプリケーション
- 9. Copyright © 2017 Bigtree Technology&Consulting Ltd. All Rights Reserved. 9
DAppsとは
• 中央管理者が必要
• 管理者を介した取引
• 中央管理者が不要
• P2P取引
• 参加者がネットワークの健全性を維持
• ネットワーク維持の対価はトークン
中央集権型アプリケーションと自立分散型アプリケーションの差異
- 10. Copyright © 2017 Bigtree Technology&Consulting Ltd. All Rights Reserved. 10
DAppsアプリケーション例(Storj : ストージ)
Storjとは、分散型クラウドストレージサービス
Amazon S3との差異は以下
• AWSが管理
• 3つ以上のデータセンタで冗長化
Storj
• 参加者の空きスペースにデータを分散化
• SJCXという独自トークンを対価にスペースを売買
• 管理者不在のため、利用料金が安い
- 11. Copyright © 2017 Bigtree Technology&Consulting Ltd. All Rights Reserved. 11
空容量を貸して、トークンを稼げます
トークンアドレスを入力して
パスを指定して
貸し出す容量を指定して
DAppsアプリケーション例(Storj : ストージ)
- 13. Copyright © 2017 Bigtree Technology&Consulting Ltd. All Rights Reserved. 13
スマートコントラクトとは、契約を自動化(プログラム)すること
例)自動販売機
• ユーザが購入したいジュースの代金を投入する
• 購入したいジュースのボタンを押す
上記2つの条件が合致すると自動的にジュースが出力される。
正しいジュースかどうかはユーザが自身で確認する。
スマートコントラクトとは
• 代金投入
• ジュースボタン押下
• 商品出力 • 商品確認
ブロックチェーン上のスマートコントラクトは、契約をプログラムで定義し、Bitcoinの
ような仮想通貨で取引する。契約のチェックも自動化する。
- 14. Copyright © 2017 Bigtree Technology&Consulting Ltd. All Rights Reserved. 14
ブロックチェーンで車の所有権を保持している場合の、車の売買スマートコントラクト
車のキーロック解除はスマートフォンで行う
BitCoinの移動で、車の所有権及びキーの自動移譲を実行するスマートコントラクトが適応できる
スマートコントラクトとブロックチェーン
決済と権利の移譲が自動的に完了可能となる
- 15. Copyright © 2017 Bigtree Technology&Consulting Ltd. All Rights Reserved. 15
スマートコントラクトのメリット
- 17. Copyright © 2017 Bigtree Technology&Consulting Ltd. All Rights Reserved. 17
スマートコントラクトは、金融分野以外の様々なシーンでの利用が検討されています。
特にIoTとの親和性が高く、洗濯機の洗剤の自動発注の例をAmazon Dashと比較してみ
ます。
エンタープライズ利用について
現在:Amazon Dash
少なくなったら、
ユーザがボタンプッシュで発注
AmazonのAPIを通じて発注。クレジット決済代行業者が決済を仲介する。
- 18. Copyright © 2017 Bigtree Technology&Consulting Ltd. All Rights Reserved. 18
エンタープライズ利用について
スマートコントラクト後
1. センサーで「洗剤の残量少ない」を検知
2. 洗濯機から小売店に自動発注(ビットコイン支払い)
3. 小売店は洗剤の発送通知を洗濯機に送信
4. 洗濯機から洗濯機の所有者に状況通知
IoTとAmazon Dashの技術の組み合わせで自動発注は可能だが、
洗濯機自身が関係者とP2Pで接続するのが大きな違い
洗濯機自身が自立して自身に関連する事象を解決できる
残量
検知
発注、代金支払
状況通知
洗濯機オーナー
小売店
発送通知
仲介者(クレジット決済代行業者)も必要ない
- 20. Copyright © 2017 Bigtree Technology&Consulting Ltd. All Rights Reserved. 20
The DAO 事件
The DAOとはStock.it社が立ち上げた自律分散型ファンド組織
The DAO 事件はコード脆弱性を突かれ、集めた資金の1/3の60億ほどの資金が想定外の形で勝手に移動された事件。
攻撃者が新しく分離して作成した子DAOに対して、60億相当を不正に移動した。
ユーザにとってより良い未来が想像できそうなスマートコントラクトですが一つの大きな
事件を紹介します。「The DAO 事件」です。
• そもそもバグのないプログラムを書くことは難しい
→パブリックチェーンはそもそも可能なのか?
• 分散プラットフォーム(仲介者不在)の概念との乖離
→コードのバグ等で誤った情報が書き込まれた際に、特例的にロールバックすることは分散プラットフォーム
(仲介者不在)の概念と乖離する。
■正常時 ■Attack時
- 21. Copyright © 2017 Bigtree Technology&Consulting Ltd. All Rights Reserved. 21
The DAO 事件
結局どうなったか?
「ソフトフォーク」(後方互換ありのアップデート:通常アップデート)
「ハードフォーク」(後方互換なしのアップデート:歴史の書き換え、ブロックチェーン分岐)
「何もしない」(分散プラットフォームの理念重視)
の3つの選択肢より、
ハードフォーク
ソフトフォーク
チェーン分岐
分岐後は、過去ノード無効
- 22. Copyright © 2017 Bigtree Technology&Consulting Ltd. All Rights Reserved. 22
The DAO 事件
Ethereumコミュニティの議論の結果、80%以上の賛成をもって、ハードフォークを選択しました。
重大な問題が起きた際はコミュニティが「安全装置」となることを示したため、
サービス基盤としては、活発化していくことが考えられます。
- 24. Copyright © 2017 Bigtree Technology&Consulting Ltd. All Rights Reserved. 24
アーキテクチャグループを中心にブロックチェーンの調査、ブロックチェーンを利用した
サービス提供を検討しています。
以下観点より、次ページの「ブロックチェーントラストサービス」の構築を検討中です。
弊社での取り組み
• ブロックチェーン乱立
→ビットコイン類似コインが数千種類存在、多数のブロックチェーン基盤が存在
• 企業間ブロックチェーンの整合性チェック
→政治的理由で繋げないブロックチェーン間の取引の整合性チェック
• スマートコントラクトの本番公開について
→ブロックチェーンのトランザクション不可逆性より、スマートコントラクトプログラムの脆
弱性の排除が必須。テスト基盤の提供等を検討。
- 25. Copyright © 2017 Bigtree Technology&Consulting Ltd. All Rights Reserved. 25
照合することで、取引Aと取引Bと帳合を確認できる
ブロックチェーントラストサービスのしくみ
新規取引A
ベリファイ
新規取引B
ベリファイ
BTC BC
利用者A 利用者B
ブロックチェーンプロバイダA ブロックチェーンプロバイダB
1. 取引の整合性チェック
2. テスト基盤提供:スマートコントラクト テスト基盤の提供
3. API公開:様々なブロックチェーンへの繋ぎこみをAPIを通じて隠蔽化
1.取引の整合チェック
3. APIの提供
2.テスト基盤提供
3. APIの提供
- 27. Copyright © 2017 Bigtree Technology&Consulting Ltd. All Rights Reserved. 27
スマートコントラクトを開発できるブロックチェーンとして、以下の例があります。
• Ethereum(イーサリアム)
• Hyperleder(ハイパーレジャー)
• mijin (ミジン)
スマートコントラクト基盤
Ethereum(イーサリアム)
スマートコントラクトのデファクトスタンダード。Bitcoinに次ぐ時価総額「Ether」を内部通貨として
利用。GMO社がPaasを提供している。後ほどデモで利用します。
Hyperleder (ハイパーレジャー)
Linux foundationが立ち上げたプロジェクト。IBM、富士通など産業界の様々なプレイヤーを巻き込ん
で共通のブロックチェーン構築を目指しています。参加者認証サービスを備える(プライベートブロッ
クチェーン)。Dockerコンテナでスマートコントラクトを実行可能。近日中にVersion1.0公開。
mijin(ミジン)
国産ブロックチェーン。テックビューロ社が開発。許可制ブロックチェーン(プライベートブロック
チェーン)でトランザクションの高速化を志向。さくらインターネット社がPassを提供している。
- 29. Copyright © 2017 Bigtree Technology&Consulting Ltd. All Rights Reserved. 29
EthereumでSolidityを用いて、スマートコントラクトを作成します
※Solidityとは、Ethereumでのスマートコントラクト開発言語の1つ。JavaScriptに類似。
コンパイラを用いSolidityで記載されたコードをEthereumの独自のVMで動作させるこ
とで、契約を自動化します
例:addで加算し、getで加算した数値を取得する単純なコントラクト
スマートコントラクトの作成
- 30. Copyright © 2017 Bigtree Technology&Consulting Ltd. All Rights Reserved. 30
環境の説明
デモでは単一ノードで、プライベートネットワークに接続し実行
→単一ノードでもトランザクション承認されます。
スマートコントラクトの作成
ノード
(ノード) (ノード)
スマート
コントラクト
プライベート
ネットワーク
- 31. Copyright © 2017 Bigtree Technology&Consulting Ltd. All Rights Reserved. 31
デモを試す手順
仮想化ソフトのVagrant及びVirtualBoxを利用することで簡単にethereumを試すことができます。
Quitaに手順を記載しましたので、興味のある方は参照して見てください。
http://qiita.com/takeshi_hirosue/items/c7d3aa5b845c72a37cd4
スマートコントラクトの作成
「BTC」で検索
- 32. Copyright © 2017 Bigtree Technology&Consulting Ltd. All Rights Reserved. 32
■コントラクト作成手順
1. コントラクトコードを一行展開
2. コンパイル
3. ABI変数に代入
4. オブジェクト作成
5. インスタンス作成
6. マイニング
スマートコントラクトの作成
- 33. Copyright © 2017 Bigtree Technology&Consulting Ltd. All Rights Reserved. 33
スマートコントラクトの作成
機械語に変換
2. コンパイル
Solidyでコンパイルします。
1. コントラクトコードを一行展開
コンパイルするには改行コードを除去する必要があります。
- 34. Copyright © 2017 Bigtree Technology&Consulting Ltd. All Rights Reserved. 34
スマートコントラクトの作成
3. ABI「Application Binray Interface」に代入
Ethereumにデプロイするには、コンパイル時に作成されたApplication Binary Interfaceを用います。
abiDefinition
- 35. Copyright © 2017 Bigtree Technology&Consulting Ltd. All Rights Reserved. 35
スマートコントラクトの作成
4. オブジェクト作成
Application Binary Interfaceを用いて、コントラクト・オブジェクトを作成します。
- 36. Copyright © 2017 Bigtree Technology&Consulting Ltd. All Rights Reserved. 36
スマートコントラクトの作成
作成しただけでは、
addressが未確定(未承認状態)
5. インスタンス作成
ブロックチェーンへ
トランザクション伝播
- 37. Copyright © 2017 Bigtree Technology&Consulting Ltd. All Rights Reserved. 37
スマートコントラクトの作成
6. マイニング
承認された
- 38. Copyright © 2017 Bigtree Technology&Consulting Ltd. All Rights Reserved. 38
スマートコントラクトの作成
コントラクトの利用
参照
トランザクション発行
gas : トランザクション発行の手数料、採掘者(マイナー)に支払われる
マイナーはgasが低いトランザクションは無視できる
- 39. Copyright © 2017 Bigtree Technology&Consulting Ltd. All Rights Reserved. 39
Truffleの紹介・デモ
コマンドラインでの作業は大変なため、
Ethereumでは開発を容易にする環境が多数用意されています。
Browser-SolidityやTruffle(トリュフ)が有名です。
TruffleはWeb開発を容易にする環境も公開されており、Truffleを用い簡単なデモを実施します。
<デモ内容>
独自トークンの受け渡しを画面で行います。
独自トークンの残高一覧を表示します。
承認された直近のトランザクション一覧を表示します。
GitHub
https://github.com/Thirosue/ethereum-sample
- 40. Copyright © 2017 Bigtree Technology&Consulting Ltd. All Rights Reserved. 40
Truffleの紹介・デモ
トークンの発行主体
参加者
承認された直近のトランザクション
画面構成
トランザクション発行