ブロックチェーンというパラダイム
前回の投稿に対してコメントを頂いた。曰く「それは公開鍵署名の特徴であって、ブロックチェーンの特徴ではないのでは?」というものだ。コメントにそのまま返信しようと思ったが長くなりそうなので一つのエントリーとして書くことにした。
パラダイムシフトとは?
パラダイムシフトという言葉ある。トーマス・クーンが唱えた概念で、ある分野においてそれまでとそのあとで考え方や手法などがガラッと変わってしまう現象のことだ。
物理学ならニュートン力学や量子論、数学なら公理主義的な現代数学、プログラミング言語ならオブジェクト指向など、さまざまなシーンでパラダイムシフトは起きている。
インターネットはパラダイムシフトのいい例だ。インターネットの登場によりコンピュータシステムは「ネットにつながっている」ことが当たり前になった。
通信することが当たり前になったことでスタンドアローンでは考える必要のなかったデータの整合性や、クライアントの増加によるサーバのパフォーマンス低下への対策など、新しい常識がたくさん生じたのだ。
プログラミング言語やフレームワークはそれに対応して進化し、今やファイルの読み書きをしたりプリンタを制御したりするコードを書くことよりもWebAPIを呼び出したりJSONを扱うことのほうに重点が置かれるようになった。
言語やフレームワークだけではない、インターネットへの接続インフラは年々進化し高速化し常時接続を可能にした。同様にビジネスモデルも変化しインターネットを前提としたビジネスモデルが当たり前となっている。
繰り返すがパラダイムシフトとは単独の技術のことではない。考え方や価値観が変わることで広範な物事が大きく変わってしまう事象のことだ。上記のインターネットがその例になっていることがわかるだろう。
ブロックチェーンというパラダイム
さて本題だ。ここで一つ主張をしよう。「ブロックチェーンというものは単独の技術では語れない。これは新しいパラダイムなのだ」
ブロックチェーンを何か名詞的な意味で使うべきではない。これは形容詞的な意味で使うべきなのだ。だから「ブロックチェーンを使ったシステムを作ろう」というのは徒労に終わるだろう。なぜなら一部分だけブロックチェーン化しても周りの部分がそのパラダイムになっていないのであれば効果は限定的でむしろデメリットが目立つだろうからだ。
我々はmiyabiというブロックチェーンプロダクトを持っている。しかし単純にmiyabiを用いたからといってブロックチェーンになるのではない。それはC#を用いればオブジェクト指向になるわけではないのと同じことだ。
逆もいえる。ブロックチェーンプロダクトを使わなくてもブロックチェーンらしいものを作ることはできる。これもC言語でオブジェクト指向ができるのと同じことだ。
ビットコインに端を発したブロックチェーンという言葉はイーサリウムやmiyabiのようなプライベートチェーンだけでなく、IOTAのようなDAGベースのものや分散台帳といったものまでどんどんその意味するところを拡大している。
どこまでがブロックチェーンでどこからがそれ以外なのか?は歴史の渦中にいる我々には知るすべはない。10年後に振り返ってみて「ああ、あれがまさにブロックチェーン革命の中心アイデアだったんだな」とやっと線引きできるのだと思う。
未来を知ることのできない我々は柔軟にならなくてはいけない。だからブロックチェーンをパラダイムとしてとらえよう。ブロックチェーンとはビットコインやコンセンサスアルゴリズムや、スマートコントラクトやmiyabiといった特定の技術の話ではない、新しい考え方や価値観の話なのだから。
では何が新しい考え方や価値観なのか?
これは難しい問題だ。明確な文章にするのは勇気がいるが勢いに任せてやってみよう。
1.公開鍵署名を利用しデータに署名することでデータそのものに「信頼」を与える
2.Hashを用いて改ざんや検証を行いデータそのものに「信ぴょう性」を与える
3.何かを行う権限を中央から「個に分散」する
うーんくどい。なんかもうちょっとシンプルなイメージで表現したいな・・・
というわけで私の個人的イメージをさらすことにしよう。
集合としてのデータ(D&D的スライム)から個体としてのデータ(ドラクエ的スライム)への転換。言い換えればデータに「個」を与えるという行為。わかる人にしかわからないかもしれないがこれが私のイメージである。
ブロックチェーンというパラダイムの中でデータは生き生きとした実体を持つ。実体があるからこそコインの送付のような行為が可能になるのだ。
また同時にシステムの垣根を超えてデータそのものが意味を持ち始める。もはやデータはシステムに縛られておらず自律している。それがブロックチェーン的世界観なのだ。
例えば公開鍵署名をシステムの本質的な部分に利用すれば、それはブロックチェーンパラダイムといえよう。実際にブロックチェーン製品を使わなくてもいい。
ただブロックチェーンパラダイムはデータの改ざん不能性を求める。だから自然とHashチェーン相当のテクニックを用いることになる。あるいはデータの自律性を増すためにスマートコントラクト相当の機能を持たせていくことになるだろう。そうやっていいとこどりを続けていけば結局はフルセットのブロックチェーン製品を使ったほうが手っ取り早くなるというものだ。
だから最初から全面的にブロックチェーン製品を使う必要はない。必要だと思った特性をいいとこどりで利用しブロックチェーンパラダイムの恩恵にあずかればいい。どのみちブロックチェーンパラダイムだけでシステムは作成できない。例えばデータの検索においては従来のインデックス技術が必要になるのだから。
まとめに
冒頭の問いに戻ろう。
「それは公開鍵署名の特徴であって、ブロックチェーンの特徴ではないのでは?」
この問いは「ブロックチェーンとは何か?」に直接的に結びついている。狭義に捉えることも可能であるが、それよりはブロックチェーンパラダイムという大きな枠でとらえたほうが良いと思う。
このエントリーを読んでいるような人はブロックチェーンに興味がある人であろう(人材募集中!)、だから言いたい。ブロックチェーンはパラダイムでありもっと幅広に考えるべきだと。