Skip to content

3/5 多数共识开奖与 Keeper 自动化运维

3/5 多数共识

DeSix 的去中心化开奖架构由 DeSixDrawManager.sol 与链下 Oracle Keeper 共同驱动。经过 Sprint 19 生产级安全加固,系统已进化为“定时自循环、多数共识存证、异步游标清算与防合谋观察观察锁”的高容错主网级架构。


1. 预言机 3/5 共识机制

DeSix 目前在链上配置了由 5 个独立验证人运营的预言机集合(Trusted Oracles):

  • 质押准入(测试网优化):主网上,每个预言机注册时必须强校验在 Core 中的 LP 质押仓位最低达到 5,000 USDC在测试网(Base Sepolia)上,为了便于极速运维与节点联调,已将此 LP 最低限制彻底放行,节点可以直接调用注册!
  • 多数裁决:一期投注截止后,预言机节点各自获取真实结果并提交。一旦有 3 个(即 5 个节点中的过半数) 提交了相同号码,即达成多数共识。
  • 算力扣减惩罚:仅 DrawManager 可调用的 slashOracleLPShares 会在扣罚违规节点 LP 份额的同时,成比例调减该节点在 Core 中的 hashrate 算力,防范“幻影算力”套利。

2. 自动化 Oracle Keeper 后台服务 (自动化核心)

为了实现彻底 of 去中心化自循环与无人值守,DeSix 配套了常驻后台的 Oracle Keeper 守护进程:

  • 21:34 自动共识开奖:每天北京时间 21:34,Keeper 自动通过 node-cron 调度触发,抓取多路开奖数据源(澳门六合彩等官网),进行 2/3 数据共识聚合。若通过,则自动调用 startDraw(issueId) 在链上启动 Drawing(开奖准备),同时将共识结果缓存在服务器中。
  • 免重复抓取的手动签名存证:Keeper 在服务器的 3001 端口开启了 /api/latest-result 缓存 API。当各节点操作员需要手动签名提交 3/5 存证时,管理前端会自动从 3001 端口拉取已达成的共识结果,操作员只需一键签名即可,无需重复去开奖网复制号码。
  • 00:00 自动开启新期:每天北京时间 00:00,Keeper 定时触发,向链上发送交易自动调用 core.openIssue(nextIssueId, closeTime) 开启新一期的下注通道,实现无人值守自循环。

3. 异步解耦与游标批量清算 (防 OOG 死锁)

为彻底防范大额投注在极端订单堆积时发生 OOG (Out-of-Gas) 死锁,开奖确认与订单清算实现了异步解耦

  1. 第一步:预言机提交开奖号:多数共识达成后仅在链上标记 winningNumber,此时不进行订单清算。
  2. 第二步:游标推进批量结算:由自动化脚本或管理员分批次调用 core.settleIssueBatch(issueId, limit),每次处理最多 50 笔订单。通过游标逐步推进,直到所有订单清算完成,安全又节省 Gas。

4. 双轨公示期与防合谋打假时间锁

为了确保提交号码的真实性,达成 3/5 多数共识的中奖号码并不能被立刻派奖,系统设置了严格的安全观察公示期以防范节点合谋或私钥泄露:

  • 免等待结算通道 (5个节点全票一致):若 5 个预言机节点提交的开奖号 100% 完全相同,且在这一瞬间没有玩家发起争议挑战,说明毫无分歧争议,可以无延迟立即触发 finalizeDraw 确认开奖并批量结算
  • 22:00 强锁公示通道 (3/5 多数存在分歧):若 5 个节点提交的结果存在任何不一致(例如仅达成 3/5 共识,另外 2 个节点提交不同或未交),说明节点内部存在意见分歧,3/5 多数极有可能存在合谋作恶风险。为了给下注玩家留出充足的时间去验证开奖号真伪、并发起 Dispute 争议打假,该期将被强行锁定,必须等到当天北京时间 22:00 之后,才允许触发确认开奖与清算派奖。如果在这期间有人发起了 Dispute,则清算彻底冻结,进入争议清算阶段。

5. 动态争议挑战金 (getEffectiveDisputeStake)

在公示挑战期内,任何玩家若发现链上共识号码与官网不符,均可发起 Dispute(争议挑战)。为了防止攻击者以极低代价恶意卡死大额奖池,DeSix 实现了动态争议挑战金机制

$$\text{DisputeStake} = \max(\text{minDisputeStake}, \text{当期总投注额} \times 0.5%)$$

  • 低额奖池:挑战金保持在默认最低值(测试网 10 USDC / 主网 100 USDC),保障普通用户发起维权的门槛。
  • 大额奖池:挑战金随投注池规模成比例上浮(最高不设限)。攻击者若想干扰大额清算,必须付出极高的资金抵押成本,一旦败诉,这笔抵押将被罚没。

6. 防 Gas Griefing 恶意空耗保护

为防止攻击者利用微额交易空耗 Paymaster 代付的 Gas,合约在链上构建了严格的安全防线:

  • 起存/起投限额:限制最低 LP 起存金额为 10 USDC / 最低起投金额为 1 USDC / 最低选号分配为 0.2 USDC
  • 频控拦截:单个地址在每一期内,最大投注次数和充值次数均限制为 3 次,防止高频脚本恶意刷单。
  • 提现固定费用:提取流动性时,强行扣除 0.2 USDC 固定费用转给国库,用于补偿 Paymaster 支付的 Gas 消耗。

基于 Base Sepolia 运行。适配 Coinbase 智能钱包与账户抽象(AA)。
邮箱: desix@225458.xyz / zwf@225458.xyz | Telegram: @Oracle_zwf | WhatsApp: Oracle_z