Slide 1

Slide 1 text

IBM Developer Dojo Blockchain/Hyperledger Fabric ⼊⾨編 Yasushi Osonoi Developer Advocate

Slide 2

Slide 2 text

小薗井 康志 日本IBM Developer Advocacy Group, Client Developer Advocate ブログ: https://qiita.com/osonoi (Qiita) https://blogs.itmedia.co.jp/osonoi/ (IT Media) Twitter: @osonoi Facebook: @osonoi 珍しい名前なのでたいがい “osonoi”で発見できます。

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

出席の確認にこちらからログインしてください。 IBM Cloud へのアクセスは上記URLから行ってください https://ibm.biz/BdqJzx • IBM Cloud ログイン アカウントをすでにお持ちの方は、 こちらからログインしてください • IBM Cloud ライトアカウント作成 アカウントをお持ちでない方は、 ご登録をお願いします 【本⽇のお願い】

Slide 5

Slide 5 text

質問&ライブ投票参加 はこちら slido.com #dojo1111 質問タブで質問⼊⼒ ⾃分も知りたい質問には 「いいね」をプッシュ! スマホでもアクセスできます PC,マックの場合は https://app.sli.do/event/wzt4qn5t

Slide 6

Slide 6 text

質問する場合はこちらから

Slide 7

Slide 7 text

学習の⽬的とゴール ⽬的 Blockchainの概要について理解する。 ゴール IBM Blockchain Platformを使っての Hyperledger Fabricのネットワーク構築⽅ 法を理解する このコースを学ぶ⽅の想定スキル Webアプリケーション開発経験者の⽅、 データベースの知識をお持ちの⽅

Slide 8

Slide 8 text

⽬次 1. ブロックチェーンとは 2. ブロックチェーン技術について 3. Hyperledger Fabric 4. IBM Blockchain Platform (IBP)

Slide 9

Slide 9 text

1. ブロックチェーンとは 2. ブロックチェーン技術について 3. Hyperledger Fabric 4. IBM Blockchain Platform (IBP)

Slide 10

Slide 10 text

10 10 • Hyperledger Fabric v1.0(商⽤版) • Hyperledgerメンバー 100+ • ウォルマート、BC⾷品 トレーサビリティ • ブロックチェーン推進協会 (BCCC)発⾜ • ⽇本ブロックチェーン協会 (JBA)発⾜ • IBM BCクラウドサービ ス、Garage開始 • 経済産業省 BCレポート • イーサリウムプロジェ クト開始 • R3プロジェクト開始 • マウントゴックス事 件 • Dell、Expediaがビ ットコインの受付開 始 • ビットコイン 運⽤開始 ブロックチェーンの歴史︓ 仮想通貨からビジネス・ブロックチェーンへ 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 • サトシ・ナカモト ビットコイン論⽂ 発表 • キプロス⾦融危 機にてビットコ イン価格急騰 • Hyperledgerプロジェクト 開始 • JPX、みずほFG 等国内⾦融機関で BC実証実験 • マースク、BC物流サプラ イチェーン • 他、⾦融/⾮⾦融でのBC 広がり BC:ブロックチェーン 2018 ビジネス・ブロックチェーンが 実証実験から本番運⽤へ 2019 スマート コントラクト ブロック PoW コンソーシアム型

Slide 11

Slide 11 text

11 11 市場に浸透していくことが予想されるブロックチェーン Itmedia エンタープライズ https://www.itmedia.co.jp/enterprise/articles/1910/21/news070.html 仮想通貨Watch https://crypto.watch.impress.co.jp/docs/news/1213441.html

Slide 12

Slide 12 text

12 12 市場に浸透していくことが予想されるブロックチェーン 【2020年】ブロックチェーンの市場規模は?複数の統計をまとめましたhttps://trade-log.io/blog/616/ 経済産業省の商務情報政策局 情報経済課

Slide 13

Slide 13 text

