IBM Cloud Blog

スリーエイ・システムによるブロックチェーンを活用したネット電子投票システムの実証実験

記事をシェアする:

日本アイ・ビー・エム株式会社 町田 武夫

解説:日本アイ・ビー・エム株式会社 町田 武夫
インダストリー・ソリューションズ事業開発ブロックチェーン・ソリューションズ ブロックチェーンCoCシニアアーキテクト

スリーエイ・システムは、東京、福岡、大分の3拠点を中心にビジネスを展開されているソフトハウスで、Fintechやブロックチェーンといった先進技術領域への積極的な関わりを通じて、金融や地方自治体の業務のイノベーションをITで加速する取り組みを推進されています。公の情報や知見の少ない先進的な技術をどんなユースケースに適用すれば効果があるのかということを、正しい技術知識を獲得しながら導出していくのは、常に大きなチャレンジで、試行錯誤の繰り返しです。

今回の記事では、行政の効率化の1つのアイデアとしてのネット電子投票システムをブロックチェーンを活用して実際に試作した若手エンジニアのレポートをご紹介します。オンプレで開発したものをIBM Cloudにデプロイされ、短い時間でPoCを実現された取り組みです。


オフィスからの風景 博多港国際ターミナル
オフィスからの風景 博多港国際ターミナル

われわれ「スリーエイ・システム」は、2016年に自社主力パッケージであるFX(外国為替証拠金取引)システムのシステム基盤を、スケールアウト可能な超高速インメモリデータグリッドへと進化させてリリースすると同時に金融系のお客様が特に注目されている仮想通貨やブロックチェーンに関連する業界団体/協会に加入し、ブロックチェーン技術の知見を深める活動を開始しました。
2017年に入り、仮想通貨法の施行で、フィンテック企業への関心が非常に高まり、ブロックチェーンが来たるべき非中央集権化「自律分散・協調」社会のインフラとなる機運も高まりました。
そこでわれわれはフィンテック以外の企業へのブロックチェーン普及・啓発に向けたエンジニア育成を兼ねて、社会貢献と社会課題解決のため、ブロックチェーン技術を活用したシステム開発に取り組むこととしました。
マイナンバーカードなどの公的個人認証との連携を視野に入れ、ブロックチェーンの持つポテンシャル(中間構造を回避する力)を実証し、行政の効率化へ寄与できればと考え、投票所での投票を義務付けない、個人所有のスマートフォン使用の投票を想定した「ネット電子投票システム」を開発しましたので、以下にご紹介いたします。

われわれの取り組みが、この記事をご覧になっている方がブロックチェーンを使ったアプリケーション開発される際のご参考になれば幸いです。

 

ネット電子投票システムの意義とメリット

われわれは、人間が時に犯してしまうミスや不正を、改ざんが困難で秘匿性にすぐれたブロックチェーン技術を活用し、回避できると考えました。投票用紙は投票箱の鍵で守られていますが、ブロックチェーン上の投票はデジタル鍵で秘密に守られます。また、選挙立会人による不正監視はブロックチェーン上の自律分散された承認ピアーが代行し、投票用紙を目視で仕分けする開票作業は、投票が台帳に格納されると同時にリアルタイム自動集計されます。

ブロックチェーンで各ステップを一元管理
さらに、ブロックチェーン技術を活用したネット投票は、社会課題を解決する革新的なイノベーションを実現しますのでいくつかご紹介いたします。

社会課題① (選挙コスト:投票箱が届かず開票作業が大幅に遅れ)

2017年10月の衆議院選挙では、台風の影響で離島からの投票箱が届かず開票作業が大幅に遅れ、翌日の開票となりました。開票の延期は、開票所の確保や、立会人・開票作業員のアサインが困難となり、コスト増となったと推測されます。ネット投票の場合、一連の選挙事務コストを大幅に削減することが可能となります。

社会課題② (投票率低下:20代前半の有権者は投票率が低い)  参考情報:衆議院議員総選挙年代別投票率の推移

投票率低下の要因として、忙しくて投票所へ行けないケースや、手書き文字による無効票、などがありますが、特に20代前半の有権者は投票率が低く最重要課題となっています。若者が日頃使用しているスマートフォンによるネット投票を行うことで、投票率低下に歯止めがかかることを期待できます。

社会課題③ (票われ:サイレント・マジョリティ)

得票数1位の候補者の票が半数に達することなく、同一政策の「票われ」となった場合、有権者の意思が正しく伝わらない状況となります。ネット投票では得票数上位数名による投票を行うことも容易に実現可能となります。

 

取り組みのポイント

本プロジェクトは以下のポイントを意識して取り組みました。

1.ブロックチェーン技術選定理由

