ブロックチェーンを始める際に気をつけるべきこと
Author : 中武 優樹
なぜ技術選定が重要なのか
そもそもなぜ技術選定が必要なのでしょうか ?
ブロックチェーンだけに限った話ではありませんが、それ相応のコストが発生してしまうためです。例えば、
学習コスト
- ブロックチェーンはどうやってトランザクションの整合性を担保しているのかの学習
- ブロックチェーンのアーキテクチャの習得
- ブロックチェーンの実装方法
- スマートコントラクトの実装方法
- ブロックチェーンの構築方法
運用コスト
- 頻繁に発生するブロックチェーンアップデートの追従
- ブロックチェーンのデータを保持するピアノード (台帳) の管理
セキュリティコスト
- ブロックチェーンの脆弱性対応
- トランザクションの署名において秘密鍵を利用するため、秘密鍵の管理ポリシーの策定や保護する環境を整えるコスト
- ブロックチェーンガバナンスの設計
- Public Blockchain / Private Blockchain の選定
- ピアノードの運用ポリシー
などなどそれ特有のコストが発生します。皆様が抱える課題や実現したいことにおいて、ブロックチェーンは本当に必要なのか、選定を間違えることで、余計な複雑さを引き起こす可能性があります。
ブロックチェーンは銀の弾丸ではない
ブロックチェーン単体で全てのサービスが成り立つわけではありません。というのも、現時点において、ブロックチェーンには、「トリレンマ」と呼ばれる課題があります。
ブロックチェーンのトリレンマとは、Ethereum の発明者であるヴィタリック・ブテリン (Vitalik Buterin) 氏が提唱したとされており、この現象は、「拡張性 (Scalability)」「分散性 (Decentralization)」「セキュリティ (Security)」のどれか 2 つを取ると、残り 1 つを諦めなければならない、というものです。
膨大なデータ量を短いスループットで返すワークロードを想定した場合、ブロックチェーン単体で全てをフォローすることはできるでしょうか ?
Ethscan を見ると直近だと約 10 tps ほどしか捌けていません。それ以上のリクエストが来た場合は、処理が完了するまで待たされることになってしまいます。なぜこれぐらいのスループットしか出ないかというと、上記のトリレンマが示すように、Decentralization と Security を優先しているためです。ブロックチェーンはデータの整合性を確認するために時間を要してしまいます。(現在、この課題を解決するために様々なブロックチェーンソリューションが研究 / 開発されています。)
したがって、このあたりを意識した上で、トレードオフを考慮した設計が必要になります。
また、作るだけではなく、当然運用も考える必要があります。
- ブロックチェーンに書かれたデータの分析
- 増え続けるDisk Volumeやピアノードのスケーラビリティ確保
- バックアップ/リストア
- CI/CD
などなどあらゆるオペレーションが想定されます。ブロックチェーン単体でサービスは構成できません。様々なニーズを満たすために、必要とされるコンポーネントを組み合わせる必要があります。ブロックチェーンは決して万能ではなく、銀の弾丸ではありません。
まず何を確認すべきなの ?
構築する際の、サービス要件によって異なりますが、私はこのあたりを重点的に確認しています。
Question #1
課題解決においてブロックチェーンが必要なのか「Why Blockchain ?」
Check Point #1
- 耐改ざん性や透明性が求められるところにビジネス的な価値があるのか ?
- 例えば同じデータをステークホルダーと共有することで、ビジネスが効率化出来るシチュエーションがあるか ?
Question #2
ブロックチェーンを利用するステークホルダーは誰か ?
Check Point #2
- 1 組織のみでブロックチェーンを利用する場合、ブロックチェーンの恩恵を受けにくい。
- その場合は、改ざん耐性のあるデータベースで仕様を満たせる可能性が高い。
Question #3
ブロックチェーンのアクセスパターンや性能要件
Check Point #3
- ブロックチェーン単体ではスループットが出にくいため、オフチェーンを活用する必要がある。
- どのようなデータをオンチェーン or オフチェーンで扱うかの切り分け
- ブロックチェーンサービスの全体アーキテクチャの確認
などなど、他にもありますが、大事なことはどういう Use Case で誰が利用するかを明らかにすることかと思います !
学術論文から抜粋した下記フローチャートは、それらを要約したものです。最初の 3 つの分岐は、データの保存状態、ブロックチェーンへの参加者、およびステークホルダーとの信頼をチェックします。それらの決定により、ブロックチェーンを利用すべきかどうかの判断ポイントになると思いますので、合わせてこちらも参考までにご確認ください。
まとめ
どういう時にブロックチェーンを利用すべきかどうかイメージつきましたでしょうか ?
利用において、どのブロックチェーンフレームワークを選べばいいか分からない、そもそもこの Use Case に効果がありそうなのか、などブロックチェーンに関する悩みがあればいつでもご相談ください !
皆さんはブロックチェーンを使ってどういう課題を解決しますか ?
筆者プロフィール
中武 優樹
アマゾン ウェブ サービス ジャパン合同会社
シニアソリューションアーキテクト
ブロックチェーンフォーカスのソリューションアーキテクトとして活動。筋トレとお酒と子供が好き。
AWS を無料でお試しいただけます