13 ブロックチェーンとは︓分散台帳技術 (DLT: Distributed Ledger Technology) • ネットワークの全取引の履歴を記録する台帳を、それぞれの参加者が持つ • ブロックチェーン技術を⽤いて台帳管理を⾮集中化することにより、各種取引の期間・コスト・脆弱性を 改善することが期待されている 保険会社 監査 規制当局 企業A 銀⾏ 企業B Blockchain • 全ての参加者は複製された同じ内容の台帳を保持 • デジタル署名/暗号化された取引と台帳 • 参加者により取引が検証され合意形成により台帳を更新 保険会社 監査 規制当局 企業A 銀⾏ 企業B l 各参加者が個別内容の台帳を保有 l 決済機関等による集中データ管理 l 各社システム間での個別のデータ連携 l すべての参加者が同一内容の台帳を保有 l 管理主体を持たない非集中・分散データ管理 l ブロックチェーン機能による統一されたデータ連携 与信システムの構築・連携実績 ブロックチェーンでの台帳管理 A社 台帳 B社 台帳 分散 台帳 分散 台帳 分散 台帳 分散 台帳 分散 台帳 分散 台帳 電⼦化・共有されたビジネス・ルール スマートコントラクト 参加者の合意形成による信頼性の担保 コンセンサス ブロック=取引記録の連鎖 ブロックチェーン

Slide 14

Slide 14 text

1. ブロックチェーンとは 2. ブロックチェーン技術について 3. Hyperledger Fabric 4. IBM Blockchain Platform (IBP)

Slide 15

Slide 15 text

データ(台帳)を分散して持っています。 中央管理(従来のデータベース) Blockchain (データを分散管理する) 台帳 (Ledger) Blockchainの台帳、取引があるとブロックが追加されていく(チェーンでつながったブロック)

Slide 16

Slide 16 text

16 © 2018 IBM Corporation • 同じ値が出⼒(ハッシュ値)︓同じ値の場合は、同じ値が出⼒される。1⽂字でも異なれば、原則全 く無関係の値が出⼒される。⼊⼒データを改ざんするとハッシュ値が変わるため、全く無関係の値が 出⼒されることになり、改ざんの防⽌ができる • ⼀⽅向性︓ハッシュ値から、元の⼊⼒データを推測することは困難 • 固定出⼒値︓⼊⼒値の⻑さに関わらず、固定⻑の出⼒値が出⼒ AからBに $100送ります AからCに $100送ります ハッシュ関数 (SHA-256) 25F62A5A3D414EC6E209 07DF7F367F2B72625AAD E552DB64C07933F6044F C49A 7A55DDE3EEBE5AC95E8 E41A0FD1085B9241A1D9 D7FBC6F72A63BB802F64 09FD ⼊⼒データ(メッセージ) 固定⻑のハッシュ値 SHA-256は「Secure Hash Algorithm 256-bit」の略、256ビット(32バイト)⻑のハッシュ値、16進数で64桁 ブロックチェーンの要素技術 「ハッシュ関数」

Slide 17

Slide 17 text

17 © 2018 IBM Corporation ブロックチェーンの要素技術 「ブロック」 • 各ブロックのヘッダーには親ブロックのブロックハッシュが含まれており、ハッシュ値が編みこまれて いくイメージ • 途中で改ざんすると、当該ハッシュ値が正当な値ではないことが、即座に確認可能 b(0) b(1) b(2) b(3) b(4) 0~1の間に発⽣した トランザクション 0番⽬のブロック 1番⽬のブロック 2番⽬のブロック 3番⽬のブロック 未承認 トランザクション 1~2の間に発⽣した トランザクション 2~3の間に発⽣した トランザクション ハッシュ値 ハッシュ値 ハッシュ値 トランザクション = 取引 取引が正しいことを合意する“コンセンサス”を取りながらブロックが作られていく。 コンセンサス コンセンサス コンセンサス コンセンサス

Slide 18

Slide 18 text

18 © 2018 IBM Corporation ビットコインでの「コンセンサス」 Proof-of-Work Proof-of-Stake Proof-of-Importance 特徴 仕事量による合意形成 所有量による合意形成 重要度による合意形成 メリット 取引の改ざんに強い PoWのデメリットを解消でき る 流動性を担保(極端に貧 富の差が生まれない) デメリット - 電気代が高くつく - 51%を占有されると改ざん され得る 流動性を損なう 貧富の差が生まれる 極端には生まれないかも しれないが、貧富の格は 存在する 利用例 Bitcoin, Monero, Zcash ADA, NEXT, Ethereum (今後) nem • コンセンサス = 取引が正しいことを合意する⽅法 • ビットコインにおいては、勝利者がまとめたブロックに対して、計算の解(Proof-of-Work) を出すマイニングに参加した利⽤者それぞれが内容を検証し、「問題ない」と判断すること • 「問題ない」と判断されたブロックは既存のブロックと接続されて保存される コンセンサス・アルゴリズムの代表的な種類

