9月4日に開催された、日本オラクル株式会社が主催するブロックチェーンミートアップ「Blockchain GIG #4」に、NODEE編集部も参加しました。イベントの模様を本記事ではレポートして参ります。
エンタープライズでのブロックチェーン活用がテーマ「Blockchain GIG」
エンタープライズでのブロックチェーン活用が進んでいます。でも一方では、多くのエンジニアが、エンタープライズでブロックチェーンをどう使えばいいのか、どのようなところに気を付ければいいのかといった点、また情報の少なさから、始めようにも中々一歩が踏み出せないという現状があるようです。
「Blockchain GIG」は、これからエンタープライズでのブロックチェーン活用を考えている、またこれから学ぼうとしているエンジニアやユーザーに向けたミートアップセミナーです。
企業の垣根を越えて、第一線で活躍する先鋭のエンジニアたちから、豊富な知識や経験に加えて、実際の事例での苦労話を聞くことができます。オラクルのテクノロジーに限定せず、ほぼ毎週様々なテーマで開催される「Oracle Code Tokyo Night」の一環として行われているイベントです。
今回、NODEE編集部が参加したのは第4回目となる「Blockchain GIG #4」。日本IBMとNTTデータからもゲストを招き、Hyperledger FabricとブロックチェーンのプロジェクトフェーズでのノウハウTipsをテーマにイベントが進みました。イベントの詳細については以下のリンクを参照ください。
イベント詳細 ⇒Oracle Code Night
登壇者
・日本オラクル 中村 岳氏
大学卒業後、金融決済領域に強みを持つSIerにてシステムエンジニアとして活躍。銀行間決済(日銀・SWIFT・CLS)、アプリケーション開発および、プロジェクトマネジメントの経験を経る。 日本オラクルに入社後は、PaaS製品のうち主として、アプリケーション・インテグレーション基盤および、ブロックチェーン基盤を担当し、ユーザー/経済への活用を支援している。
・日本IBM 栗村 彰吾氏
日本IBM入社後、メインフレームLinuxの技術者として提案活動や基幹システムの構築に従事。 2017年からブロックチェーンシステムの提案や技術支援、アーキテクチャ策定などに従事する傍らブロックチェーンMeetupを開催している。
・NTTデータ 安達 仁氏
NTTデータ システム技術本部 デジタルテクノロジ推進室所属。
ブロックチェーンアプリ開発のHint&Tips
本レポートでは、Hyperledger Fabricのアプリケーション開発におけるポイントを紹介する、日本IBMの栗村 彰吾氏によるセッション「ブロックチェーンアプリ開発のHint&Tips」から、”Hyperledger Fabricを使ってきてここは注意した方がいい(設計・開発段階でディスカッションになる)代表的な点“をお伝えします。エンタープライズでのブロックチェーン活用を進めるにあたり重要になってくる部分でしょう。
Hyperledger Fabricとは
エンタープライズ用途を目的としたブロックチェーン。Hyperledger Project(オープンソースコミュニティ)によって開発されている。
v1.0が2017年7月にリリースされ、今年1月にv1.4がLTS版としてリリース。現在v2.0アルファ版が公開されている。
データ設計部分でディスカッションになる代表的な点
栗村氏は、まずエンタープライズでのブロックチェーン利用の”データ設計部分でディスカッションとなる代表的な点”を紹介。Hyperledger Fabricを使う上で、注意が必要な部分として次の4点を挙げました。
- ブロックチェーンに入れるデータをどうするか(ブロックチェーンに入れるデータとして適切、不適切なもの)
- フロントシステム、クライアントアプリとのエンドベースの整合性の確保
- パーソナルデータ(個人情報)の扱い
- データ分析としてのブロックチェーン利用
まず1つ目の「ブロックチェーンに入れるデータをどうするか」という部分については、イメージや文書など容量の多いデータはブロックチェーンには向かないというのが栗村氏の見解です。
実データは、オブジェクトストレージなどブロックチェーン以外の部分に保管をして、メタデータのハッシュ値をブロックチェーンに入れるというような設計を行うことを推奨しています。なお、このような設計にすることで、もしもデータが改ざんされた場合も、ブロックチェーンのハッシュ値との整合性が取れなくなるため改ざんされたことは分かるとのことです。
2つ目の「フロントシステム、クライアントアプリとのエンドベースの整合性の確保」については、データをオフチェーンとオンチェーンで管理する場合、整合性の確保が必要であると指摘。
ブロックチェーンは一度書き込んだら消えないため、例えば、フロントシステムの方でデータの書き込みに失敗したが、ブロックチェーンの方が成功した場合、どうやって整合性を保つかなど、その部分を設計する際しっかり考えなければならないとしました。
そして、データ設計においてもう1つ重要な点が、3つ目の「パーソナルデータ(個人情報)の扱い」です。例えば、個人情報をブロックチェーンに入れて、利用者からそのデータを消してほしいと頼まれた場合どうするか、といった議論ですが、ブロックチェーンの性質からそのデータを消すことはできません。
また、こういった部分は欧州におけるGDPR(EU一般データ保護規則)の規制遵守でも課題となります。ヘルスケアなどセンシティブな情報を扱う場合もその点で議論になりやすいと栗村氏は指摘しています。
それら課題への対策としては、改ざんできない(情報を消せない)ブロックチェーンにそのような情報を書かないことが必要だとしています。
また、栗村氏は4つ目の注意点として、「ブロックチェーンに蓄積されたデータを後から活用したいとなった場合、ブロックチェーンに入っているデータをそのまま分析してもいいのか」という部分を挙げています。
その部分について栗村氏は、ステートDB(保存したいデータを一意のキーに紐づけて保存するデータベース)に対する大量のデータ検索には向いていないため、そのような利用は推奨できないとしています。これも他の例と同様に、分析したいデータはオフチェーン上での管理が適しているとのことです。
シャドー・チェーンの利用
栗村氏は、いきなりブロックチェーンを使うのはハードルが高いという場合、既存のシステムと並行して使っていく手段として「シャドー・チェーン(シャドー・レジャー)」の利用も提案しています。シャドー・チェーンとは、稼働中の既存システムへの影響を最小限に、ブロックチェーンの適用を進めるアプローチです。
既存システムから、ブロックチェーンに格納したいデータのハッシュ値だけをブロックチェーンに格納していくなどといった方法になります。
チェーンコード設計に関する注意点
チェーン・コード設計に関する注意点として、栗村氏は「非決定論的処理の回避」を挙げています。これは、乱数やシステムの時刻、為替レートなど(非決定論的処理)を処理させるようなプログラムをチェーンコード内に入れることは推奨できない、という意味です。
スマートコントラクトは、Peer(台帳を持つノード)で処理され、複数のPeerによって構成されるのがブロックチェーンの基本的な構造です。そして、Peer間で若干処理するタイミングが異なってくるなどの関係で、実行結果に影響を及ぼしてしまうことから、そういった値は使うことが難しいそうです。
また、ここまでで紹介した注意点の他にも、フロントアプリの配置や、ユーザー情報の管理(Hyperledger Fabricにアクセスするユーザーをどのように管理するか)、またコンソーシアムを作る際についてのアドバイスも、栗村氏はセッションで説明していました。
まだユースケースが少ない中での、今回のセッションは、ブロックチェーンの利用を考える企業やエンジニアにとって非常に参考になるものであったでしょう。
Webアプリで十分?どこでブロックチェーンが必要になるのか
各登壇者のセッションが終了した後は、登壇者それぞれが回答する形での質疑応答タイムです。そこで最も参加者の関心度が高かった質問と、それに対する回答を紹介します。
Fabricで色々作ってきたが、正直ブロックチェーンをわざわざ使う意味が見いだせなくなってきている。普通にWeb app作って使った方が早いし安いんじゃないかと。
これに対して、NTTデータの安達氏は個人的意見と前置きしつつ、次のように回答しています。
非中央集権や改ざん耐性に期待するのであれば、Web Appではできないこともできる。そいった方法でチャレンジするのが良いのではないか。
Web AppやDBで実現できることをブロックチェーンでやり直すというのはあまり意味はない。DBがしっかり守られているだとか、誰も悪さをする人はいないという前提を置くならブロックチェーンの意味はないと思うので、そういう信頼関係のない中で動くみたいなものに活かすという方が良いのではないかと思う。
つまり、改ざんなど何らかの疑う余地があるところがユースケースになってくるということが言えるでしょう。
また、以上の回答に加えて、安達氏は次のように述べています。
例えば、当事者間でデータをみせたくないとか、当事者同士の直のデータのやり取りもやだし誰かにトップに立たれるのもやだみたいなところとかでは、けっこう(ブロックチェーンが)使えるのではないかと思っている。
まとめ
今回のイベントでは、エンタープライズでのブロックチェーン活用における課題や注意すべき点が分かりやすく説明されていました。Hyperledger Fabricとは何かといった基礎的なところから、詳細な技術面に加えて、コンソーシアムの設計などビジネス的な側面まで幅広く言及していて、これからブロックチェーンを取り入れたいという企業には参考になる内容だったでしょう。
また、ブロックチェーンを使うべき領域とそうでない領域についても詳しく説明されていて、その点もユースケースが少ないブロックチェーンの活用を検討するにあたり手助けになる内容だと感じました。ブロックチェーンに少しでも関心のあるエンジニアの方や企業の方におすすめしたいイベントです。
関連リンク
・Oracle Code Tokyo(イベントページ)
https://oracle-code-tokyo-dev.connpass.com/
・日本オラクル株式会社