(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-04-27
(45)【発行日】2022-05-11
(54)【発明の名称】電子投票システム、及び、制御方法
(51)【国際特許分類】
G06Q 50/26 20120101AFI20220428BHJP
G07C 13/00 20060101ALI20220428BHJP
【FI】
G06Q50/26
G07C13/00 B
(21)【出願番号】P 2018093921
(22)【出願日】2018-05-15
【審査請求日】2020-11-27
(32)【優先日】2017-09-15
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】514136668
【氏名又は名称】パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ
【氏名又は名称原語表記】Panasonic Intellectual Property Corporation of America
(74)【代理人】
【識別番号】100109210
【氏名又は名称】新居 広守
(74)【代理人】
【識別番号】100137235
【氏名又は名称】寺谷 英作
(74)【代理人】
【識別番号】100131417
【氏名又は名称】道坂 伸一
(72)【発明者】
【氏名】海上 勇二
(72)【発明者】
【氏名】添田 純一郎
(72)【発明者】
【氏名】田中 章
【審査官】大野 朋也
(56)【参考文献】
【文献】米国特許出願公開第2017/0048209(US,A1)
【文献】特開2005-293330(JP,A)
【文献】米国特許第06061449(US,A)
【文献】特開2005-339247(JP,A)
【文献】特表2004-524759(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06Q 10/00-99/00
G07C 13/00
(57)【特許請求の範囲】
【請求項1】
端末と、複数の認証サーバと、複数の投票サーバとを備える電子投票システムであって、
前記複数の認証サーバのそれぞれは、
投票者に紐付けられる第一IDと、前記投票者の認証情報とを含む認証データを前記端末から受信し、受信した前記認証データを用いて前記投票者を認証する認証処理部と、
前記認証処理部により前記投票者が認証されたことを示す第一取引データを含む第一ブロックチェーンを記憶している第一記憶部と、
前記第一記憶部が記憶している前記第一ブロックチェーンを、前記複数の認証サーバのうち当該認証サーバを除く1以上の認証サーバと同期する第一同期部とを備え、
前記複数の投票サーバのそれぞれは、
前記投票者が投票する票に紐付けられる第二IDであって、前記第一IDとは独立である第二IDと、前記票の投票内容を示す投票情報とを含む投票データを前記端末から受信する投票処理部と、
前記投票処理部が受信した前記投票データに含まれる前記投票情報を第二取引データとして含む第二ブロックチェーンを記憶している第二記憶部と、
前記第二記憶部が記憶している前記第二ブロックチェーンを、前記複数の投票サーバのうち当該投票サーバを除く1以上の投票サーバと同期する第二同期部と、
前記端末から前記投票データを受信した場合には、受信した前記投票データに含まれる前記投票内容を示す第二取引データを生成する第二取引データ生成部と、
前記第二取引データ生成部が生成した1以上の前記第二取引データを含む第二ブロックを生成し、生成した前記第二ブロックを前記第二ブロックチェーンに接続する第二ブロック生成部と、
前記第二取引データ生成部が生成した1以上の前記第二取引データを、前記第二ブロック生成部が生成する複数の前記第二ブロックのうちのどの第二ブロックに含めるかを決定する決定部とを備え、
前記端末は、
前記認証データを生成し、生成した前記認証データを前記複数の認証サーバのうちの一の認証サーバに送信するデータ生成部を備え、
前記データ生成部は、さらに、
前記認証サーバに前記認証データを送信することで、前記一の認証サーバによる認証が成功した後に前記投票データを生成し、生成した前記投票データを前記複数の投票サーバのうちの一の投票サーバに送信する
電子投票システム。
【請求項2】
前記決定部は、前記第二取引データ生成部が生成した1以上の前記第二取引データを、前記第二ブロック生成部が生成する複数の前記第二ブロックのうちのランダムな一の第二ブロックに含めると決定する
請求項1に記載の電子投票システム。
【請求項3】
前記決定部は、前記第二取引データ生成部が生成した1以上の前記第二取引データを、前記第二ブロック生成部が生成する複数の前記第二ブロックのうちの、前記端末から受信した情報に基づいて定められる一の第二ブロックに含めると決定する
請求項1に記載の電子投票システム。
【請求項4】
前記複数の投票サーバの前記決定部のそれぞれは、前記第二取引データ生成部が生成した1以上の前記第二取引データを、前記第二ブロック生成部が生成する複数の前記第二ブロックのうちのどの第二ブロックに含めるかを、他の投票サーバの前記決定部と共有する
請求項1~3のいずれか1項に記載の電子投票システム。
【請求項5】
複数の認証サーバと、複数の投票サーバとを備える電子投票システムであって、
前記複数の認証サーバのそれぞれは、
投票者に紐付けられる第一IDと、前記投票者の認証情報とを含む認証データを端末から受信し、受信した前記認証データを用いて前記投票者を認証する認証処理部と、
前記認証処理部により前記投票者が認証されたことを示す第一取引データを含む第一ブロックチェーンを記憶している第一記憶部と、
前記第一記憶部が記憶している前記第一ブロックチェーンを、前記複数の認証サーバのうち当該認証サーバを除く1以上の認証サーバと同期する第一同期部とを備え、
前記複数の投票サーバのそれぞれは、
前記投票者が投票する票に紐付けられる第二IDであって、前記第一IDとは独立である第二IDと、前記票の投票内容を示す投票情報とを含む投票データを前記端末から受信する投票処理部と、
前記投票処理部が受信した前記投票データに含まれる前記投票情報を第二取引データとして含む第二ブロックチェーンを記憶している第二記憶部と、
前記第二記憶部が記憶している前記第二ブロックチェーンを、前記複数の投票サーバのうち当該投票サーバを除く1以上の投票サーバと同期する第二同期部と、
前記端末から前記投票データを受信した場合には、受信した前記投票データに含まれる前記投票内容を示す第二取引データを生成する第二取引データ生成部と、
前記第二取引データ生成部が生成した1以上の前記第二取引データを含む第二ブロックを生成し、生成した前記第二ブロックを前記第二ブロックチェーンに接続する第二ブロック生成部と、
前記第二取引データ生成部が生成した1以上の前記第二取引データを、前記第二ブロック生成部が生成する複数の前記第二ブロックのうちのどの第二ブロックに含めるかを決定する決定部とを備える
電子投票システム。
【請求項6】
電子投票システムにおける複数の投票サーバのうちの一の投票サーバの制御方法であって、
投票者が投票する票に紐付けられる第二IDであって、前記投票者に紐付られる第一IDとは独立である第二IDと、前記票の投票内容を示す投票情報とを含む投票データを端末から受信し、
受信した前記投票データに含まれる前記投票情報を第二取引データとして含む第二ブロックチェーンを記憶し、
記憶している前記第二ブロックチェーンを、前記複数の投票サーバのうち前記一の投票サーバを除く1以上の投票サーバと同期し、
前記端末から前記投票データを受信した場合には、受信した前記投票データに含まれる前記投票内容を示す第二取引データを生成し、
生成した1以上の前記第二取引データを含む第二ブロックを生成し、生成した前記第二ブロックを前記第二ブロックチェーンに接続し、
生成した1以上の前記第二取引データを、生成する複数の前記第二ブロックのうちのどの第二ブロックに含めるかを決定する
制御方法。
【請求項7】
端末と、複数の認証サーバと、複数の投票サーバとを備える電子投票システムの制御方法であって、
前記複数の認証サーバのそれぞれにより、
投票者に紐付けられる第一IDと、前記投票者の認証情報とを含む認証データを前記端末から受信し、受信した前記認証データを用いて前記投票者を認証し、
前記投票者が認証されたことを示す第一取引データを含む第一ブロックチェーンを記憶し、
記憶している前記第一ブロックチェーンを、前記複数の認証サーバのうち当該認証サーバを除く1以上の認証サーバと同期し、
前記複数の投票サーバのそれぞれにより、
前記投票者が投票する票に紐付けられる第二IDであって、前記第一IDとは独立である第二IDと、前記票の投票内容を示す投票情報とを含む投票データを前記端末から受信し、
受信した前記投票データに含まれる前記投票情報を第二取引データとして含む第二ブロックチェーンを記憶し、
記憶している前記第二ブロックチェーンを、前記複数の投票サーバのうち当該投票サーバを除く1以上の投票サーバと同期し、
前記端末から前記投票データを受信した場合には、受信した前記投票データに含まれる前記投票内容を示す第二取引データを生成し、
生成した1以上の前記第二取引データを含む第二ブロックを生成し、生成した前記第二ブロックを前記第二ブロックチェーンに接続し、
生成した1以上の前記第二取引データを、生成する複数の前記第二ブロックのうちのどの第二ブロックに含めるかを決定し、
前記端末により、
前記認証データを生成し、生成した前記認証データを前記複数の認証サーバのうちの一の認証サーバに送信し、
前記認証サーバに前記認証データを送信することで、前記一の認証サーバによる認証が成功した後に前記投票データを生成し、生成した前記投票データを前記複数の投票サーバのうちの一の投票サーバに送信する
制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、電子投票システム、及び、制御方法に関する。
【背景技術】
【0002】
近年、一部の地方自治体において電子投票が行われている。電子投票システムでは、投票者の投票内容を秘匿にするために、投票者の認証情報と投票内容との紐付けをさせないようにする必要がある。
【0003】
特許文献1に開示される電子投票システムでは、投票者の認証に用いられる通信端末に投票参加チケットを送信し、通信端末が投票参加チケットを匿名化して送信することで、投票者の匿名性を確保している。
【0004】
また、電子投票システムは、システムの信頼性が高いこと、及び、記録されている投票内容の改変がされないことという要件の具備も必要である。非特許文献1では、システムの高信頼性、及び、投票内容の改変の防止を実現するためにブロックチェーンを用いることが開示されている。
【先行技術文献】
【特許文献】
【0005】
【非特許文献】
【0006】
【文献】「ブロックチェーンの分散台帳を利用した電子投票による集合知の構成」 情報処理 第57巻 第12号 pp.1204-1209
【発明の概要】
【発明が解決しようとする課題】
【0007】
電子投票システムにおいて投票をブロックチェーンで管理する場合、投票結果を含むブロックチェーンを公開すると、投票者と投票内容との紐付けができてしまい、秘密投票が実現し得ないという問題がある。
【0008】
そこで、本発明は、秘密投票を可能とする電子投票システム等を提供する。
【課題を解決するための手段】
【0009】
本発明の一態様に係る電子投票システムは、端末と、複数の認証サーバと、複数の投票サーバとを備える電子投票システムであって、前記複数の認証サーバのそれぞれは、投票者に紐付けられる第一IDと、前記投票者の認証情報とを含む認証データを前記端末から受信し、受信した前記認証データを用いて前記投票者を認証する認証処理部と、前記認証処理部により前記投票者が認証されたことを示す第一取引データを含む第一ブロックチェーンを記憶している第一記憶部と、前記第一記憶部が記憶している前記第一ブロックチェーンを、前記複数の認証サーバのうち当該認証サーバを除く1以上の認証サーバと同期する第一同期部とを備え、前記複数の投票サーバのそれぞれは、前記投票者が投票する票に紐付けられる第二IDであって、前記第一IDとは独立である第二IDと、前記票の投票内容を示す投票情報とを含む投票データを前記端末から受信する投票処理部と、前記投票処理部が受信した前記投票データに含まれる前記投票情報を第二取引データとして含む第二ブロックチェーンを記憶している第二記憶部と、前記第二記憶部が記憶している前記第二ブロックチェーンを、前記複数の投票サーバのうち当該投票サーバを除く1以上の投票サーバと同期する第二同期部と、前記端末から前記投票データを受信した場合には、受信した前記投票データに含まれる前記投票内容を示す第二取引データを生成する第二取引データ生成部と、前記第二取引データ生成部が生成した1以上の前記第二取引データを含む第二ブロックを生成し、生成した前記第二ブロックを前記第二ブロックチェーンに接続する第二ブロック生成部と、前記第二取引データ生成部が生成した1以上の前記第二取引データを、前記第二ブロック生成部が生成する複数の前記第二ブロックのうちのどの第二ブロックに含めるかを決定する決定部とを備え、前記端末は、前記認証データを生成し、生成した前記認証データを前記複数の認証サーバのうちの一の認証サーバに送信するデータ生成部を備え、前記データ生成部は、さらに、前記認証サーバに前記認証データを送信することで、前記一の認証サーバによる認証が成功した後に前記投票データを生成し、生成した前記投票データを前記複数の投票サーバのうちの一の投票サーバに送信する。
【0010】
なお、これらの包括的または具体的な態様は、システム、方法、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能なCD-ROMなどの記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラムおよび記録媒体の任意な組み合わせで実現されてもよい。
【発明の効果】
【0011】
本発明によれば、秘密投票が可能となる。
【図面の簡単な説明】
【0012】
【
図1】
図1は、実施の形態における電子投票システムの構成を示す模式図である。
【
図2】
図2は、ブロックチェーンのデータ構造を示す説明図である。
【
図3】
図3は、取引データのデータ構造を示す説明図である。
【
図4】
図4は、実施の形態における投票端末の構成を示すブロック図である。
【
図5】
図5は、実施の形態における認証サーバの構成を示すブロック図である。
【
図6】
図6は、実施の形態における投票サーバの構成を示すブロック図である。
【
図7】
図7は、実施の形態における電子投票システムの初期化処理を示すシーケンス図である。
【
図8】
図8は、実施の形態における初期化処理中の認証コインの所有者を示す説明図である。
【
図9】
図9は、実施の形態における初期化処理中の投票コインの所有者を示す説明図である。
【
図10】
図10は、実施の形態における電子投票システムの投票処理を示す第一のシーケンス図である。
【
図11】
図11は、実施の形態における電子投票システムの投票処理を示す第二のシーケンス図である。
【
図12】
図12は、実施の形態における投票処理中の認証コインの所有者を示す説明図である。
【
図13】
図13は、実施の形態における投票処理中の投票コインの所有者を示す説明図である。
【
図14】
図14は、実施の形態における投票取引データを含めるブロックのブロックIDを示す説明図である。
【
図15】
図15は、実施の形態における投票取引データをブロックに含める様子を示す説明図である。
【
図16】
図16は、実施の形態におけるコンセンサスアルゴリズムの実行可否に関する処理を示すフロー図である。
【
図17】
図17は、実施の形態における電子投票システムの投票終了処理を示すフロー図である。
【
図18】
図18は、実施の形態における投票サーバによる投票結果の公開処理を示すシーケンス図である。
【
図19】
図19は、実施の形態における電子投票システムでの投票に用いる投票端末を示す模式図である。
【
図20】
図20は、実施の形態における電子投票システムでの投票結果の公開に用いる端末を示す模式図である。
【発明を実施するための形態】
【0013】
本発明の一態様に係る電子投票システムは、端末と、複数の認証サーバと、複数の投票サーバとを備える電子投票システムであって、前記複数の認証サーバのそれぞれは、投票者に紐付けられる第一IDと、前記投票者の認証情報とを含む認証データを前記端末から受信し、受信した前記認証データを用いて前記投票者を認証する認証処理部と、前記認証処理部により前記投票者が認証されたことを示す第一取引データを含む第一ブロックチェーンを記憶している第一記憶部と、前記第一記憶部が記憶している前記第一ブロックチェーンを、前記複数の認証サーバのうち当該認証サーバを除く1以上の認証サーバと同期する第一同期部とを備え、前記複数の投票サーバのそれぞれは、前記投票者が投票する票に紐付けられる第二IDであって、前記第一IDとは独立である第二IDと、前記票の投票内容を示す投票情報とを含む投票データを前記端末から受信する投票処理部と、前記投票処理部が受信した前記投票データに含まれる前記投票情報を第二取引データとして含む第二ブロックチェーンを記憶している第二記憶部と、前記第二記憶部が記憶している前記第二ブロックチェーンを、前記複数の投票サーバのうち当該投票サーバを除く1以上の投票サーバと同期する第二同期部と、前記端末から前記投票データを受信した場合には、受信した前記投票データに含まれる前記投票内容を示す第二取引データを生成する第二取引データ生成部と、前記第二取引データ生成部が生成した1以上の前記第二取引データを含む第二ブロックを生成し、生成した前記第二ブロックを前記第二ブロックチェーンに接続する第二ブロック生成部と、前記第二取引データ生成部が生成した1以上の前記第二取引データを、前記第二ブロック生成部が生成する複数の前記第二ブロックのうちのどの第二ブロックに含めるかを決定する決定部とを備え、前記端末は、前記認証データを生成し、生成した前記認証データを前記複数の認証サーバのうちの一の認証サーバに送信するデータ生成部を備え、前記データ生成部は、さらに、前記認証サーバに前記認証データを送信することで、前記一の認証サーバによる認証が成功した後に前記投票データを生成し、生成した前記投票データを前記複数の投票サーバのうちの一の投票サーバに送信する。
【0014】
上記態様によれば、電子投票システムは、正当な投票者であることの認証と、認証後に行われる投票とで、互いに独立のIDを含むデータを用いる。これにより、例えば選挙後に認証の結果と投票内容とが公開された場合でも、その投票内容の投票を行った投票者が特定されないようにすることができる。また、認証されたことを示すデータと投票内容を示すデータとをそれぞれ個別のブロックチェーンで管理することで、各データの改ざんを抑制することができる。さらに、投票内容が格納されたブロックチェーンにおいて、投票内容が格納されたブロックが独自の順序で生成され接続されているので、投票者による投票内容が特定されることが抑制される。よって、電子投票システムは、秘密投票を可能とする。
【0015】
例えば、前記決定部は、前記第二取引データ生成部が生成した1以上の前記第二取引データを、前記第二ブロック生成部が生成する複数の前記第二ブロックのうちのランダムな一の第二ブロックに含めると決定してもよい。
【0016】
上記態様によれば、電子投票システムは、ランダムな順序で投票取引データをブロックに含め、ブロックチェーンに格納する。よって、電子投票システムは、投票取引データの順序がランダムであるので、投票内容が格納されたブロックチェーンが公開された場合であっても、投票内容、つまり、どの投票者がどの候補者に投票したのかが特定されることが抑制される。このようにして、電子投票システムは、秘密投票を可能とする。
【0017】
例えば、前記決定部は、前記第二取引データ生成部が生成した1以上の前記第二取引データを、前記第二ブロック生成部が生成する複数の前記第二ブロックのうちの、前記端末から受信した情報に基づいて定められる一の第二ブロックに含めると決定してもよい。
【0018】
上記態様によれば、電子投票システムは、端末から受信した情報に基づいて定められるブロックに投票取引データを含め、ブロックチェーンに格納する。よって、電子投票システムは、投票サーバとは独立に設定された情報に基づいて投票取引データを含めるブロックを定めるので、投票者の投票順序と、投票内容が格納されるブロックの順序との独立性が、より一層高められる。
【0019】
例えば、前記複数の投票サーバの前記決定部のそれぞれは、前記第二取引データ生成部が生成した1以上の前記第二取引データを、前記第二ブロック生成部が生成する複数の前記第二ブロックのうちのどの第二ブロックに含めるかを、他の投票サーバの前記決定部と共有してもよい。
【0020】
上記態様によれば、電子投票システムは、投票取引データを含めるブロックを、投票サーバ間で同じにすることができる。
【0021】
また、本発明の一態様に係る電子投票システムは、複数の認証サーバと、複数の投票サーバとを備える電子投票システムであって、前記複数の認証サーバのそれぞれは、投票者に紐付けられる第一IDと、前記投票者の認証情報とを含む認証データを端末から受信し、受信した前記認証データを用いて前記投票者を認証する認証処理部と、前記認証処理部により前記投票者が認証されたことを示す第一取引データを含む第一ブロックチェーンを記憶している第一記憶部と、前記第一記憶部が記憶している前記第一ブロックチェーンを、前記複数の認証サーバのうち当該認証サーバを除く1以上の認証サーバと同期する第一同期部とを備え、前記複数の投票サーバのそれぞれは、前記投票者が投票する票に紐付けられる第二IDであって、前記第一IDとは独立である第二IDと、前記票の投票内容を示す投票情報とを含む投票データを前記端末から受信する投票処理部と、前記投票処理部が受信した前記投票データに含まれる前記投票情報を第二取引データとして含む第二ブロックチェーンを記憶している第二記憶部と、前記第二記憶部が記憶している前記第二ブロックチェーンを、前記複数の投票サーバのうち当該投票サーバを除く1以上の投票サーバと同期する第二同期部と、前記端末から前記投票データを受信した場合には、受信した前記投票データに含まれる前記投票内容を示す第二取引データを生成する第二取引データ生成部と、前記第二取引データ生成部が生成した1以上の前記第二取引データを含む第二ブロックを生成し、生成した前記第二ブロックを前記第二ブロックチェーンに接続する第二ブロック生成部と、前記第二取引データ生成部が生成した1以上の前記第二取引データを、前記第二ブロック生成部が生成する複数の前記第二ブロックのうちのどの第二ブロックに含めるかを決定する決定部とを備える。
【0022】
上記態様によれば、電子投票システムは、電子投票システムに含まれない端末を用いて、上記と同様に秘密投票を可能とする。
【0023】
また、本発明の一態様に係る投票サーバの制御方法は、電子投票システムにおける複数の投票サーバのうちの一の投票サーバの制御方法であって、投票者が投票する票に紐付けられる第二IDであって、前記投票者に紐付られる第一IDとは独立である第二IDと、前記票の投票内容を示す投票情報とを含む投票データを端末から受信し、受信した前記投票データに含まれる前記投票情報を第二取引データとして含む第二ブロックチェーンを記憶し、記憶している前記第二ブロックチェーンを、前記複数の投票サーバのうち前記一の投票サーバを除く1以上の投票サーバと同期し、前記端末から前記投票データを受信した場合には、受信した前記投票データに含まれる前記投票内容を示す第二取引データを生成し、生成した1以上の前記第二取引データを含む第二ブロックを生成し、生成した前記第二ブロックを前記第二ブロックチェーンに接続し、生成した1以上の前記第二取引データを、生成する複数の前記第二ブロックのうちのどの第二ブロックに含めるかを決定する。
【0024】
これにより、上記電子投票システムと同様の効果を奏する。
【0025】
また、本発明の一態様に係る電子投票システムの制御方法は、端末と、複数の認証サーバと、複数の投票サーバとを備える電子投票システムの制御方法であって、前記複数の認証サーバのそれぞれにより、投票者に紐付けられる第一IDと、前記投票者の認証情報とを含む認証データを前記端末から受信し、受信した前記認証データを用いて前記投票者を認証し、前記投票者が認証されたことを示す第一取引データを含む第一ブロックチェーンを記憶し、記憶している前記第一ブロックチェーンを、前記複数の認証サーバのうち当該認証サーバを除く1以上の認証サーバと同期し、前記複数の投票サーバのそれぞれにより、前記投票者が投票する票に紐付けられる第二IDであって、前記第一IDとは独立である第二IDと、前記票の投票内容を示す投票情報とを含む投票データを前記端末から受信し、受信した前記投票データに含まれる前記投票情報を第二取引データとして含む第二ブロックチェーンを記憶し、記憶している前記第二ブロックチェーンを、前記複数の投票サーバのうち当該投票サーバを除く1以上の投票サーバと同期し、前記端末から前記投票データを受信した場合には、受信した前記投票データに含まれる前記投票内容を示す第二取引データを生成し、生成した1以上の前記第二取引データを含む第二ブロックを生成し、生成した前記第二ブロックを前記第二ブロックチェーンに接続し、生成した1以上の前記第二取引データを、生成する複数の前記第二ブロックのうちのどの第二ブロックに含めるかを決定し、前記端末により、前記認証データを生成し、生成した前記認証データを前記複数の認証サーバのうちの一の認証サーバに送信し、前記認証サーバに前記認証データを送信することで、前記一の認証サーバによる認証が成功した後に前記投票データを生成し、生成した前記投票データを前記複数の投票サーバのうちの一の投票サーバに送信する。
【0026】
これにより、上記電子投票システムと同様の効果を奏する。
【0027】
なお、これらの包括的または具体的な態様は、システム、方法、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能なCD-ROMなどの記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラムまたは記録媒体の任意な組み合わせで実現されてもよい。
【0028】
以下、実施の形態について、図面を参照しながら具体的に説明する。
【0029】
なお、以下で説明する実施の形態は、いずれも包括的または具体的な例を示すものである。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置及び接続形態、ステップ、ステップの順序などは、一例であり、本発明を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。
【0030】
(実施の形態)
本実施の形態において、秘密投票を可能とする電子投票システムについて説明する。
【0031】
1. システム構成
電子投票システムは、投票者に対して投票端末を用いて電子的な投票をさせるシステムである。電子投票システムは、投票端末と認証サーバとの間で投票に関する認証処理を行い、その後、投票端末と投票サーバとの間で投票処理を行う。電子投票システムが投票者による投票を受け付ける期間を投票期間ともいう。なお、電子投票システムによって投票する人を「投票者」ともいい、これに対して、投票できる権利を有する者を有権者という。
【0032】
以降において、電子投票システムについて図面を参照しながら説明する。
【0033】
1.1 電子投票システム10の全体構成
図1は、本実施の形態に係る電子投票システム10の構成を示した図である。電子投票システム10は、投票端末100a、101a、102a、100b、101b、102b、100c、101c及び102c(投票端末100a等ともいう)と、認証サーバ200a、200b及び200c(認証サーバ200a等ともいう)と、投票サーバ300a、300b及び300c(投票サーバ300a等ともいう)とを備え、これらがネットワークNで接続されている。なお、電子投票システム10は、投票端末100a等を備えず、電子投票システム10の外部の端末、例えば投票者が保有している端末を投票端末100a等として利用してもよい。
【0034】
認証サーバ200a等は、投票者が正当であるか否かの認証を行い、認証された投票者を示す情報を管理している。認証サーバ200aは、上記の認証、及び、情報の管理に公知のブロックチェーンの技術を利用している。すなわち、認証サーバ200aは、仮想的な取引(トランザクション)の対象の取引履歴をブロックチェーンによって管理している。ここでは、仮想的な取引対象としてコイン(認証コインともいう)を用いて説明するが、仮想的な取引対象はコインに限定されない。また、複数の認証サーバ200aなどは、認証コインの取引履歴を収めたブロックチェーンを共有し、相互に承認することで取引履歴の改ざんを防止している。認証コインは、認証サーバ200a等により生成され、投票端末100a等に提供される。投票者の認証が成功すると、認証コインは、投票端末100aから認証サーバ200aに提供される。認証コインの授受を認証取引ともいう。認証コインは実体を有しない仮想的なコインであり、その取引履歴が認証サーバ200a等によって管理されている。認証コインは、当該認証コインを一意に識別し得るID(識別子)を有している。認証コインのIDは、有権者に割り振られるIDに1対1に紐付けられている。認証コインのIDを認証IDともいう。
【0035】
投票サーバ300a等は、投票者による投票内容を管理している。投票サーバ300aは、投票内容の管理に公知のブロックチェーンの技術を利用している。すなわち、投票サーバ300aは、仮想的な取引対象の取引履歴をブロックチェーンによって管理している。ここでは、仮想的な取引対象としてコイン(投票コインともいう)を用いて説明するが、仮想的な取引対象はコインに限定されない。また、複数の投票サーバ300aなどは、投票コインの取引履歴を収めたブロックチェーンを共有し、相互に承認することで取引履歴の改ざんを防止している。投票コインは、投票サーバ300aにより生成され、認証サーバ200aを経て投票端末100a等に提供される。投票コインの授受を投票取引ともいい、投票端末100aから候補者への投票コインの提供が、選挙における投票に相当する。投票コインは実体を有しない仮想的なコインであり、その取引履歴が投票サーバ300a等によって管理されている。そして、投票者による投票の際に、投票端末100aから候補者に提供される。最終的に候補者が獲得した投票コインの個数が、電子投票における候補者の得票数になる。投票コインは、従来の選挙における投票用紙に相当する。投票コインは、当該投票コインを一意に識別し得るID(識別子)を有している。投票コインのIDは、投票者が投票する票に1対1に紐付けられている。投票コインのIDを投票IDともいう。
【0036】
認証コインのIDと投票コインのIDとは、互いに独立である。
【0037】
電子投票システム10は、例えば、3つのサブシステムA、B及びCに区分されている。なお、サブシステムの数は3に限られず、2以上の任意の数であってよい。
【0038】
電子投票システム10は、市町村、県又は全国規模の選挙に用いられ得るように、複数の認証サーバ200a等と、複数の投票サーバ300a等とにより処理を分散させるとともに、情報共有をしている。また、複数の認証サーバ200a同士、及び、複数の投票サーバ300a同士でブロックチェーン技術における相互の承認を行うことによって取引履歴の改ざんを防止している。
【0039】
例えば、投票者が投票所に設置された投票端末100aを用いて投票をするケースでは、認証サーバ200aと投票サーバ300aとは、投票所ごとに設けられる。この場合、サブシステムA、B及びCのそれぞれが投票所に対応して設けられる。例えば、日本における全国規模の選挙では、サブシステムの数は、数万程度になり得る。
【0040】
また、投票者が自宅などでネットワーク経由で投票をするケースでは、認証サーバ200aと投票サーバ300aとは、有権者の属性(性別、居住地、職業など)ごとに設けられてもよい。この場合、サブシステムA、B及びCのそれぞれが有権者の属性それぞれに対応して設けられる。
【0041】
図2は、ブロックチェーンのデータ構造を示す説明図である。
【0042】
ブロックチェーンは、その記録単位であるブロックがチェーン(鎖)上に接続されたものである。それぞれのブロックは、複数の取引データと、直前のブロックのハッシュ値とを有している。具体的には、ブロックB2には、その前のブロックB1のハッシュ値が含まれている。そして、ブロックB2に含まれる複数の取引データと、ブロックB1のハッシュ値とから演算されたハッシュ値が、ブロックB2のハッシュ値として、ブロックB3に含められる。このように、前のブロックの内容をハッシュ値として含めながら、ブロックをチェーン状に接続することで、規則された取引データの改ざんを有効に防止する。
【0043】
仮に過去の取引データが変更されると、ブロックのハッシュ値が変更前と異なる値になり、改ざんしたブロックを正しいものとみせかけるには、それ以降のブロックすべてを作り直さなければならず、この作業は現実的には非常に困難である。
【0044】
各取引データは、コインの新規生成及び授受を示している。このコインは、認証コイン及び投票コインに相当する。
【0045】
図3は、取引データのデータ構造を示す第一の説明図である。
【0046】
図3に示される取引データは、コインが保持者から提供先に提供されることを示す取引データD1の一例である。取引データD1は、保持者を示すアドレスP1と、提供先を示すアドレスP2と、アドレスP1及びP2のハッシュ値に対して、保持者の署名鍵で署名することで生成される電子署名P3とを含んでいる。なお、新たなコインが生成されるときにも取引データが生成される。新たなコインが生成されるときの取引データは、アドレスP1が空欄となる。
【0047】
以降において、投票端末100a、認証サーバ200a及び投票サーバ300aについて順に説明する。なお、他の投票端末、他の認証サーバ、及び、他の投票サーバについても同様の説明が成立する。
【0048】
1.2 投票端末100aの構成
投票端末100aは、投票者の認証情報、及び、投票内容の入力を投票者から受け、また、各種情報を表示する端末である。投票端末100aは、投票者が保有する携帯端末(具体的には、携帯電話端末、スマートフォン、パーソナルコンピュータ)であってもよいし、投票所に備え付けの端末であってもよい。
【0049】
図4は、本実施の形態に係る投票端末100aの構成を示すブロック図である。投票端末100b及び100cも同様の構成である。投票端末100aは、表示部111と、入力部112と、取引データ生成部113と、通信部114とを備える。投票端末100aは、プロセッサがメモリを用いて所定のプログラムを実行することで実現され得る。
【0050】
表示部111は、投票時の画面を表示する表示装置である。単に「画面」という場合、液晶ディスプレイ又は有機EL(Electro-Luminescence)ディスプレイなどの表示装置に表示される、画像で映し出される画面を意味する。以降でも同様である。
【0051】
入力部112は、投票時の認証情報の入力、及び、投票内容の入力を投票者から受け付ける。
【0052】
取引データ生成部113は、投票者の認証のための認証データと、投票者による投票のための投票データとを生成する。また、取引データ生成部113は、認証に伴う認証コインの授受のための認証取引データと、投票者による投票に伴う投票コインの授受のための投票取引データとを生成する。認証データは、投票者本人に固有の認証IDを含む認証情報と、投票端末100aの電子署名(単に署名ともいう)とを含む。電子署名は、認証情報のハッシュ値を署名鍵で署名生成したものである。認証取引データは、認証コインを投票端末100aから認証サーバ200aに提供する取引を示す取引データである。認証取引データを第一取引データともいう。
【0053】
また、投票データは、電子投票における投票内容と、投票端末100aの署名とを含む。投票内容は、具体的には、投票先の候補者を示す情報、又は、信任もしくは不信任などを示す情報である。投票取引データは、認証サーバ200aから提供された投票コインを、候補者に提供する取引を示す取引データである。投票取引データを第二取引データともいう。
【0054】
取引データ生成部113は、認証データを生成し、生成した認証データを認証サーバ200aに送信する。また、取引データ生成部113は、認証サーバ200aに認証データを送信することで、認証サーバ200aによる認証が成功した後に投票データを生成し、生成した投票データを投票サーバ300aに送信する。
【0055】
なお、投票端末100aによる署名の生成に必要な署名鍵は、あらかじめ投票端末100aが保持していてもよいし、投票者による認証情報の入力を受ける際に、認証サーバ200aから取得するとしてもよい。
【0056】
通信部114は、認証サーバ200a及び投票サーバ300aそれぞれとの通信を行う通信インタフェースである。この通信は、TLS(Transport Layer Security)によりなされてもよい。その場合、TLS通信用の暗号鍵は、通信部114が保持してもよい。
【0057】
1.3 認証サーバ200aの構成
図5は、本実施の形態における認証サーバ200aの構成を示すブロック図である。認証サーバ200b及び200cも同様の構成である。認証サーバ200aは、画面データ生成部211と、取引データ検証部212と、取引データ生成部213と、ブロック生成部214と、同期部215と、記憶部216と、通信部217とを備える。認証サーバ200a等は、プロセッサがメモリを用いて所定のプログラムを実行することで実現され得る。
【0058】
画面データ生成部211は、投票端末100aから認証のためのアクセスがあると、認証用の画面を描画するための画面データを生成する。具体的には、画面データ生成部211は、投票端末100aで、投票者から認証情報の入力を受けるための画面を描画するための画面データを生成する。
【0059】
取引データ検証部212は、投票端末100aから認証取引データを受信すると、受信した認証取引データを検証する。取引データ検証部212は、投票端末100aから認証取引データを受信すると、受信した認証取引データに含まれている署名が正当であるかを検証し、また、認証情報が正当であるかを検証する。認証情報の正当性の検証では、電子投票システム10によって事前に発行された認証情報であるか、また、投票期間中に一の認証情報が2回以上使用されていないかなどを検証する。一の認証情報が2回以上使用されていないものであるか否かは、記憶部216を参照することで、当該一の認証情報による認証の取引が記憶部216に記憶されていないものであるかどうかで確認する。取引データ検証部212は、検証処理の結果、認証情報が正当であると判定した場合には、認証取引データを記憶部216に記憶する。また、正当な認証取引データは、同期部215により、他の認証サーバ200b及び200cへ送信し、同期される。
【0060】
また、取引データ検証部212は、投票サーバ300aから投票取引データを受信すると、投票取引データに含まれている署名が正当であるかを検証する。
【0061】
取引データ生成部213は、認証取引に係る認証取引データを生成する。取引データ生成部213は、初期化処理において、有権者の人数と同じ個数の認証コインを新たに生成する認証取引データを生成する。この時点での認証コインの所有者は、有権者それぞれである。
【0062】
また、取引データ生成部213は、投票サーバ300aから提供される投票コインを投票端末100aに提供する投票取引データを生成する。取引データ生成部213は、第一取引データ生成部に相当する。
【0063】
ブロック生成部214は、複数の認証サーバ200aの間でコンセンサスアルゴリズムを実行する。コンセンサスアルゴリズムは、PBFT(Practical Byzantine Fault Tolerance)とよばれるコンセンサスアルゴリズムを用いてもよいし、その他の公知のコンセンサスアルゴリズムを用いてもよい。ブロック生成部214は、一以上の認証取引に関してコンセンサスアルゴリズムで合意形成ができた場合には、認証取引データを含むブロックを生成し、記憶部216に記憶する。さらに、ブロック生成部214は、生成したブロックを、記憶部216に記憶されているブロックチェーンに接続する。ブロック生成部214は、第一ブロック生成部に相当する。
【0064】
同期部215は、複数の認証サーバ200aの間で、ブロックチェーンのブロックの同期、及び、認証取引データの同期を行う。複数の認証サーバ200aの間では、peer to peerでブロックチェーンのブロックの同期が行われる。例えば、投票端末100aから認証取引データを受信し、取引データ検証部212により認証取引データの正当性が検証されると、同期部215は、他の認証サーバ200b及び200cに認証取引データの複製を送信することによって、検証済みの認証取引データを他の認証サーバ200b及び200cの記憶部216に記憶させる。また、同期部215は、他の認証サーバ200b及び200cから認証取引データを受信したら、受信した認証取引データを記憶部216に記憶する。
【0065】
記憶部216は、認証取引データと、ブロックチェーンのブロックとを記憶する記憶装置である。記憶部216が記憶しているブロックには、ブロックを識別し得る識別子(ID)が付与されている。記憶部216が記憶しているブロックチェーンを第一ブロックチェーンともいう。
【0066】
通信部217は、投票端末100a及び投票サーバ300aそれぞれとの通信を行う通信インタフェースである。この通信は、TLSによりなされてもよい。その場合、TLS通信用の暗号鍵は、通信部217が保持してもよい。
【0067】
なお、取引データ検証部212と取引データ生成部213とは、投票者に紐付けられる認証ID(つまり第一ID)と、投票者の認証情報とを含む認証データを投票端末100aから受信し、受信した認証データを用いて投票者を認証する認証処理部212Aに相当する。
【0068】
1.4 投票サーバ300aの構成
図6は、本実施の形態における投票サーバ300aの構成を示すブロック図である。投票サーバ300b及び300cも同様の構成である。投票サーバ300aは、画面データ生成部311と、候補者DB(データベース)312と、取引データ検証部313と、取引データ生成部314と、決定部315と、ブロック生成部316と、同期部317と、記憶部318と、通信部319とを備える。投票サーバ300aは、プロセッサがメモリを用いて所定のプログラムを実行することで実現され得る。
【0069】
画面データ生成部311は、投票端末100aから投票のためのアクセスがあると、投票用の画面を描画するための描画データである画面データを生成する。具体的には、画面データ生成部311は、候補者DB312から候補者に関する情報を取得し、投票端末100aに表示される画面であって、投票者による投票情報の入力を受けるための画面を描画するための描画データである画面データを生成する。
【0070】
候補者DB312は、候補者に関する情報が記憶されているデータベースである。候補者DB312には、少なくとも、候補者を特定する情報が記憶されている。具体的には、候補者DB312には、候補者を特定する情報として候補者の氏名を示す文字列が記憶されており、さらに当該候補者の顔写真を示す画像などが記憶されていてもよい。
【0071】
取引データ検証部313は、投票端末100aから投票取引データを受信すると、受信した投票取引データを検証する。取引データ検証部313は、投票取引データに含まれている署名が正当であるかを検証し、また、投票情報が正当であるかを検証する。投票情報の正当性の検証では、電子投票システム10によって事前に発行された投票情報であるか、また、投票期間中に一の投票情報が2回以上使用されていないかなどを検証する。一の投票情報が2回以上使用されているか否かは、記憶部318を参照することで、当該一の投票情報が記憶部318に記憶されていないものであるかどうかで確認する。取引データ検証部313は、検証処理の結果、投票情報が正当であると判定した場合には、投票取引データを記憶部318に記録する。また、正当な投票取引データは、同期部317により、他の投票サーバ300b及び300cへ送信し、同期される。
【0072】
取引データ生成部314は、投票取引に係る投票取引データを生成する。取引データ生成部314は、初期化処理において、有権者の人数と同じ個数の投票コインを新たに生成する投票取引データを生成する。この時点での投票コインの所有者は、投票サーバ300aである。次に、取引データ生成部314は、認証サーバ200aに投票コインを提供する投票取引データ(第三取引データに相当)を生成する。生成する投票取引データには、提供先の投票コインの所有者を示す情報(つまり、認証サーバ200aを示す情報)と、投票サーバ300aの署名とが含まれる。認証サーバ200aに投票コインを提供する投票取引データを生成した時点で、投票コインの所有者は認証サーバ200aになる。取引データ生成部314は、第二取引データ生成部に相当する。
【0073】
決定部315は、取引データ生成部314が生成した1以上の投票取引データを、ブロック生成部316が生成する複数のブロックのうちのどのブロックに含めるかを決定する。上記投票取引データを、複数のブロックのうちのどのブロックに含めるかを上記のように決定することで、ブロックチェーンにおいて投票取引データが格納される順序が、投票者による投票の順序とは異なる独自の順序になる。言い換えれば、ブロックチェーンにおいて投票取引データが格納される順序を、投票者による投票の順序とは独立の順序にすることができる。
【0074】
例えば、決定部315は、取引データ生成部314が生成した1以上の投票取引データを、ブロック生成部316が生成する複数の第二ブロックのうちのランダムな一のブロックに含めると決定してもよい。ランダムな一のブロックは、乱数によって定められ得る。また、決定部315は、取引データ生成部314が生成した1以上の投票取引データを、ブロック生成部316が生成する複数のブロックのうちの、投票端末100aから受信した情報に基づいて定められる一の第二ブロックに含めると決定してもよい。ここで、投票端末100aから受信した情報とは、例えば、投票端末100aの物理アドレス又は論理アドレスのような通信アドレス、投票端末100aによって生成された乱数などを採用し得る。
【0075】
また、決定部315は、取引データ生成部314が生成した1以上の投票取引データを、上記のように決定したブロックに含めるように、ブロック生成部316に当該ブロックを生成させる。
【0076】
ブロック生成部316は、複数の投票サーバ300a等の間でコンセンサスアルゴリズムを実行する。ブロック生成部316は、決定部315からのコンセンサスアルゴリズムの実行依頼を基に、生成するブロックのブロックIDに基づいて、記憶部318に含まれる該当する投票取引データを抽出し、複数の投票サーバ300a等の間でコンセンサスアルゴリズムを実行する。コンセンサスアルゴリズムは、PBFTを用いてもよいし、その他の公知のコンセンサスアルゴリズムを用いてもよい。匿名化の基準が満たされている投票取引データに関して、コンセンサスアルゴリズムで合意形成ができた場合には、投票取引データを含むブロックを生成し、記憶部318に記憶する。さらに、ブロック生成部316は、生成したブロックを、記憶部318に記憶されているブロックチェーンに接続する。ブロック生成部316は、第二ブロック生成部に相当する。
【0077】
また、ブロック生成部316は、認証サーバ200aに投票コインを提供する投票取引データ(第三取引データ)を含むブロック(第三ブロックに相当)を生成し、生成したブロックをブロックチェーンに接続する。第三取引データは、認証処理部212A(取引データ検証部212)が複数の有権者それぞれに対する認証をすることができる状態になったことを示す取引データである。
【0078】
また、ブロック生成部316は、認証サーバ200aから投票端末100aに投票コインを提供する投票取引データ(第四取引データ)を含むブロック(第四ブロックに相当)を生成し、生成した第四ブロックを第二ブロックチェーンに接続する。第四取引データは、認証サーバ200aにより投票者が認証されたことによって、投票端末100aが投票者による投票内容の入力を受けることができる状態になったことを示す取引データである。
【0079】
同期部317は、複数の投票サーバ300a等の間で、ブロックチェーンのブロックの同期、及び、投票取引データの同期を行う。複数の投票サーバ300aの間では、peer to peerでブロックチェーンのブロックの同期が行われる。例えば、投票端末100aから投票取引データを受信し、取引データ検証部313により投票取引データの正当性が検証されると、同期部317は、他の投票サーバ300b及び300cに投票取引データの複製を送信し、検証済みの投票取引データを他の投票サーバ300b及び300cの記憶部318に記憶させる。また、同期部317は、他の投票サーバ300b及び300cから投票取引データを受信したら、受信した投票取引データを記憶部318に記憶する。
【0080】
記憶部318は、投票取引データと、ブロックチェーンのブロックとを記憶する記憶装置である。記憶部318が記憶しているブロックチェーンを第二ブロックチェーンともいう。
【0081】
通信部319は、投票端末100a及び認証サーバ200aそれぞれとの通信を行う通信インタフェースである。この通信は、TLSによりなされてもよい。その場合、TLS通信用の暗号鍵は、通信部319が保持してもよい。
【0082】
なお、取引データ検証部313と取引データ生成部314とは、投票者が投票する票に紐付けられる投票ID(つまり第二ID)であって、認証IDとは独立である投票IDと、票の投票内容を示す投票情報とを含む投票データを投票端末100aから受信する投票処理部313Aに相当する。
【0083】
1.5 投票端末とサーバ間の投票シーケンス
以降において、電子投票システム10による処理について説明する。ここでは、投票端末100a等と認証サーバ200a等との間で認証コインを用いて投票者の認証を行うとともに、投票端末100a等と投票サーバ300a等との間で投票コインを用いて投票を行う処理について説明する。その際、認証済みの投票者のみに投票を許可するために、投票コインは認証サーバ200aを経て投票端末100aに提供される。
【0084】
以降において、初期化処理、投票処理、終了処理、及び、投票結果の公開処理について順に説明する。
【0085】
<初期化処理>
図7は、本実施の形態における電子投票システム10の初期化処理を示すシーケンス図である。
図8及び
図9は、それぞれ、本実施の形態における初期化処理中の認証コイン及び投票コインの所有者を示す説明図である。認証コイン及び投票コインの所有者は、それぞれ、認証サーバ200a等及び投票サーバ300a等により管理されている。
【0086】
図7に示される初期化処理は、電子投票システム10を用いる1回の選挙について、事前に1回実行される処理である。
【0087】
ステップS101において、認証サーバ200aは、認証初期化処理を実行する。認証初期化処理は、有権者に事前に配布されているID(有権者IDともいう)を認証IDとして有する認証コインを生成する認証取引データを生成し、生成した認証取引データを含むブロックを生成する。この段階では、認証コインの所有者は、当該有権者IDにより識別される有権者である(
図8参照)。
【0088】
ステップS102において、投票サーバ300aは、投票初期化処理を実行する。投票初期化処理は、有権者の人数と同じ個数の投票コインを生成する投票取引データを生成し、生成した投票取引データを含むブロックを生成する。この段階では、すべての投票コインの所有者は、投票サーバ300aである(
図9の(a)参照)。投票コインのIDは、投票コインそれぞれを一意に識別できる文字列又は値であり、すべて異なる。投票コインのIDは、ランダムに選択される文字列又は値であってもよい。投票コインのIDがすべて異なる文字列又は値であることで、ブロックチェーンを参照したときに、同じ投票コインが二重に利用されていないものであるか否かについての確認ができる。
【0089】
ステップS103において、投票サーバ300aは、ステップS102で生成した投票コインを認証サーバ200cに提供する投票取引データを生成し、生成した投票取引データを含むブロックを生成する。また、生成した投票取引データを認証サーバ200cに送信する。なお、投票コインの提供先が認証サーバ200cである場合を例として説明するが、投票コインの提供先は、他の認証サーバ200a又は200bであってもよい。この段階では、認証サーバ200cに提供された投票コインの所有者を示す情報が、認証サーバ200cに変更されている(
図9の(b)参照)。
【0090】
ステップS104において、認証サーバ200cは、他の認証サーバ200a及び200bとの間で同期処理を行う。同期処理では、認証サーバ200cは、同期部215によって、受信した投票取引データを、他の認証サーバ200a及び200bに送信する。認証サーバ200a及び200bの同期部215は、認証サーバ200cの同期部215から受信した投票取引データを記憶する。
【0091】
<投票処理>
図10及び
図11は、本実施の形態における電子投票システム10の投票処理を示すシーケンス図である。
図12及び
図13は、それぞれ、本実施の形態における投票処理中の認証コイン及び投票コインの所有者を示す説明図である。
【0092】
図10及び
図11に示される投票処理は、1人の投票者が1回の投票を行うときに1回実行される処理であり、1回の選挙において投票者の人数と同じ回数だけ実行される。
【0093】
ステップS201において、投票端末100aは、認証サーバ200aにアクセスする。このアクセスは、例えば、認証サーバ200aが提供しているWebサイトへのWebアクセスであり、HTTP(Hypertext Transfer Protocol)又はHTTPS(HTTP over SSL(Secure Sockets Layer)/TLS(Transport Layer Security))などが用いられ得る。
【0094】
ステップS202において、認証サーバ200aは、ステップS201でのアクセスに応じて、投票者の有権者IDを取得するための認証画面の画面データを生成し、投票端末100aに送信する。
【0095】
ステップS203において、投票端末100aは、ステップS202で送信された画面データに基づいて認証画面を表示し、投票者の有権者IDを含む認証情報の入力を受ける。投票者は、投票端末100aに表示された認証画面を視認し、事前に配布されている有権者IDを投票端末100aに入力する。投票者は、有権者IDを手入力してもよいし、投票端末100aによって有権者IDが記録されたバーコード又は二次元コードを読み取ることで入力してもよい。
【0096】
ステップS204において、投票端末100aは、ステップS203で入力された有権者IDを認証IDとして用いて認証取引データを生成する。
【0097】
ステップS205において、投票端末100aは、ステップS204で生成した認証取引データを認証サーバ200aへ送信する。ここでは、認証取引データを認証サーバ200aに送信する場合を例として説明するが、他の認証サーバ200b及び200cに送信してもよい。認証サーバ200aは、送信された認証取引データを受信する。
【0098】
ステップS206において、認証サーバ200aは、ステップS205で投票端末100aから受信した認証取引データの検証を行う。認証取引データの検証では、記憶部216に記憶されている認証取引データのブロックチェーンを参照し、投票端末100aから受信した認証取引データに含まれる有権者IDが当該ブロックチェーンに既に格納されていないものであるか否かを判定する。有権者IDが当該ブロックチェーンに既に格納されていないものであると判定した場合には、認証取引データの検証に成功したとし、既に格納されていると判定した場合には、認証取引データの検証に失敗したとする。
【0099】
上記ステップS206で認証取引データの検証に失敗した場合には、認証サーバ200aは、エラー処理を行う(不図示)。エラー処理では、例えば、投票端末100aにエラーメッセージを通知する。エラーメッセージは、「有権者ではない」または「既に認証済みのため、同じ有権者IDは利用できない」等のメッセージを含んでもよい。また、エラー処理では、これ以降に投票端末100aによる投票データの送信などの投票処理を行うことを禁止する。
【0100】
上記ステップS206で認証取引データの検証に成功した場合には、ステップS207に進む。
【0101】
ステップS207において、認証サーバ200aは、他の認証サーバ200b及び200cに認証取引データの複製を送信する。認証サーバ200b及び200cは、受信した認証取引データを検証する。
【0102】
ステップS208において、認証サーバ200a、200b及び200cは、コンセンサスアルゴリズムを実行する。コンセンサスアルゴリズムを実行することで、受信した認証取引データが正当な取引であることが検証される。認証サーバ200a、200b及び200cは、検証済みの認証取引データを含むブロックの生成を行う。これにより、認証済みの有権者IDを含むブロックが生成されるので、この後に同じ有権者IDを含む認証取引データを受信しても、ブロックチェーンを参照することで同一有権者IDの二重利用であることを判断することができる。この段階では、認証がなされた有権者の有権者IDを有する認証コインの所有者が認証サーバ200aに変更されている(
図12参照)。
【0103】
ステップS209において、認証サーバ200aは、ステップS205で認証取引データを送信した投票端末100aに投票コインを提供する投票取引データを生成し、生成した投票取引データを投票端末100a及び投票サーバ300aに送信する。このとき、投票取引データの投票IDは、ランダムに選択されてもよい。投票IDがランダムに選択されることで、投票IDが時系列にならずに、つまり、投票IDが時系列と無関係に選択されるようになり、投票者に投票内容が特定されることをより一層防止できる。なお、選択するときには、選択済みの投票IDを記憶しておき、記憶した投票ID以外を選択してもよいし、ブロックチェーンの台帳を参照して認証サーバ200a等が権利を持っている投票IDを選択するとしてもよい。
【0104】
ステップS210において、認証サーバ200aは、生成した投票取引データの複製を他の認証サーバ200b及び200cに送信し、投票取引データの同期をとる。認証サーバ200a、200b及び200cは、生成した投票取引データに係る投票コインを利用済みとして記録する。
【0105】
ステップS211において、投票サーバ300aは、ステップS209で認証サーバ200aから受信した投票取引データの検証を行う。投票取引データの検証では、記憶部318に記憶されている投票取引データのブロックチェーンを参照し、認証サーバ200aから受信した投票取引データに含まれる投票IDが当該ブロックチェーンに既に格納されていないものであるか否かを判定する。投票IDが当該ブロックチェーンに既に格納されていないものであると判定した場合には、投票取引データの検証に成功したとし、既に格納されていると判定した場合には、投票取引データの検証に失敗したとする。
【0106】
上記ステップS211で投票取引データの検証に失敗した場合には、投票サーバ300aはエラー処理を行う(不図示)。エラー処理では、例えば、投票端末100aにエラーメッセージを通知する。エラーメッセージは、「既に投票済みのため、同じIDは利用できない」等のメッセージを含んでもよい。また、エラー処理では、これ以降に投票端末100aによる投票データの送信などの投票処理を行うことを禁止する。
【0107】
ステップS212において、投票サーバ300aは、他の投票サーバ300b及び300cに投票取引データの複製を送信する。投票サーバ300b及び300cは、受信した投票取引データを検証する。
【0108】
ステップS213において、投票サーバ300a、300b及び300cは、コンセンサスアルゴリズムを実行する。コンセンサスアルゴリズムを実行することで、受信した投票取引データが正当な取引であることが検証される。投票サーバ300a、300b及び300cは、検証済みの投票取引データを含むブロックの生成を行う。この段階では、ステップS206で認証取引データの検証が成功した投票者に提供される投票コインの所有者が、投票端末100aに変更されている(
図13の(a)参照)。
【0109】
ステップS221において、投票端末100aは、投票サーバ300aにアクセスする。このアクセスは、例えば、投票サーバ300aが提供しているWebサイトへのWebアクセスであり、HTTP又はHTTPSなどが用いられ得る。ここでは、投票端末100aが投票サーバ300aにアクセスする場合を例として説明するが、投票サーバ300b又は300cにアクセスする場合にも同様の説明が成立する。
【0110】
ステップS222において、投票サーバ300aは、ステップS221でのアクセスに応じて、投票者による投票のための投票画面の画面データを生成し、投票端末100aに送信する。このとき、投票サーバ300aは、候補者DB312を参照し、候補者の一覧を含む画面データを生成する。この投票画面は、投票者が投票先である候補者を選択するために閲覧する画面である。
【0111】
ステップS223において、投票端末100aは、ステップS222で送信された画面データに基づいて投票画面を表示し、投票先の候補者を示す情報の入力を受ける。投票者は、投票端末100aに表示された投票画面を視認し、投票先の候補者を示す情報である投票情報を入力する。投票者は、表示デバイスに表示された画面を操作することで投票情報を入力してもよいし、投票先の候補者の名前などの情報を手入力することで投票情報を入力してもよい。投票端末100aは、投票者から投票先の候補者を示す投票情報の入力を受けると、投票情報を含む投票取引データを生成する。これは、投票先の候補者に投票コインを提供する投票取引データである。投票端末100aは、生成した投票取引データを、投票サーバ300aに送信する。
【0112】
ステップS224において、投票サーバ300aは、ステップS223で投票端末100aから受信した投票取引データの検証を行う。投票取引データの検証では、記憶部318に記憶されている投票取引データのブロックチェーンを参照し、投票端末100aから受信した投票取引データに含まれる投票IDが当該ブロックチェーンに既に格納されていないものであるか否かを判定する。投票IDが当該ブロックチェーンに既に格納されていないものであると判定した場合には、投票取引データの検証に成功したとし、既に格納されていると判定した場合には、投票取引データの検証に失敗したとする。
【0113】
上記ステップS224で投票取引データの検証に失敗した場合には、投票サーバ300aは、エラー処理を行う(不図示)。エラー処理では、例えば、投票端末100aにエラーメッセージを通知する。エラーメッセージは、「既に投票済みのため、同じ投票IDは利用できない」等のメッセージを含んでもよい。
【0114】
上記ステップS224で投票取引データの検証に成功した場合には、ステップS225に進む。
【0115】
ステップS225において、投票サーバ300aは、投票取引データを含めるブロックを決定する。より具体的には、投票サーバ300aの決定部315が、ステップS223で送信された投票取引データを含めるブロックのブロックIDを決定する。ブロックIDは、本ステップと同じ一連の処理に含まれるステップS228で生成するブロックのブロックID、又は、本ステップと同じ一連の処理より後で実行されるステップS228で生成するブロックのブロックIDである。ここで、ブロックIDは、ランダムに決定されてもよいし、投票端末100aから受信した情報に基づいて定められてもよい。
【0116】
ステップS226において、投票サーバ300aは、他の投票サーバ300b及び300cに投票取引データの複製を送信する。投票サーバ300b及び300cは、受信した投票取引データを検証し、記憶部318に記憶する。また、投票サーバ300aは、ステップS225で決定したブロックIDを他の投票サーバ300b及び300cに送信することで、他の投票サーバ300b及び300Cの決定部315と共有する。
【0117】
ステップS227において、投票サーバ300aは、次のステップS228で生成するブロックに含める投票取引データを決定する。決定される投票取引データは、ステップS225での決定に基づいて決定される。また、投票サーバ300b及び300cは、ステップS226で受信したブロックIDのブロックに、ステップS223で送信された投票取引データを含めることを決定する。
【0118】
ステップS228において、投票サーバ300a、300b及び300cは、コンセンサスアルゴリズムを実行する。コンセンサスアルゴリズムを実行することで、受信した投票取引データが正当な取引であることが検証される。受信した投票取引データが正当な取引であると検証された場合、検証された投票取引データを含むブロックの生成を行う。これにより、投票済みの投票IDを含むブロックが生成されるので、この後に同じ投票IDを含む投票取引データを受信しても、ブロックチェーンを参照することで同一投票IDの二重利用であることを判断することができる。この段階では、投票者による投票に用いられた投票コインの所有者が、投票先の候補者である候補者Xに変更されている(
図13の(b)参照)。
【0119】
なお、ステップS226のコンセンサスアルゴリズムの実行は、投票の都度に毎回行われるわけではなく、生成するブロックに含められる投票取引データがある場合のみ行われる。このことについて以下で説明する。
【0120】
図14は、本実施の形態における投票取引データを含めるブロックのブロックIDを示す説明図である。
図15は、本実施の形態における投票取引データをブロックに含める様子を示す説明図である。
【0121】
図14には、決定部315が決定した、投票取引データを格納するブロックIDが示されている。
【0122】
より具体的には、
図14には、投票IDが101~107である投票コインについて、投票先の候補者と、格納されるブロックのブロックIDとが示されている。
【0123】
例えば、投票IDが101である投票コインは、候補者Xへ投票されており、ブロックIDが2であるブロックに含まれると、決定部315により決定されている。また、投票IDが102である投票コインは、候補者Yへ投票されており、ブロックIDが1であるブロックに含まれると、決定部315により決定されている。他も同様である。
【0124】
この場合、
図15に示されるように、各投票取引データがブロックに含められる。
図15では、横軸を経過時間とし、投票サーバ300aが受信する投票取引データが上段に示されており、その投票取引データが格納されるブロックが下段に示されている。
【0125】
図15に示されるように、投票IDが102、103及び104である投票取引データが、ブロックIDが1であるブロックに格納される。また、投票IDが101及び106である投票取引データが、ブロックIDが2であるブロックに格納される。他も同様である。
【0126】
そして、
図15において破線の矩形で示される、ブロックに含めるべき投票取引データが存在しないときには、ブロックの生成、及び、コンセンサスアルゴリズムの実行はなされない。
【0127】
図16は、本実施の形態におけるコンセンサスアルゴリズムの実行可否に関する処理を示すフロー図である。
図16に示される一連の処理は、
図11におけるステップSAに含まれる処理である。なお、
図16に示される一連の処理は、投票サーバ300a、300b及び300cの少なくとも1つが実行すればよい。
【0128】
図16に示されるように、ステップS231において、決定部315は、本ステップに続けて行うステップS231においてブロックチェーンに含めるべき投票取引データが、記憶部318に記録されているか否かを判定する。
【0129】
そして、ステップS231で上記投票取引データが記憶部318に記憶されていると判定した場合(ステップS231でYes)には、ステップS226において、投票サーバ300a、300b及び300cによるコンセンサスアルゴリズムが実行される。
【0130】
一方、上記投票取引データが記憶部318に記憶されていないと判定した場合(ステップS231でNo)には、コンセンサスアルゴリズムが実行されることなく、投票処理を終える。この場合、当該投票処理における投票者とは異なる投票者について行われる投票処理において、投票取引データが記憶部318に記憶されていないと判定される場合(ステップS231でYes)に、コンセンサスアルゴリズムが実行され、ブロック生成部316によるブロック生成がなされる。
【0131】
このようにすることで、投票者による投票順序とは独立の順序で、投票取引データがブロックに格納されるようになる。よって、ブロックの内容を公開した場合であっても、どの投票者がどの候補者に投票したのかが特定されない、つまり秘匿される利点がある。
【0132】
<終了処理>
図17は、本実施の形態における電子投票システム10の投票終了処理を示すフロー図である。
図17に示される一連の処理は、投票サーバ300a、300b及び300cの少なくとも1つが実行すればよい。
【0133】
図17に示されるように、ステップS301において、ブロック生成部316は、投票期間が超過したか否かを判定する。投票期間が超過したと判定した場合(ステップS301でYes)にはステップS302に進み、投票期間が超過していないと判定した場合(ステップS301でNo)には再びステップS301を実行する。つまり、ブロック生成部316は、投票期間が超過するまでステップS301で待ち状態をとる。
【0134】
ステップS302において、記憶部318に記録されている投票取引データであって、未だブロックチェーンに含まれていない投票取引データを含むブロックを生成し、生成したブロックをブロックチェーンに接続する。なお、このとき、記憶部318に記録されている投票取引データであって、未だブロックチェーンに含まれていない投票取引データが匿名化の基準を満たしていない場合であっても、ブロックを生成し、ブロックチェーンに接続してもよい。
【0135】
ステップS303において、投票サーバ300a、300b及び300cは、コンセンサスアルゴリズムを実行する。この処理の内容は、ステップS226と同じである。
【0136】
このようにすることで、投票サーバ300a等は、すべての投票取引データをブロックチェーンに接続することができる。
【0137】
<投票結果の公開処理>
図18は、実施の形態における投票サーバ300aによる投票結果の公開処理を示すシーケンス図である。
【0138】
図18に示される一連の処理は、端末110から投票サーバ300aに、投票結果の公開のためのアクセスがなされた場合に行われる処理である。このアクセスは、例えば、投票サーバ300aが提供しているWebサイトへのWebアクセスであり、HTTP又はHTTPSなどが用いられ得る。なお、投票サーバ300aにアクセスする端末110は、投票端末100aであってもよいし、他の端末であってもよい。
【0139】
なお、ここでは、投票サーバ300aが上記アクセスを受けた場合を例として説明するが、他の投票サーバ300b又は300cが上記アクセスを受けた場合でも同様である。
【0140】
ステップS401において、投票サーバ300aの画面データ生成部311は、現時点が、投票結果を公開することを許容する期間内であるか否かを判定する。投票結果を公開することを許容する期間を公開期間ともいう。公開期間は、例えば、投票期間の終了後の期間であり、つまり投票が締め切られた時点より後の期間である。ステップS401で公開期間内であると判定した場合(ステップS401でYes)には、ステップS402に進み、そうでない場合(ステップS401でNo)には、ステップS411に進む。
【0141】
ステップS402において、画面データ生成部311は、記憶部318に記憶されている投票取引データが格納されたブロックチェーンを取得する。
【0142】
ステップS403において、画面データ生成部311は、ステップS402で取得したブロックチェーンに含まれる情報に基づいて、投票結果を示す画面の画面データを生成する。そして、画面データ生成部311は、生成した画面データを端末に送信し、端末において投票結果を示す画面を表示させる。
【0143】
ステップS411において、画面データ生成部311は、エラー処理を行う。エラー処理では、例えば、端末にエラーメッセージを通知する。エラーメッセージは、「まだ公開期間ではないので、投票結果を公開できません」等のメッセージを含んでもよい。
【0144】
以降において、電子投票システム10での投票に用いる投票端末100aの画面、及び、投票結果の公開に用いる端末の画面の例を説明する。
【0145】
図19は、本実施の形態における電子投票システム10での投票に用いる投票端末100aを示す模式図である。
【0146】
図19に示される投票端末100aは、投票先の候補者を選択するための画面を表示し、投票者に提示している。
【0147】
図19に示される画面は、投票者に対して投票を促すメッセージを示す画像401を含んでいる。また、候補者の氏名及び顔写真を示す画像402、及び、候補者に投票することを示すボタンの画像403を含んでいる。投票者が画像403つまり投票ボタンに対して操作をすると、入力部112は、当該投票ボタンに対応づけられた候補者へ投票するという投票内容を受けたことになる。
【0148】
図20は、本実施の形態における電子投票システム10での投票結果の公開に用いる端末110を示す模式図である。
【0149】
図20に示される端末110は、投票結果を公開するための画面を表示し、投票者に提示している。
【0150】
図20に示される画面は、当該画面に表示している内容が投票結果であることを示すメッセージを示す画像411を含んでいる。また、候補者の氏名及び顔写真を示す画像412、及び、候補者の得票数を示す画像413を含んでいる。また、最も得票数が多い候補者の画像412は、当選したことを示す枠の画像414によって囲まれている。
【0151】
端末110は、このような画面によって投票結果を提示することができる。
【0152】
1.6 実施の形態の効果
本実施の形態の電子投票システムは、正当な投票者であることの認証と、認証後に行われる投票とで、互いに独立のIDを含むデータを用いる。これにより、例えば選挙後に認証の結果と投票内容とが公開された場合でも、その投票内容の投票を行った投票者が特定されないようにすることができる。また、認証されたことを示すデータと投票内容を示すデータとをそれぞれ個別のブロックチェーンで管理することで、各データの改ざんを抑制することができる。さらに、投票内容が格納されたブロックチェーンにおいて、投票内容が格納されたブロックが独自の順序で生成され接続されているので、投票者による投票内容が特定されることが抑制される。よって、電子投票システムは、秘密投票を可能とする。
【0153】
また、電子投票システムは、ランダムな順序で投票取引データをブロックに含め、ブロックチェーンに格納する。よって、電子投票システムは、投票取引データの順序がランダムであるので、投票内容が格納されたブロックチェーンが公開された場合であっても、投票内容、つまり、どの投票者がどの候補者に投票したのかが特定されることが抑制される。このようにして、電子投票システムは、秘密投票を可能とする。
【0154】
また、電子投票システムは、端末から受信した情報に基づいて定められるブロックに投票取引データを含め、ブロックチェーンに格納する。よって、電子投票システムは、投票サーバとは独立に設定された情報に基づいて投票取引データを含めるブロックを定めるので、投票者の投票順序と、投票内容が格納されるブロックの順序との独立性が、より一層高められる。
【0155】
また、電子投票システムは、投票取引データを含めるブロックを、投票サーバ間で同じにすることができる。
【0156】
また、電子投票システムは、電子投票システムに含まれない端末を用いて、上記と同様に秘密投票を可能とする。
【0157】
2. その他変形例
なお、本発明を上記実施の形態に基づいて説明してきたが、本発明は、上記実施の形態に限定されないのはもちろんである。以下のような場合も本発明に含まれる。
【0158】
(1)上記の実施の形態では、認証サーバと投票サーバとは別の装置として説明したが、認証サーバと投票サーバを同一の装置としてもよい。このとき、認証サーバが保持する記録部は投票端末などに公開しない。
【0159】
(2)上記の実施の形態では、認証コイン及び投票コインの提供によって認証及び投票を実現したが、仮想的な取引対象の一例としてコインを用いたものであり、仮想的な取引対象はコインに限定されない。
【0160】
(3)上記の実施の形態では、投票サーバは、投票取引データを含めるブロックのブロックIDを決定するとしたが、投票取引データをブロックに含めるタイミングを決定するようにしてもよい。
【0161】
(4)上記の実施の形態では、認証サーバから投票端末に投票コインの提供を行っているが、投票端末への投票コインの投票の投票取引を投票サーバに送信するとしてもよい。また、投票サーバでは認証サーバから投票取引を受信し、投票取引の検証を行うとしてもよい。これにより、投票端末への投票コインの提供についてもブロックチェーンで管理できる。
【0162】
(5)上記の実施の形態では、投票結果の公開は、投票端末からのアクセスに基づいて行っているが、これに限定するわけではなく、投票サーバにアクセスできる端末であれば何でもよい。また、投票サーバが投票取引を含むブロックチェーンを公開するとしてもよい。
【0163】
(6)上記の実施の形態では、選挙の電子投票を一例に説明したが、これに限定するわけではなく、一般的な投票であればよく、また、信任投票やアンケートに適用するとしてもよい。例えば、株主総会の決議やアンケートに利用することで、決議やアンケート結果の改ざんを防止することができる。
【0164】
(7)上記実施の形態では、投票サーバは、投票端末から投票取引を受信した後に、複数のブロックのうちのどのブロックに投票取引データを含めるかを決定しているが、これに限定するわけではなく、所定のアルゴリズムに従って決定してもよい。このとき、アルゴリズムは、公開せず、投票サーバのみが管理するようにしてもよい。例えば、アルゴリズムは、受信した投票取引のうち、投票内容が重複している投票取引は次のブロックに含めるなど、投票内容が識別されなければよい。
【0165】
(8)上記の実施の形態における各装置は、具体的には、マイクロプロセッサ、ROM、RAM、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムである。前記RAMまたはハードディスクユニットには、コンピュータプログラムが記録されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、各装置は、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
【0166】
(9)上記の実施の形態における各装置は、構成する構成要素の一部または全部は、1個のシステムLSI(Large Scale Integration:大規模集積回路)から構成されているとしてもよい。システムLSIは、複数の構成部を1個のチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROM、RAMなどを含んで構成されるコンピュータシステムである。前記RAMには、コンピュータプログラムが記録されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、システムLSIは、その機能を達成する。
【0167】
また、上記の各装置を構成する構成要素の各部は、個別に1チップ化されていても良いし、一部又はすべてを含むように1チップ化されてもよい。
【0168】
また、ここでは、システムLSIとしたが、集積度の違いにより、IC、LSI、スーパーLSI、ウルトラLSIと呼称されることもある。また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。
【0169】
さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてありえる。
【0170】
(10)上記の各装置を構成する構成要素の一部または全部は、各装置に脱着可能なICカードまたは単体のモジュールから構成されているとしてもよい。前記ICカードまたは前記モジュールは、マイクロプロセッサ、ROM、RAMなどから構成されるコンピュータシステムである。前記ICカードまたは前記モジュールは、上記の超多機能LSIを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、前記ICカードまたは前記モジュールは、その機能を達成する。このICカードまたはこのモジュールは、耐タンパ性を有するとしてもよい。
【0171】
(11)本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
【0172】
また、本発明は、前記コンピュータプログラムまたは前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD-ROM、MO、DVD、DVD-ROM、DVD-RAM、BD(Blu-ray(登録商標) Disc)、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている前記デジタル信号であるとしてもよい。
【0173】
また、本発明は、前記コンピュータプログラムまたは前記デジタル信号を、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
【0174】
また、本発明は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記録しており、前記マイクロプロセッサは、前記コンピュータプログラムにしたがって動作するとしてもよい。
【0175】
また、前記プログラムまたは前記デジタル信号を前記記録媒体に記録して移送することにより、または前記プログラムまたは前記デジタル信号を前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
【0176】
(12)上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
【0177】
なお、本実施の形態の電子投票システムは、以下のようにも記載され得るが、この記載に限定されない。
【0178】
(a)投票端末と、複数の認証サーバ、複数の投票サーバからなる電子投票システムであって、前記投票端末は、認証取引および投票取引を生成する第一の取引生成部を含み、前記第一の取引生成部は、有権者の識別子から認証取引を生成すると認証サーバに送信し、前記認証サーバから投票権を譲渡された第一の投票取引から第二の投票取引を生成すると投票サーバに送信し、前記複数の認証サーバは、前記投票端末から前記認証取引を受信すると認証取引の検証を行う第一の取引検証部と、認証取引を生成する第二の取引生成部と、認証取引のブロック生成を行う第一のブロック生成部を含み、前記取引検証部は、前記認証取引を受信すると、前記認証取引に含まれる識別子がブロックチェーンに2つ以上存在するか否かを検証し、2つ以上ある場合は二重使用と判断し、前記第二の取引生成部は、前記取引検証部で前記認証取引の検証が成功すると前記投票サーバから受信した第三の投票取引から前記第一の投票取引を生成して投票端末へ送信し、前記複数の投票サーバでは、前記投票端末から前記第二の投票取引を受信すると取引の検証を行う第二の取引検証部と、投票取引を生成する第三の取引生成部と、投票取引をブロックに含めるタイミングを決定する決定部と、投票取引のブロック生成を行う第二のブロック生成部を含み、前記第二の取引検証部は、前記投票端末から前記第二の投票取引を受信すると、前記第二の投票取引に含まれる投票権がブロックチェーンに2つ以上存在するか否かを検証し、2つ以上ある場合は二重使用と判断し、前記第三の取引生成部は、投票権の第三の投票取引を生成し、前記認証サーバに送信し、前記第二のブロック生成部は、前記決定部が決定した投票取引を含めるタイミングに従い、前記第二の投票取引から抽出した投票取引のブロックを生成することを特徴とする電子投票システム。
【0179】
(b)前記複数の投票サーバの前記決定部は、さらに、投票取引に含めるタイミングを前記複数の投票サーバ間で共有することを特徴とする(a)に記載の電子投票システム。
【0180】
(c)前記複数の投票サーバの前記第決定部は、さらに、投票取引に含めるタイミングを前記投票端末から受信した情報に基づき決定することを特徴とする(a)に記載の電子投票システム。
【0181】
これにより、投票端末と認証サーバ間で有権者であるかの認証を行い、有権者の場合、認証サーバが投票サーバから譲渡されている投票権を投票端末に譲渡する。投票端末では譲渡された投票権を用いて投票を行うことができる。投票サーバでは投票権が二重に利用されているかの検証を行うことで、有権者の情報がなくとも、不正な投票を防止できる。また、投票サーバは、投票取引にブロックチェーンを用いることで、投票結果の改ざんをも防止できる。さらに、投票取引をブロックに含めるタイミングをランダムにすることで、ユーザの投票内容を識別することができないため、安全な電子投票システムを構築できる。
【0182】
以上、一つまたは複数の態様に係る電子投票システムなどについて、実施の形態に基づいて説明したが、本発明は、この実施の形態に限定されるものではない。本発明の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したものや、異なる実施の形態における構成要素を組み合わせて構築される形態も、一つまたは複数の態様の範囲内に含まれてもよい。
【産業上の利用可能性】
【0183】
本発明に係る電子投票システムは、秘密投票を可能とする。
【符号の説明】
【0184】
10 電子投票システム
100a、101a、102a、100b、101b、102b、100c、101c、102c 投票端末
110 端末
111 表示部
112 入力部
113、213、314 取引データ生成部
114、217、319 通信部
200a、200b、200c 認証サーバ
211、311 画面データ生成部
212、313 取引データ検証部
212A 認証処理部
214、316 ブロック生成部
215、317 同期部
216、318 記憶部
300a、300b、300c 投票サーバ
312 候補者DB
315 決定部
401、402、403、411、412、413、414 画像
B1、B2、B3 ブロック
D1 取引データ
N ネットワーク
P1、P2 アドレス
P3 電子署名