IBM Developer Dojo Blockchain 20200720

IBM Developer Dojo Blockchain 20200720

本資料は、2020年7月20日開催のIBM Developer Dojo Blockchain編向けのものです。

57c9c4b846c73c911cbf795d211904f3?s=128

Taiji HAGINO

July 20, 2020
Tweet

Transcript

  1. アカウントの登録 アカウントの登録 登録にはe-Mail アドレスが必要です。 使⽤するアカウントは標準アカウントです。 PAYGまたはサブスクリプションが必要です。 ハンズオンで次のサービスを利⽤します。 IBM Blockchain Service

    IBM Kubernetes Service (無料クラスタ) 本サービスの無料期間は限定的な可能性があります。 将来的に課⾦が発⽣する可能性があることをご了承ください。 こちらのURLからアクセスをお願いします。 https://ibm.biz/Bdqvra
  2. このセッションではSli.doによるライブ投票を⾏います。

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

  4. 本⽇の資料 http://ibm.biz/dojo20200720

  5. IBM Developer Dojo Blockchain/Hyperledger Fabric ⼊⾨編 Taiji Hagino IBM Developer

    Advocacy Tokyo Team Sr. Developer Advocate IBM Champion Regional Director @taiponrock
  6. Taiji (Eddie) Hagino Sr. Developer Advocate IBM Champion Program Regional

    Director IBM Lecturer Tsukuba University @taiponrock Please follow me! Node-RED/Node.js, Swift, Hyperledger Fabric, Functions Books: Node-RED beginner book, Node-RED Experience Handbook, DevRel Q&A Articles: I/O Magazine (Node-RED programming)
  7. Tokyo Leader Akira ONISHI IBM Developer Advocate Tokyo Team Tokyo

    Team is a part of Worldwide Developer Advocate Teams! https://developer.ibm.com/cities/tokyo-jp/ Developer Advocates Noriko KATO Developer Advocates Kyoko NISHITO Developer Advocate Yasushi OSONOI Developer Advocates Aya TOKURA Developer Advocates Taiji HAGINO
  8. 学習の⽬的とゴール ⽬的 Blockchainの概要について理解し、 Hyperledger Fabricを使えるようになる ゴール IBM Blockchain Platformを使って Hyperledger

    Fabricのネットワーク構築⽅ 法を理解する このコースを学ぶ⽅の想定スキル Webアプリケーション開発経験者の⽅、 データベースの知識をお持ちの⽅
  9. 事前準備 1. IBM Cloudアカウント(無料)の取得 2. IBM Cloud 標準アカウントへのアップグレード (PAYGまたはサブスクリプション) 3.

    Webブラウザー Chrome または Firefoxの導⼊
  10. 10 ご注意 アカウント登録した初期状態は、クレジットカード不 要の完全無償でご利⽤頂けるアカウントです。 こちらはライトアカウントと呼ばれ、使える機能に制 限があり、⼀部のサービスはご利⽤いただけません。 アカウント作成後、クレジットカードを登録すると PAYG(PayGo)という全ての機能がご利⽤頂けるアカウ ントへアップグレードできますが、こちらは従量課⾦ が発⽣するアカウントですので、ご利⽤の際にはご注

    意下さい。
  11. 新しい取り組み“バッジ取得プログラム”のご案内 11 IBM Cloud & AI develop Basic Online Developer

    Dojo ” IBM Cloud & AI develop Basic Online Developer badge“について - 2020年6⽉1⽇より開始のIBM Developer Dojo 12回シリーズと同様の内容のIBM Developer Dojoのクラスが対象 https://www.ibm.com/jp-ja/partnerworld/events/developer-dojo - スキルアップのため全クラスの受講をお奨めします。 - 12回のクラスのうちPAYGアカウントまたはサブスクリプションが必要としない8つのクラスの課題を実施 - 8クラスのうち5クラスの課題について指定された結果を⾃分のアカウントが⾒えるようにスクリーンショットを撮影 - 5クラス分の課題のスクリーンショットをPDFにして以下の宛先に送付 - 提出した課題が承認されるとAcclaimからバッジが発⾏されます。 ※バッジ発⾏のためにこれ以外の処理が発⽣する場合、別途ご連絡させていただきます 2020年6⽉1⽇ お問い合わせは、Online Developer Dojo バッジ事務局 (ビジネス・パートナープログラム ヘルプデスク pprogram@jp.ibm.com )
  12. ⽬次 1. ブロックチェーンとは 2. ブロックチェーン技術について 3. IBM Blockchain Platform (IBP)

    4. ハンズオン 5. 課題
  13. 1. ブロックチェーンとは 2. ブロックチェーン技術について 3. IBM Blockchain Platform (IBP) 4.

    ハンズオン 5. 課題
  14. 14 14 • 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 ビジネス・ブロックチェーンが 実証実験から本番運⽤へ
  15. 15 ブロックチェーンとは︓分散台帳技術 (DLT: Distributed Ledger Technology) • ネットワークの全取引の履歴を記録する台帳を、それぞれの参加者が持つ • ブロックチェーン技術を⽤いて台帳管理を⾮集中化することにより、各種取引の期間・コスト・脆弱性を

    改善することが期待されている 保険会社 監査 規制当局 企業A 銀⾏ 企業B Blockchain • 全ての参加者は複製された同じ内容の台帳を保持 • デジタル署名/暗号化された取引と台帳 • 参加者により取引が検証され合意形成により台帳を更新 保険会社 監査 規制当局 企業A 銀⾏ 企業B l 各参加者が個別内容の台帳を保有 l 決済機関等による集中データ管理 l 各社システム間での個別のデータ連携 l すべての参加者が同一内容の台帳を保有 l 管理主体を持たない非集中・分散データ管理 l ブロックチェーン機能による統一されたデータ連携 与信システムの構築・連携実績 ブロックチェーンでの台帳管理 A社 台帳 B社 台帳 分散 台帳 分散 台帳 分散 台帳 分散 台帳 分散 台帳 分散 台帳 電⼦化・共有されたビジネス・ルール スマートコントラクト 参加者の合意形成による信頼性の担保 コンセンサス ブロック=取引記録の連鎖 ブロックチェーン
  16. 16 16 ブロックチェーン市場 – IDCによる2019年9⽉予測 $15億 $27億 2018年 2019年 世界全体のブロックチェーンソリューション市場同市場⽀出額

    80%増
  17. 17 17 ブロックチェーン市場 – IDCによる2019年9⽉予測 2018年 2023年 世界全体のブロックチェーンソリューション市場5年間の年間平均成⻑率(CAGR) 60.2%増

  18. 18 18 ブロックチェーン市場 – IDCによる2019年9⽉予測 5年間のCAGRは⽇本とカナダが突出しており、それぞれ110%と90% 銀行 証券 投資サービス 保険

    組立製造 プロセス製造 資源 流通 サービス 全体の20%以上 全体の30%以上
  19. コアとなる考え⽅が2つあります

  20. ブロック 各ブロックのヘッダーには親ブロックのブロックハッシュが含まれてて、ハッシュ値が編みこまれていく 途中で改ざんすると、当該ハッシュ値が正当な値ではないことが、即座に確認可能 b(0) b(1) b(2) b(3) b(4) 0~1の間に発⽣した トランザクション

    0番⽬のブロック 1番⽬のブロック 2番⽬のブロック 3番⽬のブロック ハッシュ値 ハッシュ値 ハッシュ値 未承認 トランザクション 1~2の間に発⽣した トランザクション 2~3の間に発⽣した トランザクション ハッシュ値 ハッシュ値 ハッシュ値 トランザクション = 取引
  21. ハッシュ関数 同じ値が出⼒(ハッシュ値)︓同じ値の場合は、同じ値が出⼒される。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桁
  22. 1. ブロックチェーンとは 2. ブロックチェーン技術について 3. IBM Blockchain Platform (IBP) 4.

    ハンズオン 5. 課題
  23. 仮想通貨型 ブロックチェーン 汎⽤型 ブロックチェーン

  24. 仮想通貨型 ブロックチェーン 汎⽤型 ブロックチェーン

  25. Bitcoinを例に説明しますね

  26. Bitcoinという仮想通貨をみんなが持ってるよ

  27. AさんはBさんへ100BTC⼊⾦したよ トランザクションを発⾏したよ

  28. A→B 100BTC A→B 100BTC A→B 100BTC A→B 100BTC A→B 100BTC

    A→B 100BTC A→B 100BTC A→B 100BTC トランザクションの結果をみんなで共有 ※実際は平⽂ではないです トランザクションの結果をみんなの台帳に書き込んだよ
  29. トランザクション発⾏ 送⾦処理したぜー 問題ないかチェックよろ︕ 誰がブロック作るか決めようぜ︕ じゃあ、計算競争で勝ったヤツな︕ 検証計算 (※マイニングといいます) 俺たちマイナー 俺勝者︕報酬もらうぜ♪ 取引記録を検証し、計算の解(プルー

    フ・オブ・ワーク)と⼀緒にブロックを 作成、Bitcoin利⽤者全員に送信 マイニングの敗者がそれぞれブロックの 内容を確認 検証して問題なければブロック⽣成するぜー 作ったブロックはみんなで検証な︕ こんな3段階でブロックが作られるよ 1. 2. 3. ブロック⽣成
  30. この辺注意 • 計算競争は、暗号学的ハッシュ関数を利⽤したもの • 計算競争の計算は「nonce/ナンス」を求めること • 計算競争の勝利者が取引記録を検証するのは、直前の約10分間の取引 • ブロックチェーン は、取引記録を書き込む台帳としての役割を果たすとともに、タイムスタンプとしても機能する

    • もし過去に遡って取引を改変しようとすると、各ブロックに含まれたプルーフオブワークをもう⼀度計算し直すことになる • それは膨⼤な⼿間が必要となり、事実上不可能 • その仕組みが仮想通貨の実⽤化に必要な要素である取引の⾮可塑性や⼆重使⽤の防⽌を⽀えている • 計算競争のインセンティブは、Bitcoinの報酬 (2019年Posで1ブロックごとに12.5BTC) • 報酬分のBTCは新規発⾏され、直近約10分間に⾏われた取引の⼿数料とともに、計算競争の勝利者のものとなる • これがあたかも⾦の採掘のようであることから、計算競争は「採掘(マイニング)」と呼ばれている • Bitcoinのソフトウェアは、おおよそ10分間で正解が出せるような難易度に調整されている • 採掘には誰でも参加できるが、勝利するためには、約10分の間に他者よりも多くのサイコロをふる⼒が必要 • つまりより多くの計算能⼒を持つほうが有利
  31. ブロック⽣成と書き込み 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⽉ 「仮想通貨の技術と課題」
  32. インセンティブとマイニング ナンス値は⾃分が⾃由に変える事ができる、使い捨てのランダ ムな32ビットの値 マイニングとはナンス値を何千、何億と組み換え、1番最初に 「0」が16個並ぶのを競う作業 俺たちマイナー 新しいブロックを⽣成(未確認の取引を承認)するために以下が必要︕ ① 直前のブロックのハッシュ値 ②

    新たに⽣成されるブロックに含まれる全取引データ ③ 任意の数値︓ナンス値 ④ ①〜③のハッシュ値 ④のハッシュ値の先頭に「0」が16個並ぶ数値がでたら 承認する(ブロックを⽣成する)よー︕ よし、頭に「0」が16個並ぶようになるまで任意の数値 ナンス値を計算して当ててやるぜ︕ ビットコインさん 計算競争の勝利者は⼀定額の BTCと⼿数料をGet︕ これがまるで⾦の採掘のようで あることから、計算競争は「採 掘(マイニング)」と呼ばれて いる 俺勝者︕報酬もらうぜ ♪
  33. コンセンサス Proof-of-Work Proof-of-Stake Proof-of-Importance 特徴 仕事量による合意形成 所有量による合意形成 重要度による合意形成 メリット 取引の改ざんに強い

    PoWのデメリットを解消でき る 流動性を担保(極端に貧富 の差が⽣まれない) デメリット - 電気代が⾼くつく - 51%を占有されると改ざん され得る 流動性を損なう 貧富の差が⽣まれる 極端には⽣まれないかもし れないが、貧富の格は存在 する 利⽤例 Bitcoin, Monero, Zcash ADA, NEXT, Ethereum nem コンセンサス = 取引が正しいことを合意する⽅法 Bitcoinにおいては、勝利者がまとめたブロックに対して、計算の解(Proof-of-Work)を出し、マイニングに参加し た利⽤者それぞれが内容を検証し、「問題ない」と判断すること 「問題ない」と判断されたブロックは既存のブロックと接続されて保存される コンセンサス・アルゴリズムの代表的な種類
  34. その他知っておきたい⽤語 ファイナリティ︓ 計算競争のまぐれ当たりなどの不正なブロックチェーンを延ばし続けるのは極めて困難であり、正当な処理が6回続け ばトランザクションは完全に覆ることのない取り引きだと認められる考え⽅のこと フォーク︓ 同時に複数のブロックが採掘されたり悪意のあるノードがネットワークを混乱させようとしたりして、複数のブロッ クが同じブロックのあとに加えられるときに発⽣する現象 ビザンチン将軍問題︓ 善意の計算者(誠実な将軍)達の合意形成を、悪意のある計算者(裏切り者の将軍)達が乱そうとした場合に、どの ように誠実な将軍達の合意形成を守るかという問題

    裏切り者の将軍がN⼈の時、誠実な将軍が2N+1⼈以上であれば、誠実な将軍同⼠の判断が⼀致可能なことが証明され ており、ブロックチェーンにおけるコンセンサス・アルゴリズムに利⽤されている
  35. 仮想通貨型 ブロックチェーン 汎⽤型 ブロックチェーン

  36. 36 © 2018 IBM Corporation 汎⽤型ブロックチェーンの4つの技術要素 スマート・ コントラクト 処理の⾃動化 セキュリティ

    改ざん防⽌ プライバシー 分散台帳 同じ取引記録 を共有 コンセンサス 参加者の合意 形成による 信頼性を担保 電⼦署名や認証機能により 参加者間の匿名性を確保し たり取引内容のプライバ シーを保護する仕組み ビジネス・ロジックによる 処理の⾃動化や、柔軟な 台帳の活⽤を実現する為の 仕組み 分散ノード間で取引の完全 性をシステム的に検証し、 保障する仕組み ビジネス・ネットワーク上 の参加者間で共有される 取引データ台帳 汎⽤型ブロックチェーンは「分散台帳」「スマート・コントラクト」「コンセンサス」 「セキュリティ」の4つの技術要素で構成されてるんだぜ︕
  37. 37 ブロックチェーン技術の位置付け コンソーシアム /標準化団体 パブリック コンソーシアム /プライベート 暗号通貨 仮想通貨 仮想通貨

    (ビジネス・ユースケース) 汎⽤的な利⽤ ビジネス向けブロックチェーン
  38. 38 暗号通貨 ⾮暗号通貨 パブリック型 コンソーシアム型/ プライベート型 • 誰でも参加可能 (パブリック) ü

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

    が主催するHyperledger project の ⼀つ • Foundation ではモジュラー型のアーキテクチャーでの業務やソリューションの開発を⽬指している – コンセンサス、メンバーシップ・ サービスなどをプラグアンドプレイでことを想定 • Hyperledger Fabricではコンテナ技術を活⽤し、”チェーンコード”と呼ばれるスマートコントラクト(アプリケーションロジック)を稼 働させる。Hyperledger Fabric は最初、Digital Asset及びIBM から最初のハッカソンの結果として提供された
  40. 40 主要ブロックチェーン技術の⽐較 Bitcoinくん Ethereumくん Fabricくん • 暗号通貨・仮想通貨向けだよー • Bitcoin開発者が管理してるよー •

    マイニングでコンセンサス取るよー • 誰でも参加できるよー • データのスナップショット持ってないよー • スマートコントラクトは書けないよー • 汎⽤(エンタープライズ向け)だよー • Linux Foundationが管理してるよー • Raftとかでコンセンサス取るよー • 証明書持ってないと参加できないよー • データのスナップショット持ってるよー • スマートコントラクトJSとかで書けるよー • 汎⽤だけど仮想通貨もあるよー • Ethereum開発者が管理してるよー • マイニングでコンセンサス取るよー • 参加者はオープンにもできるし限定もできるよー • データのスナップショット持ってるよー • スマートコントラクト書けるけどSolidityだよー
  41. 41 主なブロックチェーン技術間での⽐較 Hyperledger Fabric Ethereum Bitcoin 主なユースケース 汎⽤ 汎⽤ Settlement

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

  43. ある組織内で⾞の所有者を管理するよ

  44. 社⽤⾞のXXXは AさんからBさんへ所有者が変わったよ トランザクションを発⾏したよ

  45. A→B メーカー︓〇〇 ⾞種︓XXX トランザクションの結果をみんなで共有 ※実際は平⽂ではないです トランザクションの結果をみんなの台帳に書き込んだよ A→B メーカー︓〇〇 ⾞種︓XXX A→B

    メーカー︓〇〇 ⾞種︓XXX A→B メーカー︓〇〇 ⾞種︓XXX A→B メーカー︓〇〇 ⾞種︓XXX A→B メーカー︓〇〇 ⾞種︓XXX A→B メーカー︓〇〇 ⾞種︓XXX A→B メーカー︓〇〇 ⾞種︓XXX
  46. トランザクション依頼 所有権移転したぜー 問題ないかチェックよろ︕ スマート・コントラクト実⾏︕ 確認終えたら署名してな︕ 検証 (スマート・コントラクト実⾏) 俺たちPeerの中でも 選ばれし者 エンドーサー

    俺Orderer (順序付けする⼈) トランザクションのコミット順を決定 実⾏するためのバッチを送信 参加者達がトランザクションを コミットして各⾃のブロックを⽣成 トランザクション実⾏するよ︕ こんな5段階でブロックが作られるよ 1. 2. 4. 俺クライアント 署名の数が条件満たしたら トランザクションをサブミット︕ 3. 確認したよー 確認してねー 俺たちPeer ブロック作るよー 5.
  47. https://www.hyperledger.org/ • Hyperledger Fabric とはブロックチェーン・フレームワークの実装であり、The Linux Foundation が主催するHHyperledger project の⼀つ

    • Foundation ではモジュラー型のアーキテクチャーでの業務やソリューションの開発を⽬指している – コンセンサス、メンバーシッ プ・サービスなどをプラグアンドプレイでことを想定 • Hyperledger Fabricではコンテナ技術を活⽤し、”チェーンコード”と呼ばれるスマートコントラクト(アプリケーションロジック) を稼働させる。Hyperledger Fabric は最初、Digital Asset及びIBM から最初のハッカソンの結果として提供された
  48. 48 Hyperledger Fabricのコンポーネント ORDERER MSP (CA局) PEER Hyperledger Fabricはこいつら(コンポーネント)でブロックチェーンネットワークを 形成するんだぜ

    台帳を持ち、スマートコントラクトを実⾏するノード トランザクションの順番を整理し、 ブロックを作成するノード 証明書を発⾏し、参加者の⾝元を管理するサービス 標準の認証局はFabric CAノード クライアント Hyperledger Fabricにトランザクションを発⾏する アプリケーション 組織(Org) 複数のPeerをまとめたグループ ※MSP = Membership Service Provider ※CA = Certification Authority Hyperledger Fabricネットワークのコンポーネント ユーザーの 登録/認証 ③Tx結果を送信 MSP (CA局) PEER ORDERER クライアント ①Tx承認要求/ 実⾏ ②Tx承認/ 結果送信 ④ブロックを配布 組織(Org) MSP (CA局) 各コンポーネントの関係性
  49. 49 分散台帳 ビジネス・ネットワーク上の参加者間で共有される取引データ台帳

  50. 50 台帳は、主に以下の2種類の構成要素から成り⽴ってるよ︕ 台帳の構成要素 説明 ブロック • ブロックをハッシュ値でつないだ、過去の記録の改ざんができない構 造を持つデータ。 • トランザクション(スマート・コントラクトの処理呼び出し)がログ

    のように記録される ワールドステート • トランザクションを実⾏した結果得られる、「最新の状態」を記録。 • すべての検証ノードで同⼀の内容をもち、整合性をとるためにハッ シュ値がブロックチェーンに記録される 分散台帳
  51. 51 分散台帳とスマートコントラクトの関係 ワールドステート (最新の状態を管理) ブロックチェーン ブロック(取引履歴を管理) … 呼び出し 開発 開発

    各起動毎に記録 アプリケーション 台帳 読み込み/書き込み ブロックチェーン 開発者 スマート・コントラクト Peerの役割 ・アプリケーションとの接続 ・台帳の保持 ・スマート・コントラクトを実⾏ Peer イベント 出⼒ 出⼒
  52. 52 スマート・コントラクト ビジネスロジックによる処理の⾃動化や、柔軟な台帳の活⽤を実現する為の仕組み

  53. 53 1990年代にNick Szaboという法学者・暗号学者によって最初に提唱 • ⾃動販売機の例 狭義〜広義でいろいろな説明(⾒⽅)がある︓ • プログラムコード︓ビジネス・ルールのプログラム化 • 契約(コントラクト)の⾃動執⾏

    • 執⾏条件と契約内容を事前に定義し、条件に合致 したイベントが発⽣すると⾃動執⾏する • DAO(Decentralized Autonomous Organization) 実現のための主要概念 契約に基づく取引内容をプログラムで定義し、契約条件の確認や履⾏を⾃動で 実⾏する仕組みだよ︕ スマート・コントラクト
  54. 54 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の例)
  55. 55 コンセンサス 分散ノード間で取引の完全性をシステム的に検証し保障する仕組み

  56. 56 クライアント Peer (Endorser) Chaincode Peer (Endorser) Chaincode Peer (Endorser)

    Chaincode Orderer クライアント Peer Ledger Peer Ledger Peer Ledger 処理の流れ 1. クライアン トがTx proposal を サ ブミット 2. Peer (endorser) がチェーンコードを 実⾏し、結果に署名 をしてクライアント に戻す 3. クライアント は、 Endorsement Policy を満たす数 のendorsement を集めたのち、Tx をサブミット 4. OrdererがTxの 順番を定義し、1 ブロック分のバッ チを送る 5. 各peerがTxをコミットする 前に検証 • Endorsement policyを充⾜してい るか︖ • Tx間の衝突がない か︖ 検証後、台帳に書込み コンセンサス = エンドースメント + オーダリング + バリデーション • ノードの役割を分離 エンドーサー オーダラー コミッター • Endorsement Policy チェーンコードを検証す るPeerを指定可能 • スケーラビリティを確 保 コンセンサスでのPeer間 のやりとりを抑制 コンセンサス
  57. 57 コンセンサス 管理者 無し 複数企業 単⼀企業 ネットワーク形態 パブリック型 コンソーシアム型 プライベート型

    P2Pへの参加 ⾃由 許可制 不特定、悪意のある参加者を含 む可能性がある 参加者の⾝元が判明しており、信頼できる コンセンサス⽅式 Proof-of-Work(mining) など 分散コンセンサス形成アルゴリズム • 電⼒消費が多い • ファイナリティがない • 51%攻撃問題 • 軽量、⾼速、低消費電⼒ • ファイナリティがある トランザクション 処理時間 ⻑い(例︓10分) 短い(例︓数秒) 代表的なユースケース 仮想通貨 サプライチェーンでの取引など ビジネスネットワークでの使⽤ 実装例 Bitcoin, Ethereum Hyperledger コンセンサスとは︖ ・更新する情報が正しいこと ・更新後に、それぞれのノードのデータが同⼀になること
  58. 58 セキュリティ 電⼦署名や認証機能により参加者間の匿名性を確保したり 取引内容のプライバシーを保護する仕組み

  59. 59 • メンバーシップ・サービス – アイデンティティー管理、アクセス制御を実施 • エンロールメント証明書(Ecert) – ユーザーの⾝元を特定する証明書 •

    許可制アクセス – Ecertで署名され、出所が明らかなトランザク ションのみ実⾏ - エンロールメント - 証明書(Ecert)の要求 Hyperledger Fabric ブロックチェーン ユーザー A 利⽤ Ecert トランザクションを起動 (Ecertで署名) エンロールメント証明書 (Ecert) U U 利⽤ ü Client Application SDK Client Application SDK メンバーシップ サービスプロバイダAPI 認証局 ブロックチェーン ユーザー B トランザクションを起動 (Ecertで署名) エンロールメント 証明書 (Ecert) ブロックチェーンネットワークに参加できるのは 認証局が発⾏した証明書を持ってるユーザーだけだよ︕ 認証局
  60. 60 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
  61. 61 セキュリティ(プライバシー) チャネル ※図はイメージです ※会社名は架空のもので実在しません Mクロソフト Oラクル Iビーエム Channel 1

    Channel 2 Channel 3
  62. 62 更に⾼いプライバシー保護を実現する機能だよ︕ Private Data Collection • プライベートなデータは通常のブロッ クとは別に管理 • 同⼀チャネル内でも、⼀部のピアだけ

    がプライベート・データを受け取るよ うに設定可能 • それ以外のピアや順序付けサービス (Orderer)には、データのハッシュ 値だけが渡され、台帳に記録される ブロック プライベート ステートDB プライベート・ブロック ⼀時データ (プライベート・トランザクション、実⾏結果RWset) ステートDB ブロック 順序付け サービス (Orderer) クライアント・ アプリケーショ ン 1. プライベート・ トランザクション提 案 4. トランザクショ ンと結果のハッ シュ値のみを返却 ステートDB チェーンコード ブロック プライベート ステートDB プライベート・ブロック ⼀時データ (プライベート・トランザクション、実⾏結果RWset) ステートDB 2. チェーンコード実⾏ 3.プライベート データを⼀時デー タストアに保存し、 権限のあるピアに だけP2Pプロトコ ルで共有 5. ハッシュ値 6. ⼀ブロック分の トランザクション (ハッシュ値の み)を配信 ピア(エンドーサー) ピア(コミッター) 8. 権限のないピアは、 ハッシュ値だけを記録
  63. 63 ※図はイメージです Mクロソフト Oラクル Iビーエム Channel 1 俺知ってる︕ 俺知ってる︕ 何の話︖

    何の話︖ つまり、そういうことだ Private Data Collection
  64. 64 アプリケーション開発

  65. 65 アプリケーション開発での環境 チェーンコード、クライアントアプリケーションの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.. 開発 トランザクション
  66. 1. ブロックチェーンとは 2. ブロックチェーン技術について 3. IBM Blockchain Platform (IBP) 4.

    ハンズオン 5. 課題
  67. 67 67 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は⻑くブロックチェーンに参画
  68. 68 68 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の記事
  69. 69 69 https://www-01.ibm.com/common/ssi/ShowDoc.wss?docURL=/common/ssi/rep_ca/2/760/JAJPJP20-0332/index.html

  70. 70 70 IBM Blockchain Platform Roadmap • Fully managed enterprise

    grade blockchain-as-a-service • Built on Fabric 1.0 • Built on LinuxONE • Entry level developer blockchain environment • Simple one-click provision and easy simulation of a multi-org environment • Same look and feel as Enterprise Plan • New networks provisioned with Fabric v1.1 • Additional data centre locations • Based on Fabric v1.1 • Available in many data centres • Free 30 day trial • Provisioned using IBM Containers • Updated to Fabric v1.2.1 • On-prem peer solution • Built on Fabric v1.2.1 • Provisioned using IBM Cloud Private 08/17 02/18 05/18 06/18 10/18 10/18 Enterprise Plan v1.1 Remote Peer Beta announcment Starter Plan announced Enterprise Plan GA Starter Plan GA Starter Plan v1.2.1 • Next generation platform enabling networks across multi infrastructures • Developer VSCode plug-in for IBP 2/19 v2.0 beta 2Q/19 v2.0 GA 2Q/20 v2.5
  71. 1. ブロックチェーンとは 2. ブロックチェーン技術について 3. IBM Blockchain Platform (IBP) 4.

    ハンズオン 5. 課題
  72. ハンズオン ibm.biz/IBPWS01

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

    ハンズオン 5. 課題
  74. 課題 チュートリアル: IBM fabcarサンプル https://github.com/IBM/fabcar-blockchain-sample/blob/master/README.md ⽇本語解説へのLink: https://github.com/IBM/fabcar-blockchain-sample/blob/master/README-ja.md オプション課題: Hyperledger Fabric公式チュートリアル

    https://github.com/hyperledger/fabric-samples balance-transfer(Node.js SDKを利⽤) –単純な⼝座間の残⾼移動のサンプルだが、Channelの作成〜トランザクションの実⾏、クエリまでひとと おりをシェルで実⾏しているため、シェルとアプリの中⾝を参考にできる
  75. おすすめ情報 ▪Web連載「Hyperledger Fabric⼊⾨」シリーズ︓ 第 1 回: 基本的な構成 第 2 回:

    Peer/チャネル/Endorsement Policy の解説 第 3 回: コンセンサス/Ordering Service/Kafka/Zookeeper 第 4 回: Membership Service Provider 第 5 回: チェーンコードの書き⽅ 第 6 回: Hyperledger Fabric v1.4 のプログラミングモデル ▪公式ドキュメント︓ https://hyperledger-fabric.readthedocs.io/en/latest/ ▪フォーラム、メーリングリスト https://lists.hyperledger.org/ https://chat.hyperledger.org/
  76. イベント案内︕ Blockchain GIG Oracle/Microsoft/IBM共催シリーズ第3弾︕ https://oracle-code-tokyo-dev.connpass.com/event/181453/ ⼤橋雅⼈ Oracle 中村岳 Oracle デプロイ王⼦

    Microsoft 萩野たいじ IBM
  77. アンケート こちらからアンケートへのご回答をお願いします︕

  78. 新しい取り組み“バッジ取得プログラム”のご案内 IBM Cloud & AI develop Basic Online Developer Dojo

    ” IBM Cloud & AI develop Basic Online Developer badge“について - 2020年6⽉1⽇より開始のIBM Developer Dojo 12回シリーズと同様の内容のIBM Developer Dojoのクラスが対象 https://www.ibm.com/jp-ja/partnerworld/events/developer-dojo - スキルアップのため全クラスの受講をお奨めします。 - 12回のクラスのうちPAYGアカウントまたはサブスクリプションが必要としない8つのクラスの課題を実施 - 8クラスのうち5クラスの課題について指定された結果を⾃分のアカウントが⾒えるようにスクリーンショットを撮影 - 5クラス分の課題のスクリーンショットをPDFにして pprogram@jp.ibm.com に送付 - 提出した課題が承認されるとAcclaimからバッジが発⾏されます。 ※バッジ発⾏のためにこれ以外の処理が発⽣する場合、別途ご連絡させていただきます 2020年6⽉1⽇ お問い合わせは、Online Developer Dojo バッジ事務局 (ビジネス・パートナープログラム ヘルプデスク pprogram@jp.ibm.com )
  79. 免責事項 79 IBM Developer Dojoは開発者の⽅を対象に、IBM Cloudを主とした技術情報をお伝えする⽬的で開催しています。 講師や運営スタッフにより、開催毎に最適と判断した内容でお届けしています。 現在、ハンズオンを伴う講義はお客様の費⽤負担がない環境と⼿順でご案内しています。講義終了後、不要に なりました制作物はお客様ご⾃⾝で削除をお願いいたします。クレジットカードの登録が伴わない場合、費⽤は ⼀切発⽣致しませんが、ご登録いただいたお客様はご注意ください。

    講師陣はみなさまの利⽤状況を個別に確認することはできません。 ご理解とご協⼒をお願いいたします。 利⽤したサービスの削除⽅法については講義の中でご案内します。 ご不明な点がございましたら、当⽇確認をお願いいたします。 講義終了後、 IBM Developer Dojoに関するお問い合わせは「Slack」にお願いします。それ以外のIBM Cloudの お問い合わせにつきましては、弊社サポートセンターまで、次のいづれかの⽅法でお問い合わせください。 IBM Cloudダッシュボードの「サポート」メニューから「Case」を作成し、英語でご記⼊ください IBM Cloudサポートセンター「相談する」ボタンからチャットまたは電話でご連絡ください https://www.ibm.com/jp-ja/cloud/support ご参加ありがとうございました。
  80. Thanks 80 github.com/taijihagino Taiji HAGINO Sr. Developer Advocate IBM facebook.com/taiponrock

    linkedin.com/taiponrock @taiponrock
  81. ご注意 この資料に含まれる情報は可能な限り正確を期しておりますが、⽇本アイ・ビー・エム株式会社の正式なレビューを受けておらず、当資 料に記載された内容に関して⽇本アイ・ビー・エム株式会社は何ら保証するものではありません。従って、この情報の利⽤またはこれら の技法の実施はひとえに使⽤者の責任において為されるものであり、資料の内容によって受けたいかなる被害に関しても⼀切の補償をす るものではありません。 また、IBM、IBMロゴ、およびibm.comは、世界の多くの国で登録されたInternational Business Machines Corporationの商標です。 他の製品名およびサービス名等は、それぞれIBMまたは各社の商標である場合があります。

    現時点でのIBMの商標リストについては、www.ibm.com/legal/copytrade.shtmlをご覧ください。当資料をコピー等で複製すること は、⽇本アイ・ビー・エム株式会社および執筆者の承諾なしではできません。また、当資料に記載された製品名または会社名はそれぞれ の各社の商標または登録商標です。