Özgür GÜL

Provable Fairness

Bitcoin kumar sitelerinde çokça gördüğümüz bir terim: provable fairness. Yapılan bahsin kriptolojik olarak doğrulanmasını sağlayan kanıtlanabilir bahis anlamı çıkabilir.

Bir kumar sitesinde herhangi bir oyuna 1 btc bahis yaptınız diyelim. Kazanma şansınız %75’ti ama siz kaybettiniz. Acaba casino size karşı hile mi yaptı? Yoksa gerçekten mi kaybettiniz bunu öğrenmenize yarayan ve çoğu bitcoin kumar sitesi tarafından uygulanan yöntemdir.

Örnek bir senaryo üzerinden gidelim. Diyelim provable fair bir kumar sitesinde bahis yapıyorsunuz. Site, sadece size ait şu 3 değişkeni veritabanında saklar:

Client seed: Sizin bildiğiniz ve sizin tarafınızdan ayarlanabilen bir anahtardır. Bahisten önce ve sonra size gösterilir.

Server seed: Bahisten sonra isterseniz görebileceğiniz, size ait sunucu anahtarıdır. Bunu bahisten önce görürseniz kumar sitesini aldatabilirsiniz değil mi? O yüzden bu anahtarın güçlü bir algoritma ile hash’lenmiş değeri gösterilir, genelde sha256.

Nonce: Her client ve server anahtar ikilisinde yalnızca bir kez kullanılan ve her bahiste 1 artan sayıdır.

Yukarıdaki değişkenleri baz aldığımızda, yaptığınız bir bahiste oluşturulan random number aşağıdaki gibi bir methoda dayanır:

let rand = generateRandom(clientSeed + ":" + serverSeed + ":" + nonce)

Üstte dediğim gibi, server anahtarını bahisten önce görmek demek oluşacak random sayıyı bilmek anlamına geldiği için bu değişkenin orjinali size gösterilmez.

Yaptığınız bahisin fair olup olmadığını görmek istiyorsanız, site size server anahtarının hashlenmemiş halini gösterecektir.

Peki bir kumar sitesinin provable fair olması demek, o sitenin sizi asla aldatamayacağı anlamına mı geliyor? Hayır. Bahis sonucunu manipüle edemedikleri için aldatamazlar ama size daha önceden oluşturdukları client + server anahtarlarını vererek sürekli kaybetmenizi sağlayabilirler, o yüzden client anahtarını değiştirmenizde fayda var.

Daha fazla bilgi için: