Een provably fair online casino, wat is dat eigenlijk? We komen die term steeds vaker tegen en meestal in het kader van een bitcoin casino. Goed om er even wat dieper op in te gaan. Wat is provably fair en wat heb je er aan?

Provably fair en het bitcoin casino

Eerst even wat aandacht voor het bitcoin casino, want daar kom je deze term veel tegen. Deze casino’s zien we steeds populairder worden met de toenemende populariteit van de bitcoin zelf. Feitelijk is het niets meer dan een online casino waarin je je speltegoed rechtstreeks in bitcoin stort en vervolgens ook in bitcoin inzet. Verder maakt het voor de casino spellen zelf niet uit, die zijn hetzelfde als in een ‘gewoon’ online casino.

In samenhang met bitcoin casino’s komen we vaak de term provably fair tegen. Dat komt omdat de technologie om een casino provably fair te maken verwant is aan de technieken die voor de bitcoin betalingen worden gebruikt. Met name de zogeheten ‘hash functie’, maar daarover later meer. Toch kan feitelijk ieder online casino provably fair werken, ook als het verder niet met bitcoins werkt.

Wat is provably fair?

Tijd om wat dieper in te gaan op wat provably fair nu eigenlijk inhoudt. Letterlijk vertaald betekent het ‘aantoonbaar eerlijk’ en dat is ook precies wat het concept provably fair beoogt. Zorgen dat je als speler aantoonbaar eerlijk wordt behandeld door het casino waar je speelt. Veel casino’s werken er al aan om hun betrouwbaarheid te bewijzen. Bijvoorbeeld via vergunningen, kwaliteitscertificaten en audits. Maar ook door te werken met betrouwbare casino spelleveranciers als NetEnt. Tegelijkertijd hebben ze meestal nog geen mechanisme om tijdens het spelen direct aan te tonen dat het casino het spel niet manipuleert. Met provably fair is zo’n methode nu beschikbaar.

Het basisidee achter provably fair

Het basis-idee bij provably fair is dat we bij online gokspellen de random trekking (kaarten, dobbelstenen, roulette) van een spel al kunnen uitvoeren voordat er wordt ingezet. Want eigenlijk werkt vertrouwen bij het online casino en het ‘landbased’ casino precies andersom:

  • In een echt casino zou het juist argwaan wekken als men de kaarten al vooraf heeft geschud (‘ze liggen al voor u klaar’) en volgt het vertrouwen uit het kunnen meekijken met alles dat de croupier doet.
  • Bij een online casino hebben we juist geen enkel inzicht in wat de software tijdens het spel allemaal uitvoert, en zouden we het liefst vooraf al ergens de gedeelde kaarten, de gegooide dobbelstenen of de roulettespins hebben vastgelegd.

En dat kan bij een online casino natuurlijk ook. De random generator hoeft niet te wachten tot de spelers inzetten, maar kan al eerder uitslagen genereren. Door de uitslag van die trekking al voorafgaand aan het spel bekend te maken, weten we ook zeker dat het casino de uitslag niet achteraf kan wijzigen in het eigen voordeel.

Onzin, want dan weet ik de uitslag toch al voordat ik inzet?

Ja en nee. Natuurlijk krijg je niet de werkelijke uitslag opgestuurd in een voor jou leesbaar formaat. Dat zou je leven als gokker natuurlijk erg prettig maken maar het casino is niet gek. Er bestaat echter ook een digitale variant van een verzegelde envelop die je pas na het spel kunt openmaken om de uitslag te controleren.

Dat heet de hash functie. Daarmee wordt de trekking naar jou toegestuurd in een formaat dat je niet direct kunt lezen, maar wel achteraf kunt gebruiken om te controleren of het casino niet stiekem iets heeft veranderd. Wat maakt zo’n hash functie zo bijzonder? Drie dingen:

  • De bewerking is zo dat je onmogelijk de oorspronkelijke input kunt terug berekenen uit de hash (je kunt niet decoderen). Je hebt een uitkomst, maar kunt nooit de input achterhalen.
  • Wel weet je dat dezelfde input in de hash calculator altijd dezelfde hashwaarde oplevert.
  • Bovendien is de kans nul of microscopisch klein dat twee verschillende inputwaarden toch dezelfde hash opleveren.

