Share
Embed
ブロックチェーンの講演@東京工業大学
Thirosue
September 18, 2021
Transcript
40 slides
-
Copyright © 2017 Bigtree Technology&Consulting Ltd. All Rights Reserved. 2
今⽇のゴール ・ブロックチェーンをより⾝近に感じてもらう ・興味を持った⽅にちょっと動かしてみようと感じてもらう -
Copyright © 2017 Bigtree Technology&Consulting Ltd. All Rights Reserved. 3
⾃⼰紹介 • 名前 – 廣末 丈⼠(ひろすえ たけし) • 仕事 – システム開発のリーダ、新技術検証 • 好きな技術・サービス – Amazon Web Service – Docker(コンテナ技術) – Block Chain -
Copyright © 2017 Bigtree Technology&Consulting Ltd. All Rights Reserved. 4
0 背景 1 DAppsとは 2 スマートコントラクトとは 3 エンタープライズでの利⽤について 4 課題 5 弊社の取り組み 6 スマートコントラクト基盤 7 デモ アジェンダ -
Copyright © 2017 Bigtree Technology&Consulting Ltd. All Rights Reserved. 6
ブロックチェーンは、世界中に点在するコンピューターにデータを分散することで、中央 集権を置かずに破壊・改ざんが困難なネットワークを作る技術です。 ⾦融分野でBitCoinに代表されるブロックチェーンを⽤いた⾦融サービス開発が盛り上がり を⾒せています。 ブロックチェーン技術を⽤いた⾮中央集権なアプリケーションで⾃動的に実⾏できる契約 (スマートコントラクト)を利⽤すると、ユーザ同⼠が直接取引を⾏うことができ、⾦融 分野のみならず⾮⾦融分野でも社会に⼤きな変化をもたらす可能性があると⾔われていま す。 ここでは、スマートコントラクトによるブロックチェーンのエンタープライズでの活⽤に ついて、ご説明させていただきます。 背景 -
Copyright © 2017 Bigtree Technology&Consulting Ltd. All Rights Reserved. 8
DAppsとは、ブロックチェーンを⽤いた⾃律分散型アプリケーション =Decentraized Appliction 従来型のアプリは、中央集権型アプリケーション(Centraized Application) 代表例︓ブロックチェーン上の仮想通貨のBitCoin DAppsとは ブロックチェーン上の アプリケーション -
Copyright © 2017 Bigtree Technology&Consulting Ltd. All Rights Reserved. 9
DAppsとは • 中央管理者が必要 • 管理者を介した取引 • 中央管理者が不要 • P2P取引 • 参加者がネットワークの健全性を維持 • ネットワーク維持の対価はトークン 中央集権型アプリケーションと⾃⽴分散型アプリケーションの差異 -
Copyright © 2017 Bigtree Technology&Consulting Ltd. All Rights Reserved. 10
DAppsアプリケーション例(Storj : ストージ) Storjとは、分散型クラウドストレージサービス Amazon S3との差異は以下 • AWSが管理 • 3つ以上のデータセンタで冗⻑化 Storj • 参加者の空きスペースにデータを分散化 • SJCXという独⾃トークンを対価にスペースを売買 • 管理者不在のため、利⽤料⾦が安い -
Copyright © 2017 Bigtree Technology&Consulting Ltd. All Rights Reserved. 11
空容量を貸して、トークンを稼げます トークンアドレスを⼊⼒して パスを指定して 貸し出す容量を指定して DAppsアプリケーション例(Storj : ストージ) -
Copyright © 2017 Bigtree Technology&Consulting Ltd. All Rights Reserved. 13
スマートコントラクトとは、契約を⾃動化(プログラム)すること 例)⾃動販売機 • ユーザが購⼊したいジュースの代⾦を投⼊する • 購⼊したいジュースのボタンを押す 上記2つの条件が合致すると⾃動的にジュースが出⼒される。 正しいジュースかどうかはユーザが⾃⾝で確認する。 スマートコントラクトとは • 代⾦投⼊ • ジュースボタン押下 • 商品出⼒ • 商品確認 ブロックチェーン上のスマートコントラクトは、契約をプログラムで定義し、Bitcoinの ような仮想通貨で取引する。契約のチェックも⾃動化する。 -
Copyright © 2017 Bigtree Technology&Consulting Ltd. All Rights Reserved. 14
ブロックチェーンで⾞の所有権を保持している場合の、⾞の売買スマートコントラクト ⾞のキーロック解除はスマートフォンで⾏う BitCoinの移動で、⾞の所有権及びキーの⾃動移譲を実⾏するスマートコントラクトが適応できる スマートコントラクトとブロックチェーン 決済と権利の移譲が⾃動的に完了可能となる -
Copyright © 2017 Bigtree Technology&Consulting Ltd. All Rights Reserved. 17
スマートコントラクトは、⾦融分野以外の様々なシーンでの利⽤が検討されています。 特にIoTとの親和性が⾼く、洗濯機の洗剤の⾃動発注の例をAmazon Dashと⽐較してみ ます。 エンタープライズ利⽤について 現在︓Amazon Dash 少なくなったら、 ユーザがボタンプッシュで発注 AmazonのAPIを通じて発注。クレジット決済代⾏業者が決済を仲介する。 -
Copyright © 2017 Bigtree Technology&Consulting Ltd. All Rights Reserved. 18
エンタープライズ利⽤について スマートコントラクト後 1. センサーで「洗剤の残量少ない」を検知 2. 洗濯機から⼩売店に⾃動発注(ビットコイン⽀払い) 3. ⼩売店は洗剤の発送通知を洗濯機に送信 4. 洗濯機から洗濯機の所有者に状況通知 IoTとAmazon Dashの技術の組み合わせで⾃動発注は可能だが、 洗濯機⾃⾝が関係者とP2Pで接続するのが⼤きな違い 洗濯機⾃⾝が⾃⽴して⾃⾝に関連する事象を解決できる 残量 検知 発注、代⾦⽀払 状況通知 洗濯機オーナー ⼩売店 発送通知 仲介者(クレジット決済代⾏業者)も必要ない -
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時 -
Copyright © 2017 Bigtree Technology&Consulting Ltd. All Rights Reserved. 21
The DAO 事件 結局どうなったか︖ 「ソフトフォーク」(後⽅互換ありのアップデート︓通常アップデート) 「ハードフォーク」(後⽅互換なしのアップデート︓歴史の書き換え、ブロックチェーン分岐) 「何もしない」(分散プラットフォームの理念重視) の3つの選択肢より、 ハードフォーク ソフトフォーク チェーン分岐 分岐後は、過去ノード無効 -
Copyright © 2017 Bigtree Technology&Consulting Ltd. All Rights Reserved. 22
The DAO 事件 Ethereumコミュニティの議論の結果、80%以上の賛成をもって、ハードフォークを選択しました。 重⼤な問題が起きた際はコミュニティが「安全装置」となることを⽰したため、 サービス基盤としては、活発化していくことが考えられます。 -
Copyright © 2017 Bigtree Technology&Consulting Ltd. All Rights Reserved. 24
アーキテクチャグループを中⼼にブロックチェーンの調査、ブロックチェーンを利⽤した サービス提供を検討しています。 以下観点より、次ページの「ブロックチェーントラストサービス」の構築を検討中です。 弊社での取り組み • ブロックチェーン乱⽴ →ビットコイン類似コインが数千種類存在、多数のブロックチェーン基盤が存在 • 企業間ブロックチェーンの整合性チェック →政治的理由で繋げないブロックチェーン間の取引の整合性チェック • スマートコントラクトの本番公開について →ブロックチェーンのトランザクション不可逆性より、スマートコントラクトプログラムの脆 弱性の排除が必須。テスト基盤の提供等を検討。 -
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の提供 -
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を提供している。 -
Copyright © 2017 Bigtree Technology&Consulting Ltd. All Rights Reserved. 29
EthereumでSolidityを⽤いて、スマートコントラクトを作成します ※Solidityとは、Ethereumでのスマートコントラクト開発⾔語の1つ。JavaScriptに類似。 コンパイラを⽤いSolidityで記載されたコードをEthereumの独⾃のVMで動作させるこ とで、契約を⾃動化します 例︓addで加算し、getで加算した数値を取得する単純なコントラクト スマートコントラクトの作成 -
Copyright © 2017 Bigtree Technology&Consulting Ltd. All Rights Reserved. 30
環境の説明 デモでは単⼀ノードで、プライベートネットワークに接続し実⾏ →単⼀ノードでもトランザクション承認されます。 スマートコントラクトの作成 ノード (ノード) (ノード) スマート コントラクト プライベート ネットワーク -
Copyright © 2017 Bigtree Technology&Consulting Ltd. All Rights Reserved. 31
デモを試す⼿順 仮想化ソフトのVagrant及びVirtualBoxを利⽤することで簡単にethereumを試すことができます。 Quitaに⼿順を記載しましたので、興味のある⽅は参照して⾒てください。 http://qiita.com/takeshi_hirosue/items/c7d3aa5b845c72a37cd4 スマートコントラクトの作成 「BTC」で検索 -
Copyright © 2017 Bigtree Technology&Consulting Ltd. All Rights Reserved. 32
▪コントラクト作成⼿順 1. コントラクトコードを⼀⾏展開 2. コンパイル 3. ABI変数に代⼊ 4. オブジェクト作成 5. インスタンス作成 6. マイニング スマートコントラクトの作成 -
Copyright © 2017 Bigtree Technology&Consulting Ltd. All Rights Reserved. 33
スマートコントラクトの作成 機械語に変換 2. コンパイル Solidyでコンパイルします。 1. コントラクトコードを⼀⾏展開 コンパイルするには改⾏コードを除去する必要があります。 -
Copyright © 2017 Bigtree Technology&Consulting Ltd. All Rights Reserved. 34
スマートコントラクトの作成 3. ABI「Application Binray Interface」に代⼊ Ethereumにデプロイするには、コンパイル時に作成されたApplication Binary Interfaceを⽤います。 abiDefinition -
Copyright © 2017 Bigtree Technology&Consulting Ltd. All Rights Reserved. 35
スマートコントラクトの作成 4. オブジェクト作成 Application Binary Interfaceを⽤いて、コントラクト・オブジェクトを作成します。 -
Copyright © 2017 Bigtree Technology&Consulting Ltd. All Rights Reserved. 36
スマートコントラクトの作成 作成しただけでは、 addressが未確定(未承認状態) 5. インスタンス作成 ブロックチェーンへ トランザクション伝播 -
Copyright © 2017 Bigtree Technology&Consulting Ltd. All Rights Reserved. 37
スマートコントラクトの作成 6. マイニング 承認された -
Copyright © 2017 Bigtree Technology&Consulting Ltd. All Rights Reserved. 38
スマートコントラクトの作成 コントラクトの利⽤ 参照 トランザクション発⾏ gas : トランザクション発⾏の⼿数料、採掘者(マイナー)に⽀払われる マイナーはgasが低いトランザクションは無視できる -
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 -
Copyright © 2017 Bigtree Technology&Consulting Ltd. All Rights Reserved. 40
Truffleの紹介・デモ トークンの発⾏主体 参加者 承認された直近のトランザクション 画⾯構成 トランザクション発⾏