「ブロックチェーンはデータベースではない」件について - さくらのナレッジ
コメント
注目のコメント
将来的にデータベース商品、もしくはそのカテゴリに融合されることの可能性には同意しますが、現時点でブロックチェーンをデータベース商品と直接比較して優越を付ける、もしくはデータベース商品としてカテゴライズする人々は、ブロックチェーンの本質と先を見てらっしゃらないかと。
その証拠に、弊社ではこの度ブロックチェーン商品のAPIとチェーンを分離しましたが、一部の方がコンフリクトとみなす商用のNoSQLサーバーをAPIに採用しました。実際、チェーンよりもそのNoSQLのシングルスレッドが先にボトルネックとなり、そこをShardingして並列処理にしてようやくチェーン部分の性能に追いつきました。
要するに、現在はブロックチェーンとデータベースの役割は明確に区別されており、お互い保管するべきものであって、同じ枠で区切るものではないでしょう。wikiではブロックチェーン(データベース)と呼んでいます。
https://en.wikipedia.org/wiki/Blockchain_(database)
本記事の内容はデータベースの範囲をRDBとKVSに限定して記述されています。
耐障害製性能は従来の分散型データベースにも備わっており、今回の狭義のデータベースと定義が曖昧な(本記事での)ブロックチェーンと比較した結果、「ブロックチェーンはデータベースではない」という結論に至っています。一般的にデータベースといえばRDBと考える人が多く、非技術者向けに分かりやすい表現を選んだ結果だと思います。
さてここで、一連のノード群を一つの系としてブロックチェーンを考えると、改竄不能(消せない)高可用性(落ちない)という特徴をもった記録媒体です。これはブロックチェーンの構造上の大きな特徴で、RDBやKVSにはないものです。
また勘定の概念は制約の一種です。例えばビットコインのような仮想通貨の残高(資産)は0以上でなければならないという制約です。また送金総額と受取総額は同じでなければならないといったルールも制約の一つです。これを一般化するとあるデータに対して制約を満たす条件のみを書き込み保存するという機構ができます。
このような特徴をもった記録媒体に数字を書き込み「仮想通貨」と呼ぶことでビットコインが出来上がりました。また当然文字を書き込むこともでき、それを解釈するエンジンを作りました。スマートコントラクトです。
ブロックチェーンとそのアプリケーションの概念を綺麗に切り分けることは難しいと言われています。データベースとそうでないものも同様でしょう。ウェブブラウザはOSであるのかといった議論に似ています。
しかしマイナンバー、音楽配信、登記簿などのアプリケーションはブロックチェーンの秘密鍵所有者のみが書き込み可能で、改竄できないデータベースとしての機能の上に構築されたものであることは間違いないでしょう。ブロックチェーン分野のプロピッカーに応募しましたが、見事に落選しましたので、自主的に書かせていただきます。
ところで、ブロックチェーンですが、勘定の概念がないものは、たいしてDBと変わらないんじゃないかと思います。それに危険というか。
誤解をおそれずわかりやすくいうと、型のチェックとか、厳密なメモリ管理ができない言語とコンパイラで、セキュリティのソフトウェアを作るみたいな。
勘定の概念が、ソフトウェアに組み込まれているところが、ビットコインの面白いところだと思ってます。