Er zijn verschillende standaard hash algoritmes. Een bekende is bijvoorbeeld SHA256. Op deze website vind je daar een hash calculator voor. Die maakt van iedere input een unieke hash. Als je er even mee speelt, zul je zien dat eenzelfde input steeds eenzelfde hash oplevert. Maar ook dat input die op elkaar lijkt toch een volledig andere hash oplevert.

Een voorbeeld van provably fair spelen met gebruik van de hash functie

Hoe gebruiken we die hash nu in een provably fair casino? Stel, ik ga naar een online roulettespel en wil daar inzetten:

  1. Het casino heeft voorafgaand al een trekking ‘klaarstaan’, bijvoorbeeld het getal 21. Deze wordt uiteraard nog niet vertoond.
  2. Het casino maakt hier een hash van en toont die wel aan de spelers: 6F4B6612125FB3A0DAECD2799DFD6C9C299424FD920F9B308110A2C1FBD8F443
  3. Ik zet vervolgens in op – ik heb nu eenmaal vaak geluk – het getal 21. Een winnende gok, maar dat weet ik op dat moment nog niet.
  4. De trekking wordt gepresenteerd op het scherm. Stel nu dat het casino daarbij fraudeert. Men heeft liever geen 35:1 winnaars en heeft na mijn inzet op 21 alsnog de trekking aangepast. Op het scherm verschijnt dan ook niet 21 maar 22. Ik baal, want ik heb verloren.
  5. Maar als ik vervolgens de SHA256-hash van het getal 22 bepaal, blijkt die dit te zijn: 785F3EC7EB32F30B90CD0FCF3657D388B5FF4297F2F9716FF66E9B69C05DDD09.

Dat is een andere hashwaarde dan de code die het casino oorspronkelijk met me had gedeeld. Ik weet dus dat het casino achteraf de trekking heeft veranderd en de boel ‘belazert’.

provably fair

Dit is dus het basisidee bij Provably fair. Ik krijg vooraf een hash van de random trekking. Die kan ik achteraf vergelijken met de hash van de gepresenteerde uitslag. Als beide hashes overeenkomen, weet ik dat er volledig eerlijk is gespeeld. Als de hashes verschillen, weet ik dat het casino tussentijds dingen heeft gemanipuleerd.

Echte provably fair werkt uiteraard complexer

Natuurlijk is dit een simplistische weergave. Al was het maar omdat dit voor bijvoorbeeld roulette zo niet werkt. Ik zou van de slechts 37 mogelijke roulette uitkomsten de hash al berekend kunnen hebben en snel kunnen vergelijken met de ontvangen hash. Daarom zal in de praktijk de trekking altijd extra zijn gecodeerd door er bijvoorbeeld bij iedere trekking een andere serie cijfers en letters aan toe te voegen (dus niet gewoon ‘21’, maar bijvoorbeeld xA56Trfd43-21). Hieruit kunnen we zondermeer opmaken dat de uitslag 21 is, maar iedere trekking zal toch compleet andere hashes opleveren.

Ook zijn er spellen waar ik als speler niet vooraf een keuze maak, zoals bijvoorbeeld blackjack. Daar gaat het puur om goede of slechte kaarten die ik krijg en kan het casino dus vooraf de boel al manipuleren. Dat wordt opgelost met een soort tweetraps trekking waarbij zowel het casino als de speler een random getal trekken, waarna de definitieve trekking wordt bepaald door die twee te combineren. Vergelijkbaar met de speler die in het casino de kaarten mag splitsen na het schudden.

Het zijn allemaal varianten die echter aan het basisidee van Provably fair niets afdoen: Het casino deelt informatie over de trekking aan het begin van het spel via een hash. Ik kan die informatie niet misbruiken om er zelf voordeel uit te halen, maar ik kan deze wel na het spel gebruiken om de controleren of het casino niet stiekem tussentijds zaken heeft aangepast.

Provably fair op je computer

Provably fair casino’s presenteren de hashes tijdens het spel en bieden de mogelijkheid om met een verify button direct het resultaat te controleren. Omdat het dan natuurlijk nog steeds een beetje de slager is die het eigen vlees keurt, kun je ook de informatie van het casino in een willekeurige online hash generator verwerken. Als het casino met bijvoorbeeld SHA256 werkt, moet iedere SHA256 hash calculator dezelfde uitkomst opleveren.

Bovendien weet je dat door het provably fair mechanisme ook anderen snel jouw casino kunnen en ook zullen controleren. Het provably fair casino is daarmee transparant en dat geeft op zichzelf al veel meer vertrouwen.