(これまでの増井俊之の「界面潮流」はこちら)
ある情報がある時点で存在したことを証明したい場合があります。契約書や遺言状などの証拠を残したい場合や、アイデアや作品などの権利の所在をはっきりしたいような場合に、このような証明が必要になります。
書類であれば公証役場で証明してもらうことができますし、電子的なデータに関しては電子公証制度のようなものを利用することもできますが、あまり気軽に利用できるものではありません。重要な発明などが関係する場合はこのような公的システムを利用する方が安心ですが、ちょっとしたアイデアやソフトウェアについて、いちいちこのような方法で存在を証明しておくことは現実的ではないでしょう。
デジタルデータは後でいくらでも作成することができますから、データそのもので古さを証明することはできません。偽造が不可能ななんらかの別の手段を使って証明する必要があります。たとえば、データをDNAに埋め込んだ木を育てるという方法が考えられます。樹齢10年の木の芯の細胞内DNAにデータが入っていれば、そのデータが10年前から存在したという主張は説得力があるでしょう。しかしアイデアを思いつくたびに木を植えるわけにはいきませんから、もう少し手軽で偽造が難しい方法が使えると便利です。
■ソーシャルブックマークの利用
Web上で情報を共有する各種の「Web2.0」サービスが流行しています。なかでも、Web上でブックマークを共有する様々な「ソーシャルブックマーク」システムが多くのユーザに活用されていますが、これを情報の存在証明に利用することができます。
存在を証明したいデータがあるとき、MD5やSHAのような一方向性関数を利用してデータのハッシュ値を計算し、その値をURLに変換してdel.icio.usやはてなブックマークのようなソーシャルブックマークシステムに登録しておけば、登録した時点でこのデータが存在したことをこれらのサービス上で証明することができます。たとえば
main(){ printf("hello, world!¥n"); }
というプログラムが2008年2月に存在したことを証明したい場合、このデータのSHA-1値は
d8981ce8be9cd53cbb891f75ebdbcbc5a457eaa8
という160ビットの値になるので、これをURL風に変換した
http://d8981ce8be9cd53cbb891f75ebdbcbc5a457eaa8/
のような文字列をソーシャルブックマークシステムに登録しておきます。
この情報を複数のシステムに登録しておき、それらすべてのタイムスタンプが2008年2月より前であれば、d8981ce8be9cd53cbb891f75ebdbcbc5a457eaa8
というSHA1値をもつデータが2008年2月に存在したことを信じる根拠は充分だと考えられます。SHA1は一方向性関数なので前述のプログラム以外のデータからこのハッシュ値が計算されることはありませんし、ハッシュ値からこのプログラムを逆生成することもできませんから、データの内容を明らかにすることなく、ある時点においてある情報が存在したことを証明できたことになります。
SHA1のような関数の一方向性は絶対に確実なものではありませんし、ソーシャルブックマークシステムの運用も絶対に確実なものではありませんから、この手法による存在の証明は絶対的なものとはいえません。しかし、データのハッシュ値を計算したりソーシャルブックマークに登録したりすることは誰でも簡単にできますから、情報が存在したことを証明するための手軽な方法として利用することはできるでしょう。
■情報の重要度の計算
前述のような単純なプログラムの場合、複数の人が同じデータを登録してしまう
ことが考えられます。また、別経路で入手した同じデータを複数の人が登録することも考えられます。
ソーシャルブックマークの場合、沢山の人に登録されたURLは重要なサイトだと判断されるのが普通ですが、複数の人から同じハッシュ値が登録されている場合は、誰もが持ってるデータだと判断することができるので、そのデータは重要でないということがわかります。
多くの人が、手持ちの様々なデータについてハッシュ値をソーシャルブックマークシステムに登録するようになれば、あるデータが沢山の人に共有されているかどうかをブックマーク数で判定できるようになり、これをもとにして情報の重要度が判定できるようになります。
ファイルのバックアップを作成する場合、自分にとって重要かどうかを基準にしてバックアップするかどうか判断するのが普通ですが、ブックマーク数を利用できれば世の中に沢山あるかどうかも判定基準に加えることができます。誰もが持っているファイルであれば、とりあえずバックアップの対象からはずしておいても大丈夫でしょう。
Web上の情報共有サービスは今後もどんどん増えてくることでしょう。現在のところ、共有された情報自体を楽しむという単純なサービスがほとんどですが、データの存在の証明や重要度の計算といった新しい応用が増えてくることを期待したいと思います。