数多くの世界的企業が協賛されていること、オープンソースとして広く公開されていること、そしてその高い汎用性、信頼性を考慮してプライベート/コンソーシアム型ブロックチェーンである Hyperledger Fabricを用いたシステム開発を行うことにしました。 パブリック型のブロックチェーンでは、不特定多数のノードやマイナーが必要ですが、選挙委員会によって管理されるプライベート型では特定ノードで迅速かつ効率的な認証が行えます。また、マイニング報酬やトランザクションを記録するためのインセンティブが必要なく、それらを管理する暗号通貨も必要ありません。特にネット投票では自治体をコンソーシアム型で連携し、有権者をブロックチェーンの参加者として取り扱えることが選定のポイントとなりました。

2.OSS / クラウドベースでの開発

Hyperledger Fabricに加えてNode.jsやDockerなどのオープンソースツールを使用し、各自治体への展開をクラウドでスピーディに実施したいと考えました。IBM Cloudサービス Cloud Foundry Service:node.js, Database Service:PostgreSQL, Containers Service:Kubernetes  Cluster  を利用することで、デプロイ、リリースまでの一貫性が得られ、開発のスピードが向上しました。これにより、短期間に複数の自治体への展開が可能になると考えています。

 

アプリケーションご紹介

本プロジェクトでは、有権者用のスマートフォンアプリ(Android、iOS)と選挙管理委員会用のWebブラウザアプリからなるネット電子投票アプリケーションを作成しました。

 

スマホアプリ

有権者はスマートフォンアプリから候補者を一人選んで投票を行います。

候補者画面 指紋認証画面履歴参照画面
(写真: 有権者用スマートフォンアプリ 左から候補者画面、指紋認証画面、履歴参照画面)

各有権者には投票用のアセットが割り当てられ、投票結果をブロックチェーン(Hyperledger Fabric)の各ピア内の台帳に記録します。
記録された投票結果は選挙期間が終わるまで確認や再投票が可能です。また、自分以外の人に投票されないよう、投票時には指紋認証を行っています。

 

ブラウザ部分

Webブラウザアプリでは管理者が開票結果をリアルタイムで確認することができます。

選挙管理委員会用ブラウザ ホーム画面
(写真 : 選挙管理委員会用ブラウザホーム画面)

 

投票が行われると、ブロックがリアルタイムで追加されます。

選挙管理委員会用ブラウザ画面
(写真 :選挙管理委員会用ブラウザ画面 ブロックの中身)

 

開発について

本アプリケーションは2017年7月から約3か月間、2名の開発チームで作成しました。

開発の流れ (図 : 開発の流れ)

 

技術調査

技術調査の段階では、Hyperledger Fabric V1.0-rcがリリースされたばかりで、それまでのV0.6の情報とV1.0の情報が混在しており、非常に困惑致しました。調査の結果、V1.0ではブロックチェーンネットワークの構成要素やコンセンサスなどの面で大きな進展があることが分かり、最新版のV1.0を用いてアプリケーション開発を行うことにしました。

 

Hyperledger Fabric ネットワーク構築  – Node.jsサーバー作成

開発の着手にあたり、開発用の簡易的なブロックチェーン・ネットワークをクラウド上のLinuxサーバー(IBM LinuxONE Community Cloud)に構築しました。Hyperledger Fabricの公式ドキュメントやIBM Cloudで提供されるサンプル・アプリを参考にしながら、一つ一つ挙動を確認することからスタートし、徐々に自由な形のネットワークを組むことができるようになりました。その後、Node.jsアプリケーションサーバーを構築し、Hyperledger Fabric SDKのAPIを用いてサーバー層とブロックチェーン層の通信を行うようにしました。

 

社内リリース~評価改善

第1版完成後、弊社社員にアプリケーションを使用、評価してもらい、「投票時に指紋認証を行う」「定期処理だった開票処理をブロックの更新イベント時に行う」といった機能改善を行いました。また、Hyperledger Composerを使ってアセットの定義や操作を行えるように拡張しました。

 

・IBM Cloud へネットワーク移設

継続的な開発~リリース作業を効率良く行うため、LinuxONE Community CloudからIBM Cloud上のサービスにアプリケーションを移設しました。現在はNode.jsをIBM CloudのCloud Foundry Appsに、 ブロックチェーンネットワークをIBM Cloud Container Service(Kubernetes Cluster) サービスに移設し、システム拡張の柔軟性とトランザクションの増加に対応する、ネットワークのスケーラビリティーとパフォーマンスの向上、障害時の自動修復による可用性の確保を目指しています。

アプリケーション構成図 IBM Cloud 上
(図 : アプリケーション構成図 IBM Cloud上)

・開発の感想

