Jump to content
Forumu Destekleyenlere Katılın ×
Paticik Forumları
2000 lerden beri faal olan, çok şukela bir paylaşım platformuyuz. Hoşgeldiniz.

Provably fair random number uretirken uretilen sayiyi belli bir aralik icinde birakmak.


di

Öne çıkan mesajlar

Ahali selam,

Mevzu biraz karisik fakat en basit sekilde anlatmaya calisayim. Simdi ismi lazim degil siteler icin random number lazim oldugunda dumduz Math.random() ya da rand() kullanmak yerine,


hex2decimal(sha512(server seed + client seed + nonce)) % maximum sayi



gibi taklalar atip, bunun ustunden urettigimiz sayiyi kullaniyoruzki yarin bir gun server seed + nonce degerini kullaniciya verip "al haci ayni hesabi kendin yap, gorursun ayni sayi cikacak" diyebilelim ve "provably fair" olalim.

Yalniz is 1-100 arasina degil de, 0-100 milyon arasinda sayi uretip buna gore odul vermeye gelince epey bir karisiyor. SHA512'den bol sifirla baslayan bir sonuc cikma olasiligi neredeyse olmadigindan bir kac yuz bin altina denk gelen oduller neredeyse hic kazanilamiyor.

Bu random ama provably fair olayini daha duzgun nasil implemente ederim acep, var mi bi fikriniz?
Link to comment
Sosyal ağlarda paylaş

Ya olaya tam vakif degilim cok alakasiz bir seyden bahsediyor olabilirim de rand() komutu uniform seciyor olmali sayilari. 10000 replication falan alip secilen gozlemlerin dagilimlarini inceleyerek gercekten de secilen sayilar uniform mu dagiliyor incelenebilir gibi.

Ornek vermek gerekirse sayisal lotoyu otomatik oynayan bi algoritma olsun mesela 1/49 arasi 6 sayi sececek; bu sayilar uniform dagiliyor, yani her birinin gelme olasiligi esit. Sen kodun gercekten de boyle olup olmadigini test etmek icin 10000 kez 6 sayi sectireceksin, bu 10000 replication'in da ortalamasi, varyansi belli bir guven araliginda (%95 mesela) esit cikmali. Cikmazsa rng'de sikinti var demek. O kismini bilmiyorum.

Bu kadar sey anlatma nedenim de, eger kodun ciktilarini ciplak gozle deniyorsan yaniltici olur bayagi.

Ha bu arada 500'un secilme olasiligiyla 100m'in secilme olasiligi esit olmasin istiyorsan farkli bir olasilik fonksiyonu kullanman gerekiyor.

(Bu anlattiklarimin hepsini biliyor olman da muhtemel tabii sdf)
Link to comment
Sosyal ağlarda paylaş

ne SHA512 bilirim ne de provably fair nedir bilirim ama saçma bir öneri de bulunmak istedim yine de. yüz milyon rakam seçeceksen bunu 100000lik intervallere böl (ya da daha küçük 100lük intervallete böl istiyorsan). N tane interval içersinde önce random bir tanesini seç sonra bu interval içersinde SHA512 ne ise onla random sayıyı üret? SHA512 ne bilmediğim için tamamen saçma bişey söylemiş olabilirim, saygılar.
Link to comment
Sosyal ağlarda paylaş

Abi provably fair = herkes elindeki veriyi acik edince ayni sayinin uretilebilmesi, haliyle kimsenin cakallik yapmadiginin kanitlanabilmesi.

Bu yuzden herhangi bir random sayi ureteci yerine cryptographic function ustunden gidiliyor cunku girdiler ayni oldugu surece hep ayni sonuca ulasiyorsun.

Bir suru farkli etkenin olsun ve aradan birini rastgele sec dedigin anda "provably fair" olmuyor o olay.
Link to comment
Sosyal ağlarda paylaş

girdi dediğin seed mi? iki kisi arasinda oynanan bir oyunsa mesela iki tane seed vermek gibi bir şey olmuyor mu biri bir oyuncudan diğeri diğer oyuncudan. böylece hiç bir taraf random number generatorin ne ürettiğini bilemez eğer generatora verdiğin seed bu iki seede bağlıysa gibi bir şey mi
Link to comment
Sosyal ağlarda paylaş

bankaların sistemi de ona benziyor ondan tahmin ettim. bir kendi vaultlarındaki seed var senin aletine ozel. bir de para gönderdiğin hesabın son 5 hanesini istiyorlar aynı makinaya da o da bir seed olarak sisteme gönderiliyor. bu ikisiyle beraber sana random bir rakam üretiyorlar sonra da işlemini yapıyorsun. zaten sen yazmışın seed yerine veri demişin o veri dediklerin seed mi değil mi onu anlamaya çalıştım
Link to comment
Sosyal ağlarda paylaş

2 kuple googleladim.alttaki hadiseyi anlatiyo.

https://thebitcoinstrip.com/blog/what-does-provably-fair-mean.html

buda senin aradigin seyin cevabini iceriyo gibi.

https://bitcointalk.org/index.php?topic=1785340
https://github.com/kripod/provably-fair

surada da bir tartisma donmus.
https://www.reddit.com/r/pcmasterrace/comments/4rdiqe/what_is_a_provably_fair_gambling_system_how_are/

dipnot: bunlari sende bulmussundur ve soruna cevap olmamistir belki.fakat bahsettigin seyin cercevesi iyice belli olsun diye not niyetine gideri var. X(
Link to comment
Sosyal ağlarda paylaş

×
×
  • Yeni Oluştur...