イベントレポート

つくば市で実施したマイナンバーカードとブロックチェーンによるネット投票の裏側

インターネット投票の未来を知る、BCCC第17回金融部会レポート

 一般社団法人ブロックチェーン推進協会(BCCC)は11月29日、第17回金融部会を開催した。今回の金融部会では、「マイナンバーカードとブロックチェーンが描く、インターネット投票の未来」と題し、8月28日に茨城県つくば市にて実施された国内初となるマイナンバーカードとブロックチェーン技術を用いたネット投票システムの実証実験について、実験のシステム構築を担当した株式会社VOTE FOR・代表取締役社長の市ノ澤充氏と株式会社パイプドビッツ・執行役員CTOの鈴木信裕氏を講師に招き、マイナンバーカードによる厳正な個人認証を兼ね備えたブロックチェーン投票システムについて伺う。

各社の役割

株式会社VOTE FOR・代表取締役社長の市ノ澤充氏

 今回の部会では、ネット投票全体の話はVOTE FORの市ノ澤氏が、システム関連の話はパイプドビッツの鈴木氏がそれぞれ担当をする。両社の役割自身もそのように分かれているとのことだが、VOTE FORは元々パイプドビッツの社内カンパニーとして発足、2015年から事業を展開し、2017年3月に分社化をした関連会社だという。VOTE FORはその名が示す通り、投票(VOTE)に関する事業を行っていく会社とのこと。最終的には、ネット投票による公職選挙の実現を目標に掲げている。グループ内には、大きなアイドルグループの総選挙のシステムを担当した部署もある事業会社だという。

 今回のネット投票システムの実証実験は、つくば市が主催をする「つくばSociety 5.0社会実装トライアル支援事業最終審査案件」の最終審査に導入されたもの。つくば市が支援をするIoT、AI、ビッグデータ解析など最新技術を活用した市内でのトライアル(実証実験)にエントリーをする企画提案の最終審査を行う6人目の審査員として、投票システムがその役割を担うというものだ。投票内容の改ざん防止や秘匿性を確保し、適正かつ効率的な投票の実現を図るために、今回はブロックチェーン技術を活用した投票システムの導入を試みたという。

各社の役割

 ネット投票システム全体のプランニングはVOTE FORが担当し、ブロックチェーンほかシステム開発をパイプドビッツが受け持ち、今回の個人認証に利用するマイナンバーカードの認証基盤を一般社団法人ICTまちづくり共通プラットフォーム推進機構(TOPIC)が認証基盤を提供するという枠組みで行われた。

