VeriRandom公平抽取
首页/关于

关于 VeriRandom

一个面向课堂、团队、活动与重要利益分配场景的公平抽取应用。 在抽取能力之上,它把「结果能否被复核」当作第一等需求。

产品定位

抽取本身并不难,难的是结果被质疑时,能拿出别人可以独立核对的东西。

  • 用于课堂点名、团队分工、活动抽奖与需要留痕的利益分配
  • 更注重结果的可验证性与密码学可靠性,而不是把「随机」当成一句说明
  • 默认离线可用;没有账户、云同步或远程控制依赖
  • 配置、名单、历史与证明都留在本机,随时可以导出与迁移

与 SecRandom 的关系

VeriRandom 是 SecRandom 的一个开源分支,不应视作 SecRandom 本身。 两个项目各自独立发布,问题与反馈请发到对应仓库。

沿用上游

点名、抽奖、名单管理、历史记录、通知与插件机制都来自 SecRandom。证明文件的上游兼容链也刻意保持可被上游识别。

本分支补充

双链证明、外部信标熵、证明重放、可信度评分、裸随机数页、课件标记、配置签名与更保守的隐私默认值。

命名边界

产品标识是 VeriRandom 自己的;代码内部标识仍保持 SecRandom,因为它们是上游契约,而不是产品身份。

产品标识 · VeriRandom

  • 可执行文件与启动器名称
  • 安装目录与用户数据目录
  • verirandom:// 协议
  • 单实例与 IPC 名称前缀
  • 打包标记与更新清单文件名
  • U 盘安全标记文件名

内部标识 · SecRandom

  • 命名空间、项目与文件夹名称
  • 资源 URI 前缀
  • 证明文件格式与域分隔符
  • SecRandom4Ci 等外部契约

这条边界让两个产品可以同机共存,同时不破坏与上游共享的格式和接口。

技术演进

版本技术栈阶段
v1Python + PyQt5 + qfluentwidgets初代桌面实现
v2Python + PySide6 + qfluentwidgetsQt 技术栈演进
v3C# + Avalonia + FluentAvalonia桌面重构,持续扩展抽取、验证与桌面集成能力

许可证

  • 本项目以 GNU GPLv3 发布:可以修改与再发布,但衍生作品也必须遵循 GPLv3
  • 上游 SecRandom 的代码同样保持 GPLv3,本分支不会改变它的许可
  • 贡献者许可协议只约束签署过它的贡献者,不能追溯改变已有贡献的许可;变更出向许可需要提前公告
  • 第三方组件、版权与分发审查信息见 THIRD-PARTY-NOTICES.md

免责声明

本项目通过历史平衡的权重与候选过滤策略,帮助降低重复抽取、改善长期分布。它不替代对现实名单、规则或组织流程的管理,也不对这些现实条件作出软件无法验证的保证。

证明与验证能力都有明确边界,详细说明见验证边界与仓库中的威胁模型。

致谢与社区

感谢每一位为 VeriRandom 与 SecRandom 提交代码、报告问题、完善文档和提供反馈的贡献者。

想读代码,或者参与进来?

工程约定、威胁模型与贡献指南都在仓库里;示例插件是最小的扩展示例。