Slide 19

Slide 19 text

19 © 2018 IBM Corporation ビットコインにおける「ブロック」⽣成と書き込み b(0) b(1) b(2) 0~1の間に発⽣した トランザクション 10分 ブロック(0) 10分 ブロック(1) 10分 ブロック(2) 10分のブロック(3) 1~2の間に発⽣した トランザクション ハッシュ値 ハッシュ値 ハッシュ値 取引記録 入金 出金 直前のブロックのハッシュ値(ダイジェスト) ノンス 取引記録 入金 出金 : • ビットコインの参加者に課される「計算競争」 • トランザクション・プールに⼊っている取引データ、前のブロックのハッシュ値、タイム スタンプを「ブロック」に詰め、「ノンス」と呼ばれる適当な数を⼊れながら、そのブ ロックの先頭に所定の数だけ「0」が並ぶ条件を満たす「ノンス」(nonce)を発⾒する 出典: 国立情報学研究所ニュース [NII Today] 第69号 平成27年9月 「仮想通貨の技術と課題」

Slide 20

Slide 20 text

20 © 2018 IBM Corporation ビットコインにおける「インセンティブ」と「マイニング」 • 計算競争のインセンティブは、ビットコインの報酬 • 計算競争が⾏われるたびに⼀定額(*)のビットコインが新規発⾏され、直近約10分間に⾏われ た取引の⼿数料とともに、計算競争の勝利者のものとなる。これがあたかも⾦の採掘のようであ ることから、計算競争は「採掘(マイニング)」と呼ばれている • 計算競争の敗者は、勝利者の計算とブロックへの書き込みを検証する • 参加者は再び次のブロックでの「計算競争」に戻る 図の出典: http://cryptocurrency-life.com/archives/85 * ビットコインではマイニング報酬が決まっており、 約4年ごとに報酬が半分になる「半減期」がありま す。2018年9⽉時点の報酬は12.5BTCで、次の半 減期には6.25BTCになる予定です。 インセンティブ= 新たに発行されるビットコイン + 10分間の手数料

Slide 21

Slide 21 text

21 © 2018 IBM Corporation 計算競争の仕組み 21 ハッシュ関数 (SHA-256) 0000000000000000E209 07DF7F367F2B72625AAD E552DB64C07933F6044F C49A ⼊⼒データ(メッセージ) 固定⻑のハッシュ値 取引記録 入金 出金 直前のブロックのハッシュ値(ダイジェスト) ノンス 取引記録 入金 出金 : 固定値 固定値 難易度は変動する ビットコイン、マイニングの難易度が2018年1月以来の高水準 https://www.coindeskjapan.com/67008/ ハッシュ値の先頭に0がいく つか並ぶようにノンスの値を 計算によって見つける 膨大な計算量

Slide 22

Slide 22 text

22 © 2018 IBM Corporation 「スマート・コントラクト」 • 1990年代にNick Szaboという法学者・暗号学者によって最初に提唱 • ⾃動販売機の例 • 狭義〜広義でいろいろな説明(⾒⽅)がある︓ • プログラムコード︓ビジネス・ルールのプログラム化 • 契約(コントラクト)の⾃動執⾏ • 執⾏条件と契約内容を事前に定義し、条件に合致 したイベントが発⽣すると⾃動執⾏する • DAO(Decentralized Autonomous Organization) 実現のための主要概念 • 契約に基づく取引内容をプログラムで定義し、契約条件の確認や履⾏を⾃動で実⾏する 仕組み

Slide 23

Slide 23 text

23 © 2018 IBM Corporation スマートコントラクトの流れ 23 契約の定義 取引発生 契約確認 資産移動など 取引成立 スマートコントラクト(プログラム)による自動実行 予め管理者が設定

Slide 24

Slide 24 text

