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.

20190219 hyperledger tokyo_meetup_min_bft

946 views

Published on

「合意形成プロトコル MinBFT (Hyperledger Lab) のご紹介」
NEC ソリューションイノベータ 第一プラットフォームソフトウェア事業部 堀口 直也氏
2019年2月19日Hyperledger Tokyo Meetupにて講演

Published in: Business
  • If you want to download or read this book, Copy link or url below in the New tab ......................................................................................................................... DOWNLOAD FULL PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Doc Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... .........................................................................................................................
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • accessibility Books Library allowing access to top content, including thousands of title from favorite author, plus the ability to read or download a huge selection of books for your pc or smartphone within minutes DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... ...................................ALL FOR EBOOKS................................................. Cookbooks, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THI5 BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download doc Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m77EgH } ......................................................................................................................... Download Full EPUB Ebook here { http://bit.ly/2m77EgH } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m77EgH } ......................................................................................................................... Download EPUB Ebook here { http://bit.ly/2m77EgH } ......................................................................................................................... Download doc Ebook here { http://bit.ly/2m77EgH } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Be the first to like this

20190219 hyperledger tokyo_meetup_min_bft

  1. 1. 1 © NEC Corporation 2019 合意形成プロトコル MinBFT (Hyperledger Lab) のご紹介 NEC ソリューションイノベータ 堀口 直也 <n-horiguchi@ah.jp.nec.com> 2019 年 2 月 19 日 Hyperledger Tokyo Meetup (発表後追記版)
  2. 2. 3 © NEC Corporation 2019 講演内容  導入  NEC のブロックチェーン技術への取り組み  NEC と Hyperledger コミュニティの関わり  MinBFT  Hyperledger Labs  システムモデル  アルゴリズムの特徴・利点  基本動作  Checkpoint  View Change  ソースコードの概要  サンプル実行例  開発状況  まとめ  おまけ (質疑の内容を受けて)
  3. 3. 4 © NEC Corporation 2019 NEC のブロックチェーン技術への取り組み ▌2012 年からブロックチェーン関連の研究開発を継続  NEC Blockchain • https://www.nec.com/en/global/solutions/blockchain/features-of-nec-blockchain.html  NEC 世界最速 毎秒10万件超の取引を可能にするブロックチェーン技術を開発 • https://jpn.nec.com/press/201802/20180215_03.html
  4. 4. 5 © NEC Corporation 2019 NEC と Hyperledger コミュニティの関わり ▌2017 年に Hyperledger プロジェクトにメンバー企業として 参加 (プレミアメンバー) ▌NEC Blockchain は Hyperledger Fabric ベース ▌MinBFT (Hyperledger Lab) は NEC と Hyperledger の開発 者コミュニティとの接点 ▌Hyperledger Fabric にパッチ提案 ▌コミュニティの各種イベントに参加  Meetup, Hackfest, Members Summit
  5. 5. 6 © NEC Corporation 2019 MinBFT: Hyperledger Labs ▌ブロックチェーン技術に関する OSS コミュニティのスモー ルスタートを支援する ▌Hyperledger のトップレベルプロジェクトに比べて義務が軽 く、参入が容易
  6. 6. 7 © NEC Corporation 2019 MinBFT: 概要 ▌効率の良い BFT な合意形成アルゴリズム、またはその実 装、あるいはそれを開発するオープンソースプロジェクト  https://github.com/hyperledger-labs/minbft  元アイデア • "Efficient Byzantine Fault-Tolerance" https://www.researchgate.net/publication/260585535_Efficient_Byzantine_Fault -Tolerance • TEE (Trusted Execution Environment) を用いて合意形成アルゴリズムを強化できる、 という流れを作った
  7. 7. 8 © NEC Corporation 2019 MinBFT: 概要 ▌システムモデル  複数のノード (レプリカ) が同期を取りながら処理を進めていく  クライアント群はノード群に非同期に処理のリクエストを送信し、正しい結果の リプライを得る  ノード群のうち f 台「故障」しても正しく処理が進む  ノードの故障が f 台以内なら必ず有限時間で処理を終える (Liveness)  正常なノードは必ず同じ処理を同じ順序で実行する (Safety) ノード群 クライアント リクエスト リプライ 状態の同期 故障
  8. 8. 9 © NEC Corporation 2019 MinBFT: アルゴリズムの特徴・利点 ▌BFT: Byzantine Fault Tolerant  Byzantine 故障 (悪意を持った任意の動作をする) レプリカがあっても正しく合 意が取れる  Fabric は現状 Crash Fault Tolerant ▌PBFT よりも効率が良い  合意形成レプリカ数が少なくて済む (3f + 1 → 2f + 1)  コミュニケーションラウンドが少なくて済む (3 → 2)  ソフトウェアの実装がシンプル、運用や問題発生時の対応においても有利 ▌USIG (Unique Sequential Identifier Generator): レプリカ 間メッセージに付与する UI (Unique Identifier) を生成 PBFT MinBFT
  9. 9. 10 © NEC Corporation 2019 MinBFT: 基本動作 (Prepare/Commit/Reply) ▌Prepare  プライマリがメッセージにシーケンス番号を付与し、バックアップに伝達  受信側は署名の検証に成功したら Commit メッセージをマルチキャスト ▌Commit  f + 1 以上の Commit メッセージを受信すると当該メッセージは Accept されたとし てリクエストされた処理を実行し、Reply メッセージをクライアントに送信する  リクエストされた処理の実行結果が確実にシーケンス番号順になるよう、各レプリカ は他レプリカから受信した最新シーケンス番号を記憶している ▌Reply  クライアントは、f + 1 以上の同一内容の Reply メッセージが集まった時点で、それ をリクエストの正しい処理結果とみなす Client Replica 0 (primary) Replica 1 (backup) Replica 2 (backup) Request Prepare Commit Reply
  10. 10. 11 © NEC Corporation 2019 MinBFT: 実装の特徴 ▌USIG の実装に TEE (Intel SGX) を利用  特定のアプリケーションからしかデータアクセス・コード実行ができない環境 (Enclave) を実現する  プライマリノードがリクエストを受け取ると、enclave 内で下記を実施 • UI (Unique Identifier) を生成 (リクエストごとに重複なく 1 ずつ単調増加した値) • リクエストメッセージの署名 (秘密鍵は enclave 内に保存)  (仮に root 権限を取られたとしても) レプリカ間で処理内容と処理順序を合意するこ とができる  処理順序合意のためのステップが不要となるため、コミュニケーションステップを減 らせる (3 → 2) ▌同様に prepare 以外のメッセージ生成時にも USIG が用いられる createUI verifyUI
  11. 11. 12 © NEC Corporation 2019 ▌そもそも PBFT はなぜ 3f + 1 か?  正常ノード間で処理順序の認識がずれたと仮定する (通常は prepare ステージ で合意が取れるので問題ない)  悪意あるノード群が二枚舌を使って「ずれた認識をそれぞれ肯定」して合意を失 敗 (safety を壊す) させようとする可能性がある ⇒ prepare フェーズの成功条件に 2f + 1 の同意見が必要  悪意あるノード群はすべてのメッセージに「何も応答しない」ことで合意を失敗 (liveness を壊す) させようとする可能性がある ⇒ prepare フェーズの成功条件を満たすため、正常ノードが 2f + 1 必要  従って 3f + 1 ▌MinBFT では処理順序の認識のずれが生じないので prepare フェーズの成功条件が単純に「全ノード間で過半数」でよ い。従って、2f + 1。 MinBFT: なぜ 2f + 1 か
  12. 12. 13 © NEC Corporation 2019 MinBFT: Checkpoint (Garbage Collection) ▌レプリカの状態を確定させる処理 = メッセージログを削除する処理 ▌各レプリカは、メッセージ不着時のリトライなどのために、受信したメッ セージをしばらく保存する (メッセージログ) ▌削除されるタイミング  シーケンス番号が適当な設定値の倍数になったとき (定期的に実行)  view change が発生したとき ▌処理概要  checkpoint メッセージ (レプリカ状態のダイジェスト値を含む) をマルチキャストする  正しい checkpoint メッセージが f + 1 集まった時点で checkpoint が stable になったとみな し、古いログを削除する  受信した f + 1 の checkpoint メッセージはまとめて checkpoint 証明書として保存される  メッセージログの長さには上限が設定されており、それを超えたら以後メッセージは捨てられる レプリカ 0 (プライマリ) レプリカ 1 レプリカ 2 cv: 2 cid: 0 cv: 2 src: 1 cv: 2 src: 2 cv: 1 cid: 0 cv: 1 src: 1 cv: 1 src: 2 cv: 2 cid: 0 cv: 2 src: 1 cv: 2 src: 2 cv: 1 cid: 0 cv: 1 src: 0 cv: 1 src: 2 cv: 2 cid: 0 cv: 2 src: 1 cv: 2 src: 1 cv: 1 cid: 0 cv: 1 src: 1 cv: 1 src: 1 メッセージログの時系列 cv: 3 src: 1 cv: 3 src: 0 cv: 3 src: 0 cv: 4 cid: 0 Request CommitPrepare Checkpoint cv: 3 src: 2 cv: 3 src: 2 cv: 3 src: 1 cv: 3 src: 1 cv: 3 src: 0 cv: 3 src: 0 cv: 4 cid: 0 cv: 3 src: 2 cv: 3 src: 2 cv: 3 src: 1
  13. 13. 14 © NEC Corporation 2019 MinBFT: View Change ▌プライマリノードを変更する処理  プライマリノードが故障したと判断されたとき (改ざんが疑われるとき) に発動 • Request メッセージが到着した時点でタイマーをセットし、タイムアウトまでに Accept され なかったとき  処理内容 • Req-View-Change: view change の打診メッセージをマルチキャストする • View-Change: f + 1 の Req-View-Change メッセージを受信したら、View-Change メッ セージをマルチキャストする –これ以降、古い view に対するメッセージは受け付けない –View-Change メッセージは直近の stable checkpoint 以降のメッセージログを含んでいる –古い view でどこまで合意が進んでいたかを共有するため • New-View: 新プライマリが f + 1 の View-Change メッセージを受け取ると、New-View メッセージをマルチキャストする。そこには受信した View-Change メッセージのセット (New-View Certificate) が含まれる。これを用いて新 view での初期状態を構成する。 Replica 0 (旧プライマリ) Replica 1 (新プライマリ) Replica 2 (backup) Req-View- Change View- Change New- View
  14. 14. 15 © NEC Corporation 2019 MinBFT: ソースコード ▌推奨動作環境 (検証環境)  Ubuntu 18.04 LTS  Go v1.11  protobuf/grpc v1.1  Intel® SGX SDK for Linux v2.3.1 ▌ライセンス  Apache Licence 2.0 (ソースコード)  Creative Commons Attribution 4.0 International License (ドキュメント)
  15. 15. 16 © NEC Corporation 2019 MinBFT: コンポーネント ▌コアロジック: ライブラリとしてインポートして利用 ▌インターフェース: Go 言語のインターフェース型 ▌サンプルコード: クライアントロジック向けに自由に改変可能 Client Logic Client Core Authenticator Authentication Mechanism Replica Connector Networking Mechanism Client Node Replica Node Configuration Mechanism Configer State Machine Request Consumer Replica CoreUSIG Authenticator Authentication Mechanism Replica Connector Networking Mechanism Replica Server Messaging Mechanism
  16. 16. 17 © NEC Corporation 2019 MinBFT: ディレクトリ構造 ▌api – コアロジックと外部コンポーネントの API 定義 ▌client – クライアント側のコアロジック ▌core – レプリカ側のコアロジック ▌usig – USIG の実装 ▌messages – protobuf のメッセージ定義 ▌sample – 外部コンポーネントのサンプル実装  authentication - 認証タグの生成・検証 • keytool – サンプルシナリオ用の鍵生成ツール  net – ネットワークの管理コンポーネント  config – レプリカの設定の管理コンポーネント  requestconsumer – リクエストの処理コード  peer – サンプルアプリケーション (CLI)
  17. 17. 18 © NEC Corporation 2019 MinBFT: サンプル実行例 # SGX SDK をインストール minbft$ curl –s https://download.01.org/intel-sgx/linux- 2.3.1/ubuntu18.04/sgx_linux_x64_sdk_2.3.101.46683.bin -o sgx_linux_x64_sdk.bin minbft$ chmod +x sgx_linux_x64_sdk.bin minbft$ printf "no¥n/opt/intel¥n" | sudo ./sgx_linux_x64_sdk.bin minbft$ . /opt/intel/sgxsdk/environment # minbft をビルド minbft$ export SGX_MODE=SIM // シミュレーションモード: SGX 未対応機で実施する場合 minbft$ make build minbft$ cd sample sample$ ./bin/keytool generate sample$ cp config/consensus.yaml ./ sample$ cp peer/peer.yaml ./ # レプリカの起動 sample$ bin/peer run 0 > /tmp/log0 & sample$ bin/peer run 1 > /tmp/log1 & sample$ bin/peer run 2 > /tmp/log2 & # クライアントからリクエストを発行 sample$ bin/peer request First request
  18. 18. 19 © NEC Corporation 2019 MinBFT: サンプル実行例 ▌各レプリカのログから合意形成の様子が確認できる $ cat /tmp/log0 [minbft] 07:38:43.951 func1 ▶ DEBU 001 Replica 0: Received REQUEST<client=0 seq=1549525123948424599 payload=First request> [minbft] 07:38:43.951 func1 ▶ DEBU 002 Replica 0: Generated PREPARE<cv=1 replica=0 view=0 client=0 seq=1549525123948424599> [minbft] 07:38:44.247 func1 ▶ DEBU 003 Replica 0: Received COMMIT<cv=1 replica=2 primary=0 view=0 client=0 seq=1549525123948424599> [minbft] 07:38:44.248 func1 ▶ DEBU 004 Replica 0: Handled COMMIT<cv=1 replica=2 primary=0 view=0 client=0 seq=1549525123948424599> [minbft] 07:38:44.248 func1 ▶ DEBU 005 Replica 0: Generated REPLY<replica=0 seq=1549525123948424599 result={"Height":1,"PrevBlockHash":null,"Payload":"Rmlyc3QgcmVxdWVzdA=="}> [minbft] 07:38:44.258 func1 ▶ DEBU 006 Replica 0: Received COMMIT<cv=1 replica=1 primary=0 view=0 client=0 seq=1549525123948424599> [minbft] 07:38:44.259 func1 ▶ DEBU 007 Replica 0: Handled COMMIT<cv=1 replica=1 primary=0 view=0 client=0 seq=1549525123948424599> $ cat /tmp/log1 [minbft] 07:38:43.952 func1 ▶ DEBU 001 Replica 1: Received REQUEST<client=0 seq=1549525123948424599 payload=First request> [minbft] 07:38:43.953 func1 ▶ DEBU 002 Replica 1: Received PREPARE<cv=1 replica=0 view=0 client=0 seq=1549525123948424599> [minbft] 07:38:43.953 func1 ▶ DEBU 003 Replica 1: Generated COMMIT<cv=1 replica=1 primary=0 view=0 client=0 seq=1549525123948424599> [minbft] 07:38:43.953 func1 ▶ DEBU 004 Replica 1: Handled PREPARE<cv=1 replica=0 view=0 client=0 seq=1549525123948424599> [minbft] 07:38:43.954 func1 ▶ DEBU 005 Replica 1: Generated REPLY<replica=1 seq=1549525123948424599 result={"Height":1,"PrevBlockHash":null,"Payload":"Rmlyc3QgcmVxdWVzdA=="}> [minbft] 07:38:44.248 func1 ▶ DEBU 006 Replica 1: Received COMMIT<cv=1 replica=2 primary=0 view=0 client=0 seq=1549525123948424599> [minbft] 07:38:44.249 func1 ▶ DEBU 007 Replica 1: Handled COMMIT<cv=1 replica=2 primary=0 view=0 client=0 seq=1549525123948424599> $ cat /tmp/log2 [minbft] 07:38:43.951 func1 ▶ DEBU 001 Replica 2: Received REQUEST<client=0 seq=1549525123948424599 payload=First request> [minbft] 07:38:43.951 func1 ▶ DEBU 002 Replica 2: Received PREPARE<cv=1 replica=0 view=0 client=0 seq=1549525123948424599> [minbft] 07:38:43.952 func1 ▶ DEBU 003 Replica 2: Generated COMMIT<cv=1 replica=2 primary=0 view=0 client=0 seq=1549525123948424599> [minbft] 07:38:43.952 func1 ▶ DEBU 004 Replica 2: Handled PREPARE<cv=1 replica=0 view=0 client=0 seq=1549525123948424599> [minbft] 07:38:43.952 func1 ▶ DEBU 005 Replica 2: Generated REPLY<replica=2 seq=1549525123948424599 result={"Height":1,"PrevBlockHash":null,"Payload":"Rmlyc3QgcmVxdWVzdA=="}> [minbft] 07:38:43.954 func1 ▶ DEBU 006 Replica 2: Received COMMIT<cv=1 replica=1 primary=0 view=0 client=0 seq=1549525123948424599> [minbft] 07:38:43.954 func1 ▶ DEBU 007 Replica 2: Handled COMMIT<cv=1 replica=1 primary=0 view=0 client=0 seq=1549525123948424599>
  19. 19. 20 © NEC Corporation 2019 (参考) MinBFT: PBFT との性能比較 ▌Fabric v0.6 を改造して PBFT と比較 ▌小規模 (f = 1~3) での比較で、約 3 倍スループット向上 3x higher
  20. 20. 21 © NEC Corporation 2019 MinBFT: 開発状況 ▌まだ experimental 段階 実装項目 (Roadmap より) 状態 Normal case operation 実装済み SGX USIG 実装済み Simple blockchain-like example 実装済み Continuous Integration 実装済み View change 実装中 Garbage collection and checkpoints 検討中 USIG enclave attestation 検討中 Faulty node recovery 検討中 Request batching 検討中 Asynchronous requests 検討中 MAC authentication 検討中 Read-only requests 検討中 Speculative request execution 検討中 Benchmarks 検討中 Interface to Hyperledger Fabric 検討中
  21. 21. 22 © NEC Corporation 2019 まとめ ▌MinBFT  開発の背景を説明  元論文ベースで概念・動作概要を説明  実装の特徴やサンプルコードの動作例について説明  開発状況について説明 ▌質問、コメント、問題報告、プルリクエストなど、 ご協力をよろしくお願いします。  コンタクト • メール: n-horiguchi@ah.jp.nec.com • Twitter: @nhoriguchi • GitHub: https://github.com/hyperledger-labs/minbft/issues
  22. 22. 24 © NEC Corporation 2019 おまけ ▌(時間が余ったら盛り込む予定だった) SGX SDK の使い方 ▌質疑に基づく追加観点
  23. 23. 25 © NEC Corporation 2019 SGX SDK の利用 ▌EDL (Enclave Definition Language) で enclave 処理のインターフェースを定義 ▌ビルドすると usig_t.c, usig_t.h, usig.signed.so などが自動生成される # cat usig/sgx/enclave/usig.edl ... enclave { include "sgx_tcrypto.h" trusted { // enclave 内の処理に入るためのインターフェースの定義 public sgx_status_t ecall_usig_init( [in, size=sealed_data_size] void *sealed_data, uint32_t sealed_data_size ); public sgx_status_t ecall_usig_get_sealed_key_size( [out] uint32_t *size ); public sgx_status_t ecall_usig_seal_key( [out, size=sealed_data_size] void *sealed_data, uint32_t sealed_data_size ); public sgx_status_t ecall_usig_get_epoch([out] uint64_t *epoch); public sgx_status_t ecall_usig_get_pub_key( [out] sgx_ec256_public_t *pub_key ); public sgx_status_t ecall_usig_create_ui( [in, isary] sgx_sha256_hash_t digest, [out] uint64_t *counter, [out] sgx_ec256_signature_t *signature ); }; untrusted { // enclave 内から外の処理を呼び出すインターフェース、今回はなし }; };
  24. 24. 26 © NEC Corporation 2019 Enclave 内処理の呼び出し方 ▌Enclave 外からインターフェース関数を呼べば EDL から自 動生成されたコードを介して enclave 内処理に移る https://software.intel.com/en-us/articles/intel-software-guard-extensions-tutorial-part-7-refining-the-enclave EDL から 自動生成 Enclave 外の 処理 Enclave 内の処理 (バイナリデータは enclave 初期化時 に .so ファイルを 渡して enclave 内に展開する)
  25. 25. 27 © NEC Corporation 2019 質疑に基づく追加観点 ▌(将来的な) MinBFT と Fabric の統合について  現状 MinBFT プロジェクトは合意形成プロトコル部分のみのライブラリであ り、あるシステムに組み込んだ時、そのシステムが BFT となるかはシステム側 の設計 (使い方) 次第です。Fabric を BFT にしようすると、ordering の部分に 加え、endorsement の部分でも BFT な設計が必要と考えています。  今後 Fabric に BFT を (再) 導入する動きがありそうで、どのような設計になる か注目しています。 ▌MinBFT と NEC Blockchain との関係について  NEC Blockchain の高速合意形成は、NEC の知財を含んでおりソースコードは 公開されていませんが、TEE を利用した合意形成の高速化という点で、MinBFT の延長にあるものです。元論文は以下 URL で公開されているので、ご興味ある 方はご参照ください。  Scalable Byzantine Consensus via Hardware-assisted Secret Sharing https://arxiv.org/abs/1612.04997
  26. 26. 28 © NEC Corporation 2019 質疑に基づく追加観点 ▌View Change の部分について、MinBFT と PBFT に大きな 違いはあるか、という点について  PBFT の view change 処理は view-change/new-view の二つのコミュニケー ションラウンドで実行され、req-view-change/view-change/new-view の 3 ラウンドを必要とする MinBFT と異なります。ただ、View Change 自体が頻繁 に起こることを想定していない処理であるため、このコミュニケーションラウン ドの差がシステム全体の遅延として問題になる可能性は低いと考えられます。 ▌Intel SGX が故障した場合にどうなるか、について  レプリカの動作は不定になるが、単純に Byzantine 故障が発生したとみなせば よいので、故障の影響を受けるノードが f 台以内ならば、正常に動作を継続する ことができます。

×