moonSTEEM - Provably Fair crash game powered by the Steem Blockchain | Seeding Event

in #moonsteem6 years ago (edited)


moonSTEEM, by using the provably-fair concept, eliminates the trust issue and potential defiance (between the house - operator - and the players) in online gambling. Additionally, by storing all informations on the blockchain in an immutable way, it allows players to go back in time as far as they want to control that the house respects its provably-fair engagements.

With the rise of many popular betting dApps on different blockchains, the provably-fair system bridge this trust gap. moonSTEEM aims at providing players the fun, rewards and returns in a fair and transparent via immutable records which anyone can verify and check.

Provably Fair

Provably fair is a system that enables you (the player) to verify each game result and make sure the outcome is not manipulated by the house. Copy hash code of the particular round and paste it on the verification tool, check the multiplier results for all previous games.

Seeding Event

The seeding event has been broadcast to the blockchain via a custom_json operation for immutability, here are the informations :

  1. moonSTEEM has generated 10 million game hashes (sha256). We started with a server secret that has been repeatedly fed the output of sha256 back into itself 10 million times. The sha256 of the final hash in the chain is: 35d667e694d1cc8947bfb33f4141016d46037e400218c65df5e5e4d8e3888bba, by publicising it here we are preventing any ability to pick an alternate sha256 chain.
  2. To avoid criticism that the server secret in step 1 was carefully chosen to generate lots of "bad" crash points, each hash in the chain will be salted with a client seed, which we have no control of. The client seed will be the block hash (block_id in row block data) of a Steem block that hasn't yet been generated: block 30568000 (the custom_json stating this has been broadcast in block 30553506 so 14494 blocks before).

EDIT : Block 30568000 has been generated and the ID is 01d26e400cba5449b022113dd9394d3208208a27 which will be our client seed (https://steemd.com/b/30568000)

Links to the custom_json :
https://steemd.com/tx/43eb2ae737bf4619a5f4ef0a9ba6f706ffad1f74
https://steemworld.org/block/30553506/43eb2ae737bf4619a5f4ef0a9ba6f706ffad1f74

By hashing (HMAC SHA 256) any server seed, you’ll find the previous game’s server seed, proving that the house is using the pre-generated hash chain. By hashing that again with the client seed, it will result in the game hash (server seed salted with client seed). By applying the game multiplier formula on this hash, you’ll be able to verify that the game outcome (multiplier) is correct for any given game.

The first game won’t be played as once the client seed is known, anyone can calculate the outcome. Using our chosen starting server seed (see step 1), the hash terminating the chain is 35d667e694d1cc8947bfb33f4141016d46037e400218c65df5e5e4d8e3888bba. That is to say, the first game's hash played under the new provably fair scheme, when hashed will be 35d667e694d1cc8947bfb33f4141016d46037e400218c65df5e5e4d8e3888bba.



How to verify

Verification Tool - https://jsfiddle.net/msowner1/mvfy1g6r/6/show (edited with client seed)
Copy paste hash of the current game hash to find previous game hashs and outcomes

Multiplier formula

How to create the hash chain ?

exports.genGameHash = function(serverSeed) {
    return crypto.createHash('sha256').update(serverSeed).digest('hex');
};

How to convert a server seed into a game multiplier ?

function divisible(hash, mod) {
    // We will read in 4 hex at a time, but the first chunk might be a bit smaller
    // So ABCDEFGHIJ should be chunked like  AB CDEF GHIJ
    var val = 0;

    var o = hash.length % 4;
    for (var i = o > 0 ? o - 4 : 0; i < hash.length; i += 4) {
            val = ((val << 16) + parseInt(hash.substring(i, i+4), 16)) % mod;
    }

    return val === 0;
}

// This will be the client seed hash of block 30568000
var clientSeed = ‘01d26e400cba5449b022113dd9394d3208208a27';

exports.crashPointFromHash = function(serverSeed) {
    var hash = crypto.createHmac('sha256', serverSeed).update(clientSeed).digest('hex');

    // In 1 of 101 games the game crashes instantly.
    if (divisible(hash, 101))
            return 0;

    // Use the most significant 52-bit from the hash to calculate the crash point
    var h = parseInt(hash.slice(0,52/4),16);
    var e = Math.pow(2,52);

    return Math.floor((100 * e - h) / (e - h));
};

Power of Blockchain - Transparency

What make blockchain so powerful is the public ledger. Every transaction is recorded and visible to everybody.

At the end of each game, a custom_json operation will be broadcast containing the server seed of the game, the multiplier and the bets that occured on that game.

Security

Leveraging on the popular and secure login method steemconnect, you can connect to moonSTEEM in a secure and convenient way. None of your key is store by moonSTEEM.

Official accounts

@moonsteem
@moonsteem.app
@msowner1
@msowner2

A post announcing the launch will be made a bit before the block chosen for the client side is produced.

Sort:  

Are you guys taking delegations?

Posted using Partiko iOS

If They Do I Will Delegate.......

Hi @supermeatboy!

magicdice

Received:

  • 1895.449 STEEM
  • 0.000 STEEM from referral
  • 0.000 STEEM from delegation
  • 0.180 STEEM from dividends
  • 0.001 SBD
  • 0.000 SBD from referral
  • 0.000 SBD from delegation
  • 0.000 SBD from dividends

Spent:

  • 1610.161 STEEM
  • 0.471 SBD

Total:

  • 285.468 STEEM
  • -0.470 SBD

hey there smb ! cya on v2

hurry up.
am coming for your steem >:D
!bookkeeping magicdice

!bookkeeping magicdice

Hi @supermeatboy!

magicdice

Received:

  • 3587.749 STEEM
  • 0.000 STEEM from referral
  • 0.000 STEEM from delegation
  • 0.180 STEEM from dividends
  • 0.001 SBD
  • 0.000 SBD from referral
  • 0.000 SBD from delegation
  • 0.000 SBD from dividends

Spent:

  • 3122.929 STEEM
  • 0.471 SBD

Total:

  • 465.000 STEEM
  • -0.470 SBD

!bookkepping magicdice

Hi @supermeatboy!

magicdice

Received:

  • 3587.749 STEEM
  • 0.000 STEEM from referral
  • 0.000 STEEM from delegation
  • 0.180 STEEM from dividends
  • 0.001 SBD
  • 0.000 SBD from referral
  • 0.000 SBD from delegation
  • 0.000 SBD from dividends

Spent:

  • 3122.929 STEEM
  • 0.471 SBD

Total:

  • 465.000 STEEM
  • -0.470 SBD

just upvote moonsteem post(s) =)

Very cool @supermeatboy showed me this on https://steemspeak.com so i upvoted resteemed and also i want to know how i can place a bet and buy those steemie tokens to play? I press place bet and northng happens

nice ! ya steemies shd be credited after a min or so. might need to refresh your game page for it to be reflected.

How to play

Just place your bet using the button above chat box, as the multiplier increase, your profit also increase. You can choose to cashout anytime because you have control (u can tweak the settings under manual or if you like it in auto mode). Note the multiplier may crash anytime.
For trial, maybe you can do 1 steemie with autocashout 1.1x to have a feel of it.

This post has been included in the latest edition of SoS Daily News - a digest of all you need to know about the State of Steem.

This is going to be a huge leap for the steem blockchain.

only time will tell, we are aiming for the moon !! =)

Coin Marketplace

STEEM 0.20
TRX 0.26
JST 0.039
BTC 100401.29
ETH 3606.38
USDT 1.00
SBD 3.12