つくば市ネット投票システムの概要

 今回の取り組みは、公職選挙でネット投票を行うまでには至っておらず、あくまでもつくば市という公共の場を借りて実証実験を行ったものであるとのこと。ネット投票の導入意図については、「つくばSociety 5.0社会実装トライアル支援事業最終審査案件」というイノベーティブな事業を選出するコンテストということもあり、その選出手段もイノベーティブなものにしたいというつくば市の意向で、実現したものだという。

 ネット投票システムの構成は、大きく分けるとマイナンバーカードで個人認証をする部分と、投票データをブロックチェーンで扱う部分の2つに分かれるという。ちなみにマイナンバーカードの採用は、現在、自治体をまたいで個人を認証できる機能を有する唯一の仕組みがマイナンバーカードであるという理由からだそうだ。

 余談になるが、そういった現状から総務省が「投票環境の向上方策等に関する研究会」という研究会の中で、在外邦人(国外に住む日本人)のネット投票を実現しようという目的の調査を進めており、マイナンバーカードで個人認証を行う方向性を明確に打ち出していると市ノ澤氏はいう。ただし、現在の法制度では、マイナンバーおよびマイナンバーカードは日本国内に住民票を有する者に対して付番(ふばん)されるものであることから、海外移住者はマイナンバーを国内から持ち越して利用することができないという。国内に住民票がなくなった時点でマイナンバーは無効になるそうだ。したがって在外邦人によるネット投票は、マイナンバーに関する法律が改正される必要はあるものの、ネット投票においてはマイナンバーカードによる個人認証が最も有効であるという判断もあるようだ。また、法制度についても改正される可能性があることがすでに報道されているそうだ。

 今回のネット投票システムでは、投票の前段階でマイナンバーカードによる個人認証を行う。システムでは、投票者がマイナンバーカードをカードリーダーで読み込ませると、パイプドビッツが用意した投票用サーバーを経由し、システムはマイナンバーカードプラットフォーム事業者であるTOPICが提供する認証基盤サーバーと、地方公共団体情報システム機構(J-LIS)が提供する公的個人認証サービスのサーバーを参照するという。認証基盤サーバーでマイナンバーカードと暗証番号が正しいと判断されたあと、次に公的個人認証サービスを参照し、そのマイナンバーが失効していないかどうかを確認する。こごて確認が取れれば、晴れて個人認証が正しいものであると判断されることで本人認証が完了し、次の投票システムへと進むという。

 投票システムにおける投票データの扱いについても解説をする。投票データは、正しく投票数をカウントしながらも投票者が誰に投票したのか第三者にわからないよう、投票の秘密性を守らなければならないという。そこで今回のシステムでは、マイナンバーカードに含まれる公開鍵と秘密鍵のキーペアと、システム側が独自に用意した公開鍵と秘密鍵を使用して投票内容を暗号化し、投票者情報と投票内容を分離して管理するという。これにより、システム管理者であっても投票者情報と投票内容を紐づけることができない仕様となり、秘密投票が実現しているという

 投票内容については、データの改ざんが困難なEthereumによるブロックチェーン技術を活用し、投票データの改ざんや消失の防止を行っているとのこと。今回は3台のノードという最小構成のシステムで問題なく稼働させることができたという。また、投票を受け付けいた時間帯は、サーパーの監視、不正なログの解析をリアルタイムで実施したそうだ。

実際の画面で投稿フローを確認

 ここで、当日はどのようなフローで投票を行ったのかを、実際の画面を使ってデモンストレーションが行われた。

 フローでは、最初に利用規約が表示され、個人情報の取扱いに関するポリシーを投票者に伝えて同意を求める。問題がなければここでカードリーダーにマイナンバーカードをかざして、認証画面へと進み、パスワードを入力する。

実際の認証画面

 ここで公的個人認証として、マイナンバーカードを作成した際にあらかじめ決めておいた電子署名用パスワード(6桁から16桁)を入力するのだが、これはカードの4桁の暗証番号ではなく、別のパスワードということから、そこで勘違いをして戸惑う人も多かったという。ちなみに5回間違えるとロックがかかることになり、行政窓口での再手続きがに必要になるそうだ。また、マイナンバーカードとパスワードを検証するのに5秒から10秒程度待たされるため、ここにも改善の余地がありそうだという。

 カードとパスワードの正当性が確認できたら、次は未投票かどうかのチェックを行い、未投票が確認できた段階で投票画面へと進む。

 今回の投票では、投票の公平性を保つために、投票画面には審査対象となる提案者のアイコン的画像とテキストを表示し、一覧できるようにしつつ、その並びはランダム表示にしたという。ちなみに公職選挙では立候補者の順番は決まっているが、今回のような投票では、毎回並びを変えることで公平性が保てるのだという。

投票画面の一覧

 投票先が決まったら、一覧から「投票」ボタンを押し、確認画面へと進む。確認の完了を済ませると、投票データは暗号化され送信される。ちなみにそのデータ処理には3秒から5秒程度かかるそうだ。ここもまた改善の余地はありそうだとのこと。

 正しく投票データが処理されると完了画面が表示されるので、ここでマイナンバーカードをカードリーダーから外す。最後に「認証画面に戻る」を押すと、セッション情報はすべてクリアされ、最初の認証画面に戻り、次の投票を受け付ける状態になるそうだ。ちなみに最後は「認証画面に戻る」を押さなくても5秒後に自動的に認証画面に戻り、同様の処理が行われるようになっているそうだ。

