Kaswin 是浏览器原生的 Kaspa Toccata covenant 抽奖系统。V0.10.0 将单一 Round UTXO 改为固定 1024 Slot、16 个 Factory 和可并行 Sale Shard 的分片协议,并提供本地索引、可验证外部 Indexer、无私钥 Settlement Worker、.kaswin 档案恢复与 reorg 回滚。
当前仓库版本是 Kaswin 0.10.0-rc.1,适用合约版本仅为:
| 项目 | 当前值 |
|---|---|
| 协议 | raffle-sharded-v1 |
| 网络 | Kaspa Testnet 12 only |
| 合约角色 | Genesis、Factory、Sale、Sealed、Merge、Draw、Refund |
| 发布状态 | 预发布候选;本地 VM 已验证,链上部署仍关闭 |
| 主网 | 禁止使用 V0.10 合约 artifact |
rc.1不是稳定版或审计结论。七个候选 artifact 已通过可复现编译和 28 条 SilverScript VM 路径,但当前公开 TN12 wRPC 节点未同步且本地验收钱包无测试币,因此尚未完成真实 TN12 创建、购买、封盘、归并、开奖/退款闭环。真实 mass、carrier、relay、真机移动端和独立安全审计也仍是发布门禁。
Release 中的 protocol-sharded-manifest.json 是规范身份清单;以下是当前 artifact template hash:
| 角色 | Artifact template hash |
|---|---|
| Genesis | 04108ac2cf14f51ecfba01581c6416f3c130d680d6f5fa3da9af479522da6784 |
| Factory | 424e7fc2cf8ea510c7a594149988ba813416b7f335e72e6990f67f51deda3300 |
| Sale | 3c0f855f215cf19edc046eb847af3cf5b4f1a38768e355295f64e19e51258fc1 |
| Sealed | 4491018d6c1e1fc5da1610cc9d0404ed2b7f53f2199e73c308fbbb85d3b9cc86 |
| Merge | bd337da9e9e23efbacf7442fd42f2c9087e2e9fec7ed3f28b875e3b525dc3682 |
| Draw | 4d5984a24fa5c55dbd4252d38e5da3a9604e304ec9c769629818ca7a32355e82 |
| Refund | b383eb4ee862938f29c77f311ddafb9ff05916ab3c1d5ebbebb4b659bf209830 |
这些是 template identity,不是“已部署地址”。任何源码、状态布局、ABI、domain tag 或编译器补丁变化都会改变身份并使旧证据失效。
- 固定完整覆盖:开奖/退款前必须把全部
[0,1024)Slot 合并成唯一 Coverage Root;缺失、重复或伪造空区间都会失败。 - 分片售票:16 个 Factory 各管理 64 个 Slot,只允许局部连续激活;Sale Shard 独立推进购买 root 和 event chain。
- 两种结局:达到最低票数后进入 Draw;低于最低票数进入 Refund。Refund 网络费只从当前退款批次的购票本金中按上限扣除。
- 无偏开奖:冻结 selected-chain 随机锚点后使用连续 rejection sampling;重试不能换锚点、root、票数或输出。
- 可恢复数据:IndexedDB、
.kaswin档案和可验证 Indexer 都只提供数据,浏览器必须重算 commitment。 - 无私钥自动结算:Worker 只能执行确定性交易意图,不能改中奖者、添加输出或超过费用上限;浏览器可接管中断任务。
内存模拟完成 1,000,000 个购买批次只证明算法与数据结构能力,不代表 Kaspa 链上 TPS,也不证明真实 carrier 或 mass 足够。
默认入口是 V0.10:
http://127.0.0.1:4192/
旧版单 Round 页面保留在:
http://127.0.0.1:4192/?legacy=1
Legacy 页面对应 raffle-vnext-liveness-guard-b1000(RaffleRoundVNext / RaffleRefundVNext),旧 Round/Refund script SHA-256 分别为:
215aaae53f9a3d71fef0cf6deb8783582a36c212cd3bb9a67bedb7a850206f3dbd1a8f4c0be89a909a8565e06ab4379f85b8ad72e1a7620b2280404022c137e2
V0.10 artifact 绝不能花费旧协议 UTXO。操作历史轮次时优先下载该轮次明确匹配的历史 Release;完整映射见 合约兼容性。
要求 Node.js 20+,仓库同时保留 package-lock.json 供旧版验证,V0.10 workspace 使用 pnpm-lock.yaml:
pnpm install --frozen-lockfile
pnpm run compile:sharded
pnpm run verify:sharded
pnpm run verify:sharded:vm
pnpm run build
pnpm run dev -- --port 4192完整旧版兼容回归使用:
pnpm run verify
npm run validation:local构建产物 dist/index.html 是包含 Kaspa WASM 和 Worker 的单文件页面。V0.10 证据包由以下命令生成:
pnpm run validation:sharded
pnpm run verify:validation:sharded关键目录:
packages/protocol-core/:唯一 canonical encoding、hash、coverage、archive、provider 和 settlement intent 实现。packages/covenant-artifacts/:七个 SilverScript 源码与可复现 artifact。packages/browser-runtime/:wRPC 能力探测、IndexedDB、reorg、档案和浏览器结算。packages/indexer-server/:无资金私钥的版本化可验证 API。packages/settlement-worker/:permissionless 确定性任务执行器。validation/sharded-v1/:机器可读本地证据与外部门禁记录。
本地测试钱包只能位于 Git 忽略的 wallets/ 或本机环境变量中。生产源码、Git 上传候选和 dist/index.html 会进行密钥扫描。
已完成:
- canonical/golden/negative fixtures、费用与 Provider 约束;
- 1024 Slot 模拟、archive/tamper、完整 reorg replay;
- 七个 artifact 可复现编译和 28/28 VM 路径;
- Local/Remote/Hybrid Provider 一致性与恶意 Indexer 拒绝;
- Worker 输出约束、竞争、断线后按 intent hash 恢复;
- Chrome 桌面与 390×844 移动视口、Web Worker 主线程响应检查;
- 单文件构建、无外部资源和密钥扫描。
尚未完成:
- 最终 artifact 的 TN12 链上生命周期;
- 真实节点 mass、compute、fee、carrier 和 relay 数据;
- 真实手机前后台/恢复测试;
- 独立安全审计;
- Mainnet 资格(V0.10 当前明确禁止)。
本 Release 仅供开发和评审。不要把 rc.1 用于主网资金,不要把 TN10/旧协议钱包授权解释为 TN12/V0.10 授权。使用前请核对协议、网络、七个 artifact identity、HTML SHA-256 和证据清单。发现可利用问题时请先私下协调修复。