先日、保険の誓約書に手書きのサインをPDFに貼って提出するということがあった。この方法だと複製が容易なので、実質的には何もしていないのとほぼ同じことなのだが、たまたま総務省に電子署名のガイドライン的なものがあるのを見つけたので、電子署名について考えてみた。
電子署名とはなにか
電子署名は、2通りの意味が混在しているように見える。1つは手書きの署名を画像化もしくは電子デバイス上で手書きで署名したもので、もう1つは計算機的な意味での署名のことだ。この投稿では、後者について考えてみる。
手書きの署名は、「Aさんが書いたものである」ことが必要十分条件だ。
概念的には電子署名も同じで、Aさんの署名であり(必要条件)、かつAさんにしか署名できない状態である(十分条件)ならば、手書きの署名と同様と見なせる。
署名には電子鍵と呼ばれるデータが使用されるが、手書きと異なるのは、署名された後のデータがAさんのものであることは検証可能だが、署名に使うデータはAさん以外は誰も知らないという点だ。つまり、手書きの署名同様にAさんしかAさんの署名をすることは出来ないことが担保されている。
日本における電子署名
総務省のサイトで、電子署名の説明が書かれている。
総務省|電子署名・タイムスタンプ|タイムスタンプについて総務省が定めるタイムスタンプ
ある時刻にその電子データが存在していたことと、それ以降改ざんされていないことを証明する技術。タイムスタンプに記載されている情報とオリジナルの電子データから得られる情報を比較することで、タイムスタンプに付された時刻から改ざんされていないことを確実かつ簡単に確認することができます。
と書かれていた。「タイムスタンプ」は、ある時点の時刻を表した値に過ぎず、それ単体では何かを証明することはないと思うのだが、スタンプ=ハンコ=証明という文化が日本にあって馴染みやすいので、このような表現をしたのかもしれない。だが、この説明だと他国との取り引きをする際に混乱を生じさせるのではないかな?と少し心配。
実際にはタイムスタンプが本当に正しいかどうかが重要なのであって、タイムスタンプ自体が重要かどうかもデータの性質に依る。
ちなみに、元々のタイムスタンプとは下記の画像のようなものだ(Wikipediaより引用)。通常はこの意味で使われる。見ての通り、スタンプが押された事実は間違いないが、「本当にその時間に押されたか」を証明するのは別に仕組みが必要なのだ。これが使われていた当時は、押した人の信用、押した人が所属する組織の信用、によって担保されていたはずだ。
By Oxfordian Kissuth – Own work, CC BY-SA 3.0, Link
契約における日時の性質の違い
日時は、重要な場合と重要ではない場合がある。
「契約書が締結された日時」や「請求書の発行日時」などは後から変更されると困るので重要だ。例えば、保険を 2020年1月1日に契約して2020年1月15日に病気になって保険金が必要となったのに、保険会社が契約締結日を勝手に2020年1月20日に書き換えて、保険適用されません。となってはいけない。
一方、「住民票の発行日時」は本質的には重要ではない。住民票の元データは役所で管理されていて、住民票がいつ発行されたによらず、任意の時点の元データは変更不可能(と全員が信じている)だからだ。もちろん、住民票の写しを提出するとなった場合は、直近の住所の証明に使いたいわけなので取り引きの上では重要なのだが、それは便宜的な理由にすぎない。
大雑把に言えば、(この単語が使われなくなる日がそのうち来そうだが)マスターデータもしくは一次データの日時は重要で、それ以外は本質的には重要ではない、となる。
何故タイムスタンプの正当性が重要なのか
先ほどの保険の例だと、元々の書類に2020年1月1日に保険が締結され、1月15日に保険金が必要になったとする。もし保険会社が、「このタイムスタンプは信用できない。本当は1月20日に締結されたのだから、これはおかしい」と言ったとする。被保険者と保険会社の2者間での契約だった場合、この「2020年1月1日」が本当に2020年1月1日だったのかは誰にも証明する事ができない。言った言わないの議論と全く同じになってしまう。
どのようにすればこの問題を解決出来るのだろうか?
タイムスタンプの正当性をどう証明するか
考えられる方法としては、第三者がこのタイムスタンプを管理して、「この契約は2020年1月1日に締結されました」と証明することだ。そうすれば、保険会社が勝手にタイムスタンプがおかしいと主張することが難しくなる。
しかし、この第三者が信用に足りる存在かを証明する必要が出てくる。第三者が保険会社に便宜を図って見返りを得ていないかどうかは、外部からはわからないからだ。
では、更に信用されている機関として政府がその第三者を認証すれば良いのでは?となるが、これも政府が信用に足りる存在であるという前提だ。公文書自体を書き換えていないと証明することが出来なかった(もしくは書き換え不可能な仕組みを構築出来ていなかった)政府であるし、100%信用することは難しそうだ。
尤も、正当性は日本の法律の範囲で争われるので、日本国において政府が認証した機関が正当と認めた場合は、正当なタイムスタンプとみなす。という法律があれば、それが検証不可能であったとしても従うしかないのだが。
しかし、これを日本国外に広げてみるとどうだろうか?日本の政府を信用していない国からすると、日本の政府が認証した機関もまた信用できないということになる。国内のみで通用する仕組みでは意味がないのだ。
(現在は印鑑と印鑑証明の組み合わせが一番強力で、これは日本の政府が正当性を担保しているものなので、実質的にはそれ以上の信用は不要と考えることも出来る)
電子署名でドキュメントを相互に検証すればよいのでは
電子署名で同一のドキュメントに署名して相互に検証し合うという方法もある。電子署名は秘密鍵と公開鍵で署名することが殆どだと思うので、その署名自体の検証は行える。しかし、その署名に使われた鍵が本当に社会的な人格(個人、法人)に紐付いているかどうかを証明しなければいけない。
そうすると、その鍵を認証機関に登録して、政府がそれを認証して…と実質的には1つ前のタイムスタンプをどのように検証するかの話と実質的には同じことになる。
矛盾点
ここまでの内容には実は矛盾がある。
「政府が信用出来なくても検証可能な仕組み」を考えているが、最終的には契約の主体は個人もしくは法人となり、それは「政府によって発行された人格」であるため、政府が信用できなければその人格の存在も信用出来ないということになる。
つまり、現在の社会の仕組み上は、政府の信用を前提としなければ成り立たないのである。政府が信用出来ない社会ではいくらテクノロジーで契約を担保しても本質的には無意味ということになる。
本当にそうなのだろうか?
ブロックチェーンを使った署名の検証
ブロックチェーンが理想的に使えれば、過去データの書き換えは出来ない。理想的に、というのはブロックチェーン上に乗ったデータが膨大で、計算量が現実的に書き換え不可能であると言える場合だ。
鍵のフィンガープリント、取り引きデータのハッシュ値、ドキュメントのハッシュ値、などが記録されれば証明としては十分なはずだ。
だが、ブロックチェーンを使っただけでは先ほどの矛盾点は解決できていない。
そこで、政府自身の行いを全て同一ブロックチェーン上に記録する。政府自身の行いが信用に足りると全員が合意すれば足りるわけで、また政府が信用に足りると判断したブロックチェーン上の記録もまた信用に足りると言える。
実現可能性
こんなことをされては不都合な人が政府にいる限り、実現は不可能なはずだ。
しかし、本当にそうだろうか?
極端な例だが、日本政府のみがこれを採用せず、他の全ての国がこれを採用したとすると、日本政府が法人と認めた企業(ようは日本企業)は信用に足らない企業となるし、日本人(日本政府が発行したパスポートを持つ個人)は信用に足らない個人となってしまう。そうなると、企業は他の国で法人登記を行うだろうし、日本国籍を捨てて別の国籍を取得する個人が増え、日本政府は税収を上げられずに困ってしまうから、他国に倣って仕組みを導入せざるを得ない状況になるはずだ。
実際のところは、2020年現在日本国のパスポートはビザなしで入国できる国が最も多い最強パスポートであり、日本政府は信用に足る存在と思われている、と判断するのが妥当そうだ。つまり、日本政府にとってはわざわざそんな仕組みを導入する必要はないようにも思える。
信用がある今のうちから、将来訪れるであろう世界全体の流れに対応しておくのは悪くないと思うが、日本国民の大半がそう思わないのであれば、わざわざ余計なことをして選挙で不利になるのは避けるというのが民主主義なのかもしれない。
マイナンバーカード
悪く言われることが多いマイナンバーカードだけど、電子証明書が入っているので、透過的に電子署名の習慣を作っていくのは悪くないように思われる。現在は窓口で紙に暗証番号を書いて職員に渡すような運用になっているので、現状は安全な署名とは言い難いが。
マイナンバーカードの存在自体が結構面白いと思ったので、別で書いた。
悪く言われることもあるマイナンバーカードだが、もしマイナンバーカードが古くから存在したら、日本は多少違う成長を遂げていたかもしれない。
他国では別の形式の証明書を使っていることもあるはずで、国をまたいだ取り引きの検証は結構面倒そうだ。面倒と言っても、検証は独立して行えるので、問題になることは基本的にはないはずだ。
(技術的には、将来計算機の速度が向上すると、証明書の鍵の長さが十分に強固ではない時期がいずれ訪れるはずで、国の間で鍵の長さがが異なってポリシーが異なったりすると、法的な問題が起きるかもしれない。例えば「これ以下の長さの鍵は認証に使ってはいけない」などの法律を持つ国が出てくるかもしれない。そうなる前に、自分の鍵を政府もしくは世界的な機関に登録できる仕組みが整ってそうな気がする。)
国をまたいだ署名を考える
ここまでの内容で、取引の範囲を国内から全世界に広げても、日本国民としては特に問題なさそうに見える。しかし、それはあくまで日本政府がそれなりに信用できる機関だからである。
相対的に他国からあまり信用されていない政府も存在するという事実がある。政府の信用を前提としてしまうと、その国民も自動的に信用されないということになってしまう。
信用は最終的には完全に個人に依存するのであるが、せっかく非中央集権的な検証が可能になっているのに、中央集権的な現状の都合に引っ張られるのはもったいない気がする。基本的に法律は各国家に紐づくため、現状解決できそうな案が思い浮かぶわけでもないのだが。
時間は万人に等しく有限なので、いくら「信用がない」と思われている社会であったとしても、そこで長年に渡って積み上がった信用があれば、徐々に世界全体での信用が集まるようになるといいなとは思う。
そうでなければ、鶏が先か、卵が先か問題のように解決されない課題となってしまう。
まとめ
これらの話は、全て信用があれば成立していたもので、今後も信用があれば変わらず成立するものだ。
いくらテクノロジーが進歩したとしても、本質的な部分は変わらないはずだ。だが、何かが変わればそれだけで面白いだろう。テクノロジーが、生まれながらに持ったバックグラウンドを埋める方向に働くと良いと思っているが、溝を広げる方向に働く可能性もありそうだ。もちろん、広げる方向に働いて欲しい人もたくさんいるだろう。
こういう話がある。
オークションサイトに悪意を持って参加し、お金だけ受け取って商品を送らずに逃げようと考えた人がいた。しかし、取引が少ないと高額商品を売ることが難しいので、始めは仕方なく誠実な取引を積んで評価を得てから騙そうとした。しかし、段々と騙すことにより得られるメリットよりも、誠実な取引を積み重ねる方が利益が上がる状態になってしまった。こうして、死ぬまで悪意を持った善人として生きるのだ。
この人は悪人だろうか?善人だろうか?
テクノロジーが発展して、その人の人生における信用の総和が可視化されると、生まれたときからずっと善人の人はとても信用がある人間と評価される。しかし、過去に過ちを犯してしまった人はどうなるのだろうか。例えばオークションサイトの例だと、その人は過去に極悪人だったかもしれないが、そのオークションサイト上では誰がどうみても善人と評価されていたはずだ。しかし、過去の信用が可視化されていたら、そこで生み出された善行は生まれなかっただろう。
過去の信用を公開するかどうかは任意なのだから、公開したい人だけが公開すれば良い、という考え方もある。しかし、90%の人が公開する世の中になったら、公開していないことが負のイメージを与えてしまうことになる。
そんなことが分かっているなら、悪いことをしなければ良いのではないか、というのが正論なのだが、一度の過ちが挽回できない世界は危険だ。二度と挽回出来ないと分かると、社会を破壊する方向に動く人が増えてしまうリスクすらある。
トレードオフなので、このような選択が迫られる社会がどうなるのかは興味がある。これが政治的に決まるとすると、世の中の大半の人は善人なので善人にとって都合が良さそうな結論に導かれそうだが、それが本当に当人たちにとって都合が良いかは別の話になりそうだ。