開発当初はHyperledger Fabric V1.0についての情報が少なかったため、ネットワークやHyperledger Fabric SDKの開発の上で分からないことが多くて苦労しましたが、徐々にドキュメントが豊富になり、Rocket.ChatやStackOverflowでの議論も盛んになってきたことで、日に日に開発しやすくなっていると感じています。今回はIBM Cloud Container Service上にHyperledger Fabricを導入・構築しましたが、2018年2月時点ではHyperledger Fabric V1.0に対応した構築済のブロックチェーンサービスであるIBM Blockchain PlatformがPaaSとして提供されているので、さらに迅速かつ容易にブロックチェーンアプリケーションを開発できる環境が整っていると考えております。
また、IBM社のスキルトランスファーを受講し、早期にブロックチェーンに関するご教授や意見交換をいただいたことが、開発のスピードを上げる大きなサポートとなりました。Hyperledger Composer SDK(V0.13.0)ではビジネスネットワークごとに一つのチャネルのみの指定が必要でした。Hyperledger Fabric SDKを用いた開発では、選挙イベントごとに複数チャネルを作成し、同時に複数の選挙が行われても、情報の公開範囲を指定できるように作成していたのですが、Hyperledger Composer SDKではチャネルを動的に作成、変更することが出来ませんでした。 Hyperledger Composerは、常にバージョンアップが繰り返されていますので、その後、改善されているかも知れません。

トランザクションのボリュームテストを行ったところ、gRPCの規定値4MBと定義されていましたが約2MB以上のトランザクションでエラーとなりました。規定値を拡張したところ22MB程度のファイルまでは通信できるようになりました。また、20MBのファイルだとトランザクション完了までに一時間ほどかかっておりましたが、Crypto Libraryの入れ換えを行うことで数分程度までレスポンスを短縮することができました。
アセットを簡単に登録できるHyperledger ComposerとIBM Cloudのサービスを組み合わせて使用することで、すばやく環境構築が可能となり、クラウドサービスの移設も容易に行うことができました。 新たなアイデアやビジネスモデルのフィージビリティを検証しようとする際に、とても有効だと感じました。また、リージョン間の通信費がかからない点はBCP対策を行う上でも魅力的です。現行法を即時適用することなく、安全な実験環境を提供するレギュラトリー・サンドボックス(Regulatory sandbox)の環境として、活用できるようになることを期待しています。

 

所感、今後に向けて

今回の取り組みは、選挙システムのみならず様々なサービスやビジネスに、Hyperledger Fabric V1を用いたブロックチェーン技術を利活用できると実感するものでした。 さらに、Hyperledger Composerを利用することで、よりスピーディに適切なタイミングで提供できることとなります。 ブロックチェーン技術は、われわれエンジニアのモチベーションを大いにアップし、社会的イノベーションへ積極的にチャレンジする勇気となりました。
Hyperledger Fabric V1、Hyperledger Composer の技術的な相談に快く応じていただいたIBM社の皆様へ、心より感謝申し上げます。
当社では、ブロックチェーンを次なる社会を支える中核技術と位置づけ、さらなる躍進に向け、今後とも一丸となって取り組んで参ります。

 

スリーエイ・システムについて

3つのA(Advance:進歩・発展 Ambition:大志 Adventure:冒険)「進歩・発展は、大志と冒険の心にあり」の社名が示す通り、革新的なシステムをいち早く開発しお客様へ提供して参ります。

社名 株式会社 スリーエイ・システム URL:http://www.aaa-system.co.jp/
代表者 代表取締役 河村 正直
所在地 東京支社、福岡支社、大分本社
関連会社 コスミックビジネス株式会社、株式会社アドバンスウェア

執筆
株式会社スリーエイ・システム
坂本 真司 張 勇 山中 康裕

More IBM Cloud Blog stories

エッジにおけるリアルタイム分析の実現をIBM Cloud Satelliteが支援

IBM Cloud Blog, IBM Cloud News, IBM Cloud アップデート情報

この投稿は、2021年2月26日に、米国 IBM Cloud Blog に掲載されたブログ(英語)の抄訳です。 ソリューションを迅速にかつ大規模に配布できる方法とは エッジ・ネットワークで使用されるデバイスの数は、年々指 ...続きを読む


IBM Cloudの大阪リージョンでKubernetesとOpenShiftが利用可能になりました

IBM Cloud Blog, IBM Cloud News, IBM Cloud アップデート情報

この投稿は、2021年2月17日に、米国 IBM Cloud Blog に掲載されたブログ(英語)の抄訳です。 IBM Cloudの大阪MZR(マルチゾーンリージョン)で、IBM Cloud Kubernetes Ser ...続きを読む


Continuous Delivery で IBM Cloud Satellite Clusters にアプリをデプロイする

IBM Cloud Blog, IBM Cloud News, IBM Cloud アップデート情報

この投稿は、2021年2月25日に、米国 IBM Cloud Blog に掲載されたブログ(英語)の抄訳です。 このたびIBM Cloud Continuous Deliveryが、IBM Cloud Satellite ...続きを読む