技術スタックから見たブロックチェーンの応用
ブロックチェーンはシステムである。このシステムには大きく6つのレイヤーがある。レイヤーのことをスタックとも呼ぶ。なお、このレイヤーの切り方は人によって異なることがあり、世界的に標準化された定義が必ずしもまだないことに留意していただきたい。今後ISO/TOC307での議論が進めばこの辺りははっきりしてくるだろう。
ブロックチェーンが多くの人にとって難しいと感じられるのは、ブロックチェーンそのものの技術レイヤーが技術スタックの底のLayer1にあるため、実体が見えにくいところにある。
また、ブロックチェーンで何らかのアプリケーションを構築しようとすると、Layer1のブロックチェーンレイヤーより上位レイヤーの開発にかかる時間と投資が大部分となる。ブロックチェーンが全体のシステムに占める割合は、10〜20%と表現する人は多い。
レイヤーを縦断的に串刺しにして開発をしなければならず、プロジェクトマネジメントも複雑に成りやすい。
レイヤー縦断的にすべてをわかるエンジニアはほぼいない。Layer4のエンジニアはブロックチェーンがわからず、Layer1のエンジニアはLayer4のことがわからないということは珍しいことではない。
ブロックチェーンエンジニアという新しいタイプのエンジニアが、従来のバックエンドとフロントエンドエンジニアに加わる形になり、チームの役割が増えることも複雑化の要因となる。
最終的にはレイヤー縦断的に統合テストを行う必要があるが、UIのちょっとした変更が、Layer2のスマートコントラクトの変更に直結する場合があり、設計でスマートコントラクトやAPIの一般度をあげておかないと修正は複雑化しやすい。
こうした異なるケイパビリティをもったエンジニアを束ねて、ユーザーが真に欲しいと思うアプリを開発するには、レイヤーを超えたレベルで設計や開発をマネジするプロジェクトマネジャー、緻密な設計能力、品質管理体制、事前の深いユーザーニーズの理解が極めて重要である。
技術スタックから見たブロックチェーンの機能
ブロックチェーンの機能を技術スタックの切り口から考えることが可能である。
ブロックチェーンが発揮する機能には様々な種類があるが、多くは分散型○○と呼ばれるものが多く、代表的なものに以下のようなものがある。
それぞれの機能は異なるLayerに存在しているため、どのLayerにあるかを理解していないと、お互いが独立した機能のように勘違いをしてしまいブロックチェーンの理解を妨げることになる。
実際にはこれらの機能は異なるLayerに存在しているため、ブロックチェーンの用途に応じて同時に存在することは頻繁にある。
- 分散型共有台帳(DLT:Distributed Ledger Technology):Layer 1
- 分散型ファイナンス(DeFi:Decentralized Finance):Layer 2
- 分散型ID(DID:Decentralized Identity):Layer 3
- 分散型アプリ(Dapp:Decentralized Application):Layer 4
- 分散型組織(DAO:Decentralized Autonomous Organization):Layer 5
それぞれ呼び方は異なるが、そこで利用されている本質的な技術思想は同じである。