Election-Tech-Initiative / Election-Tech-Initiative/electionguard-python

✨ Range Chaum-Pedersen proofs are needed to efficiently support cumulative voting

未關閉
#760 0 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視
enhancement triage
主要語言
Python
星號
168
分支
103
PR 合併指標
30 天內沒有已合併 PR

描述

### Is there an existing issue for this?

- [X] I have searched the existing issues

### Suggestion

Toward the initial goal of supporting cumulative voting, **range Chaum-Pedersen proofs** (encrypted plaintext is one of 0, 1, ..., or limit) generalize disjunctive Chaum-Pedersen proofs. When range Chaum-Pedersen proofs are used for both selection encryption limits and contest limits (replacing constant Chaum-Pedersen proofs there), they render **placeholder selections unnecessary** and in turn are more efficient (fewer exponentiations required for ballot encryption of all contest types, not just cumulative voting; submitted file size reduction).

### Possible Implementation

Proof components will generalize to lists/arrays and eradicate the hard-coded zero- and one- proof components. Placeholder selections and their infrastructure will be removed.

The nuance between votes allowed for a particular selection and votes allowed across a contest (in sum) will be reflected in the code; meanwhile, this can amend the current conflation between `number_elected` and `votes_allowed`.

### Anything else?

See this [pull request](https://github.com/microsoft/electionguard/pull/293) with the corresponding schema changes.

貢獻指南

開啟貢獻指南

研究方向

首先查看 pull request #293 及其對應的 schema 變更,然後追蹤現有的析取式與常數 Chaum-Pedersen 證明元件。實作應將證明元件泛化為列表或陣列,移除佔位選擇及其基礎設施,並區分每個選擇的限制與整個競賽的投票限制。確認累積投票和其他競賽類型能夠有效率地使用新的範圍證明。

由索引模型根據 Issue 內容生成。

評估

技術堆疊
python
領域
backend-api-design, cryptography
Issue 類型
功能
難度
5/5
預估耗時
一週以上
活躍度
停滯
描述清晰度
基本清楚
新手友好度
25/100

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。