指南 5

自己验证公平性

网站对合约所说的一切,都可以在网络的公开数据中核对。下面的检查,从最简单的(两分钟)到最深入的(构建代码)。大多数人不需要懂编程。

验证的原理

网站可以被伪造,也可能出错,而区块链上的记录不会。所以请不要在项目的网站上验证,而要在区块浏览器中验证:这是显示区块链内容的独立网站(Solscan、Solana Explorer、SolanaFM 等)。请自己打开其中任何一个,不要通过别人消息里的链接打开。

验证需要两个地址:程序(合约)和代币。它们显示在“安全”页面。请至少再到另外两个独立的地方核对(仓库、官方渠道):如果地址对不上,说明有人想骗你。

快速检查(2–10 分钟)

检查什么在哪里看应该是什么样如果不是这样
1. 能否增发新代币区块浏览器中的代币页面,Mint Authority 字段为空(已撤销)地址所列的持有者可以发行任意数量的代币,使你的代币贬值。
2. 能否冻结代币同一页面,Freeze Authority 字段空持有者可以冻结任何钱包,包括你的。
3. 谁能修改代码程序页面,Upgrade Authority 字段为空(代码已冻结),或是带更新延迟的多签地址如果是一个普通地址,意味着其持有者可以随时上传另一套规则。
4. 代币总发行量代币页面:Supply不超过 100,000,000,000,并且只会因销毁而减少更多则说明发行量被增加过。
5. 代币是否一致钱包中的代币地址与“安全”页面对照地址逐字符完全一致这不是真正的 FAIRDRUM。不要购买,也不要存入。
6. 金库中的代币是否足够“安全”页面上的金库地址、代币余额;“经济模型”页面上各奖池的金额金库余额不少于各奖池金额之和(再加上玩家的游戏余额)合约的代币必须始终足额。出现差额是一个严重信号。

“安全”页面上方的表格直接从网络读取同样的字段,并标出 ✔ 或 ⚠,但不要只依赖它:请自己核对一次。

验证你自己的旋转

每次旋转都会在网络上留下记录,屏幕上的结果可以与它核对。

  1. 找到交易

    旋转之后,按钮下方会出现“交易”链接。它会在区块浏览器中打开这条记录。或者,在区块浏览器中打开你钱包的历史,选择与 FAIRDRUM 程序有关的交易。

    应该是:状态为 Success,并有一份指令列表。

  2. 找到两对调用

    第一笔交易中有一次 Switchboard 调用(请求随机数,commit)和一次 FAIRDRUM 程序的 spin_commit 调用(投注)。第二笔中:一次 Switchboard 调用(揭示,reveal)和 spin_settle(结算)。不同浏览器中的名称写法略有差别(SpinCommit、spinCommit)。

  3. 比较顺序

    投注是在数值揭示之前记录的:第一笔交易的区块编号(Slot)比第二笔小。这说明在投注的那一刻,你和项目方都不知道结果。

  4. 查看第二笔交易的日志(Logs)

    那里记录着事件 SpinSettled,包含旋转次数、奖金,以及命中迷你头奖、头奖和超级头奖的情况。这些数字与转盘显示的相同。

  5. 检查随机数的所有者

    交易中给出的随机数账户,必须归 Switchboard 程序所有。合约本身会拒绝任何其他账户,但仍值得亲自确认:打开该账户,查看 Owner 字段。

深入检查

构建代码并比较哈希

获取项目在 GitHub 上的仓库(发布后会出现链接),用可复现的模式构建程序(anchor build --verifiable),并把哈希与链上的哈希(solana-verify)进行比较。一致就说明链上放的正是这份开源代码。

阅读常量

游戏的所有数值都集中在一个文件 consts.rs 里:比例、概率、奖金阶梯、手续费、期限。网站正是据此生成自己的表格,所以网站与合约之间不应该有差异。

运行测试

仓库里有针对规则和计算的测试(cargo test),以及针对客户端的测试(npm test)。例如,它们会检查所有奖池和余额之和不超过金库中的代币。

弄清结果是如何选出的

合约通过 SHA-256,从揭示出的 32 字节随机数中得到数值。对主转盘来说,这是若干块 SHA-256("FDRM-M" + 随机数 + 区块编号),每块中每次取 4 个字节(little-endian),为每一次已完成的旋转取一个数。对金色转盘:SHA-256("FDRM-G" + 随机数 + 已完成旋转的编号)。这个数与以 232 的分数表示的阈值比较;阈值本身取决于结算时的每周游戏量和各奖池的大小,所以只有连同该 slot 上的程序状态,才能完整重算一次旧的旋转。公式在 math.rs 和 engine.rs 中。

读取一段时间的日志

任何人都可以从网络导出某一时期内所有 SpinSettled 事件,并自己统计金色出现的频率和奖池的大小。与“概率”对照。旋转次数少时,波动极大:要看到 1% 的概率,需要几千次旋转。

无法验证的内容

  • 预言机的诚实性。随机数来自 Switchboard 网络。合约会检查数值来自指定账户、且是在投注之后揭示的,但无法检查预言机节点是否串通。这是一项外部依赖。
  • 代码没有错误。测试和开源代码能增加信心,但不能代替独立审计。在没有给出审计链接之前,就是没有审计。
  • 未来。在升级权限被撤销之前,规则可能因新版本而改变。请关注程序更新的交易。
  • 管理员在合约之外做的事。出售他的代币、营销、上市决定,合约都无法控制。推广基金的支出是公开的,但“用在什么上”,合约不会检查。

危险信号

消息里的地址与网站不一致代币或程序被调包。
Mint 或 Freeze Authority 不为空发行或冻结的权限仍在某人手中。
升级权限在一个没有延迟的地址手中规则可以随时被更改。
“保证中奖”“稳赚方案”“推广返佣”游戏里没有推荐机制,也没有任何保证,平均返还约为 73–74%。
索要助记词,或要求“验证钱包”这是盗窃。请关闭页面。
交易要求的比你预期的多请阅读钱包窗口。拿不准就拒绝。