著名ベンチャーキャピタル企業のアンドリーセン・ホロウィッツ(a16z)は、イーサリアム上で匿名投票が可能なSolidityライブラリ「Cicada」をリリースした。Cicadaは、投票者個人の選択が投票期間中に知られるのを防ぐ。a16zのエンジニアであるマイケル・チュウ氏は5月24日のブログ投稿で、セマフォなどのゼロ知識グループメンバーシップシステムと組み合わせることで、投票者の身元を永久に不明瞭にすることもできると述べている。

Cicadaは、一定期間経過した後にのみ解読できる秘密値を暗号化することができるタイムロックパズルという暗号技術に依存しているという。このパズルは1996年から存在しているが、2019年までは、期間が経過した後にユーザーが秘密値を明らかにする必要があった。投票システムでは、これによりユーザーが投票を行ってオフラインになると、すべての投票がカウントされなくなる問題が発生した。

2019年には、暗号学者のジュリオ・マラボルタ氏とアラヴィンド・ティヤガラジャン氏によって、準同型タイムロックパズルという概念が提案された。これにより、個々のパズルを合計して最終的なパズルを作成し、それを解くのが個々のパズルを合計した場合よりも容易になった。最終的なパズルの解は、個々の値を明らかにすることなく、個々の値の合計だけを明らかにする。

a16zの投稿によれば、Cicadaはこれらの準同型パズルを使用し、ユーザーがオフラインになっても投票がカウントされるようになっている。

マラヴォルタ氏とティヤガラジャン氏のシステムをブロックチェーンに移行しようとした際、a16zの研究者たちは、公正な投票システムを作成する際の障害に直面した。各選択肢は、「1」または「0」のブール値としてエンコードする必要があった。これは、攻撃者が投票権を増やすために、投票を誤ってエンコードしようとすることができることを意味した。例えば、「100」という値をエンコードすることによってだ。

この問題を解決するために、Cicadaは、各投票用紙とともに、投票用紙の妥当性を証明するゼロ知識証明を提出することを求めているという。この証明は、投票が正しくエンコードされたことを示すが、投票の内容は明らかにしない。

Cicadaは、投票が行われている間だけ、投票の内容を知られないようにする。投票期間が終了した後や、タイムロック期間が経過した後は、誰でもパズルの解を総当たりで求めることで投票の内容を知ることができる。ただし、a16zは、Cicadaをセマフォ、セマコーク、ゼロ知識状態証明などのゼロ知識グループメンバーシップシステムと組み合わせることで、この問題が解決できると示唆している。この場合、総当たりで求められるのは、投票が適格な投票者によって行われたことだけで、投票者の適格性を証明するために使用された資格情報は明らかにされない。

投票システムは、ブロックチェーンアプリを管理することが多い分散型自律組織(DAO)の構成要素として長い間存在している。しかし、ほとんどの場合、DAOは投票を表すためにトークンを使用しており、個々のユーザーが多くのトークンを保持している場合、影響力が大きくなる。例えば、5月22日には、攻撃者が悪意のある提案に対する追加投票を行ってトルネードキャッシュのカバナンスを乗っ取り、ガバナンス契約の資金をすべて抜き取った。その後、攻撃者はユーザーに制御を返すと申し出た。

ウェーブス創設者のサシャ・イワノフ氏は、このようなガバナンス攻撃を防ぐために、DAOはより民主的な投票システムに移行しなければならないと主張している

翻訳・編集 コインテレグラフジャパン