24 © 2018 IBM Corporation ブロックチェーンの4つの技術要素 スマート・ コントラクト 処理の⾃動化 セキュリティ 改ざん防⽌ プライバシー 分散台帳 同じ取引記録 を共有 コンセンサス 参加者の合意 形成による 信頼性を担保 電⼦署名や認証機能により 参加者間の匿名性を確保し たり取引内容のプライバ シーを保護する仕組み ビジネス・ロジックによる 処理の⾃動化や、柔軟な 台帳の活⽤を実現する為の 仕組み 分散ノード間で取引の完全 性をシステム的に検証し、 保障する仕組み ビジネス・ネットワーク上 の参加者間で共有される 取引データ台帳 ブロックチェーンは「分散台帳」「スマート・コントラクト」「コンセンサス」「セキュリティ」の4 つの技術要素で構成されています。

Slide 25

Slide 25 text

1. ブロックチェーンとは 2. ブロックチェーン技術について 3. Hyperledger Fabric 4. IBM Blockchain Platform (IBP)

Slide 26

Slide 26 text

26 ブロックチェーン技術の位置付け コンソーシアム /標準化団体 パブリック コンソーシアム /プライベート 暗号通貨 仮想通貨 仮想通貨 (ビジネス・ユースケース) 汎⽤的な利⽤ ビジネス向けブロックチェーン

Slide 27

Slide 27 text

27 ビジネス向けの許可制ブロックチェーン Hyperledger Fabric 暗号通貨 ⾮暗号通貨 パブリック型 コンソーシアム型/ プライベート型 • 誰でも参加可能 (パブリック) ü 悪意のある参加者 • 仮想通貨ベース ü 取引⼿数料の考慮 • マイニングによる合意形成 ü 処理能⼒の制約 • スマート・コントラクト (Ethereum) 許可制ブロックチェーン パブリック/仮想通貨ベース • 特定された複数の会社や組織をまたが る業務に適⽤ • スマート・コントラクト (共有されたビジネス・プロセスを 合意に基づき実⾏) • セキュリティとプライバシー • ⾼い処理性能 ü スループットとレスポンス 共有された ビジネス・ プロセス ⾼信頼の 分散台帳

Slide 28

Slide 28 text

28 Hyperledger Fabric Project について • Hyperledger Fabric とはブロックチェーン・フレームワークの実装であり、The Linux Foundation が主催する HHyperledger project の⼀つ • Foundation ではモジュラー型のアーキテクチャーでの業務やソリューションの開発を⽬指している – コンセンサス、メ ンバーシップ・サービスなどをプラグアンドプレイでことを想定 • Hyperledger Fabricではコンテナ技術を活⽤し、”チェーンコード”と呼ばれるスマートコントラクト(アプリケーショ ンロジック)を稼働させる。Hyperledger Fabric は最初、Digital Asset及びIBM から最初のハッカソンの結果として提 供された https://www.hyperledger.org/

Slide 29

Slide 29 text

29 主なブロックチェーン技術間での⽐較 Hyperledger Fabric Ethereum Bitcoin 主なユースケース 汎⽤ 汎⽤ Settlement (コードの)ガバナンス Linux Foundation Ethereum 開発者 Bitcoin 開発者 暗号通貨 なし Ether BTC マイニング なし あり (PoW, PoS) あり (PoW) コンセンサス・ネットワーク/ ⽅法 Endorsement, Ordering, Validationフェーズ マイニング マイニング ネットワーク参加者 プライベート (許可された者のみ) パブリック / プライベート パブリック ファイナリティ あり -トランザクション終了時確定 -これにより秒数千件処理実績あり あいまい あいまい 台帳データのスナップショット Key-Value DB (world state) で提供 World state in blocks で提供 なし プライバシー 許可されたユーザーのみ参加可能 オープン オープン スマートコントラクトを 記述するプログラミング⾔語 JavaScript / Go / Java (major languages) Solidity (special language) N/A

Slide 30

Slide 30 text

