09:41 1U DUOBAO VRF
开奖验证 DRAW PROOF · R0000000050
VERIFIED · 已通过

本期开奖
可以自己复核

链上 VRF 先给出随机数,系统只按公开公式计算中奖票位。你不需要相信平台口头说明,按下面两步就能核对。

票号 1 中奖 中奖用户 63***95 · ETH_SEPOLIA
#1

建议放在产品里的入口

用户最需要验证的时候,是刚看到开奖结果、回看记录、或从公告进入时。

ENTRY
1

开奖结果卡片

在“已开奖”状态下显示“已验证通过”,旁边放“查看验证”入口。

2

我的夺宝记录

中奖和未中奖记录都保留“链上验证”,避免用户只看到一个交易 hash。

3

往期夺宝

每期详情页展示中奖号、中奖用户脱敏信息、公式复算结果和回调交易。

4

Telegram 开奖通知

通知里给“查看开奖结果”和“验证开奖”两个按钮,深链直接打开本页。

普通用户两步验证

先复算公式,再去区块浏览器核对事件。看不懂高级字段也能完成判断。

2 STEPS
1

复算中奖票位

用 randomWord % drawTotal + 1,结果必须等于 winningIndex。

本期计算结果:179999...3712 % 2 + 1 = 1,等于页面展示的 winningIndex。
2

核对链上事件

打开 callbackTxHash,在 Logs / Events 中找平台合约发出的 DrawFulfilled。

链上事件里的 randomWord、drawTotal、winningIndex、ticketRoot 必须和本页一致。

公式复算器

这里展示的是用户最应该先看的结论:公式是否对得上。

FORMULA
固定公式
winningIndex = randomWord % drawTotal + 1
链上随机数
17999997048720063722270361090111487670772476558991574117895705097917631453712
总票位
drawTotal = 2
代入计算
正在计算...
等待复算 结果一致,说明中奖票位不是后台手填。
OK

复制这 4 个公开值

发给别人也能独立复核,不需要登录平台。

PUBLIC
1. randomWord · 链上随机数
17999997048720063722270361090111487670772476558991574117895705097917631453712

VRF 回调给出的随机数,平台不能提前知道。

2. drawTotal · 有效票位数
2

售罄时锁定的总票位,中奖位置只会落在 1 到 drawTotal。

3. winningIndex · 中奖票位
1

公式算出的第几个票位中奖,之后再映射到真实票号。

4. callbackTxHash · 回调交易
0x59767564c0fa3201197900bc64101fab4fdb572c0a052f6ca74456d76e4186ed

在区块浏览器里用它找到 DrawFulfilled 事件。

打开区块浏览器核对

重点看 callbackTxHash,不要停在 requestTxHash。

EXPLORER
本期回调交易地址
https://sepolia.etherscan.io/tx/0x59767564c0fa3201197900bc64101fab4fdb572c0a052f6ca74456d76e4186ed#eventlog
打开交易
1
进入 Logs / Events,找到事件名 DrawFulfilled
2
确认事件发出地址等于官方 DrawCoordinator 合约。
3
核对 randomWord、winningIndex、drawTotal、ticketRoot 和本页一致。

别看错事件

同一笔回调交易里可能同时出现 Chainlink 事件和平台开奖事件。

EVENT
不要停在这里

RandomWordsFulfilled

这是 Chainlink VRF Coordinator 的事件,说明随机数服务完成回调和扣费,但它不是最终开奖证明。

要看这个事件

DrawFulfilled

这是平台 DrawCoordinator 发出的开奖完成事件,里面才有 randomWord、winningIndex、drawTotal、ticketRoot。

简单判断:如果你看到 outputSeed、payment、nativePayment、success,多半还在 Chainlink 事件;继续往下找 DrawFulfilled。
1

售罄锁定票号

系统生成 ticketRoot,对应售罄时的票号快照。

2

请求链上 VRF

开奖合约发起 requestTxHash,等待随机数回调。

3

回调产生 randomWord

callbackTxHash 中记录平台合约发出的 DrawFulfilled。

4

公式映射中奖票号

winningIndex = randomWord % drawTotal + 1,再映射到票号 1。

高级链上字段
drawCoordinator · 官方开奖合约
0xDCf40B8f97f68e422fd4F41b32F9b8A3aaB7a63e
ticketRoot · 票号快照根
0x0b936081b1f3d2ce6f52351b84e60ae8b3e506a3c1800a8edd348e9853df5a70
roundKey · 开奖轮次键
0x9e1a57e18e07d9cb65948f3c206a8db27eaf6767c398d2c313c73437b269e162
requestTxHash · 请求交易
0xe671d5a9b48dc1680f427c07827cd3329eba65d62c5f45ccfbad3be44c0b16a2

给用户的判断标准

这三件事同时成立,就可以说明本期开奖位置不是平台手填。

JUDGE

1. 页面复算通过

randomWord % drawTotal + 1 的结果等于 winningIndex。

2. 链上事件一致

DrawFulfilled 里的 randomWord、winningIndex、drawTotal、ticketRoot 和页面一致。

3. 事件来自官方合约

DrawFulfilled 的发出地址等于本页的 drawCoordinator。

需要更多技术细节

普通用户看完本页就够了。工程、风控、审计可以继续看完整说明页。

MORE
打开链上交易