5 个不稳定版本
0.4.0 | 2020 年 2 月 23 日 |
---|---|
0.3.1 | 2020 年 2 月 20 日 |
0.3.0 | 2020 年 2 月 20 日 |
0.2.1 | 2020 年 2 月 19 日 |
0.2.0 | 2020 年 2 月 19 日 |
在 密码学 中排名 #1893
73KB
1.5K SLoC
加密投票球
加密投票球是一个旨在现实世界选举的加密安全、去中心化端到端可验证投票系统。它是一个提供投票存储、加密操作和 API 的“后端”服务。它不提供用户界面 - 尽管它被构建为使其与它交互的 UI 创建变得容易。
它使用 Shamir 秘密共享进行选举解密密钥,盲签名进行选民匿名,以及可选的区块链后端用于分布式事务存储和验证。它支持所有计票方法,包括写入选民。
目标
- 可验证 - 整个投票过程应该是端到端可验证的。
- 易用性 - 易于使用。
- 快速 - 每秒 1,000 张选票
- 可扩展性 - 百万选民。
- 安全性 - 坚如磐石的安全保证,拜占庭容错。
当前状态
处于积极开发中。尚未准备好投入生产使用!
路线图
状态¹ | 特性 | 备注 |
---|---|---|
✓ | 从 Go 迁移到 Rust | 🦀 |
✓ | 盲签名(RSA) | 使用 RSA-FDH |
盲签名(ed25519 / schnorr) | 将替换当前的 RSA 盲签名 | |
✓ | Shamir 秘密共享 | 使用 Sharks |
⚠ | 区块链后端 | 使用 Hyperledger Sawtooth |
⚠ | 支持所有计票方法 | 使用 Tallystick |
REST 前端 | ||
分布式密钥生成 | 替换 Shamir,使用 ElGamal,完全可验证和分布式 | |
洋葱混合网络(可能是 Sphinx) | 加强选民匿名 - 依赖于 REST 前端 | |
重新加密混合网络 | 提供威逼利诱抵抗力 | |
⚠ | 终端用户设备验证 | 使用 Benaoh Challenge |
- ✓ 表示已完成,⚠ 表示正在进行中,空白表示尚未开始但计划支持。
组件
核心库
- 将
cryptoballot = "0.3.1"
添加到您的 rust 项目的Cargo.toml
文件中。
命令行工具
Sawtooth 事务处理器
依赖项
约 10MB
约 196K SLoC