30 Hyperledger fabricでのコンセンサス Endorsement フェーズ Endorsement フェーズではクライアントが Endorsing Peer にランザクションを送付し、Endorsement Policy がその トランザクションをシミュレーションして、自身の署名を加えて、クライアントに返信します。Endorsing Peer はシ ミュレーションをする際に、送信元のクライアントの証明書が有効かどうか、対象のチャネルに対してアクセス することができる権限があるかどうか等のチェックもしています。 Ordering フェーズ Ordering フェーズでは、クライアントが Ordering Service にトランザクションを送付します。このトランザクション には、Endorsing Peer がシミュレーションした結果の情報と Endorsing Peer の署名、チャネル ID 等が含まれて 居ます。Ordering Service では受け取ったトランザクションをチャネルごとに順序付してブロックにパッケージン グし、Committing Peer にブロックを送付します。チャネルについては第 2 回の記事をご確認ください。 Validation フェーズ Validation フェーズでは Ordering Service から受け取ったトランザクションを Committing Peer が検証します。 Committing Peer は Endorsement Policy を満たしているか、複数のトランザクションが同じ値を更新して競合し ていないか (MVCC 検証) を検証します。検証の結果、問題なければ、Committing Peer はブロックを台帳に書 き込み、ステート DB を更新します。

Slide 31

Slide 31 text

31 A→B メーカー︓〇〇 ⾞種︓XXX トランザクションの結果をみんなで共有 ※実際は平⽂ではないです トランザクションが発⽣すると A→B メーカー︓〇〇 ⾞種︓XXX A→B メーカー︓〇〇 ⾞種︓XXX A→B メーカー︓〇〇 ⾞種︓XXX A→B メーカー︓〇〇 ⾞種︓XXX A→B メーカー︓〇〇 ⾞種︓XXX A→B メーカー︓〇〇 ⾞種︓XXX A→B メーカー︓〇〇 ⾞種︓XXX

Slide 32

Slide 32 text

32 トランザクション依頼 所有権移転したぜー 問題ないかチェックよろ︕ スマート・コントラクト実⾏︕ 確認終えたら署名してな︕ 検証 (スマート・コントラクト実⾏) 俺たちPeerの中でも 選ばれし者 エンドーサー 俺Orderer (順序付けする⼈) トランザクションのコミット順を決定 実⾏するためのバッチを送信 参加者達がトランザクションを コミットして各⾃のブロックを⽣成 トランザクション実⾏するよ︕ HHyperledgerでのコンセンサス 1. 2. 4. 俺クライアント 署名の数が条件満たしたら トランザクションをサブミット︕ 3. 確認したよー 確認してねー 俺たちPeer ブロック作るよー 5. Endorsement フェーズ Ordering フェーズ https://developer.ibm.com/jp/tutorials/cl-hyperledger-fabric-basic-3/

Slide 33

Slide 33 text

33 Hyperledger Fabric におけるコンセンサスの流れ

Slide 34

Slide 34 text

34 Aさん (クライアント) トランザクションを発⾏ (= 所有権移転処理の呼び出し) Hyperledger Fabricではチェーンコードという形でスマートコントラクトを実装 チェーンコードに処理プログラムを記述する トランザクション AからBに 資産xyz123を移転 Hyperledger Fabricネットワーク AさんのPeer チェーンコード 処理(プログラム): •作成 …........ •所有権移転 …...... •属性変更 …....... 資産ID:xyz123 ・所有者︓A-san ・タイプ: ⾃動⾞ ・登録情報: xxxxxx CさんのPeer2 チェーンコード 処理(プログラム): •作成 …........ •所有権移転 …...... •属性変更 …....... 資産ID:xyz123 ・所有者︓ A-san ・タイプ: ⾃動⾞ ・登録情報: xxxxxx BさんのPeer3 チェーンコード 処理(プログラム): •作成 …........ •所有権移転 …...... •属性変更 …....... 資産ID:xyz123 ・所有者︓ A-san ・タイプ: ⾃動⾞ ・登録情報: xxxxxx プログラム⾔語は JavaScript, Typescriptなどに対応 Bさん (クライアント) Orderer CA(認証局) スマート・コントラクト (Hyperledger Fabricの例)

Slide 35

Slide 35 text

35 • メンバーシップ・サービス – アイデンティティー管理、アクセス制御を実施 • エンロールメント証明書(Ecert) – ユーザーの⾝元を特定する証明書 • 許可制アクセス – Ecertで署名され、出所が明らかなトランザク ションのみ実⾏ - エンロールメント - 証明書(Ecert)の要求 Hyperledger Fabric ブロックチェーン ユーザー A 利⽤ Ecert トランザクションを起動 (Ecertで署名) エンロールメント証明書 (Ecert) U U 利⽤ ü Client Application SDK Client Application SDK メンバーシップ サービスプロバイダAPI 認証局 ブロックチェーン ユーザー B トランザクションを起動 (Ecertで署名) エンロールメント 証明書 (Ecert) ブロックチェーンネットワークに参加できるのは 認証局が発⾏した証明書を持ってるユーザーだけ 認証局

