ブロックチェーンとは、どういう意味、定義でしょうか?
おそらく現状書かれている殆どのブロックチェーンの説明は、正確でない状況になっているのではないかと考えています。
ブロックチェーン業界内でも、ブロックチェーンが何を意味するのか明確に定義されていないように思います。
ブロックチェーン業界の常識は数ヶ月で変わることが多いですし、ブロックチェーンの定義は、ここ数年で2回は変わったと個人的には捉えています。なので、今まで書かれてきた「ブロックチェーンとは何か?」の説明は、最新の状況と合っていない場合がほとんどです。
なので、私なりの定義の変遷と最新のブロックチェーンの意味、定義を説明していきたいと思います。
注意)
- 世界的に明確な定義は決まっていないと思われるので、あくまで私個人の見解です。
- 今のところブロックチェーンとは何かを知っている、または詳しい人向けに書いてます。
- そもそも、ブロックチェーンとはどういう意味なのかを知りたい方は、こちらを参考に。ただ、これもビットコインのブロックチェーンをメインに解説しているので、一部しか説明していません。
- わかりやすいブロックチェーン(blockchain)とは何か? の説明 | block-chain.jp
- 「ブロックチェーン・テクノロジー」という言葉の定義は、また別の定義になり、今回触れません。
ブロックチェーンの定義
結論である定義から書きます。
現在、ブロックチェーンと言われる場合、大体以下のどれかの定義に当てはまるでしょう。 基本的に、Rippleなどのレジャー系はどのブロックチェーンの定義にも含まれないです。
1. ビットコインのブロックチェーン
ビットコインのブロックチェーンのみを指す。
2. 様々なブロックチェーン全般
ビットコイン、Altcoins、Ethereum等のビットコイン以外のブロックチェーンを指す。
許可型ブロックチェーン含まれると思われる。
3. データベースとしてのブロックチェーンとそれに関連する技術(コンセンサス・アルゴリズム)
データベースとしてのブロックチェーンに加え、関連するPoW, PoSなどのコンセンサス・アルゴリズムなどの仕組みや、非中央集権の特徴を含める。
4. データをブロックにまとめ、チェーン上に繋げたデータベース全般
ビットコイン、Altcoins、Ethereum等のビットコイン以外のブロックチェーンを指す。 許可型ブロックチェーンを含む。
ブロックチェーンの意味の変遷
ビットコインのみの時代 (2008年〜)
ビットコインしか存在しなかった時には、ブロックチェーンと言えば、ビットコインのブロックチェーンを指しました。今でも、the blockchain という場合、通常ビットコインのブロックチェーンを指します。 そして、ビットコインのブロックチェーンの特徴である、P2Pネットワークや、プルーフ・オブ・ワーク(Proof of Work)など関連するものも、ブロックチェーンの意味の中に含めて説明されている場合が多いです。
Ethereumなどビットコインのブロックチェーン以外が出てきた時代 (2013-2014年〜)
ビットコイン以外のブロックチェーンの実装(altcoins以外)が出てきてからは、ブロックチェーンと言っても、どのブロックチェーンなのかを明確に言わないと、わからない場合が出てきました。 Ethereumでは、記録するのは取引履歴だけではなく、プログラム、データも含むので、「ブロックチェーンは、取引記録を保存するもの」という表現は、この定義では合っていないことになります。 この時点のブロックチェーンは、公開型で、潰しにくい仕組み、というのは共通していたと思います。
許可型(Permissoned) ブロックチェーン時代 (2015年〜)
許可型ブロックチェーンの時代では、PoWのようなコンセンサス・アルゴリズムが必要なかったり、限られた数のノードでブロックの承認を行う場合もあります。非中央集権型(Decentralized)でもなく、検閲にも強い(censorship resistant)わけではありません。ブロックチェーンと言えば、非中央集権型というイメージからすると、ブロックチェーンではないような印象を受けます。
許可型ブロックチェーンやプライベート・ブロックチェーンが、ブロックチェーンの定義に入る場合
- 「ブロックチェーンは、中央の管理者がいない、中央集権ではない」という表現は、正しくない
- 「ブロックチェーンは、全ての人に公開されているデータベースだ。」という表現は、正しくない
許可型ブロックチェーンは、ブロックチェーンではないという主張もありますし、分散型データベースと呼ぶべきという主張もあります。 現時点では、議論中であり人々の間で合意が取れているように見えません。
その他の論点
変更不可能(immutable)であることは、ブロックチェーンの必須条件か?
海外の掲示板などでは、データを保存して変更可能なものは、ブロックチェーンではない、という主張をする方もいます。 ブロックチェーンの特徴として、「一度データが、ブロックチェーンに書き込まれたら、そのデータは変更できない」という説明を見聞きしたことがあるかと思います。
細かいことを言うと、書き込まれたデータが覆される場合もあります。 P2Pネットワーク上に沢山コンピュータがあり、それぞれのブロックチェーンの最新データは一致しないことがあります。どの状態をブロックチェーンに保存されたと言うのか、というP2Pならではの難しい問題があります。 そして、ブロックチェーン運営側(注1)がおかしいと思った場合、ブロックチェーンは巻き戻されることは実際にあります。51%攻撃をくらって、フォークしたブロックチェーンを、チェックポイントを置いてデータをある時点まで戻す、などです。この場合、書き込まれたデータは無効(本流のブロックチェーンではなくなる)になります。例えば、EthereumのFrontierの期間は、問題が起きた場合に元に戻すことを前提としています。
注1) 運営・管理主体がいないと言われるブロックチェーンですが、実際には開発チームがブロックチェーンを元に戻すこともあります。
許可型ブロックチェーンでは、運営側がブロックチェーンのデータを変更する可能性はより高いと思います。
コンセンサス・アルゴリズムは、ブロックチェーンの定義に入るのか?
- PoW, PoSのような分散型コンセンサス・アルゴリズムは、基本的にパブリックなP2Pネットワーク上で必要になります。P2Pネットワーク上では、シビル攻撃が可能だからです。
- シビル攻撃がない許可型ブロックチェーンの場合は、PoW,PoSのようなコストの高く、遅いコンセンサス・アルゴリズムは不要で、既存のビザンティン・フォールト・トレラント(BFT)なアルゴリズムで十分です。BFTを使っている分散データベースをブロックチェーンと呼んでいいのかは、まだ議論がわかれるところです。
個人的な意見では、コンセンサス・アルゴリズムは、ブロックチェーンの定義からはずすようにしています。
P2Pであることは、ブロックチェーンに必須か?
現状、P2Pを前提にしていない実装はないように思います。
P2Pを前提にしておらず、ブロックチェーンと呼ばれる実装がありましたら、お知らせ下さい。
英語表記でのブレ
以下の2つのパターンがあります。
- blockchain (オライリーの本「Blockchain」など)
- block chain (大学のオンラインコースなど)
その他
その他、以下の項目は定義で関連しそうですが、また時間がある時に説明します。
- ブロックチェーンとレジャーの違いと定義。Rippleはなぜ、どうブロックチェーンではないのか?
- CBC: cypher block chainingとの関連性は?
- ブロックチェーンではなく、ブロックチェーン技術が意味するところは?
個人的な定義
私個人は、ブロックを鎖状に繋げたデータベースという定義で「ブロックチェーン」という言葉を利用することが多いです。なので、PoWやPoSを利用せず、既存のコンセンサス・アルゴリズムを使ったプライベートチェーンも、ブロックチェーンと呼びます。できるだけ多くの人が賛同できる最小限な意味で、「ブロックチェーン」という言葉を利用しています。基本的には、変更可能性やコンセンサス・アルゴリズムは、ブロックチェーンの定義に含めていません。
感想
数ヶ月後にブロックチェーンの意味がどう変わるのかの予想は全くつきませんし、上記の説明が古くなる可能性はあります。
許可型ブロックチェーンが出てきてから、ブロックチェーン技術は、既存のデータベースや分散型コンセンサス・アルゴリズムに近づいてきて、違いや定義が難しくなってきています。逆に既存のデータベースもブロックチェーン側の技術取り込む可能性もあるのかなと思うと、今後非常に色々な可能性が出てくるのではないか、と考えています。
時間のある時に、これも一部で話題になっているデータベース技術という視点から見たブロックチェーン技術(MVCC、マルチマスタ・データベース・レプリケーション)について書きたいなと考えています。