#author("2020-07-17T21:03:34+09:00","default:editor","editor")
#author("2020-08-28T00:36:46+09:00","default:editor","editor")
* 教員向け/オンライン投票ツールの比較 [#n5a5c038]

** はじめに [#j387de11]

これまで対面で実施していた会議をオンライン化する上で起こる問題の一つに、
「''各種の投票をどのようにオンラインで実現するか?''」というものがあります。

さまざまな会議では議論によって意思決定が行われていますが、
議題によっては参加者の投票によって意思決定を行っていると思います。
会議を電子メールを使ってオンラインで開催 (持ち回り審議) したり、
電話会議システムや Zoom 等の Web 会議システムを使ってライブで
開催したりしていると思います。

ここでは、オンライン投票について簡単に調べてわかったことをまとめています。
あくまでオンライン投票の専門家ではない、
''単なる一教員の簡単な調査である''ことを理解した上で参考にしてください。

** オンライン投票 と e-voting、i-voting [#v2239b0a]

単に電子投票 (electronic voting) といえば、
従来の紙を使った投票ではなく、
''電子的に投票するという手法を意味する''ようです。
英語名が Electronic Voting であることから、
これを略して e-voting と呼ばれています。
必ずしもネットワークを介した投票という意味ではなく、
電子機器を利用した投票という意味です。

電子投票の一部に、オンラインで (通常、
インターネットを介して) 投票するという概念も含まれており、
遠隔電子投票 (remote e-vogin)、
オンライン投票 (online voting)、
インターネット投票 (Internet voting) などと呼ばれているようです。
英語名の Internet Voting を略して i-voting とも呼ばれています。

以下の話では、オンライン投票 (i-voting) に限定します。

** e-voting に求められるセキュリティ特性 [#dbad6a09]

''電子投票システムおよびプロトコルに要求されるセキュリティ特性''として、
以下の分類 [1] が有名なようです。

- Eligibility
~登録された投票者だけが投票でき、
誰も許可された回数 (通常 1 回) を超えて投票できない
- Fairness
~他の投票者の決定に影響を与えかねない''途中結果が開示されない''
- Robustness
~不正を働く、ある一定数の投票者に耐えられるプロトコルである
- Verifiability
-- Individual Verifiability
~各投票者が、''自身の票が正しく集計されたことを確認できる''
-- Universal Verifiability
~公表された結果がすべての票の合計と''一致していることを誰でも確認できる''
- Vote-Privacy
~票が非公開であり続ける。
''投票者と票の対応付けができない''こととしてもモデル化できる。
- Receipt-Freeness
~投票者が (ある特定の候補者に投票したことを第三者に証明できるような) 
''「レシート」を構築できない''。
票の買収を防ぐため。
- Coercion-Resistance
~投票の全過程において投票者が (投票行動の) 強制者とやりとりしたとしても、
強制者が投票者 (被強制者) が指示に従ったか、
または実際に他の候補者に投票したかわからない。

>[1] J. Dreier, P. Lafourcade, Y. Lakhnech, ``A formal taxonomy of privacy in
voting protocols, '' in Proceedings of IEEE International Conference on
Communications (ICC 2012), pp. 6710-6715, 2012.

オンライン投票について考える前に、まず、オフラインでの (従来の紙を使った) 投票
の特性を確認しておきます。

- △ Eligibility 登録された投票者だけが投票できる
~→白紙の投票用紙の厳密な管理は困難、投票用紙の複製に対して脆弱
- ○ Fairness 途中結果が開示されない
- △ Robustness 不正な投票者に耐えられる
~→投票表紙の回収を厳密にしないと一部の記入済み投票用紙を破棄できてしまう
- Verifiability
-- × Individual Verifiability 自身の票が正しく集計されたことを確認できる
~→ 一部の記入済み投票用紙が途中で廃棄されても気づきづらい
-- × Universal Verifiability 公表結果が票の合計と一致していることを確認できる
~→ 投票用紙を目前に並べれば確認できないことはないが、事実上、投票管理者しか確認できない
- ○ Vote-Privacy 投票者と票の対応付けができない
~→ ただし、筆跡である程度の推測はできる
- △ Receipt-Freeness 投票者が「レシート」を構築できない
~→ 記入した投票用紙の写真を取っておけばいい
- ○ Coercion-Resistance 投票者 (被強制者) が強制者に従ったかわからない

''○が 3 個、△が 3 個、X が 2 個''です。
大した意味はありませんが、
○、△、×をそれぞれ 2 点、
1 点、0 点として''合計を計算すると 9 点''です。
これを一つの基準として考えてゆきます。

** 関西学院の構成員が利用できるオンライン投票のツール [#zeabbb0d]

関西学院の構成員が利用できそうなオンライン投票のツールを
リストアップしてみました。
セキュリティを考慮して、
良さそうなものからそうでないものへと並べています。

オンライン投票では、
(1) ''有権者による投票 (投票)''、
(2) 投票を締め切った後に、
''投票結果の集計 (開票)''、
(3) ''集計結果を何らかの方法で開示 (公表)'' の 3 つのステップに分かれます。
以下では、それぞれの方法ごとに、
投票・開票・公表のどの部分を実施できそうかを書いています。

- セキュリティ (高)
-- Zoom の「投票機能」による投票・開票・公表
-- Microsoft Forms のフォームによる投票・開票
- セキュリティ (中)
-- 独自に開発した Web ベースの投票システムを使った投票・開票・(公表)
-- Microsoft Forms のフォームによる投票・開票
-- Google Forms のフォームによる投票・開票
- セキュリティ (低)
-- 電子メールによる投票・公表
-- Zoom のプライベートチャットによる投票
-- Microsoft Teams のチャットによる投票
-- Excel オンラインへの同時書き込みによる投票・開票・公表
-- Slack のようなコミュニケーションツールによる投票・公表

以下では、''Zoom、Microsoft Forms によるオンライン投票''の
実施方法 (の概要) とそれぞれの特性を考えてみます。

上記の「セキュリティ (低) 」に分類された方法も、
カジュアルな用途 (例えば講義中に受講者からのフィードバックを得る) であれば
問題なく (用途によっては非常に便利に) 使えるものもあります。
他にも、以下のような、
ユーザ登録不要で、簡単に Web 上のアンケートを作れるサービスもあります。

- [[外部リンク: www.poll-maker.com>https://www.poll-maker.com/]]
- [[外部リンク: fast-poll.com>https://fast-poll.com/]]

なお、現在はいろいろなツールやクラウド等を使えば新しいサービスを簡単に立ち
上げられますので、調べば他にもいろいろな方法があると思います。
例えば Slack の投票用のプラグイン (?) 等もあるようです。
また、少しプログラムを書けば簡単に独自のツールも作ることができます。

- [[外部リンク: The Best 10 Free and Open Source Voting Software Solutions>https://www.goodfirms.co/blog/best-free-open-source-voting-software-solutions]]
- [[外部リンク: Open source poll for slack>https://openpoll.slack.alcor.space/]]

ここでは、''関西学院の一般の構成員の方々が利用するのに適していそう''
という観点で Zoom、Microsoft Forms を取り上げます。

** Zoom の「投票機能」による投票・集計・開票 [#cd9135aa]

少し前に、デスクトップ版の Zoom に''投票 (polling) の機能''が追加されました。
Zoom の投票機能の使い方は、
以下のドキュメントを読めばわかります。
全般的に、Zoom のユーザインターフェースはうまくできていますので、
以下のドキュメントを読むだけで一通り使えるようになると思います。

- [[外部リンク: Polling for meetings>https://support.zoom.us/hc/en-us/articles/213756303-Polling-for-Meetings]]

いくつか注意が必要な点を書いておきます。

- 投票機能を使える条件
-- ''Licensed アカウント'' でミーティングを''ホストしている'' (共同ホストや代理ホストでは実施できない)
-- ミーティング設定で投票を有効にする必要がある (関西学院では''初期設定で有効''にしてあります)
-- ホストの Zoom クライアントは最近の''デスクトップ版'' (Windows、macOS、Linux)
-- ''スケジュールされたミーティング''か、''パーソナルミーティング ID (PMI) を使用している'' (PMI でないインスタントミーティングは不可)
- 投票機能の制限
-- 設問は''選択肢のみ'' (単一選択か複数選択、''数字や文字での回答は不可'')
-- 設問数の上限は 25、各設問の選択肢の上限は 10

Zoom の投票機能を使う場合、
(1) ホストが質問を作成する (ミーティング開始前も開始後でも可)、
(2) ホストが投票を (手動で) 開始する、
(3) 参加者が投票する、
(4) ホストが投票を (手動で) 締め切る、
(5) (必要であれば) ホストが開票結果を参加者に開示する、
(6) (必要であれば) ミーティング終了後にホストが開票結果をダウンロードする、
という流れになります。

Zoom の投票機能を使ったオンライン投票の''利点・欠点''は以下の通りです。
重要なものから、それほど重要ではないものの順に並べてあります。

- 利点
-- (質問作成時に「匿名」を選択すれば) ''匿名で投票できる'' (''Vote-Privacy が守られる'')。投票を実施している''ホストでさえ個々の投票内容を見ることができない''。「匿名」の投票の場合、投票結果にはユーザ名やメールアドレスは記録されない。
-- 開票結果を Zoom の参加者 (投票者) らに''その場で開示することができる''。
-- Zoom クライアント内ですべて完結するのでわかりやすい。余計なトラブルが起こりづらい。
- 欠点
-- リアルタイムに投票するため、''オフラインの人は投票できない''。投票する人が、全員 Zoom でオンラインになっている必要がある。
-- 「匿名」で投票する場合は、''本人確認を別途他の方法で'' (例えば Zoom のミーティング中に本人であるかどうかを映像/音声で確認する等を) 行う必要がある。
-- 「匿名」で投票する場合は、Zoom の参加者であれば誰でも投票できてしまう (Eligibility の問題)。上とも関連するが、'''有権者以外の人は投票中に退出してもらう等の工夫''が必要。
-- 開票結果を Zoom の参加者 (投票者) らにその場で開示することができるが、開票結果には''得票率しか表示されない'' (ホスト側にのみ投票数が表示される)。ホストの画面を共有すれば見せられそうだが、ホストに悪意があれば簡単に細工できる。
-- ''質問は選択肢のみ''なので、投票内容 (例: 複数提案に対する順序付け投票等) によっては設問に工夫が必要。
-- ホストには投票中の状況がリアルタイムに表示される (Fairness の問題)。ホストが投票権を持っている場合は、一番最初に投票する等の工夫が必要。

Zoom の投票機能で「匿名」の投票をした時の特性を、
文献 [1] の分類に従ってチェックしてみます。

- △ Eligibility 登録された投票者だけが投票できる
~→参加者の本人確認が別途必要。複数の Zoom クライアントから参加していないことの確認も必要。
- ○ Fairness 途中結果が開示されない
~→ただしホストだけには途中結果が見えてしまう
- ○ Robustness 不正な投票者に耐えられる
~→一般の投票者が不正を働くのは技術的に難しい (ただし管理者は別)
- Verifiability
-- △ Individual Verifiability 自身の票が正しく集計されたことを確認できる
~→確認はできないが不正に票を操作すること自体が簡単ではない
-- △ Universal Verifiability 公表結果が票の合計と一致していることを確認できる
~→ホストの集計結果を見せられる。確認はできないが票数を操作すること自体が簡単ではない。
- ○ Vote-Privacy 投票者と票の対応付けができない
~→オンライン投票には珍しくこれが実現できる。当然、Zoom ビデオコミュニケーションズ社は知ろうと思えば知れるが。
- ○ Receipt-Freeness 投票者が「レシート」を構築できない
- ○ Coercion-Resistance 投票者 (被強制者) が強制者に従ったかわからない

''○が 5 個、△が 3 個、X が 0 個''です。
○、△、×をそれぞれ 2 点、
1 点、0 点として単純に''合計を計算すると 13 点''です。

** Microsoft Forms [#v6541206]

Microsoft Forms はもともと投票のためのものではなく、
オンラインでアンートやクイズを実施するためのサービスですが、
オンライン投票に利用することもできます。

Zoom と Microsoft Forms の違いを明確にするために、
Zoom の投票機能の説明と同じような順番で説明してゆきます。

- 投票機能を使える条件
-- Microsoft 365 の ID 保有者で、Microsoft Forms のライセンスが付与されている人
- 投票機能の制限
-- 設問は選択肢、数字、テキスト、ファイルのアップロードなど、さまざまな形態が可能
-- 設問数の上限は無制限? 各設問の選択肢の数も無制限?

Microsoft Forms を使って投票を実施する場合、
(1) 実施者が Microsoft Forms の投票フォームを作成する (必要に応じて回答可能期日を設定する)、
(2) 実施者が投票フォームの URL を有権者に通知する (Microsoft Forms からのメール送信も可)、
(3) 投票者が自身の Microsoft 365 アカウントでログインの上、Web ブラウザから投票する、
(4) 投票フォームに設定した期限で自動的に締め切られる (手動で締め切ることも可能)、
(5) 実施者が開票結果を参加者に通知する (電子メール等、別の手段が必要)、
という流れになります。

Microsoft Forms を使ったオンライン投票の''利点・欠点''は以下の通りです。
重要なものから、それほど重要ではないものの順に並べてあります。

- 利点
-- 投票者の''本人確認に関西学院システム利用者 ID の認証が利用できる''。
-- 投票フォームの設定で「名前を記録」を OFF にすれば ''匿名で投票できる'' (''Vote-Privacy が守られる'')。''投票実施者でさえ個々の投票内容を見ることができない''。
-- 投票者を関西学院システム利用者 ID 保持者に制限できる。
-- 開票結果は''円グラフでビジュアルに表示される''。Web ページを PDF ファイルに書き出せば簡単に開票結果のレポートが作れる。
-- 一定の投票期間を設けられるので、投票者が''自由なタイミングで投票できる''。
-- 投票期間を実施者が自由に設定できる。期限が来れば''自動的に投票が締め切られる''。
-- 投票者は Web ブラウザであれば何からでも投票できる (スマートフォンも可)。
- 欠点
-- 匿名で実施すると複数回の投票が可能になるので、''記名の投票にせざるを得ない''。実施者は''回答者の ID および回答結果をすべて見ることができてしまう'' (Vote-Privacy の問題)。
-- 開票結果には投票実施者しかアクセスできない。投票実施者に悪意があれば''自由に投票結果を改竄できてしまう''。
-- 関西学院システム利用者 ID を持っていないと別途本人確認が必要 (個人の Microsoft アカウントが本物かどうか別途確認しないといけない)。
-- 関西学院システム利用者 ID を持っていない人が一人でもいれば匿名の投票ができない。記名の投票であれば可能だが、関西学院システム利用者 ID を持っていない人は別途本人確認が必要 (個人の Microsoft アカウントが本物かどうか別途確認しないといけない)。
-- 開票結果は投票者に''別途 (Microsoft Forms 以外の手段を用いて)'' 公表しなければならない。投票者だけに結果の開示を制限したい場合にはかなり手間がかかる (回答者のメールアドレスを手作業で抽出して、それらのアドレスに送付する等が必要)。

Microsoft Forms を用いたオンライン投票の特性を、
文献 [1] の分類に従ってチェックしてみます。
- ○ Eligibility 登録された投票者だけが投票できる
~→ただし有権者が関西学院システム利用者 ID 保持者の場合に限る
- ○ Fairness 途中結果が開示されない
~→投票実施者にだけには途中結果が見えてしまう
- ○ Robustness 不正な投票者に耐えられる
~→一般の投票者が不正を働くのは技術的に難しい (ただし実施者は別)
- Verifiability
-- × Individual Verifiability 自身の票が正しく集計されたことを確認できる
~→投票結果を見られるのは実施者だけなので確認できない
-- × Universal Verifiability 公表結果が票の合計と一致していることを確認できる
~→投票結果を見られるのは実施者だけなので確認できない
- △ Vote-Privacy 投票者と票の対応付けができない
~→投票実施者にはすべて見えてしまう。
- ○ Vote-Privacy 投票者と票の対応付けができない
~→オンライン投票には珍しくこれが実現できる。当然、Microsoft 社は知ろうと思えば知れるが。
- ○ Receipt-Freeness 投票者が「レシート」を構築できない
- ○ Coercion-Resistance 投票者 (被強制者) が強制者に従ったかわからない

''○が 5 個、△が 1 個、X が 2 個''です。
''○が 6 個、△が 0 個、X が 2 個''です。
○、△、×をそれぞれ 2 点、
1 点、0 点として単純に''合計を計算すると 11 点''です。
1 点、0 点として単純に''合計を計算すると 12 点''です。

** コメント [#p184b0b2]

#comment

アクセス数: 現在: &online;, 今日: &counter(today);, 合計: &counter(total);