ブロックチェーン流行ってるじゃん。あれ使えば何でも、改竄が絶対不可能になって、所有権を保証できるんだろ。超すげー。
ということで、俺様が考えるブロックチェーンの使いどころを書き記す。よく聞け。
これらの違いは、早い話がブロックチェーンを誰が運用してるんですか、という話だ。
パブリックブロックチェーンでは、誰もがブロックチェーンを運用するノードになれる。そのために、現実的に不正ができないよう、ノード間で見張り合うシステムが必要になる。
Bitcoinのようにお金を扱うシステムで、皆が台帳を持ったら、誰もが、自分のところにお金が入ってきたことにしたり、自分の使ったはずのお金を使ってないことにしたり、といったことをやりたがる。
Bitcoinは、Proof of Workという仕組みで、そういった不正を現実的にはできないようにすることで、お互いに信用できない人同士の分散台帳というものを可能にした。
Bitcoinが革新的だったのは、「信用できない人たちに分散台帳を管理させたらみんな好き勝手に不正するに決まってる!」という常識をぶち破り、そういった人達による台帳管理ができることを示したから。
企業が業務や商売でブロックチェーンを使おうとすると、誰もがノードになれるとか、誰もがノードにアクセスできるとか、そういった仕組みは望まれないことが多いらしい。
そこで、自分たちだけの閉じた環境でブロックチェーンを作ろうという試みが、プライベートブロックチェーンだ。
ここでは、Bitcoinが起こした革命である、信用できない人たちによる分散台帳管理なんてものは必要がない。
プライベートブロックチェーン、いろいろと研究されたり、実証実験が行われたりしているが、
「なんでブロックチェーンでやる必要があるんですか?」にどう答えられるのか、よく分からない。
「なんでブロックチェーンでやる必要があるんですか?」については、後でさらに深く掘り下げる。
プライベートブロックチェーン意味ないよね、と気づいた人達が次に考えたこと。
銀行間とか、企業間とか、組織をまたいでブロックチェーン作ればいいじゃないか、と。
組織力学の都合上、そうするのがいいなら、勝手にやってください。
けれど、Bitcoinが起こした革命である、他のノードに嘘ついてまで不正をしようとしている者同士が、ひとつの台帳を保持できる、というその特性、必要ある?
今も銀行間でいろいろ、電子データをやりとりしてると思うけど、そんな不正しようとしてる銀行あるの?
「なんでブロックチェーンでやる必要があるんですか?」に、技術的には答えられないのがコンソーシアムブロックチェーンだ。
ブロックチェーン使って何かやろうとすると、大体の人がぶち当たるのが「それ、ブロックチェーンでやる必要あるんですか?」「データベースじゃダメなんですか?」って問題だ。
この問題に陥るのは大抵、ブロックチェーンの持つ自律分散の思想を理解せずに、誰かが管理しよう、特権を持とう、中心的存在になろうとしてるからだ。
管理者がいるなら、管理者がデータベースを作って、そこでやればいい。その方が話はシンプルだ。
もっとひどいのは、データベースはデータベースで別で置いて、ブロックチェーンに載せられるカラムはブロックチェーンに載せて、その取引IDをデータベースに記録しようと考えている場合だ。
全部データベースでやった方が作るのも運用するのも楽なことになぜ気づかない。アホなのか。
改竄防止だトレーサビリティだと騒いでいる人がいるが。そもそもブロックチェーンは何を保証するのか。
ブロックチェーンに載ってからは、確かに改竄は難しい。電子署名が不正な取引はブロックチェーンに載せないこともできる。
けれど、必要なタイミングで正しい入力を与えるのは、ブロックチェーンを使う側の仕事で、
電子署名などのプログラム的に検証できるもの以外で不正が行われても、ブロックチェーンは何も検知できない。
ブロックチェーン自体は最近の発明だが、ブロックチェーンで使われている、ハッシュ関数、電子署名などは、
もっと昔から改竄検知や偽造防止に使われていた技術で、それらを適切に利用すれば、ブロックチェーンを使わずとも、大抵の目的は達成できる。
これらの話、知っている人には「うん、そうなんだよねー」って感じだったと思うが、知らなかった人は「じゃあブロックチェーン、一体何に使えるんだよ」と苛ついてきた頃かと思う。
ブロックチェーンは何にも使えないのか。いいや、そんなことはない。
Bitcoinは、送金するのには手数料がいるが、残高照会は無料でできる。他のブロックチェーンも同様のものが多い。
そこで、参照されることは多数あるが追加、変更されることが滅多にないものをパブリックなブロックチェーンに載せて、データ置き場として活用する方法を考えれば、
ブロックチェーンを使って低コストで何かをすることは可能かもしれない。
ブロックチェーンは、誰も管理しなくても動く夢のような仕組みだ。
ブロックチェーンと、staticなHTMLやjsなり、なんかのスクリプトなりがあれば成り立つシステムを作ると、作った人が何もしなくてもネットワークが維持されるシステムの完成だ。