BlockChain は電子署名 2.0 となり得るか

BlockChain が対象とする問題について思いを馳せていたところ**電子署名 2.0** などというキャッチーな言葉が降りてきました。まぁこの表現が正しいかは自分の中でも微妙なんですが、分散合意のトランザクション (単なる数値の譲渡) よりもう一歩踏み込んだ「公開型証左インフラ」として BlockChain を見た場合にどう利用できるかを少し考えてみたい。

今のところ仮想通貨/ポイント/ディスク容量/CO2排出権のような「数値で表される資産/権利/リソースの移動」のイメージが先行しているせいか、それ以外の活用案に突っ込んでいる本や記事はそんなに多くありませんね。なおオレオレ BlockChain 解釈のため勘違いや実現可能性の不備が含まれる可能性があります。

## BlockChain の本質

エンジニアの視点で BlockChain が解決している問題を抽象化すると**利用者の行動ログの証左** (エビデンス) に収束します。利用者とは秘密鍵の所有者。P2Pで分散だの発掘だのはこの実現手段。ログの改竄がきわめて難しいことから殊更「承認」「合意」と言った法や契約、監査スメルが漂う方面で活用される未来へ矛先を向けているように見受けられます。

となるとシステム屋として思い至るのが[電子署名](https://ja.wikipedia.org/wiki/%E9%9B%BB%E5%AD%90%E7%BD%B2%E5%90%8D)でしょう。BlockChain は電子署名のインフラになりえるのか? 例として Bitcoin で考えてみましょう。

![bc2digsign1.png](https://qiita-image-store.s3.amazonaws.com/0/2287/89ee8ca4-7827-49a9-6d76-84c83494338a.png)

Bitcoin は BlockChain を「ある取引」に対する「承認」の行動ログの証左として利用していると見なすことができます。上記では3つの取引が改竄困難な BlockChain として公開されていることから B さんが 180BC 保持していることが誰でも分かります。そして、ここでいう「ある取引」が「ある文書」だった場合に電子署名と同様の効果があることが分かります。

Bitcoin の印象が強いせいで数値の移動を利用した活用案が多い現状ですが、BlockChain のより根本部分を見ると P2P 環境での分散合意を利用した改竄・障害耐性に強い (ただし Eventual Consistency な) **公開型証左インフラ** (…表現が難しいな) であることが理解できると思います。

## 電子署名としての利用

電子署名的な用途で契約文書そのものを BlockChain に埋め込む活用案をよく見かけますがどう考えても悪手でしかないですね。承認が絡むような文書は大抵公開できないものですし、何 MB になるか分からない文書で BlockChain を圧迫することを避けるためハッシュ値を使用するのが妥当でしょう。公開が必要なら Web 上に乗せておけば良い話です。

非公開のプライベート文書について考えます。

![bc2digsign2.png](https://qiita-image-store.s3.amazonaws.com/0/2287/695069ee-3482-78ff-7018-3e7a6c81cfb1.png)

上記で B さんは契約書 X を A さんが承認していることをハッシュ値の同一性を以て BlockChain 上で証明することが出来ます。公開されているのは強度の高いハッシュ値だけですので第三者が対象となる文書の内容を突き止めるのは現実的ではありません。対象とする文書には契約書、同意書、郵便物などの受理票などが考えられます。

Bitcoin は世界中の利用者に残高を証明する必要性から全取引内容を公開しなければ成り立ちません。しかし文書の承認を証明するだけであれば当事者間で文書が共有できていれば十分です。もし文書を公開したいのであれば Web 上に文書の本体と BlockChain を示すポインタを示せば十分でしょう。

この例で (BlockChain 自体はブロックの改竄を検出するために内部で電子署名を使っていますが) A さんも B さんも文書 X に対して電子署名を行わずとも電子署名と同等の問題に対処していることが分かります。見たところ**電子署名の振り替え策として使うことができそう**です。

## BlockChain を使用するメリットは?

「BlockChain に電子署名を乗せれば良いんじゃね?」と思った方! その通りです。実際、B さんが A さんの公開鍵を使って検証するか BlockChain から検索して検証するかの違いしかなく (証明レイヤーが二重になりますが) モデルとしては大きな差はありません。

もっと言えばプライベート文書に対して BlockChain のインフラで電子署名を実現するのが妥当かと考えると、コストパフォーマンスとして良いとも悪いとも言えない微妙なところです。他にどのようなメリットがあるのか? 公開証左システムとしての特徴も踏まえて考えてみましょう。

### 時刻の保証

電子署名は署名者の秘密鍵が存在するマシンで作成します。このため署名の時刻を意図的にずらすことが可能です。時刻の客観性を保つには時刻を証明できる第三者機関に[時刻認証](http://www.dekyo.or.jp/tb/list/)を行ってもらう必要があります。

一方で BlockChain は意図的に大きく時刻をずらしたマシンでチェーンを連結することはできませんので承認をいつ誰が行ったかの客観的に証明する手段となります。

時刻が重要性を持つ文書とは何でしょうか。特許、意匠、論文など速いモノが権利を有する文書が該当するでしょう。そのうち特許庁の受理印鑑がなくとも特許成立日時を証明することができるかもしれません (ただしこれらは公開を以て権利を有するため公開を証明する方法が必要ですが)。

### サービスや企業、国家間の認証

A さんは秘密鍵/公開鍵を持っています。その鍵ペアを使ってあるサイト X にアカウントを持っているとします。サイト X は A さんのアカウントの存在を BlockChain 上で承認することで、別のサイト Y から A さんがサイト X にアカウントを持つことを確認できます。これの目的は OpenID の代用ともなります。

例えば免許保持者で JAF に加入していることが BlockChain 上で誰でも確認できれば、宿泊予約サービスのプロバイダはネットでの予約時に JAF に問い合わせることなくディスカウントできるしょう。他にも提携企業のプラチナカードを持っているか、株主であるかが確認できれば優遇するなどを、提携先企業のデータベースを参照することなく統一されたプラットフォーム上で24時間356日照会ができます。

企業だけでなく国家間でも応用できます。日本で発行された国際運転免許を所定の公安委員会が BlockChain へ保管すれば、どの国からでもその免許が有効かどうかを確認することができます。入出国の記録を BlockChain に記録することで他国へ問い合わせなくても過去の渡航歴を証明することが出来ます。

まぁ公開鍵だけで関連情報の全ての照会が出来てしまってはプライバシーが問題になりますので承諾制やオプトアウトする仕組みなどが必要でしょうけど。

### トレーサビリティ

電子の文書といえばいくらでもコピーが可能なんですが、承認する文書が複製不可能な場合にどういった事が起きるのでしょうか。

ブランド品や限定生産品、牛肉などの食品にコピー不可能な [RFIC タグ](https://ja.wikipedia.org/wiki/RFID)を付けて配布します。そのタグが生産者によって承認されたものであり、かつ仲介業者の到着と発送も BlockChain 上に記録すれば流通や食品の[トレーサビリティ](https://ja.wikipedia.org/wiki/%E3%83%88%E3%83%AC%E3%83%BC%E3%82%B5%E3%83%93%E3%83%AA%E3%83%86%E3%82%A3_(%E6%B5%81%E9%80%9A))として使用できます。

![bc2digsign3.png](https://qiita-image-store.s3.amazonaws.com/0/2287/c583b2fd-74ef-cc81-4a92-913e1ecc412e.png)

このような生産、物流、販売店舗の企業をまたぐトレーサビリティシステムは中央管理機構を持たない P2P 型のデータベースとしての利点と言えます。

## 結論

BlockChain は電子署名 2.0 ほどではない **電子署名 1.1** か **分散型電子署名** 程度を名乗るのは許されそうな気はします。そして電子署名が当事者間のメール等でやり取りする必要があるのに対し、拡張可能でカプセル化できる形式の BlockChain を構築すれば対象や目的が異なる上記全ての共通プラットフォームを牛耳ることができるでしょうね。