Slide 36

Slide 36 text

36 アプリケーション開発での環境 チェーンコード、クライアントアプリケーションのSDKが⽤意されている ブロックチェーンI/F SDK(HFC)for Node.js アプリケーション メイン Web I/F Hyperledger Fabric Peer 台帳 Peer Peer チェーン コード チェーン コード チェーン コード 台帳 台帳 Node.jsクライアントアプリケ ーション express ブロックチェーン基盤 チェーンコード開発 VSCode Extension JavaScript, Typescript, Java, Go,.. SDK(HFC)によるブロックチェーンアプリケーシ ョン開発 ・Peerの追加 ・チャネルの作成 ・チェーンコードのデプロイ ・トランザクションの発⾏… etc.. etc.. 開発 トランザクション

Slide 37

Slide 37 text

37 Hyperledger Fabricだと、台帳の共有範囲を設定することができ、 データのプライバシーを強化することができる セキュリティ(プライバシー) チャネル ⼀部の参加者によるプライベートな データ共有が可能なんだぜ︕ チャネル1(全員) チャネル2(A社、C社、D社のみ) 台帳X 台帳X 台帳X 台帳X 台帳Y 台帳Y 台帳Y チェーン コードX チェーン コードX チェーン コードX チェーン コードX チェーン コードY チェーン コードY チェーン コードY A社 Peer B社 Peer C社 Peer D社 Peer 台帳Z チェーン コードZ チャネル3(B社、C社、D社のみ) 台帳Z チェーン コードZ 台帳Z チェーン コードZ

Slide 38

Slide 38 text

38 Hyperledger Fabric ⼊⾨ https://developer.ibm.com/jp/tutorials/cl-hyperledger-fabric-basic-1/

Slide 39

Slide 39 text

39 IBM Blockchain / © 2018 IBM Corporation 39 Hyperledger Fabricのロードマップ • Channels • Selective endorsement • SOLO/Kafka orderers • LevelDB or CouchDB • Javascript chaincode • Connection profile • Encryption library • Attribute access control • CouchDB indexes • Channel based events • ACLs • Service discovery • Pluggable endorsement and validation • Private Data Collections • State based endorsement • Java chaincode • CouchDB pagination • Identity Mixer • Burrow EVM • Operational metrics and logging • SDK and shim improvements • Burrow EVM Enhancement • Long Term Service (LTS) support 07/17 03/18 06/18 10/18 4Q/18 * 3Q/19 * v1 v1.1 v1.2 v1.3 v1.4 v2.0 • Local collections • SDK improvements • Lifecycle changes • Revocation for Idemixer • Digital Token • RAFT https://github.com/hyperledger/fabric/releases

Slide 40

Slide 40 text

40 Hyperledger Fabric 2.0 新機能 1. スマートコントラクトの分散型ガバナンス 2. コラボレーションとコンセンサスのための新しいチェーンコードアプリケーションパターン 3. プライベートデータの機能強化 4. 外部チェーンコードランチャー 5. CouchDBのパフォーマンスを向上させるState Databaseキャッシュ 6. AlpineベースのDockerイメージ 7. サンプルテストネットワーク 参照︓ https://hyperledger-fabric.readthedocs.io/en/release-2.0/whatsnew.html v2.0では、チェーンコードのライフサイクルがより分散管理を意識 した仕様になっていたり、PDCの機能拡張や、チェーンコードコン テナをkubernetesの管理下に置けるようになったなどです。 その他にkafka ordererのdeprecationによるraftへの移⾏の推進な どが発表されています。

Slide 41

Slide 41 text

Linux Foundation Blockchainの情報はこちらです。 https://www.hyperledger.org/

Slide 42

Slide 42 text

1. ブロックチェーンとは 2. ブロックチェーン技術について 3. Hyperledger Fabric 4. IBM Blockchain Platform (IBP)

