揭露EOSBet (dice.eosbet.io) 的骗局

in #eos6 years ago (edited)
EOSBet https://dice.eosbet.io 自己做庄, 自己裁判, 仅将EOS区块链当作银行, 赚取EOS token, 关键的随机数产生并没有运行在区块链上, 输赢 完全由庄决定

流程图

liucheng.png

ABI

"actions": [{
      "name": "initcontract",
      "type": "initcontract",
      "ricardian_contract": ""
    },{
      "name": "newrandkey",
      "type": "newrandkey",
      "ricardian_contract": ""
    },{
      "name": "suspendbet",
      "type": "suspendbet",
      "ricardian_contract": ""
    },{
      "name": "resolvebet",
      "type": "resolvebet",
      "ricardian_contract": ""
    },{
      "name": "betreceipt",
      "type": "betreceipt",
      "ricardian_contract": ""
    },{
      "name": "refundbet",
      "type": "refundbet",
      "ricardian_contract": ""
    }
  ]

流程与代码的解释

混淆耳目的花招

lie.png

以上为官网的故弄玄虚, 事实上, eos与ethereum一样, 并不能在链上产生不可预知的随机数
合约代码量不大(见下面命令行工具), 即便不开源, 也不难看懂, 为何还要装神弄鬼, 糊弄用户?

命令行工具

#获取合约ABI和wast
cleos get code  -a dice.abi -c dice.wast eosbetdice11

正确且唯一的对赌方式

https://developers.eos.io/eosio-cpp/docs/random-number-generation
必须经过以下步骤:

  • 双方使用各自的<秘钥><原始数据> 加密后发送到区块链.
  • 双方数据都送达, 则锁定数据, 并进入决定阶段.
  • 决定阶段, 双方各发送自己的 <秘钥>到区块链
  • 区块链使用双方的<秘钥>, 解密出各自<原始数据>, 决定最终结果, 并执行结果

BM在这里讨论过:
https://eosio.stackexchange.com/questions/41/how-can-i-generate-random-numbers-inside-a-smart-contract

关于随机数

我们程序员往往把区块链上随机数的产生看作技术问题, 其实能否产生它, 是个数学问题:

y=f(x) 不管方程f多复杂, 给定一个x都最多只有一个确定的y. 所以y=random(seed), 你必须让seed具有不可预见性. 而我们知道计算机世界是没有随机数的(通常用系统时钟作seed), 对于区块链, 在没有任何输入参数的情况下, 链上一切都是注定的, 你若想自己不被预知, 在条件固定之前, 必须至少保留一项只有你知道的参数
而对于赌博方程, 用户的seed在开牌之前, 只能用户自己知道.

如果你不想思考数学问题

试想, 如果有那么简单优雅的方法(像EOSBet声称的并且也是这么做的, 不需要用户两次参与的), 那么像 github/EOSIO/dice这样做, 是多么的丑陋和多此一举!

最后

Oracles, blockhash, commit reveal? 无论你用什么技术, 都改变不了简单的数学逻辑, 即: 你必须让用户在开点之前, 保留seed(或seed的参数: 秘钥), 然后锁定后再提交.
另外telegram/eosbetcasino/admin一口一个FUD, 他难道不知道FUD的另外一个意思吗?

Sort:  

Congratulations @xoo! You received a personal award!

Happy Birthday! - You are on the Steem blockchain for 1 year!

You can view your badges on your Steem Board and compare to others on the Steem Ranking

Vote for @Steemitboard as a witness to get one more award and increased upvotes!

Coin Marketplace

STEEM 0.26
TRX 0.11
JST 0.033
BTC 64266.94
ETH 3077.24
USDT 1.00
SBD 3.87