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.

ブロックチェーンを用いたソフトウェア情報の組織間共有

36,733 views

Published on

幾谷吉晴,石尾隆,吉上康平,畑秀明,松本健一
奈良先端科学技術大学院大学

Published in: Science
  • Be the first to comment

  • Be the first to like this

ブロックチェーンを用いたソフトウェア情報の組織間共有

  1. 1. ブロックチェーンを用いた ソフトウェア情報の組織間共有 幾谷吉晴,石尾隆,吉上康平,畑秀明,松本健一 奈良先端科学技術大学院大学
  2. 2. トレーサビリティ 1 [1] 農林水産省, http://www.maff.go.jp/j/syouan/seisaku/trace/ 「商品の移動過程を把握できること」 [1] 問題が起こった場合に 原因究明(ルート遡及)や商品回収(追跡)が可能
  3. 3. ソフトウェア・トレーサビリティ ソフトウェア製品を構成する人工物を 相互に関連付け,必要なリンクを維持し それらのリンクに基づいて 製品と開発プロセスに対する質問に答える能力 [2] [2] Center of Excellence for Software and Systems Traceability (CoEST) , http://www.coest.org/ 2
  4. 4. 複数組織における ソフトウェア・トレーサビリティの担保  ソフトウェア・トレーサビリティは 開発組織や企業が個別に管理・維持  プロセス改善や欠陥原因特定に活用 [3] 従来環境  複数の企業間において トレーサビリィティを担保するための情報を 統合・共有する必要性が指摘 [4] 既存の問題点 [3] Cleland-Huang et al., "Software traceability: trends and future directions", 2014. [4] Maro et al., "Software traceability in the automotive domain: Challenges and solutions", 2018. 3
  5. 5. 鉄道システムのサプライチェーン事例 4 [5] IPA, “ソフトウェア開発の取引構造(サプライチェーン)の実態に関わる課題の調査報告書”, 2014 統合・検証 開発の分業
  6. 6. トレーサビリティ管理の問題と対策  各組織による個別の情報管理では 偽証や事後的な改ざんの恐れが常に存在 [6]  ブロックチェーンによる分散管理が推進  物品・食料品のトレーサビリティ管理 [6]  医療情報の組織間共有 [7] 5 [6] Westerkamp et al., "Blockchain-based Supply Chain Traceability: Token Recipes model Manufacturing Processes", 2018. [7] Zhang et al., "Applying software patterns to address interoperability in blockchain-based healthcare apps", 2017.
  7. 7. 研究目的とアプローチ 6  ソフトウェア開発や品質保証の履歴を 改ざん不可能な形で記録することで 複数組織間の情報の統合・同期を容易にすること 研究目的  あるソフトウェア製品が どんな構成部品の組からビルドされたかを ブロックチェーン上に自動で記録する アプローチ
  8. 8. ブロックチェーン P2P ネットワーク (時点 t) P2P ネットワーク (時点 t+1) 一定 時間後 Peer to Peer ネットワークにおいて 一定の規則に従って合意を取りながら 全体としてデータを更新し続ける情報記録方式 7
  9. 9. ブロックチェーンの特徴 8 優れた点 問題点  高い堅牢性(単一障害点が存在しない)  記録済み情報の改ざんは実践上ほぼ不可能  情報の記録にかかる時間が⾧い(数秒-数分)  情報の記録に必要な費用や計算コストが大きい
  10. 10. 9 身元の明らかな 個人や組織で運用 改ざん 困難性 が優先 変更の 自由度 が優先 OSS Proprietary Public型BC 共有DB Private型BC 本研究の対象 不特定多数の 関係者による運用
  11. 11. 提案システムの全体像 10 Ethereum ネットワーク 記録者 検証者 ビルド 監視 システム ビルド プロセス の再現 監視 情報 提供 取得した ビルドプロセス サマリ 実行 比較 DL ハッシュ化済み ビルドプロセス サマリを記録
  12. 12. ビルド監視システムの動作 11 COM: ~usr$ LANG=C /usr/bin/gcc /mysrc.c –o myprogram 開発者コンソール画面 <コマンドライン> LANG=C /usr/bin/gcc /mysrc.c –o myprogram <コマンドバイナリ> /usr/bin/gcc <読み込みファイル> /mysrc.c, /usr/include/stdlib.h <生成ファイル> /myprogram <コマンドライン> 3cfb990a716fe33a4 <コマンドバイナリ> 321fe5786ee411f6 <読み込みファイル> 88670e0b0cbec63, c1c884ee363c8c560 <生成ファイル> 33c494db0fbdc351 関連ファイルとパスの特定 ハッシュ値に置換 ビルドプロセスサマリ ビルドプロセスサマリ
  13. 13. ビルドプロセスサマリの記録 12 Ethereum ネットワーク 記録者 検証者 ビルド 監視 システム ビルド プロセス の再現 監視 情報 提供 取得した ビルドプロセス サマリ 実行 比較 DL ハッシュ化済み ビルドプロセス サマリを記録
  14. 14. ソフトウェアの構成部品の検証 13 <コマンドライン> 3cfb990a716fe33a4 <コマンドバイナリ> 321fe5786ee411f6 <読み込みファイル> 88670e0b0cbec63, c1c884ee363c8c560 <生成ファイル> 33c494db0fbdc351 ブロックチェーンに記録された ビルドプロセスサマリ DL Ethereum ネットワーク 自社で利用している ソフトウェア製品 ハッシュ計算 33c494db0fbdc351 自分で計算した ハッシュ値 ビルドプロセスの 記録の存在を確認
  15. 15. ソースコードレベルの検証 14 <コマンドライン> 3cfb990a716fe33a4 <コマンドバイナリ> 321fe5786ee411f6 <読み込みファイル> 88670e0b0cbec63, c1c884ee363c8c560 <生成ファイル> 33c494db0fbdc351 ブロックチェーンに記録された ビルドプロセスサマリ DL Ethereum ネットワーク ソフトウェア製品, ソースコード群, およびビルドプロセス <コマンドライン> 3cfb990a716fe33a4 <コマンドバイナリ> 321fe5786ee411f6 <読み込みファイル> 88670e0b0cbec63, c1c884ee363c8c560 <生成ファイル> 33c494db0fbdc351 自分で計算した ハッシュ化ビルドプロセスサマリ 製品が確かにこれらの部品から 構成されていることを検証可能
  16. 16. 期待される効果と限界 15  ソースコードの内容を秘匿した上で ソフトウェア製品の構成部品に対する トレーサビリティの検証可能性を確保できる 期待される効果  複数企業が共同で製品を開発するケース Before : 秘匿性を確保しながら情報を同期 After : 全員がブロックチェーンに書き込み 想定利用シーン
  17. 17. 期待される効果と限界 16  記録済みの情報は改ざんされないが 改ざん済みの情報を記録することは可能 限界  記録システムを可能な限り自動化  記録済み情報の整合性チェックを厳格化 考えられる対策
  18. 18. まとめ 17

×