実証実験の結果

 実証実験による投票は、8月28日の本番投票日以外にも、20日から24日までの5日間、期日前投票も実施したという。今回は、ネット投票といいながらもカードリーダーの設置の必要性があったことから、投票日および期日前投票は決められた場所の決められた端末からのみの投票に限定したそうだ。カードリーダーがあれば、すでにどこかでも投稿が可能なシステムではあるという。マイナンバーカードの読み込みに関しても今後の課題だ。

 今回の有効投票数は、119件。男女比は8対2で男性が多かったという。投票はマイナンバーカードを持っていれば、投票所に足を運べばつくば市民以外の人でも投票できるオープン環境で実施したが、投票者の内訳は45%がつくば市内在住者で、65%が茨城県民という結果とのこと。年齢は、20代19人、30代30人、40代33人、50代31人、60代以上が6人だそうだ。

最後は、開発エピソード

株式会社パイプドビッツ・執行役員CTOの鈴木信裕氏

 続いて、システム構築を担当したパイプドビッツの鈴木氏よりネット投票システムの開発エピソードが公表された。

 開発の中で最も大変だったのは、投票者を特定できないようにする仕組み作りだったという。ポイントとしてはサーバーに保存されている情報だけでは個人が特定できないように、暗号化と複合化を工夫し、市ノ澤氏が解説したように投票者情報と投票内容を分離しデータベースとブロックチェーン上でそれぞれ管理するという方法を用いることにしたのだという。また、今回は使用していないが、そこに再投票できる仕組みがあればなお良いということで、そういった用途についても考えながら開発を行ってきたそうだ。

開発エピソードを語る鈴木氏

 いつでもどこからでも投票できるネット投票システムを目標としているが、今回は開発期間が短かったことから、まずは指定のPCに限定して開発を行ったという。本来は、PCに限らずスマートフォンやタブレットでも、また自宅からも投票が行えるようにも考えているが、そうなるとさまざまなブラウザーに対応する必要が出てくることから、その検証をする時間が必要だという。またマイナンバーカードによる本人認証を使用する場合は、これも先に市ノ澤氏が問題点を掲げたように、カードリーダーが必須になってしまうことから、現状は難しかったという。

 今回はEthereumのブロックチェーンを使用したが、Ethereumとそのライブラリの挙動をつかむためにさまざまな実験を行ったという。今回は、複数のEthereumを使用しており、各Ethereum間の同期を考慮し、投票は非同期処理で行ったそうだ。

 最後の質疑応答で、数多くあるブロックチェーンの中で、なぜEthereumのブロックチェーンを採用したのかという質問を投げかけたが、まず開発期間が限られていたことから、Ethereumなら短期間で作れるといった確証があったことと、Ethereumに関するテクニカルな情報も多いので、時間的なことを配慮しての選択だったという。他にHyperledgerも検討したが、やはりEthereumのほうが早く開発できるだろうということだった。

 また、システムの構築中に最も困ったのは、無効化されたマイナンバーカードを持っている人が誰もいなかったことだったという。社員の中に、マイナンバーカードを持っている人は多数いるが、無効化されたマイナンバーカードのテストもやらなければならないと気がついたときに、当たり前だがそのようなカードを持っている人が社内には当然おらず、慌てて総務省に相談した結果、なんと無効化されたカードを無事に貸し出ししてもらえることになり、事なきを得たというエピソードが印象的だった。

 つくば市にて実施されたネット投票システムの実証実験については、多くのメディアで取り上げられていたことから、ブロックチェーンの実証実験例としてはすでに有名な話だが、こうして開発者の生の声を聞くと、実際に試してみるという価値を改めて実感することができるいい機会となる。今後も、BCCCの部会レポートは積極的に報告していきたい。

高橋ピョン太