どうも、いけすびです。
ブロックチェーンのデータ更新の仕組みってご存知ですか。
データ更新といっても、登録されたデータを書き換えられる訳ではないので、
正確にはデータ登録についてですが、実は従来のデータベースの仕組みと全く異なるのです。
ブロックチェーンは従来の仕組みというか常識を根底から覆していて衝撃を受けました。
従来のデータベースの仕組み
まず、従来のデータベースの仕組みはどうなっているかというと、
あるトランザクションがデータを登録や更新しようとすると、
データベースにロックをかけます。
平たく言うと他のトランザクションに邪魔されないためです。
例えばAさんが無一文のBさんに100円渡したとします。
それと同時にCさんも無一文のBさんに100円渡したとします。
この場合、本当に同時に処理できたとすると、Bさんの手元には100円しか増えていないことになってしまいます。
なぜならAさんもCさんも「無一文のBさんに対して100円増やす」行為をしているだけだからです。
もしこの2人の行為に順序性があれば、後の行為をしようとした時に「無一文のBさん」はいなくなるので、
この操作は成り立たなくなります。
このように同時に処理をしてしまうと不整合が発生してしまうことがあるので、
これを防ぐためにデータを登録・更新しようとする時にまずロックをかけて他者が同時にデータ登録をできないようにするのです。
これを排他制御と言います。
詳しくはこの辺りの記事をご参照ください。
ブロックチェーンのデータ更新
言ってみれば排他制御はデータベースの仕組みとしては非常に当たり前ですし、
排他制御が無いとシステムは成り立たないと言っても過言ではありません。
しかしながら、ブロックチェーンの技術はこの常識を根底から覆したのです。
ブロックチェーンは1つの取引(データ登録)が完了してから次の取引が始まるといった
直列で処理をするような制御はしていません。
取引完了前に次の取引を始めることを許容しているのです。
ブロックチェーン上の取引は、前の取引が正常に完了することを想定して次の処理を開始することを許容しています。
取引の登録後、合意形成アルゴリズムにて正しいデータであることが証明されるのです。
つまり従来のシステムとは真逆の処理方式となっています。
取引を当事者間で同時発生的に処理することができ、しかも正常に処理されます。
これもシステムの管理者が不要な一要因となっているのです。
まとめ
ブロックチェーンは多くの側面が従来のシステムと異なっています。
異なる部分を探して既存の仕組みと比較するのもとても面白いものです。
それほどブロックチェーンは奥が深く、斬新であると言えます。
最後までお読みいただきありがとうございます。