Slide 43

Slide 43 text

43 43 Aug 2015 IBM starts developing first prototype of blockchain technology (Open Blockchain); first client engagements Feb 2016 IBM becomes a founding member of Linux Foundation Hyperledger; donates code and intellectual property Jun 2016 IBM opens first blockchain garages for clients; Hyperledger Fabric v0.6 released Dec 2016 Number of IBM blockchain client engagements now totals over 400 Feb 2018 IBM Blockchain Platform Starter Plan announced at THINK Jul 2017 Fabric 1.0 released; IBM Blockchain Platform announced soon after Nov 2018 IBM introduces hybrid and multi-cloud networks Jun 2020 IBM Blockchain Platform free 2.5 IBMは⻑くブロックチェーンに参画 Hyperledger 2.0 OpenShift 4.3

Slide 44

Slide 44 text

44 詳細はこちらを https://cloud.ibm.com/docs/blockchain-sw-25?topic=blockchain-sw-25-get-started-console-ocp

Slide 45

Slide 45 text

45 IBM Blockchainの情報はこちらです。 https://www.ibm.com/jp-ja/blockchain

Slide 46

Slide 46 text

46 46 https://www-01.ibm.com/common/ssi/ShowDoc.wss?docURL=/common/ssi/rep_ca/2/760/JAJPJP20-0332/index.html

Slide 47

Slide 47 text

47 47 IBMの提供するソリューションとプラットフォーム Blockchain Solutions - Blockchainを内包したSaaS型ア プリ (IBM Blockchain Platform を別途購⼊の必要はない) グローバル・インダストリー・プラットフォーム TradeLens IBM Food Trust IBM World Wire Trusted Identity (we.trade) IBM Blockchain Platform (IBP - 2種類) - for IBM Cloud - for Multicloud IBMブロックチェーン・プラットフォーム v2 • IBM® Blockchain PlatformはIBMが運⽤するフルスタックのblockchain- as-a-service (BaaS) を提供 • ブロックチェーンのためのコンポーネントをお客様の要望に合わせて下記の ような環境で提供 IBM Cloud, IBM Cloud Privateの元でのオンプレミス Amazon Web Services (AWS)のような他社提供のクラウド Hyperledger Project Open blockchain technology for enterprise 仮想通貨watchの記事

Slide 48

Slide 48 text

1. ブロックチェーンとは 2. ブロックチェーン技術について 3. Hyperledger Fabric 4. IBM Blockchain Platform (IBP)

Slide 49

Slide 49 text

FabCar Blockchain Sample(日本語) https://github.com/IBM/fabcar-blockchain- sample/blob/master/README-ja.md 作 業 自 体 は 無 償 の Kubernetesで も 作 業 で き ま す が ア カ ウ ン ト は 有 償 ア カ ウ ン ト が 必 要 で す 。

Slide 50

Slide 50 text

実際のアプリケーション 車の登録、所有者の変更が行えます。

Slide 51

Slide 51 text

ハンズオンの流れ IBM Cloudアカウント作成 有料アカウント(PAYG)へのアップグレード スマートコントラクトのパッケージ化 Gitハブからソースをローカル環境(PC)にクローン VScodeを使ってパッケージ化 IBP(IBM Block chain)サービスの追加(無料) IBP上にネットワークを作成 CA,Peer, Oerderer ,channelなどを作成 スマートコントラクトをネットワークにデプロイ アプリケーションからブロックチェーン ネットワークに接続、動作確認

Slide 52

Slide 52 text

質問&ライブ投票参加 はこちら slido.com #dojo1111 質問タブで質問⼊⼒ ⾃分も知りたい質問には 「いいね」をプッシュ! スマホでもアクセスできます PC,マックの場合は https://app.sli.do/event/wzt4qn5t

Slide 53

Slide 53 text

Questions? Tweet us or go to ibm.com/blockchain @IBMBlockchain IBM Blockchain IBM Blockchain Thank you Yasushi Osonoi (@osonoi) IBM Developer Advocacy Tokyo Team Client Developer Advocate

Slide 54

Slide 54 text

https://www-01.ibm.com/common/ssi/ShowDoc.wss?docURL=/common/ssi/rep_ca/2/760/JAJPJP20- 0332/index.html 参考リンク集

