SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

IBM Bluemix User Group(BMXUG)リレー寄稿

ブロックチェーンアプリを実際に動かしてみよう!

IBM Bluemix User Group(BMXUG)リレー寄稿 第6回


  • X ポスト
  • このエントリーをはてなブックマークに追加

2. Blockchainのコミュニティについて

2.1. Blockchainコミュニティ

  • Linux Foundation Hyperledger:Linux FoundationコミュニティによるBlockchain開発プロジェクト。IBMのOpen BlockchainとDigital Asset HoldingsのHyperledgerをもとに標準化を進めている(2016年の秋頃にメジャーバージョンがリリースされる予定)
  • IBM Open Blockchain:IBMが開発したOSSのBlockchainファブリック。Linux FundationのHyperledgerプロジェクトのベースソフトウェアとして採用されている
  • R3 Blockchain Consortium:Barclays、Goldman Sachs、J.P. Morgan、その他日本の3大メガバンクなどにより構成される。こちらはEthereumというプラットフォームを使用している

2.1.1. IBMの取り組み

 クラウドサービスでは、Blockchain-as-a-Service on Bluemixが、オンプレミスでは、PowerSystemsやz Systems Linux ONE上でのサービスが提供されています。

2.1.2. Microsoftの取り組み

  • Blockchain-as-a-Service on Microsoft Azure
  • Solidity Integration with Visual Studio
  • BlockApps(Powered by ConsenSys)

 以降はHyperledgerを主に取り上げたいと思います。

3. Hyperledgerについて

3.1. Hyperledger Fabricのアーキテクチャー

 「IBM Blockchain Archtecture & Code offered to Linux Foundation」

 元々はIBM Open Blockchainとして開発、Linux FoundationのHyperledgerプロジェクトのベースソフトウェアとして採用され、Digital Asset HoldingsのHyperledgerと共に標準化が勧められています。2016年秋頃にはメジャーバージョンがリリースされる予定でしたが、開発が遅れており来年に持ち越すとのことです。

 なお、2016年8月現在では、更新が頻繁に行われているため、以降のデモでは一部安定版のOpen Blockchian(OBC)を用いています(※10月現在こちらのリポジトリは削除され、Hyperledgerプロジェクトに完全移行しています)。

Fig 3. Hyperledgerのアーキテクチャー
Fig 3. Hyperledgerのアーキテクチャー
  • Membership:Blockchain参加者のアイデンティティ、プライバシー、監査証跡
  • Blockchain、Transaction:分散型トランザクション台帳。合意形成(Consensus)により台帳が更新される
  • Chaincode:Blockchainに対してビジネスロジックを実行する"Smart Contract"を実装
  • API、SDK、CLI:開発者がBlockchain Networkをプログラムで制御できるようにするツール群

3.2. アーキテクチャー詳細

 以降では、Hyperledgerアーキテクチャーの詳細について触れたいと思います。

3.2.1. Hyperledger Membershipサービス

 Blockchain参加者のアイデンティティ、プライバシー、監査証跡。

  • 参加者(Participants)は、事前登録が必要
  • Blockchain Networkのセットアップ時に許可レベルを決定
    • Liberal:アクセスが容易。広範な適用
    • Restrictive:制限付きアクセス。高信頼性。
  • eCerttCert
  • Registration(登録):各メンバーに証明書を発行
  • Attributes(属性):メンバーに対し、Transaction実行やプライバシー確保のためのキーを発行
  • Reputation(監査)監査人(Auditor)がTransactionメンバーの関係について証跡などを収集する機能を提供

3.2.2. Hyperledger Blockchain、Transactionサービス

 分散型トランザクション台帳。合意形成(Consensus)により台帳が更新される。

  • Consensus Manager:Transactionをいつ実行するかを決定。アルゴリズムに依存
  • Distributed Ledger:Blockchainの整合性を維持
  • P2P Protocol:参加者間で台帳の同期を取るための標準技術(gRPC)を利用
  • Ledger Storage:BlockchainのBlock、Transactionなどのデータをセキュアに保管。KVS型のRocksDBを採用
  • Event Hub:分散ネットワークにわたるイベントを管理

3.2.3. Hyperledger Chaincodeサービス

 Blockchainに対してビジネスロジックを実行する"Smart Contract"を実装。

  • Smart Contractを記述し、Validating Peerで稼働。Goにより実装(将来的にJavaやJavaScriptなどもサポート予定)
    • Secure Container:セキュアでマシンに依存しないコンテナ内に保管・実行される
    • Secure Registry:適切な参加者からのアクセスのみを許可

3.3. Blockchainの参加者(Participants)

Fig 4. Blockchainの参加者
Fig 4. Blockchainの参加者
  • Users:ビジネス・ネットワーク内のビジネスユーザー。業務アプリケーションを介してBlockchainを利用。Blockchainネットワークの存在を意識しない
  • Regulators:ビジネス・ネットワーク全体の監督者。台帳(ledger)のコンテンツへの広範なアクセスが可能
  • Developers:アプリケーションとSmart Contractを開発
  • Operators:Blockchainネットワークを監視・運用・管理
  • CA:認証局。認可の必要なBlockchainネットワークの各種証明書の管理
  • Existing Systems:Blockchainにより利用される可能性のある既存の基幹システム。既存システム側からBlockchain側にリクエストが送られる可能性あり
  • Existing Data Sources:Smart Contractの振る舞いに影響を与える可能性のある既存システムのデータ・ソース

3.4. Blockchainのコンポーネント

  • Ledger:Transaction(Block)と状態(World State)を記録
  • Smart Contract:Businesse NetworkのTransactionをCodeに隠蔽。Chaincodeで実装
  • Consensus(合意形成):Blockchain Networkを構成するNetwork DataとPeerの集合。分散した台帳間の整合性を維持
  • Membership:User識別とTransactionの証明書、その他アクセス制御情報などを保持。認証系
  • Event:新規Block作成などのBlockchain内の重要な操作に関する通知イベントを発行
  • System Management:Blockchain Componentの作成、変更、管理全般
  • Wallet:Userのセキュリティ情報(パスワードなど)を管理
  • System Integration:既存システムとの統合・連携

3.5. ビジネスアプリケーションと台帳(Ledger)

 以下にビジネス・アプリケーションと台帳との関係図を示します。開発者はビジネス・アプリケーションおよびSmart Contractを開発します。アプリケーションは台帳にアクセスします。Chaincodeとして実装されたSmart ContractはBlockchainとKVS型DBのWorld Stateにアクセスします。

Fig 5. Application and Ledger
Fig 5. Application and Ledger

次のページ
4. Blockchainの4つの技術要素

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
IBM Bluemix User Group(BMXUG)リレー寄稿連載記事一覧

もっと読む

この記事の著者

新井 健三(Bluemix User Group)(アライ ケンゾウ)

これまで主に証券等の金融取引システムや基幹業務システムの構築プロジェクト等に携わって参りました。今後は有限責任監査法人トーマツにてStartup企業に向けたブロックチェーン技術のサポートや金融アドバイザリー業務なども行なっていく予定です。猫をこよなく愛しています。Twitter: @KenzoArai

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/9625 2021/03/25 21:21

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング