VMware Blockchain Emerging technology

仮想通貨だけじゃない、VMware Blockchain で出来ること(第二回)

VMware Blockchain とは

第二回より本格的にVMware のBlockchain を見ていきましょう。

ブロックチェーンネットワークを構成するにはレプリカノードを数台用意し、ノードの故障等に耐えうるプロトコルをもってレプリカノード間でコンセンサスをとる作業を進める必要があります。

VMware が提供するのは上述のコンセンサスを取る仕組みやその通信のプロトコルになります。これ以外にもノードの状態を表示するDashbordや、ブロックチェーンネットワークにアクセスする際に利用するクライアント等があります。

Project Concord

これはVMware がリードするオープンソースプロジェクトで、コンセンサスエンジンを提供します。多くの外資系IT企業は重要な自社製品であってもオープンソースとして開発を進め、仕様やコードを外部に積極的に公開しています。

https://projectconcord.io/

コンセンサスエンジンの仕様の元となるアイデアはVMware Research で公開されており、ブロックチェーンを学術的に研究する際に必ず耳にするNakamoto Consensus Algorithm やSMR(State-machine replication:フォルトトレラントサービスの実装方法)を解説しつつステートマシンがビサンチンフォルトトレラントな状態にするための最適解を示しています。(本Blogでは割愛しますが)

Concord に話を戻すと、このライブラリはブロックチェーンネットワークを構成するレプリカノードにインストールされ下記特徴を有します。

  • 高性能(高スループット)
  • 拡張性がある

一般的にブロックチェーン用のプロトコルはByzantine fault-tolerant consensus protocols (BFT プロトコル)と言われるのですが、VMware では通信のオーバーヘッドを極力削減することで上記2点の高スループットと拡張性を達成しました。(SBFT:Scalable Byzantine Fault Tolerance

また耐障害性(フォルトトレラント)の観点で、レプリカノードの故障に対して許容可能なノード数を下記の式より導くことが可能で、例えばレプリカノードを4つ用意できれば1つのノードが故障してもコンセンサスエンジンとして機能し続けることが可能です。

  • n=3f+1
    • n: concord を搭載したレプリカノードの総数
    • f:  許容可能な故障したレプリカノードの数

SBFTの場合、地理的に分散配置させたレプリカノードを100台用意した際、32台までの故障に耐えることが可能です。以前は20台前後のレプリカノードを集中的に配置した場合が最も性能的に良好であった時代を考えるとSBFT は分散配置に適しておりかつ100以上のレプリカノードに対応可能と言えます。ただし、現状これほどのノードを必要とするお客様はプライベートなブロックチェーンネットワークにおいて現実的には稀有と思われます。また、性能面においても1秒あたり50トランザクションを達成しています。(VMware Research 資料

VMware Blockchain Platform

商用としてのBlockchain システムは既に幾つかの企業からリリースされていますが、VMware の場合は下記の2点をセットで提供することでユーザはブロックチェーンシステムに対しての管理から解放され、分散アプリケーションの開発に集中できます。

  1. コンセンサスエンジン
  2. スマートコントラクト
  3. 1と2に対する技術的な商用サポート

1.は先ほどのProject Concord を提供します。これはオープンソースではありますが、お客様はVMware より技術的なサポートが得られるため安心してご利用頂くことが可能です。

同時に2.のスマートコントラクトも製品のパッケージに含まれます。VMware Blockchain ではDaml とEthereum が提供されお客様は自由に選ぶことが可能になります。Daml は第一回のblog でも紹介したDigital Asset 社開発のスマートコントラクトでVMware は2019年頃よりパートナーとしてともにDLT の発展に貢献しております。

3に関しては、VMware は長年IT 部門に対する技術的なサポートを提供しており、組織的、技術的にも成熟した文化を有しております。これらがお客様に提供さることはユーザ様のロジェクトを成功させる重要なポイントとなります。

図1.VMware Blockchain Platform

 

この様にVMware Blockchain を購入頂くと、コンセンサスエンジンとスマートコントラクトの両方を利用することが可能になりますが、ここで一度スマートコントラクトの種類とそれぞれの特徴についてまとめてみましょう。

スマートコントラクト

先ほどVMware BlockchainはDaml とEthereum 両方をサポートしているとお伝えしましたが、これらの特徴を詳しくみていきましょう。

  • DAML (Digital Asset Modeling Language)
    • Digital Asset が開発しているスマートコントラクト言語
    • ランタイム含むSDK も提供
    • 特徴
      • Hyperledger Fabric, Sawtooth, BESU にデプロイ可能
      • 実ユースケースにおけるデータとビジネスロジックにフォーカスできる
      • 署名、データスキーマ、プライバシーなど多くを抽象化できる

 

  • Ethereum
    • 分散アプリケーションを構築するプラットフォーム
    • 特徴
      • Solidity 言語を利用
      • Ethereum Virtual Machine イーサリアムのスマートコントラクト用のランタイム環境
      • 悪意のある3rd パーティーからの干渉を排除し正確にプログラムを実行
      • EVM は高レベルに抽象化プログラミングでコンパイルされ実行
      • Truffle:Ethereum 向けアプリ開発用のフレームワーク(スマートコントラクトのコンパイルなど)

 

このようにお客様の分散アプリケーションの用途にあわせて適切なスマートコントラクトを選択できます。例えば今後増えるであろうNFT であればEthereum/Solidity を利用することが出来るようになります。もしくはビジネスフローを抽象化したいのであればDaml が良いかもしれません。

VMware Blockchain Overview

上述したスマートコントラクト、コンセンサスエンジンをレプリカノード(コンピューティングノード:平たく言うとサーバコンピュータ もしくはクラウド環境)数台にインストールし、ネットワーク構成をとればブロックチェーンネットワークを構築するこができます。ここでは4台のレプリカノードにDaml ベースのスマートコントラクトを利用している場合をみてみましょう。

図2. VMware Blockchain Overview

 

先ず図の右側に4台のレプリカノードがあることが確認でき、台帳が相互に検証されている状態となり、前回ブログで言うSSOT な状態を形成します。図の中央にクライアントが2台あり、このクライアントPC にはDaml のSDK がインストールされており、ユーザが開発したdApp がおかれています。

dApp のユースケース等はここでは触れませんが(他ブログで紹介しておりますので、是非参照ください)図の左側のパーティA、B・・・の各ユーザが該当のクライアントにアクセスして必要な作業をしていくことができます。

ブロックチェーンを使うことで該当のパーティ等が例えば企業A、B、Cと言ったような企業間の取引を表す場合に、クライアントを用いて安全な情報の伝達(例えば押印が必要な決済処理とか)をスムーズに行い企業間の業務効率を劇的に向上させることが可能になります。


まとめ

VMware Blockchain はオープンソースで開発がされているコンセンサスエンジンをコンピューティングノードにインストールして利用するような形式になります。巷ではクラウド環境を用いてブロックチェーンネットワークを構成する方法が散見されますが、オンプレからクラウドをハイブリットで利用できる点はVMware ならではのソリューションと言えます。

図3.VMware Blockchain Customer benefit

 

また、図3.ではVMware が仮想環境からBlockchain のライブラリ、そしてスマートコントラクトまで一貫してサポートしている点をあげています。そうすることでお客様は分散アプリケーションの開発に専念することができ、確実なプロジェクトの進行を実現することが可能になります。

第三回ではVMware Blockchain がサポートしているスマートコントラクトの一つDaml について紹介してまいりたいと思います。