2015年末くらいから急激に盛り上がってきたキーワードにブロックチェーンがあります。もともとBitCoinで知られる仮想通貨を構成する根幹的技術要素の一つですが、ブロックチェーンとして仮想通貨以外の場面でも使われようとしています。

ブロックチェーンはいわば分散型のデータベース(+勘定システム)になります。これまでのデータベースというと中央集約なものが多く、一台に頼ることへのリスクヘッジから分散型の構成を選ぶようになっていました。しかし分散型の問題としてデータの整合性が挙げられるのはよく知られていることです。マスターが落ちた時のリカバリーであったり、復旧後のデータ整合性調整も問題です。

ブロックチェーンはもともと各コンピュータにデータを分散させる前提となっていますので、中央サーバと呼ばれるものが存在しません。そのため1台が落ちたとしてもネットワーク全体に与える影響はほとんどないといえるでしょう。また、分散型であるメリットとしてスケールしやすいということが挙げられます。もしトランザクション数が増えたとしても、ネットワークを担うサーバを増やせば問題ありません。

ブロックチェーンでは取引結果をブロックと呼ばれる形にして、それをつなげていく(チェーン)ことで過去に行われた全取引データを見られるようになっています。その結果として、匿名ではあるものの、誰が現在いくらの残高をもっているかを見ることができます。とはいえ、これはあくまでもBitCoinの中での話であり、ブロックチェーン自体は匿名でなければならなかったり、仮想通貨でしか使えないわけではありません。BitCoinで有名な採掘も必須要件というわけではありません。

ではIoTにおいてどのような使い方が考えられるでしょうか。IoTデバイス同士がブロックチェーンネットワークを構成するというのは現実的ではありません。計算処理能力が必要なので、小型デバイスには向いていないでしょう。あくまでもデータを処理するサーバ(クラウド)側での利用になるのではないでしょうか。

大量のデータを中央集約的なサーバで一括して処理していくのは大変です。また、サーバが落ちた時のリスクも高くなります。そこでブロックチェーン構成にすることで処理を分散するというのが考えられます。IoTデバイスはデータをサーバへ一方的に投げ、データはブロックチェーンの中で安全に保存されます。

なお、ブロックチェーンでは一時的な不整合は許容しています。取引の承認は複数のコンピュータで行われており、一番最初に確定したデータが優先されたり、一番長いチェーンが継続して使われるようになっています。そのためリアルタイムでデータを見た時には一時的に異なるデータになっている可能性があることを念頭に入れておく必要があります。

また、ブロックチェーンはデータベースに似た汎用的なストレージになりますので、その中でロジックを持たせるべきではないかも知れません。世の中には特化型のブロックチェーンサービスが出てきていますので、IoTに向いたものが出てくるかも知れませんが、汎用的なブロックチェーンシステムを導入した場合にはあくまでもセンサーデータの蓄積場所としておくのが良いのではないでしょうか。

いずれにせよ、IoTデバイスのような、大量に配備されるデバイスのデータを収集、蓄積する上でブロックチェーンの仕組みが使える可能性があります。IoTを構成すると一技術として気に留めておくと良いのではないでしょうか。