yungthacreator/zeroseal
GitHub: yungthacreator/zeroseal
ZeroSeal 是一个基于 Stellar 的隐私优先安全声明封存与验证平台,帮助研究员在披露漏洞前建立可验证的链上记录并协调奖励。
Stars: 1 | Forks: 0
# ZeroSeal
**私密证据。公开证明。可验证奖励。**
ZeroSeal 帮助安全研究员在本地封存敏感的漏洞证据,证明声明记录的时间,创建经钱包授权的 Stellar 凭证,并将确认的声明与可验证的研究员奖励连接起来。
ZeroSeal 专为漏洞赏金猎人、审计员、安全项目和协议而构建,适用于在披露敏感漏洞利用详情之前需要可信记录的场景。
**在线产品:** https://zeroseal.vercel.app
**代码仓库:** https://github.com/yungthacreator/zeroseal
## 1. ZeroSeal 解决的问题
研究员可能需要在披露完整的漏洞利用方式之前,确立安全声明的存在。过早分享完整报告可能会在项目方对问题进行分类处理之前暴露复现细节。
安全项目需要足够的公开信息来识别、检查和优先处理声明,而无需在准备好接收之前就迫使敏感的复现细节公开。
ZeroSeal 在这两种需求之间创建了共享的、可验证的记录。确认的凭证表明在特定账本中存在具有特定批准字段的声明。它不是作者身份的法律证明,也不保证优先于另一份报告。
## 2. ZeroSeal 的工作原理
1. 选择预期的报告路径和目标。
2. 准备漏洞的安全公开描述。
3. 将完整报告、概念证明(PoC)、复现步骤和私密文件保存在本地。
4. 从已批准的声明状态生成加密承诺。
5. 审查并批准可能公开的确切字段。
6. 授权 Stellar Testnet 交易并接收确认的公开凭证。
7. 将确认的凭证与直接或拆分的研究员奖励连接起来。
敏感报告不会由 ZeroSeal 提交至报告平台,也不会包含在公开凭证中。
## 3. 在线产品功能
- 基于浏览器的安全声明工作区。
- 针对常见披露流程和直接项目报告的报告路径。
- 原始漏洞证据的本地处理。
- 加密承诺生成。
- 提交前的确切公开字段审查。
- Freighter 钱包授权。
- Stellar Testnet 声明注册表提交。
- 确认公开凭证的创建。
- 通过凭证 ID、声明 ID 或交易哈希验证凭证。
- 带有 Stellar 交易链接的公开声明活动。
- 使用 Testnet XLM 的直接研究员奖励。
- 针对研究员和协作者的原子拆分奖励。
- 使用公开 Stellar 数据的独立奖励验证。
- 可共享的支付证明链接。
## 4. 隐私边界
| 保持私密 | 可能出现在公开记录中的内容 |
| --- | --- |
| 完整漏洞报告 | 研究员钱包 |
| 概念证明 | 批准的公开标题 |
| 复现步骤 | 报告背景 |
| PoC 笔记 | 目标信息 |
| 私密文件 | 严重程度声明 |
| 私密影响数值 | 批准的公开影响声明 |
| Salts | 研究员承诺 |
| Witness 值 | 声明承诺 |
| Secrets | Nullifier |
| 未发布的漏洞利用机制 | Registry 合约 |
| | 交易哈希 |
| | 账本 |
| | 网络 |
| | 公开策略标识符 |
ZeroSeal 发布的是承诺和已批准的元数据,而不是用于生成它们的原始证据。
## 5. 公开凭证与验证
无需连接钱包即可检查已确认的凭证。任何人都可以通过以下方式验证凭证:
- 凭证 ID
- 声明 ID
- 交易哈希
验证界面会显示公开声明、研究员钱包、承诺、账本、Registry 合约以及已确认的 Stellar 交易。验证凭证可确认记录的声明和交易是真实的且未被篡改。这并不确认底层漏洞是有效的。
## 6. 研究员支付
已确认的凭证可以连接到:
- 直接研究员奖励。
- 针对多名贡献者的原子拆分奖励。
- 可共享的支付证明页面。
- 基于公开 Stellar 数据的独立验证。
一些实用细节:
- 支付目前使用 Testnet XLM。
- 授权支付需要使用 Freighter。
- 验证已确认的支付无需连接钱包。
- 支付接收方来自已确认凭证中记录的研究员钱包。
- 支付不会自动证明项目方已批准或漏洞有效。
- 奖励验证是通过公开的 Stellar 数据重构的,尚不是永久的后端奖励持久化。
## 7. 架构
- Next.js 前端,用于声明准备、公开凭证、验证和公开活动。
- NestJS API,用于声明、凭证、续延、对账和验证。
- PostgreSQL 和 Prisma 用于数据持久化。
- Soroban Claim Registry 合约用于 `submit_claim`。
- Soroban verifier 合约用于当前的验证界面。
- Freighter 钱包,用于 Stellar Testnet 授权。
- Stellar Horizon 和 RPC 用于提交、对账和公开交易数据。
- 在本地浏览器中处理原始私密证据。
- 在确认 Stellar Testnet 交易后进行后端交易对账。
- 当前的证明准备和结构化证明处理,目前为部分支持,随着验证工作的继续将会加强。
## 8. 当前 Testnet 合约
以下所有资源均为 Stellar Testnet 资源,未部署至主网。
Claim Registry 合约:
`CD6MKUVXB7ZTZQCGNMBVHMU4PGT2SEKS6Z5LF53HXDOAVCO3LGKGQ3JU`
Verifier 合约:
`CABBWKKUU4PWWU5LSV2BPUMIEZR542V36WONDA2UT6OHXJWZAPXIKA2X`
确认的回归测试凭证:
`zs_9f4c17af-8aae-4c4a-bebf-55c3c2d33f16`
## 9. 本地开发
生产环境 URL:https://zeroseal.vercel.app
安装依赖:
```
npm install
```
启动本地基础设施:
```
docker compose -f docker-compose.dev.yml up -d
```
生成 Prisma client 并应用迁移:
```
npm.cmd --prefix apps/api run prisma:generate
npm.cmd --prefix apps/api exec prisma migrate deploy
```
运行 API:
```
npm.cmd --prefix apps/api run dev
```
运行 Web 应用:
```
npm.cmd --prefix apps/web run dev
```
所需的环境变量包括数据库、Redis、API URL、Stellar Testnet RPC 和合约 ID。请勿提交真实的 secrets 或私钥。
## 10. 路线图
计划项目,尚未上线:
- 可领取的赏金。
- 保密的赏金托管。
- 赏金资金的零知识证明(ZK proof)。
- 保密的稳定币奖励。
- 项目方 API 和 SDK。
- 重复声明协调。
- 更强大的加密验证。
- 安全审查通过后的主网就绪。
## 11. 安全与产品边界
ZeroSeal:
- 不会公开私密证据。
- 不会替代负责任的披露。
- 不会判定漏洞是否有效。
- 不会自动分配严重程度。
- 不会在法律上证明作者身份或所有权。
- 不保证支付赏金。
- 不会自动检测语义重复。
- 目前运行在 Stellar Testnet 上。
- 在主网部署前需要进一步的安全审查。
## 12. 开源与许可
ZeroSeal 是开源软件,基于 MIT 许可发布。详见 [LICENSE](./LICENSE)。
标签:Stellar, 区块链, 密码学, 手动系统调用, 搜索引擎查询, 测试用例, 漏洞披露, 自动化攻击, 证据固化, 请求拦截, 零知识证明