maato’s blog

興味のあることや、これはと思ったことをゆるく情報発信していきます。本ブログで述べられている意見は、私自身の意見であり、所属する団体、企業の見解を反映したものではありません。

企業がブロックチェーンを使うときに考慮すべき6つの項目(Hyperledger記事)

もうすぐ社内でブロックチェーン勉強会の講師をするので、どうやって簡単に、かつわかりやすくブロックチェーンの説明をしようかとネットを探っていたら、ちょうど、Hyperledgerが、”6 Blockchain Best Practices Enterprises Need to Know”というタイトルで、ビジネスでのブロックチェーン採用する際に気をつけるべき、6つの項目をまとめた記事を公開していました。

いずれもブロックチェーンに関わっている人であれば、超基本であると思いますが、意外によく聞かれる話なので、ざっくり翻訳してみたいと思います。

 

元記事は下記です。

www.hyperledger.org

1. Secure today does not mean secure tomorrow
今日セキュアだからといって、明日も大丈夫と思うなよ

ブロックチェーンってセキュリティがすごいんでしょ、だったら大事なデータ入れちゃえ」ということで、個人情報”personally identifiable information (PII)”もブロックチェーンに保存しようという輩がいるけど、絶対やるなよ、といっています。
その理由として、ハッカーの技術進化をなめるなよ、将来、量子コンピューティングのような新たな技術によって、ブロックチェーンの暗号化アルゴリズムをぶち破られるかもしれないぞ、といくつかの理由をあげています。

まあ、これって別に、ブロックチェーンにかかわらないことだけど、今日セキュアだからといって、明日も絶対セキュアとなんて言えないわけで。

ただ、ここには記載されてないけど、個人情報はGDPRの「忘れ去られる権利」も検討しないといけないので、基本はブロックチェーンに入れちゃだめですね。
じゃあ、どうすればいいか。

この記事ではTable Stakesを使えと言っています。つまり、DBと組み合わせろってことだと思います。DBに値を入れてハッシュ化する、もしくは、リンクをブロックチェーンに持つといった、下記2の使い方に関連してきます。

2. Never store large files on a blockchain
大きなファイルはブロックチェーンに入れるなよ

これもよくいわれるのですが、ファイルそのものをブロックチェーンに入れることは避けるべきです。
追記型であること、分散型であることから、ファイルそのものを未来永劫蓄積してしまうとデータ容量、つまりHWリソースがどんどん大きくなります。
そのためには、S3といったファイルストレージ(なんでAWS、、)を組み合わせるべきとのこと。たとえばファイルへのリンクをブロックチェーンに書き込んだり、ファイルそのものをハッシュ値ブロックチェーンに入れておいて使うときにそのファイルのハッシュが同じかどうかをチェックして改ざんされていないかをチェックするような使い方をしなさい、とのこと。

3. If you don’t want your data to be public, use a permissioned blockchain
もしデータを公開できないなら、パーミッション型を使え

ブロックチェーンには誰でも参加できる「パブリック型」と、限られたメンバーだけが参加できる「パーミッション型」があります。B2C、あるいはC2Cのようなビジネスでは「パブリック型」がメインになるかもしれません。しかしB2Bの活用においては、「どんな企業でもネットワークに参加していいよ」なんてビジネスモデルはほとんどないと思われますので、多くの場合は「「パーミッション型」での活用になるでしょう。

4. Create a governance structure for the blockchain
ガバナンスのためのルールをちゃんと検討しろ

え?ブロックチェーンて非中央集権なんじゃなかったっけ?と思われるかもしれません。ここでは別に「ガバナンスのために中央集権体制を作れ」と言ってるわけではありません。「ガバナンスの聞くルールや制度を作っておけ」ということです。

たとえば「誰が新規参加者を許すのか」「あるいは脱退のルールはどうすべきか」といったルールあるいはそのルールの決め方をきちんと決めておけ、ということです。特にコンソーシアムの正当性を保つためにも「やめる、あるいは強制的にやめさせるルール」はきちんと管理すべきとのこと。なるほど。

5. Decide on performance and scalability requirements
パフォーマンスとスケーラビリティ要件を見極めろ

プロジェクトの早い段階で、求められるパフォーマンスをブロックチェーンで実現できるか見極め、スケーラビリティとパフォーマンスの観点から、複数のブロックチェーンのタイプを組合わせることも考えなさいとのことです。
明確には記載せれてませんが、当然ですが、そもそもブロックチェーンである必要があるのか再検討し、既存技術、例えばリレーショナルデータベスで実現、も視野にいれるべきです。

6. Analyze blockchain business cases early
ブロックチェーンのビジネス・ケースを早い段階で詳細化しろ

ブロックチェーンで実現したいことは何か、本当にブロックチェーンでないとだめなのか、検討の早い段階で見極めろ、ということなんだと思います。
ゴールを実現することが目的で、単に新しい技術を使いたいというモチベーションでブロックチェーンを使うな、またすべての機能をブロックチェーンで実現できると思うなと述べています。

じゃあ、どういうところで使うべきなのか。セキュリティ、アクセスコントロール、データの正当性、透明性、企業間でのデータや手続きの効率化を望むところには最適である、と述べていますが、ここらへんはもうちょっと詳細化必要ですね。特にリレーショナルデータベースと比べて何がいいのか、どう棲み分けすべきか、を明確にした上で採用すべきだと思います。適材適所、のどこが適所なのか、これについては別スレで書いてみたいと思います。

いずれにせよ、しっかり初期段階で見極めることが重要です。というか、何のためにやっているのか、流行り物だからとか、ブロックチェーン使っていることがCoolだからとか、株価上がるからとか、社長にやれって言われたとか、実際いろんなシチュエーションに遭遇しますが、本質は見失いたくないですね。

まとめ

だいたいこういうのって、最後に本当にいいたかったことがきますよね。おそらくHyperledgerとしても、ブロックチェーンに過度な期待をされ、実際実現できずに失望だけが残ったシチュエーションに何度も直面してきたのだと思います。

新しい技術ってきっとそういうもの。でもそれを乗り越えていきたいし、そのためには関わる人みんなが、正しい使い方を認知し、共有し、お互いに広げていきたいとつくづく思いますね。

て、偉そうに言える立場じゃないですが。。。