Slide 55

Slide 55 text

https://www.slideshare.net/Hyperledger_Toky o/hyperledger-fabric-238734015

Slide 56

Slide 56 text

https://developer.ibm.com/jp/patterns/blockchain-postgres-fabric-certificate-wallet/ Fabric 証明書を保管するためのデフォルトのファイル・システム・ウォレットをデータ ベース(PostgreSQL)に置き換え

Slide 57

Slide 57 text

https://developer.ibm.com/jp/patterns/create-and-deploy-blockchain-network-using-fabric-sdk-java/ ネットワークを構成チェインコードをDeployしてQueryを投げて動作確認

Slide 58

Slide 58 text

https://developer.ibm.com/jp/patterns/build-a-blockchain-network-for-trusted-iot/ センサー情報をブロックチェーン で保持

Slide 59

Slide 59 text

https://developer.ibm.com/jp/patterns/build-a-global-finance-application-on-blockchain/

Slide 60

Slide 60 text

https://developer.ibm.com/jp/patterns/how-to-create-a-secure-e-voting-application-on-hyperledger-fabric/

Slide 61

Slide 61 text

動き始めたエンタープライズEthereum、連携を強化するHyperledger Fabric https://crypto.watch.impress.co.jp/docs/theme/1172287.html

Slide 62

Slide 62 text

Etherium Virtual Machine (EVM) EVMは、Ethereumのスマートコントラクトを実行する、 Ethereum独自の仮想マシンです。 Solidityなどの高級言語で書かれたコードは、この仮想マ シンで実行するためのEVMコードにコンパイルしてデプ ロイされています。

Slide 63

Slide 63 text

Solidity https://solidity-jp.readthedocs.io/ja/latest/

Slide 64

Slide 64 text

HYPERLEDGER

Slide 65

Slide 65 text

Wiki Page https://wiki.hyperledger.org/display/HYP/About

Slide 66

Slide 66 text

プロジェクト一覧 https://wiki.hyperledger.org/display/TSC/Hyperledger+Projects

Slide 67

Slide 67 text

https://baasinfo.net/?p=2365

Slide 68

Slide 68 text

Tutorials https://www.hyperledger.org/use/tutorials

Slide 69

Slide 69 text

BESU Active Javaで記述されたオープンソースのEtherium(イーサリウム )クライアント Enterprise Etherium Alliance(EEA)仕様に準拠、エンタープライズ機能を実装する。 EthereumのPermissionless/Permissionedのブロックチェーンネットワークを構築できます。 https://wiki.hyperledger.org/display/besu

Slide 70

Slide 70 text

Tutorial https://besu.hyperledger.org/en/stable/ Npmでファイルなどを準備 してDockerで稼働

Slide 71

Slide 71 text

Burrow Incubation シンプルさとスピードを目的としたフレームワーク Ethereum Virtual MachineとWebAssemblyベースのスマートコントラクトをサポートしています。 https://wiki.hyperledger.org/display/burrow Tutorial https://hyperledger.github.io/burrow/#/ ps://hyperledger.github.io/burrow/

Slide 72

Slide 72 text

Tutoaial https://hyperledger.github.io/burrow/#/

Slide 73

Slide 73 text

Indy (Active) 分散デジタルIDに特化した分散型台帳フレームワークです。W3Cが標準化を行っている相互運用可能な形式のデジ タルIDのクレデンシャルを持っています。 https://wiki.hyperledger.org/display/indy

Slide 74

Slide 74 text

Iroha (Active) デスクトップやモバイルプラットフォームのアプリケーションを簡単に作成することを目的とした分散型台帳フレー ムワークです。 https://wiki.hyperledger.org/display/iroha

Slide 75

Slide 75 text

Sawtooth (Active) パブリック/プライベートの両方をサポートし、Proof of Elapsed Timeという新しいコンセンサスアルゴリズムを利 用している分散型台帳フレームワークです https://wiki.hyperledger.org/display/sawtooth

Slide 76

Slide 76 text

CELLO (Incubation) パブリック/プライベートの両方をサポートし、Proof of Elapsed Timeという新しいコンセンサスアルゴリズムを利 用している分散型台帳フレームワークです https://wiki.hyperledger.org/display/sawtooth

Slide 77

Slide 77 text

Tutorial