Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Blockchain engineer night_#1

406 views

Published on

2019 1/31開催 Blockchain Engineer Night

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Blockchain engineer night_#1

  1. 1. IBM Blockchain / © 2018 IBM Corporation Blockchain Engineer Night
  2. 2. IBM Blockchain / © 2018 IBM Corporation Blockchain Engineer Night ブロックチェーン(主にHyperledger Fabric)の 最新動向を勉強する、ブロックチェーン技術者向けのコミュニティ  技術解説  ブロックチェーンアプリケーション紹介
  3. 3. 3 本日の内容  Hyperledger Fabric概要&最新動向  Hyperledger プロジェクト  ブロックチェーンアプリ開発のHints&Tips IBM Blockchain / © 2018 IBM Corporation
  4. 4. 4IBM Blockchain / © 2018 IBM Corporation Hyperledger Fabric http://www.hyperledger.org  ビジネス利用向けの特徴を持った 汎用ブロックチェーン基盤  セキュリティ  性能、拡張性  スマートコントラクト  オープンな開発  オープンソース  オープンな運営  ビジネス向け企業利用に適し、先進的で多様な 業界で利用できるブロックチェーン技術を確立 するための共同の取り組み  2015年12月に創設、現在240社を超える メンバーで構成 2017年7月 V1.0 リリース
  5. 5. 5IBM Blockchain / © 2018 IBM Corporation Hyperledger Fabricを構成するコンポーネント O O O O クライアント アプリ SDK (HFC) メンバーシップ サービス Peer Endorsement Peer 台帳 Committing Peer チェーンコード ! イベント オーダリング・サービス  Fabric-CA  外部CA Hyperledger Fabric ネットワーク オプションオプション ウォレット A B • クライアント・アプリケーションは、トランザクションを実行時に各エンドースメント・ピア上でス マート・コントラクトをシミュレーション実行し、合意を得られた場合にオーダリング・サービスへ 実行結果を転送してブロックに入れてもらう。
  6. 6. 6IBM Blockchain / © 2018 IBM Corporation Hyperledger Fabricのセキュリティ(プライバシー保護) ①ユーザー認証とアクセス制御(許可制) →MSP(Membership Service Provider)とCA(Certificate Authority) ②ネットワーク内で台帳を共有するメンバー(Org)を制限 →Channel ③チャネル内でより細かく保管/アクセスできるデータを制御 →Private Data Collection(Side DB) ④ZKPベースの匿名性と、トランザクション間の非関連性の確保 →Identity Mixer
  7. 7. 7IBM Blockchain / © 2018 IBM Corporation Hyperledger Fabricのプライバシー機能:Channel チャネル1(全員) チャネル2(A社、C社、D社のみ) Ledger チャネル3(C社、D社のみ) ブロックチェーン ネットワーク A社 ノード Chain Code Ledger B社 ノード Chain Code Ledger D社 ノード Chain Code Ledger C社 ノード Chain Code Ledger Chain Code Ledger Chain Code Ledger Chain Code Ledger Chain Code Ledger Chain Code Ledger Chain Code Ledger Chain Code Ledger Chain Code Ledger Chain Code Ledger ブロックチェーン ビジネスネットワーク A社 ノード B社 ノード C社 ノード D社 ノード チャネルによって、トランザクションおよび台帳を分離可能 Fabric V0.6以前では、ブロックチェーンネッ トワーク内のすべてのノードが ・コンセンサスに参加 ・チェーンコードを実行 ・同じデータの複製を保持 Fabric V1.0では、一つのネットワーク内に複数の 「チェーン」を持ち、一部の参加者によるプライベートな データ共有が可能になる。
  8. 8. 8IBM Blockchain / © 2018 IBM Corporation Hyperledger Fabricのプライバシー機能:Private Data Collection (a.k.a SideDB) 更に高いプライバシー保護を実現する機能 • プライベートなデータは通常のブロック とは別に管理 • 同一チャネル内でも、一部のピアだけが プライベート・データを受け取るように 設定可能 • それ以外のピアや順序付けサービス (Orderer)には、データのハッシュ値 だけが渡され、台帳に記録される ブロック プライベート ステートDB プライベート・ブロック 一時データ (プライベート・トランザクション、実行結果RWset) ステートDB ブロック 順序付け サービス (Orderer) クライアント・ アプリケーショ ン 1. プライベート・ トランザクション提案 4. トランザクションと 結果のハッシュ値の みを返却 ステートDB チェーンコード ブロック プライベート ステートDB プライベート・ブロック 一時データ (プライベート・トランザクション、実行結果RWset) ステートDB 2. チェーンコード実行 3.プライベートデータ を一時データストア に保存し、権限のあ るピアにだけP2Pプ ロトコルで共有 5. ハッシュ値 6. 一ブロック分のトラ ンザクション(ハッシュ 値のみ)を配信 ピア(エンドーサー) ピア(コミッター) 8. 権限のないピアは、 ハッシュ値だけを記 録
  9. 9. 9IBM Blockchain / © 2018 IBM Corporation Identity Mixerとは? Identity Mixerとは認証に必要な属性をUserが選んで、都度トークンを発行することで ユーザの匿名性を担保し、発行したトークンから本人と紐付けることができない仕組み (Unlinkable) Issuer Verifier User Issuerはユーザの属性(年齢や生年月日 等)をデジタル証明書(=credential)と して発行します。 またその際に、credentialに対応した暗 号鍵を発行して、Userに送付します。 Userはcredentialから公開したい属性 を選択して、自分自身の秘密鍵で署名 してトークンを発行する。トークンは 認証ごとに発行するため、複数のトー クンを紐づけてUserを特定することが できない。 またゼロ知識証明(ZKP)を使って、 実際の属性の値をVerifierに公開するこ となく証明することも可能。 VerifierはIssuerの公開鍵を使って、 トークンを検証する。 従来のx509証明書を使った検証だとユ ーザの属性が全て公開されるが、Identi ty Mixerを使った認証は最小限あるい は、属性の値を公開することなく認証 を行うことができる。 ①デジタル証明書 と暗号鍵の発行 ②認証に必要な属性 のみを選択し、 トークンを発行 ③Issuerの公開鍵を使って 検証する。ユーザが許可 していない属性情報は 知り得ない。 ウォレット トークン
  10. 10. 10IBM Blockchain / © 2018 IBM Corporation Hyperledger FabricのEthereum VMのサポート (2018/10/26) https://github.com/hyperledger/fabric-chaincode-evm • 実装:2つのコンポーネント • EVM User chaincode(evmcc)  Hyperledger Burrowベースの実装  スマートコントラクトをdeploy • Fab3 (Web3 proxy)  Dapps用Web3インターフェースの 提供 • コンセンサス:Fabricベース • Gas:ハードコード • Remix/Truffleサポートは今後 • チュートリアルあり(BYFNベース) FAB-6590 / FAB-8078 / FAB-10273
  11. 11. 11IBM Blockchain / © 2018 IBM Corporation 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 01/19 * 1Q/19 * Based on https://wiki.hyperledger.org/projects/fabric/roadmap - Dates determined by the Hyperledger community - (*) Subject to change v1 v1.1 v1.2 v1.3 v1.4 v2.0 • パフォーマンス改善 • コンセンサス追加 • 対応言語追加 (Ethereum Smart Contractも) • プライバシー (/セキュリティ)強化 • Digital Tokenのサポート • Local collections • SDK improvements • Lifecycle changes • Revocation for Idemixer • Digital Token • RAFT 2019 1/10 v1.4リリース
  12. 12. 12IBM Blockchain / © 2018 IBM Corporation Hyperledger Fabricv1.4 SDKアップデート Hyperledger Fabric v1.4ではNode.jsのクライアントコード、チェーンコードのSDK (ライブラリ)が追加され、より開発が容易になった。(※v1.3までのコードも稼働) ②チェーンコード処理 ・トランザクションの処理に複数のAPIメソッドが必要 ・peerやorderer、ユーザの定義をするために複雑な コードの記述が必要。 ・1つのAPIメソッドでtransaction proposalの 送信からイベントの受信まで可能。 ・新たに追加されるパッケージに含まれるクラスを 使ってよりシンプルに接続先情報の定義が可能。 ①クライアントコード (ブロックチェーンI/F) 〜v1.3 v1.4〜 ・直接個々の関数の呼び出しが可能。・Invoke関数の中で個々の関数を分岐させて呼び出す。 使用 Wallet Fabricへアクセスするための証 明書類を保持 Gateway ネットワークへ接続するための情報 を保持するクラス Network Channelへ接続するためのクラス Contract チェーンコードへアクセスする ためのクラス Application Smart Contract Channelfabric-networkモジュールを使用 Hyperledger Fabric v1.4 クライアントSDKイメージ
  13. 13. 13IBM Blockchain / © 2018 IBM Corporation Hyperledger Fabricv1.4のプログラミングモデル ①クライアントコード(ブロックチェーンI/F)接続情報の設定 v1.3 Fabcar invoke.js クライアントライブラリ:「fabric-client」 「Fabric-client」ライブラリを使用 Fabricのエンドポイントを指定 Fabricネットワークにアクセスするため のユーザーディレクトリを指定
  14. 14. 14IBM Blockchain / © 2018 IBM Corporation Hyperledger Fabricv1.4のプログラミングモデル v1.4 Fabcar invoke.js ①クライアントコード(ブロックチェーンI/F)接続情報の設定 クライアントライブラリ:「fabric-network」 「Fabric-network」ライブラリを使用 Fabricのエンドポイントを設定 (jsonファイルに接続情報を記述) wallet=接続ユーザー定義ファイルを格納したディレクトリ wallet内の接続ユーザーを指定
  15. 15. 15IBM Blockchain / © 2018 IBM Corporation Hyperledger Fabricv1.4のプログラミングモデル 参考:接続情報ファイル(connection.json)のサンプル(一部)
  16. 16. 16IBM Blockchain / © 2018 IBM Corporation Hyperledger Fabricv1.4のプログラミングモデル ①クライアントコード(ブロックチェーンI/F)トランザクションのプロポーザル v1.3 Fabcar invoke.js クライアントライブラリ:「fabric-client」 senfTransactionProposal:Peerに対するトランザクションの発行 (Endorsement)
  17. 17. 17IBM Blockchain / © 2018 IBM Corporation Hyperledger Fabricv1.4のプログラミングモデル ①クライアントコード(ブロックチェーンI/F)トランザクションのプロポーザル v1.4 Fabcar invoke.js クライアントライブラリ:「fabric-network」 クラス「Gateway」を定義 接続するチャネルを指定 クラス「Contract」で起動する (アクセスする)チェーンコードを指定 チェーンコードへの引数を指定
  18. 18. 18IBM Blockchain / © 2018 IBM Corporation Hyperledger Fabricv1.4のプログラミングモデル ②チェーンコード処理 v1.3 Fabcar fabcar.js チェーンコードライブラリ:「fabric-shim」 Init関数を定義 Invoke関数を定義し、引数として渡す 各関数名を判別し、関数を呼び出す 各関数を定義
  19. 19. 19IBM Blockchain / © 2018 IBM Corporation Hyperledger Fabricv1.4のプログラミングモデル ②チェーンコード処理 v1.4 Fabcar fabcar.js チェーンコードライブラリ:「fabric-contract-api」 「Fabric-contract-api」ライブラリを使用 Init関数を定義せず、各関数を直接 呼び出す
  20. 20. 20IBM Blockchain / © 2018 IBM Corporation Hyperledger Fabricv1.4のプログラミングモデル サンプルアプリ「fabcar」のチェーンコード(fabcar.js)とクライアントコード(invoke.js)の コード行数 0 50 100 150 200 250 chaincode(fabcar.js) client code(invoke.js) Fabcarサンプルコード行数 v1.3 v1.4
  21. 21. 21IBM Blockchain / © 2018 IBM Corporation Hyperledger Fabricアプリ 開発支援ツール  Chaincoder チェーンコード開発用IDE(http://www.chaincoder.org/) Java SDKをサポート  VSCode Hyperledger Fabric開発用のVSCodeプラグイン。 チェーンコードの開発、テスト、デプロイが可能。(https://github.com/horeaporutiu/VSCodeTutorial) 機能 ・チェーンコードの開発 - JavaScript、TypeScriptに対応 - チェーンコードのデプロイ、初期化、アップグレードを数クリックで実施可能 ・テスト環境 - ボタン一つでローカル環境にFabricネットワークを構築(v1.3) - ユーザ作成、クライアントSDKからトランザクションのテストが可能 ・サンプルコード - GitHubに公開済(上記リンク) チェーンコード(JS)、クライアントコード(JS)
  22. 22. 22 本日の内容  Hyperledger Fabric概要&最新動向  Hyperledger プロジェクト  ブロックチェーンアプリ開発のHints&Tips IBM Blockchain / © 2018 IBM Corporation
  23. 23. 23 Hyperledger プロジェクト IBM Blockchain / © 2018 IBM Corporation 分散台帳ツール Intel, IoT Soraitsu, mobile IBM, Enterprise EVM Sovrin, DistributedID
  24. 24. 24 Hyperledger プロジェクト IBM Blockchain / © 2018 IBM Corporation 分散台帳ツール Intel, IoT Soraitsu, mobile IBM, Enterprise EVM Sovrin, DistributedID
  25. 25. 25IBM Blockchain / © 2018 IBM Corporation ・Self-Sovrin※を活用した分散ID管理ブロックチェーン基盤 ・ブロックチェーンまたは他の分散元帳に基づく独立したデジタルIDを作成して使用するためのツール、ライブラリ ・RBFTベースの分散台帳を保持 Hyperledger Indyとは? Hyperledger Indy概要&デモ:https://www.youtube.com/watch?v=llwfb5Ut5sg Hyperledger Indy アーキテクチャー PBFTベースのリーダー選出型のコンセンサス ノード数3F+1の場合、F個の障害に耐えうる ZKP(Zero Knowledge Proof) ベースの暗号化 IDに利用されるトランザクションセットを保持 コンセンサスを実行 Nodeへのアクセス(Wallet) APIを提供 交換が必要なメッセージについて listenできるサービス 既存アプリケーションとの連携
  26. 26. IBM Trusted Identity Solutions | © Copyright IBM Corporation 2017 Sovrinネットワークとは? Sovrinは自己主権、非中央集権型の認証ネットワークを提供しています 認証をネットワークのエッジ(ユーザー側)に移行させる: • 情報の暗号化、P2Pによる個人情報の共有 • 全ての人、組織、モノには自身の情報を制御するデジタルウォレットがあります • 信頼を確立しエンドユーザーを制御するための分散型アプローチ • 複数のネットワーク間でのビジネスをサポートするための相互運用性と標準化 • HyperLedger Indyに基づく分散台帳テクノロジー • 個人情報はパブリックレジャー上には保存されません 26
  27. 27. 27IBM Blockchain / © 2018 IBM Corporation Hyperledger Explorerとは? ブロックチェーンネットワークのアクティビティ可視化ツール(https://www.hyperledger.org/projects/explorer) ソースコード:https://github.com/hyperledger/blockchain-explorer Dockerイメージ:https://hub.docker.com/r/hyperledger/explorer
  28. 28. 28IBM Blockchain / © 2018 IBM Corporation
  29. 29. 29IBM Blockchain / © 2018 IBM Corporation
  30. 30. 30IBM Blockchain / © 2018 IBM Corporation 主な特徴・機能 ・Hyperledger Fabricをサポート ・Dockerホスト、KubernetesのWorkerノードをサポート ・ベアメタル、仮想マシン、様々なアーキテクチャ(x86、Power、s390)をサポート ・モジュラーアーキテクチャ(監視、ログ、分析機能をアドオン可能) 公式Doc:https://hyperledger-cello.readthedocs.io/en/latest/ デプロイメントガイド:https://github.com/hyperledger/cello/blob/master/docs/setup_master.md Hyperledger Celloとは? ブロックチェーンネットワークのデプロイメントツール ブロックチェーンのライフサイクル管理(構築/開始/停止/削除など)機能を提供 Hyperledger Cello コンポーネント
  31. 31. 31IBM Blockchain / © 2018 IBM Corporation ブロックチェーンのパフォーマンスベンチマークフレームワーク ユーザーが定義する様々なユースケースでパフォーマンスを測定可能 ソース:https://github.com/hyperledger/caliper 対応ブロックチェーン: Hyperledger Fabric/Iroha/Sawtooth/Burrow CaliperアーキテクチャHyperledger Caliperとは? ・トランザクション成功率、スループット、レイテンシー、 リソース使用率を測定 ・測定結果のレポートを生成 主な特徴・機能 デプロイメントガイド https://hyperledger.github.io/caliper/docs/1_Getting_Started.html
  32. 32. 32IBM Blockchain / © 2018 IBM Corporation レポート生成機能 Hyperledger Fabric動作環境・構成 ・single host (MacBook Pro) ・Hyperledger Fabric v1.1 ・2org ・1peer ・Solo Orderer ・Go chaincode ・Leveldb
  33. 33. 33 Hyperledger Ursa IBM Blockchain / © 2018 IBM Corporation Hyperledger Ursaはブロックチェーン基盤で利用できる共有暗号化ライブラリ 2018年12月にHyperledgerプロジェクトに加わった11個目のプロジェクト (https://www.hyperledger.org/blog/2018/12/04/welcome-hyperledger-urs) 2つの暗号化ライブラリを提供 ①Base Crypto 共通モジュール署名ライブラリ ②Z-MIX ゼロ知識証明ライブラリ 複数言語のラッパーを用意 コード:https://github.com/hyperledger/ursa Hyperledger Ursaとは? 主な特徴・機能
  34. 34. 34IBM Blockchain / © 2018 IBM Corporation スケジュール: https://events.linuxfoundation.org/events/hyperledger-global-forum-2018/program/agenda/?utm_source=hl-event-listing&utm_medium=web-referral&utm_campaign=gf18 リプレイ: https://www.youtube.com/channel/UC7_X0WkMtkWzaVUKF-PRBNQ
  35. 35. 35IBM Blockchain / © 2018 IBM Corporation 一部トピックの紹介(1/2)  Key Noteスピーチ  Hyperledgerの実績とプロダクショングレードのネットワーク • SwissCom (w/Daura. Capital Mgmt)、DLTLEDGER(w/DBS, global trade), Circular(Rwanda, Tantalum tracking), NIIT (chain-m. transparancy for airline ticket processing), Monata-go(india trade finance), IFT, China-banking network (L/C), we.trade, OpenIDL (AAIS. insurance compliance data sharing), JD.com (JD blockchain open platform)  車のインベントリー管理(DMX)  VINBlock。Sawtoothを使用し、ライフサイクル管理  医療従事者のCredential管理(TruU)  Sovrin (Indy)  医療データの転送(Exus)  EU域内のデータ連携。Fabricを利用  分散ID管理(CULedger)  MyCUID。Sobrin(Indy)を利用  文書管理(BlockLedger)  Fabric/PDCを利用
  36. 36. 36IBM Blockchain / © 2018 IBM Corporation 一部トピックの紹介(2/2)  教育情報証明(BLOCKCERT)  Fabricを利用。履修歴等の情報をコロンビアの大学で実証実験  Private Capital Market(KoreconX)  SME向けのプラットフォーム。Fabricを利用  分散ID管理(SecureKey)  Verified.me。Fabricベース  ブロックチェーンセキュリティ(FujitsuLab)  Ursa developerによるブロックチェーンセキュリティのHints.  Cordentity(Lixoft)  IndyとCordaR3の連携  Legalブロックチェーン(GLBC, Integra)  GLBC:Global Legal Blockchain Consortium。 IntegraはIBMとNDAブロックチェーンプラットフォームを構築
  37. 37. 37 本日の内容  Hyperledger Fabric概要&最新動向  Hyperledger プロジェクト  ブロックチェーンアプリ開発のHints&Tips IBM Blockchain / © 2018 IBM Corporation
  38. 38. 38IBM Blockchain / © 2018 IBM Corporation 1.非決定論的(non-deterministic)処理の回避  ブロックチェーン・ネットワークにおいて、チェーンコード複数 数ピアにて、同じ処理を実行  実行結果は複数ピア間で同じである必要がある  次のような非決定的処理(実行結果に影響する場合)の実装は避け ること:  乱数  システム時刻  外部システムからの連番取得  気象データ  為替レート など
  39. 39. 39IBM Blockchain / © 2018 IBM Corporation 2.イメージ、文書あるいは大容量データの保管  分散台帳(HyperlegerではブロックチェーンとステートDB)は、 イメージ、文書、その他の大容量データの保管に最適化された構 造ではないため、外部(オフチェーン)に置くことが望ましい。  台帳には、ファイル等のハッシュ値とポインター(オブジェクト ストレージのファイルのURLなど)を保管することで、データの の共有と真正性の担保を行うことができる。 Ledger Hyperledger Fabric Ledger Ledger Ledger オブジェクト ストレージ チェーンコード オブジェクトの ハッシュ値/リンク/ID… 画像、音声、PDF… ハッシュ値を突合し 真正性を証明
  40. 40. 40IBM Blockchain / © 2018 IBM Corporation 3.更新データの読み取り  更新を行ったレコードに対する読み取りを、同じトランザクション内 でおこなうことはできない。 ⇛Commitが完了するまでは、ステートへの書き込みは 確定されていないため Ledger 0 Tx1 ①READ ②WRITE ③READ Aさんの所持金: 100円 Aさんの所持金 +100円 Aさんの所持金: 100円 Ledger 1 ✗ Ledger 0 Tx1 ①READ ②WRITE ③READ Aさんの所持金: 100円 Aさんの所持金 +100円 Aさんの所持金: 200円 Ledger 1 Tx2 ①READ Ledger 1 Aさんの所持金: 200円 失敗例 成功例 Tx1 コミット
  41. 41. 41IBM Blockchain / © 2018 IBM Corporation 4.パーソナルデータ(PII)の保管  個人情報について、遵守すべき法規制は国によって違うが、例え ばEUのGDPRでは情報を消す権利が認められており、これに遵守 するためには、改ざんできない(情報が消せない)ブロック チェーンに情報を書かないことが必要  オフチェーンを活用 Blokchain and GDPR(WP) https://www-01.ibm.com/common/ssi/cgi-bin/ssialias?htmlfid=61014461USEN Config Block 0 Config Block 1 Transaction Block 2 Transaction Block 3 Genesis Worldstate Blockchain データストア (オフチェーン) チェーン上に格納されたソルトつきハッシュは データストア(オフチェーン)内のハッシュと一致 Personal Data Salt salted hash salted hash salted hash
  42. 42. 42IBM Blockchain / © 2018 IBM Corporation 5.シャドー・チェーン(あるいはシャドー・レッジャー)の利用  業務アプリケーション稼働中の既存システムへの影響を最小限 に、ブロックチェーンの適用を進めるアプローチとして、シャ ドー・チェーン(シャドー・レッジャー)がある。  既存システムに投入されたデータを、順リアルタイムやバッチで 分散台帳に連携し、ブロックチェーンを複数システム(企業)間 で活用。 既存システム 既存システム A社 既存システム 既存システム Ledger ブロックチェーン Ledger Ledger Ledger B社 C社 D社 実データ/ハッシュ値などをリアルタイム/バッチで連携
  43. 43. 43IBM Blockchain / © 2018 IBM Corporation 6.Queryの実行形態  台帳(ステートDB)に対するQueryには2種類ある: • ブロックを更新しないもの • Orderingサービスを利用し、ブロックを更新するもの  処理性能と監査性(記録の有無)のトレードオフで、ベスト・プ ラクティスはないが、どちらを使うかは、クライアント・アプリ ケーション開発時に意識する必要がある。
  44. 44. 44IBM Blockchain / © 2018 IBM Corporation 7.大量データ分析  CouchDBのQuery機能の拡張など、Queryの性能拡張は進んでい るが、ステートDBに対する大量データ検索・分析は推奨されな い。  オフチェーンに大量データ検索・分析用のDBを配置し、こちらを 活用することを推奨: • データ抽出〜加工〜分析処理 • カラム型DBやインメモリーDBなど
  45. 45. 45IBM Blockchain / © 2018 IBM Corporation 8.外部システムへのアクセス  ブロックチェーンネットワーク(=Chaincode)から既存システム へのアクセス(特に更新処理)は、次の観点から推奨されない: • Commitのタイミングの違い • 複数Peerから同時にリクエストが発行され、非決定的処理に なる可能性がある  フロントアプリケーション(コントローラー)からのアクセスや、 Eventの利用で実現することを推奨
  46. 46. 46IBM Blockchain / © 2018 IBM Corporation 9.フロント・システムのDBとの整合性確保  フロント・システムのDBとブロックチェーンの台帳は、トランザ クション処理の考え方が違うので、更新処理の整合性を確保する のは考慮が必要: • フロント・システムのDB(通常RDB):ACID特性(Atomic) • ブロックチェーンの台帳:BASE特性(Eventually Consistent)  タイムアウトを含む障害時には、運用等での整合性確保を行う
  47. 47. 47IBM Blockchain / © 2018 IBM Corporation 10.ユーザー情報管理、鍵管理  各ユーザー(エンドユーザー)毎にブロックチェーン・ネット ワークのユーザーを付与することは推奨ではない。  通常は、フロント・システムでサービス利用のためのユーザー認 証を行い、ブロックチェーンにはProxyユーザーでのアクセスを 行うケースが多い。 ブロックチェーンI/F Hyperledger Fabric Client アプリケーション メイン Web モバイル Peer 台帳 Peer Peer チェーン コード チェーン コード チェーン コード クライアントアプリケーション ブロックチェーン基盤 Hyperledger Fabric 台帳 台帳 ① 認証機能 証明書 管理機能 鍵管理 機能 サービス利用のための認証・許可 ブロックチェーンネットワークへのアクセスユーザーを 登録し、秘密鍵/証明書を生成
  48. 48. 48IBM Blockchain / © 2018 IBM Corporation 11.ブロックチェーン・ネットワークパターン Community Based Network Member Member Founder Directed Network Member Member Founder Member Member Consortium Based Network Member Founder Founder Founder Member Member Member Member  ネットワークでの連携形態も各種あるが、コンソーシアム型では複数の参加者 が、コンソーシアム運営/ガバナンス/運用などを共同で推進する。
  49. 49. 49IBM Blockchain / © 2018 IBM Corporation 12.ブロックチェーン・システム構成パターン  フロントアプリケーションを個別に準備するケース、フロントア プリケーションを共通化するケースに分類される 個別 共通化 Peer 台帳 Peer Peer チェーン コード チェーン コード チェーン コード ブロックチェーン基盤 Hyperledger Fabric 台帳 台帳 ブロックチェーンI/F Hyperledger Fabric Client クライアントアプリケーション Web アプリ ブロックチェーンI/F Hyperledger Fabric Client クライアントアプリケーション Web アプリ A社アプリ B社アプリ A社アプリ B社アプリ Peer 台帳 Peer Peer チェーン コード チェーン コード チェーン コード ブロックチェーン基盤 Hyperledger Fabric 台帳 台帳 ブロックチェーンI/F Hyperledger Fabric Client 共通サービスシステム Web アプリ 共通 API ブロックチェーンI/F Hyperledger Fabric Client Web アプリ
  50. 50. 50IBM Blockchain / © 2018 IBM Corporation 13.プライバシー実装パターン ①ユーザー認証とアクセス制御(許可制) →MSP(Membership Service Provider)とCA(Certificate Authority) ②ネットワーク内で台帳を共有するメンバー(Org)を制限 →Channel ③チャネル内でより細かく保管/アクセスできるデータを制御 →Private Data Collection(Side DB) ④ZKPベースの匿名性と、トランザクション間の非関連性の確保 →Identity Mixer
  51. 51. 51IBM Blockchain / © 2018 IBM Corporation 14.チェーンコードの配置や更新  チェーンコードの配置は各Peerごとにinstall必要がある  チェーンコードのIDやバージョンはノード間で整合性を取る必要がある  チェーンコードの更新はすべてのPeerに対して行う必要がある クライアント チェーンコードを インストール ID:BCcode01 Ver:1.0 Hyperledger Fabricネットワーク Peer1 チェーンコードID: BCcode01 バージョン: 1.0 Peer2 チェーンコードID: BCcode01 バージョン: 1.0 Peer3 チェーンコードID: BCcode01 バージョン: 1.0 Peer4 チェーンコードID: BCcode01 バージョン: 1.0 クライアント チェーンコードを インストール ID:BCcode01 Ver:1.0 クライアント チェーンコードを インストール ID:BCcode01 Ver:1.0 クライアント チェーンコードを インストール ID:BCcode01 Ver:1.0
  52. 52. 52 IBMブロックチェーンセミナー(リプレイ)のご案内 • ブロックチェーン技術概要と、IBMのブロックチェーンサービスであるIBM Blockchain Platform(Starter Plan)を使ったアプリケーション開発の流れを、 約90分で理解できる無償オンラインセミナーです。 視聴リンク:http://ibm.biz/BlockchainDemo • ブロックチェーンのより詳しい技術内容とアプリケーション開発を知りたい方の ための無償オンラインセミナーも提供しています(技術解説とアプリケーション 開発の2コース。それぞれ約60分です) 視聴リンク:https://www.ibm.com/partnerworld/page/pw_frm_blockchain

×