Post
Topic
Board Gambling
Merits 1 from 1 user
Re: Pasino.com Provably Fair Seeding Event for Fortune Wheel
by
MrBit112
on 30/05/2022, 18:03:22 UTC
⭐ Merited by AbuBhakar (1)
Unfortunately your seeding event is missing one critical component: You didn't explain how you "interpret" a game hash. You should publish a function and game rules before the seed is picked. That way we know you can't tailor your interpret (i.e. hashToGameResult) function based on the future results


My apologies for not including the algorithm in the ANN.

The code is open source and can be found on our verifier page (by checking the source code using CTRL + U). All calculations are performed on the client-side.

Code:
function calculateWheelResult() {

    var wheel_outcomes = ["1X", "6X", "1X", "12X", "1X", "3X", "1X", "6X", "1X", "3X", "1X", "52XA", "1X", "3X", "1X", "6X", "3X", "1X", "12X", "1X", "6X", "1X", "3X", "1X", "25X", "1X", "3X", "1X", "6X", "1X", "3X", "1X", "12X", "1X", "6X", "1X", "3X", "1X", "52XB", "3X", "1X", "3X", "1X", "3X", "1X", "12X", "1X", "6X", "1X", "3X", "1X", "25X", "1X", "3X"];

    var client_seed = "00000000000000000000193048476f981a835cd00964b50043fb660f771dc2c3";
    var last_seed = $("#server_seed").val();
    var games = 10;

    var actual_hash;
    var p1, p2, p3, p4, roll, crash_point;

    $("#tabled > tbody").html("");

    for (x = 0; x <= games; x++) {

        var md = forge.md.sha512.create();
        md.update(client_seed + "-" + last_seed);
        actual_hash = md.digest().toHex();

        p1 = parseInt((actual_hash.substr(0, 2) + "").replace(/[^a-f0-9]/gi, ""), 16);
        p2 = parseInt((actual_hash.substr(2, 2) + "").replace(/[^a-f0-9]/gi, ""), 16);
        p3 = parseInt((actual_hash.substr(4, 2) + "").replace(/[^a-f0-9]/gi, ""), 16);
        p4 = parseInt((actual_hash.substr(6, 2) + "").replace(/[^a-f0-9]/gi, ""), 16);

        roll = toFixed((p1 / Math.pow(256, 1) + p2 / Math.pow(256, 2) + p3 / Math.pow(256, 3) + p4 / Math.pow(256, 4)), 12);
        outcome = toFixed((roll * 53), 0);
        outcome = wheel_outcomes[outcome];

        $("#tabled > tbody").append("<tr>" + "<td>" + last_seed + "</td>" + "<td>" + outcome + "</td>" + "</tr>");

        var md = forge.md.sha256.create();
        md.update(last_seed);
        last_seed = md.digest().toHex();

    }

}

The above code assumes that Forge (a library for cryptography is loaded on the page). Please refer to our website for more information: https://pasinocom.github.io/pasino-verify/fortune-quest.html

The code for the verifier is contained in the app.js file: https://pasinocom.github.io/pasino-verify/assets/js/app.js

Thank you for your recommendations and suggestions. We'll keep them in mind and certainly implement the suggested improvements in our subsequent game releases.