[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"blog-article-provably-fair-rng-explained-tr":3,"mdc-kau75z-key":78},{"id":4,"slug":5,"status":6,"section":7,"category":8,"author":9,"publish_date":10,"read_time":11,"image":12,"embedded_components":13,"related_calculators":13,"related_articles":14,"title":15,"description":16,"keywords":17,"content":26,"faq":27,"availableLocales":73},"e9e77cbe-752e-46fa-880b-37532301b050","provably-fair-rng-explained","published","casino","guides","Evgeniy Volkov","2026-04-22",14,"\u002Fimages\u002Fblog\u002Fprovably-fair-rng-explained.webp","[]",[],"Provably Fair RNG Açıklandı: Tam Teknik Rehber (2026)","Provably Fair RNG — HMAC-SHA256 seedleri zar atışlarına, crash çarpanlarına ve kartlara nasıl dönüştürür. Tam matematik + canlı doğrulayıcı (2026).",[18,19,20,21,22,23,24,25],"provably fair rastgele sayı üretimi","provably fair rng","hmac-sha256 rng","csprng provably fair","chainlink vrf casino","provably fair zar formülü","provably fair crash formülü","pf rng saldırı yüzeyi","# Provably Fair Rastgele Sayı Üretimi Açıklandı (2026)\n\nAz önce bir kripto zar oyununda 0.5 BTC bahis koydunuz. Ekran `37.42` gösteriyor ve kaybediyorsunuz. Adalet panelini açıyorsunuz ve sunucu seed'i hash'ı, istemci seed'iniz ve nonce gösteriyor — hiçbir şeyin manipüle edilmediğini \"kanıtlayan\" dört değer. Peki bu dört değer nasıl *37.42'ye* dönüştü? Rastgele hex karakterleri gerçekte nasıl belirli bir zar sonucuna çevirdi?\n\nİşte burada önemli: tüm \"Provably Fair\" vaadi bir belirli işlem üzerine kurulu — kriptografik hash çıktısını oyun sonuçlarına dönüştürmek. Bu dönüştürmenin nasıl çalıştığını kaçırırsanız Provably Fair büyüyü andıran pazarlama gibi hissettiriyor. Bunu anlarsanız herhangi bir PF casino'yu yaklaşık 60 saniyede denetleyebilir, sahte uygulamaları bir bakışta görebilir ve protokolün tam olarak hangi saldırılara karşı dirençli olduğunu bilebilirsiniz.\n\nBu rehber size **Provably Fair rastgele sayı üretimi**'ni bir geliştirici 2026'da nasıl yapacaksa öyle gösteriyor — kapının altındaki CSPRNG ilkel işlevleri, seed'leri sayılara dönüştüren HMAC-SHA256 formülü, zar, crash ve kartlar için farklı eşleme şemaları, ve matematik kusursuz olsa bile ayakta kalan saldırı yüzeyi. Sonunda PF RNG'lerin neden kriptografik olarak kırılamaz olduğunu, hangi uygulama hatalarının onları mahvettiğini ve blockchain rastgeleliğinin (Chainlink VRF) ne zaman devreye girdiğini bileceksiniz.\n\n## Özet — PF RNG'ler Gerçekte Sayıları Nasıl Üretir\n\nHer Provably Fair oyun aynı çekirdek RNG ilkelini kullanır, yalnızca çıktı eşlemesi değişir. İşte 60 saniyelik versiyon.\n\n| Adım | Ne olur | Kim kontrol eder |\n|---|---|---|\n| 1. Sunucu seed'i oluştur | Casino'nun CSPRNG'si 32-64 byte rastgele string üretir | Casino |\n| 2. Hash'le ve yayınla | SHA-256(server_seed) round başlamadan önce sana gösterilir | Casino |\n| 3. İstemci seed'i + nonce topla | Tarayıcın bir istemci seed'i ekler; nonce round sayacıdır | Sen + protokol |\n| 4. HMAC hesapla | `hex = HMAC-SHA256(server_seed, client_seed : nonce)` | Deterministic |\n| 5. Hex'i sonuca eşle | Dilimleme + modulo + bölme = zar sonucu, crash çarpanı veya kart | Deterministic |\n| 6. Ortaya çık ve doğrula | Rotasyondan sonra ham seed açıklanır; herkes adım 4'ü tekrar çalıştırabilir | Sen |\n\nMatematik şu:\n\n$$\\text{outcome} = f\\big(\\text{HMAC-SHA256}(\\text{server\\_seed},\\; \\text{client\\_seed} : \\text{nonce})\\big)$$\n\nBurada `f` oyuna özel eşleme fonksiyonu — `f_dice` 0-99.99 döndürür, `f_crash` çarpan döndürür, `f_cards` karıştırılmış deste pozisyonlarını döndürür. HMAC parçası dünyadaki her PF casino'da aynıdır.\n\n### Bilmeniz Gereken Kilit Sayılar\n\n- **3 giriş**: sunucu seed'i + istemci seed'i + nonce her sonucu üretir\n- **64 hex karakter**: SHA-256 \u002F HMAC-SHA256 çıktısının uzunluğu\n- **128 hex karakter**: HMAC-SHA512'nin uzunluğu (BC.Game ve PF blackjack tarafından kullanılır)\n- **~2^256 işlem**: HMAC-SHA256'yı kırmak için gerekli — astronomik olarak ulaşılamaz\n- **0.00-99.99**: eşlemeden sonra standart zar aralığı\n- **1.00x to ∞**: standart crash çarpanı aralığı (pratikte float kesinliği tarafından sınırlı)\n\n### Adil ≠ Kârlı\n\nRNG'nin Provably Fair olması sana casino'nun bahis koyduktan *sonra* sonucu manipüle edemeyeceğini söyler. Bu size şunları **söylemez**:\n\n- Ev avantajının makul olup olmadığı (RTP'yi ayrı kontrol et)\n- Casino'nun çekilişleri onaylatıp onaylamayacağı\n- Bonuslar ve bahis terimlerinin dürüst olup olmadığı\n- Sunucu seed havuzu taahhüt edilmeden önce tarafsız olup olmadığı\n\nTüm saldırı yüzeyini aşağıda ele alacağız. Geleneksel sertifikalandırma ile daha geniş bir karşılaştırma için bkz. [Provably Fair vs RNG Sertifikalı](\u002Fblog\u002Fprovably-fair-vs-rng-certified) rehberi.\n\n## Bir RNG'yi \"Provably Fair\" Yapan Nedir?\n\nFormüle geçmeden önce *Provably Fair*'i daha geniş RNG dünyasından ayırmak yardımcı olur. PF, CSPRNGs'nin yerine geçen bir değil, belirli bir yükseltmedir.\n\n### Taahhüt-Ortaya Çıkar İlkeli\n\nProvably Fair'in arkasındaki tüm numara **taahhüt-ortaya çıkar** adlı kriptografik bir desendir.\n\nRound başlamadan önce casino SHA-256 hash'ini yayınlayarak belirli bir sunucu seed'ine taahhüt eder. Hash, seed'i ortaya çıkarmadan onu benzersiz olarak tanımlayan 64 karakterlik bir parmak izi. SHA-256'nın pratik çarpışma saldırıları olmadığı için casino daha sonra aynı hash'i üreten *farklı* bir seed bulamaz — kilitlenirler.\n\nRound sonrasında (veya seed'lerinizi döndürdükten sonra) ham sunucu seed açıklanır. Siz bunu kendiniz hash'lersiniz. Hesapladığınız hash, round başlamadan önce yayınlananla eşleşiyorsa casino seed'leri turda değiştirilmediğini kanıtladı. İstemci seed'iniz (önceden bilmedikleri) ile birleştirildiğinde bu, turda sonuç manipülasyonunu kriptografik olarak imkânsız hale getirir.\n\nTaahhüt-ortaya çıkar katmanı PF'yi diğer CSPRNG'den ayıran şeydir. Geleneksel RNG-sertifikalı bir casino de CSPRNG kullanır — ancak hiçbir şey [iTech Labs denetimlerinin yalnızca istatistiksel özellikleri kanıtladığı](https:\u002F\u002Fwww.itechlabs.com) için produksiyonda onu değiştirilmesini engellemez.\n\n### HMAC'ı RNG İlkeli Olarak\n\nHMAC-SHA256, her PF turda gerçek rastgele sayı üretecidir. İşte neden çalışır:\n\n- **Deterministic**: Aynı girdiler verildiğinde HMAC her zaman aynı çıktıyı üretir. Bu seni doğrulamayı sağlayan şeydir.\n- **Tek yön**: Çıktı verildiğinde sunucu seed'ini (anahtarı) kurtaramazsın. Bu sonucu tahmin edilemez yapan şeydir.\n- **Düzgün**: HMAC çıktıları rastgele 256-bit string'lerden ayırt edilemez. Bu oyunu tarafsız yapan şeydir.\n- **Anahtarlı**: Sunucu seed çıktıyı tekrar üretmek için bilinmesi gereken bir sır olarak hareket eder. Bu manipülasyonu önleyen şeydir.\n\nTeknik olarak HMAC-SHA256 kendi başına bir CSPRNG değildir — bu bir mesaj kimlik doğrulama kodudur. Fakat anahtar (sunucu seed'i) gerçek bir entropi kaynağından oluşturulduğunda, yapı pratik amaçlar için bir CSPRNG'ye eşdeğerdir. NIST bunu [SP 800-90A Rev 1](https:\u002F\u002Fcsrc.nist.gov\u002Fpublications\u002Fdetail\u002Fsp\u002F800-90a\u002Frev-1\u002Ffinal)'de **HMAC_DRBG** olarak resmiyet verdi ve PF casino'lar bu standardı temel olarak halka açık seed taahhütü eklenerek yeniden uygularlar.\n\n### CSPRNGs Neden Önemlidir (Math.random() Değil)\n\nHer meşru PF casino sunucu seed'ini kriptografik olarak güvenli bir RNG ile oluşturur — JavaScript'in `Math.random()`'u **değil**. Fark çoğu oyuncunun fark ettiğinden daha önemlidir:\n\n| Jeneratör | Çıktı görüldükten sonra tahmin edilebilir mi? | PF için Kabul edilebilir mi? |\n|---|---|---|\n| `Math.random()` (Chrome V8) | Evet, ~700 çıktıdan sonra | Asla |\n| Linux `\u002Fdev\u002Furandom` | Hayır | Evet |\n| `crypto.getRandomValues` (tarayıcı) | Hayır | Evet |\n| Node.js `crypto.randomBytes` | Hayır | Evet |\n| Donanım RNG (Intel RDRAND) | Hayır | Evet |\n\nEğer bir casino gizlice sunucu seed'ini `Math.random()` ile tohumlarsa, sofistike bir saldırgan yeterli halka açık çıktılardan seed'i yeniden oluşturabilir ve her gelecek turnu tahmin edebilir — HMAC matematik kusursuz olsa bile. İşte bu yüzden casino'nun gerçekten `crypto.randomBytes` veya eşdeğerini kullandığını kontrol etmek önemlidir; [Provably Fair oyunları nedir](\u002Fblog\u002Fwhat-is-provably-fair-gambling) açıklayıcısı güven zincirininin tamamını kapsar.\n## Sayı Aslında Nasıl Üretilir\n\nŞimdi gerçek formül. Bu bölüm yer imlerine değer — yukarıdaki her şey bağlam bilgisiydi.\n\n### Üç Giriş, Bir Formül\n\nHer provably fair turun şunu hesaplar:\n\n$$\\text{hex\\_output} = \\text{HMAC-SHA256}(\\text{server\\_seed},\\; \\text{client\\_seed} \\; : \\; \\text{nonce})$$\n\nSözde kodda:\n\n```\nfunction pfHmac(serverSeed, clientSeed, nonce) {\n  const message = clientSeed + ':' + nonce\n  const hex = hmacSha256(serverSeed, message)  \u002F\u002F 64-karakterlik hex string\n  return hex\n}\n```\n\n`:` iki nokta üstüste, Stake, Primedice, Rainbet ve çoğu PF kasinoda kanonik ayırıcıdır. Birkaçı (BC.Game, Roobet) farklı ayırıcılar kullanır — tam format için her zaman kasinolar fairness belgelerini kontrol edin.\n\nÇıktı, `8b2d4a1f9c6e7b3d5a8f2c9e4b1d7a6f3e8c5b2d9a4f7e1c8b3d6a2f9e5c4b7d` gibi 64 karakterlik bir onaltılık dizedir. Bu hex, saf rastgeleliktir — 256 bit tahmin edilemezlik, istatistiksel olarak 256 adil para atışından ayırt edilemez.\n\n::chart-provably-fair-process\n::\n\n### Adım Adım: HMAC Çıktısından Zar Atışına\n\nBir turu sondan sona yapalım.\n\n**Verilen değerler:**\n\n- `server_seed = f4a9c2e1b7d8e3c5a1b9f6d2e8c4a7b3e9d1c6a2b5f8e4c7a3b6e1d9c2a5b8f4`\n- `client_seed = player-xyz-42`\n- `nonce = 7`\n\n**Adım 1 — HMAC'ı Hesapla:**\n\n```\nHMAC-SHA256(server_seed, \"player-xyz-42:7\")\n= 8b2d4a1f9c6e7b3d5a8f2c9e4b1d7a6f3e8c5b2d9a4f7e1c8b3d6a2f9e5c4b7d\n```\n\n**Adım 2 — İlk 5 hex karakterini kes:**\n\n`8b2d4` → onluk sisteme çevir → `569.300`\n\n**Adım 3 — 0-99.9999 aralığına eşle:**\n\n```\ndice = (569_300 % 1_000_000) \u002F 10_000\n     = 569_300 \u002F 10_000\n     = 56.93\n```\n\n**Adım 4 — Bahis mantığını uygula:**\n\n\"50'nin altında at\" bahsi yaptıysan → kaybedersin (56.93 > 50). \"60'ın altında at\" bahsi yaptıysan → kazanırsın. Tam zar atışı bu üç giriş birleşir birleşmez belirlenmiştir, hiçbir UI animasyonu çalışmadan önce.\n\n**Adım 5 — Doğrula:**\n\nTurun ardından, açığa çıkarılan `server_seed`'i alırsın. SHA-256 ile hash et — önceden taahhüt edilen hash eşleşiyor mu? Tamam. 1-3 adımlarını tekrar çalıştır — `56.93`'ü yeniden oluşturdun mu? Tamam. Tur kriptografik olarak adil olduğu ispatlanmış.\n\nKopyala-yapıştır değerleri ve ekran görüntüleriyle tam bir anlatım için bkz. [bir provably fair turu nasıl doğrulanır](\u002Fblog\u002Fhow-to-verify-provably-fair).\n\n### Farklı Oyunlar, Farklı Eşlemeler\n\nHMAC çağrısı her zaman aynıdır. Değişen şey adım 3 — hex'in belirli bir oyun sonucuyla nasıl eşleştirildiği.\n\n| Oyun | Hex dilimi | Formül | Çıktı aralığı |\n|---|---|---|---|\n| **Zar** | İlk 5 karakter | `(int % 1e6) \u002F 1e4` | 0.0000-99.9999 |\n| **Crash** | İlk 8 karakter | `floor((100 * 2^52 - h) \u002F (2^52 - h)) \u002F 100` | 1.00x çok yüksek |\n| **Yazı Tura** | İlk 2 karakter | `int % 2` (0 veya 1) | Yazı\u002FTura |\n| **Rulet** | İlk 2 karakter | `int % 37` (Avrupa) veya `% 38` (Amerika) | 0-36 veya 0-37 |\n| **Plinko** | İlk 4 karakter × n düşüş | `int % rows` her düşüş için | Çiviler arasında yol |\n| **Blackjack (HMAC-SHA512)** | Kart başına 4 karakter | `int % 52` değiştirme mantığıyla | Kart güverte pozisyonu |\n\nHer eşleme, çıktı aralığında tekdüze olacak şekilde tasarlanmıştır — tekdüze rastgele bir hex değeri üzerinde modüler aritmetik, tekdüzeliği korur. Bu nedenle PF oyunları, kasino bireysel turları manipüle etmeden dürüst RTP talep edebilir. *Eşleme formülü*, random sayının kendisi değil, kasinolar tarafından hedef ev avantajını karşılamak için ayarlanır.\n\n## Hex Dizesinden Oyun Sonucuna (Matematiğiyle)\n\nZar eşlemesi, ayrıştırmaya değerdir çünkü en açık durum — ve provably fair zar dağılımlarının doğru şekilde uygulandığında neden gerçekten tekdüze olduğunu gösterir.\n\n### Zar Eşlemesi (0-99.9999)\n\nStake'in zarı ilk 5 hex karakterini kullanır, bu da 20 bit = 1.048.576 olası değer verir. Eşleme şu şekildedir:\n\n$$\\text{dice} = \\frac{(\\text{int}(\\text{hex}_{0:5}) \\; \\text{mod} \\; 10^6)}{10^4}$$\n\nDilim 1.048.575'e ulaşabiliyorsa neden modulo 1.000.000? Modulo olmadan, 1.000.000-1.048.575 değerleri 100.0000-104.8575'e eşlenirdi, zar aralığının dışında. Modulo bunları geri katlıyor — ama küçük bir önyargı ekliyor (0-48.575 değerleri, 48.576-99.999'dan 2\u002F1 faktörü kadar daha olasıdır). Önyargıyı ortadan kaldırmak için, gerçek uygulamalar 1.000.000'dan büyük dilimleri *reddeder* ve sonraki hex bloğuna ilerler (karakter 5-10, sonra 10-15, vb.).\n\nDoğru yapılırsa, bu 0.0000-99.9999 arasında mükemmel bir tekdüze dağılım üretir. 10.000 zarı test, essansiyel olarak düz kaplama gösterir — aşağıdaki histogram, herhangi bir yasal PF zar uygulamasıyla göreceğiniz şeyi yeniden üretir.\n\n::chart-rng-distribution\n::\n\n### Crash Eşlemesi (Çarpan)\n\nCrash daha ilginçtir çünkü çıktı tekdüze değildir — dramatik oyun oynaması yaratmak ve hedef ev avantajını korumak için kasıtlı olarak eğrilmiştir.\n\n$$\\text{crash} = \\frac{\\left\\lfloor \\dfrac{100 \\cdot 2^{52} - h}{2^{52} - h} \\right\\rfloor}{100}$$\n\nBurada `h = int(hex[0:8])` (ilk 8 hex karakterden 32-bitlik bir tamsayı). Bir değişiklikle: eğer `h mod 33 == 0` ise, çarpan 1.00x'tir (anında patlar), bu da Stake'in ~%1 ev avantajını oluşturur. Diğer kasinolar farklı bölenler kullanır — 25 (Rainbet ~%4 avantaj), 50 (düşük avantaj varyantları), 100 (çok düşük avantaj).\n\nBu formülü bir milyon kez çalıştır ve ~%50 turun 2x'nin altında patladığı, ~%10 10x'i geçtiği ve belki %1 100x'e ulaştığı bir dağılım alırsın. Beklenen değer, bahis başına 0.99 olur — eksik olan %1, per-tur manipülasyona değil formül sabitlerindeki ev avantajıdır.\n\n### Kart Eşlemesi (Güverte Karıştırmaları)\n\nPF blackjack, poker ve baccarat, HMAC-SHA512 (daha uzun çıktı = hash çağrısı başına daha fazla kart) kullanarak sanal güverteler karıştırır. Fisher-Yates karıştırması standarttır:\n\n```\nfor i = 51 down to 1:\n  j = hmac_int(i) mod (i + 1)\n  swap(deck[i], deck[j])\n```\n\nHer `hmac_int(i)` çağrısı, 128 karakterlik SHA-512 çıktısının 4 hex karakterini tüketir. Bir turun kartları tamamen bir HMAC çağrısıyla belirlenir, bu nedenle sıklıkla doğrulama panelinde 13+ ondalık dönüştürülmüş tamsayılar görsün — her kart takası başına bir. Stake ve BC.Game'de belirli uygulama için bkz. [provably fair blackjack rehberi](\u002Fblog\u002Fprovably-fair-blackjack).\n## Geleneksel RNG vs Provably Fair RNG\n\nRNG düzeyinde özelde (daha geniş adalet yığınından değil), PF sertifikalı CSPRNG'nin kesin bir üst kümesidir.\n\n### Geleneksel RNG'ler Nerede Başarısız Olur\n\neCOGRA, iTech Labs ve GLI'den sertifikalı RNG'ler hepsi kriptografik olarak güvenlidir — matematik PF'nin kadar güçlüdür. Sorun primitifde değil, **çalışma zamanı güven modelinde**:\n\n- Sertifikalı RNG, casino'nun sunucusunda yaşar, bir kez denetlenir\n- Çıktısını asla doğrudan görmezsiniz, sadece oyunun son durumunu görürsünüz\n- Hiçbir şey casino'yu üretimde sertifikalı kodu çalıştırmaya zorlamamaz\n- Tur başına bir anlaşmazlık gerçek zamanda çözülemez\n\nPragmatic Play'in sertifikalı slot motoru sessizce Roobet'in üretiminde eCOGRA'nın test ettiğinden farklı bir RNG çalıştırırsa, hiçbir sertifika kontrolü bunu yakalamaz. Boşluk yalnızca tur başına açık doğrulama ile kapanır.\n\n### PF'nin Primitive'e Eklediği Şey\n\nProvably Fair aynı kriptografik temeli alır ve bunu açığa çıkarır. Özel olarak:\n\n- Sunucu seed hash'i bahsinizden *önce* yayımlanır (taahhüt)\n- İstemci seed'iniz HMAC girişine katkıda bulunur (birlikte imzalama)\n- Ham sunucu seed'i tur sonra açığa çıkarılır (açıklama)\n- Hesaplama deterministiktir ve herhangi bir tarayıcıda yeniden üretilebilir (doğrulama)\n\nBu tamamen farktır. Aynı HMAC, aynı CSPRNG matematiği — üzerine yerleştirilmiş dört ekstra şeffaflık adımı ile. Her iki modelin nasıl karşılaştırıldığı hakkında daha derinlemesine bir anlatım için bkz. [provably fair vs RNG certified](\u002Fblog\u002Fprovably-fair-vs-rng-certified).\n\n## Blockchain Randomness — Chainlink VRF ve Onchain Oyunlar\n\nPF RNG merkezileştirilmiş kripto casino'ları güzel bir şekilde kapsar. Peki ya tamamen merkezi olmayan uygulamalar — onchain piyangolar, NFT özellik ataması, onchain zar? İşte bu noktada farklı bir çözüm devreye girer.\n\n### Blockchainler Neden Güvenli Rastgele Sayılar Üretemez\n\nHer blockchain tasarımı gereği deterministiktir — her doğrulayıcı aynı girdilerden aynı durumu üretmelidir, aksi takdirde fikir birliği bozulur. Bu rastgeleliği yapısal olarak zorlaştırır:\n\n- `block.timestamp` madenci tarafından birkaç saniye içinde kontrol edilebilir\n- `block.blockhash` madenler tarafından blok tutarak manipüle edilebilir\n- `block.prevrandao` (Merge sonrası Ethereum) daha iyidir ancak yine de doğrulayıcılar tarafından sapma yapılabilir\n- Herhangi bir onchain entropi kaynağı, kullanılmadan *önce* kontrat tarafından okunabilir, amacı bozar\n\nBlockhash kullanan naif dApp piyangolar geçmişte boşaltılmıştır. 1 milyon dolarlık bir jackpot'u manipüle etme ekonomik teşviki bir madenciyi rasyonel olarak bir blok tutmaya yapabilir.\n\n### Chainlink VRF Nasıl Çözer\n\n**Chainlink VRF** (Verifiable Random Function) rastgeleliği çevrimdışı üretir ve bunu kriptografik bir kanıt ile onchain'e sunmuştur. Akış:\n\n1. Akıllı kontrat bir rastgele sayı talep eder\n2. Chainlink oracle değeri çevrimdışı olarak özel anahtarı + talep seed'i kullanarak üretir\n3. Kanıt, oracle'ın genel anahtarına karşı herkesin doğrulayabileceği bir [BLS imzasıdır](https:\u002F\u002Fdocs.chain.link\u002Fvrf)\n4. Hem değer hem de kanıt tek bir işlemde onchain'e geri gönderilir\n5. Kontrat değeri kullanmadan önce kanıtı doğrular\n\nKritik özellik: kanıt rastgele değeri oracle'ın özel anahtarına ve talep seed'ine bağladığı için, oracle uygun değerleri seçemez. Herhangi bir sapma matematiksel olarak tespit edilebilir.\n\n### VRF vs HMAC Tabanlı PF Ne Zaman Kullanılır\n\n| Kullanım durumu | En uygun | Neden |\n|---|---|---|\n| Merkezileştirilmiş zar\u002Fcrash | HMAC tabanlı PF | Daha basit, daha ucuz, aynı garantiler |\n| Onchain piyelgo | Chainlink VRF | Güvensiz, merkezi operatör yok |\n| NFT özellik ataması | Chainlink VRF | Manipüle edilemeyen nadirlik |\n| Merkezileştirilmiş blackjack | HMAC tabanlı PF | Chainlink VRF kartı başına çok pahalı |\n| Yüksek jackpot'lu DeFi oyunu | Chainlink VRF | Madenci manipülasyon riski çok yüksek |\n\n2026'da çoğu kripto casino HMAC tabanlı PF kullanmaya devam ediyor çünkü hızlı, ucuz ve zaten iyi anlaşılmış. VRF, onchain DeFi, NFT'ler ve tamamen merkezi olmayan oyunlaştırmanın parladığı yerdir. [Provably fair Bitcoin oyunları](\u002Fblog\u002Fprovably-fair-bitcoin-games) sıralamamız özel olarak her casino'nun hangi PF uygulamasını kullandığına göre filtreler.\nBu kavramları canlı bir kumarhanede stres testine tabi tutmak istiyorsanız [provably fair dizini](\u002Fcasino\u002Fprovably-fair) yatırım yapmadan inceleyebileceğiniz uygulamaları listeler — çoğu, server-seed hash'lerini açık bir uç noktada yayınlar.\n\n## Provably Fair RNG'ların Saldırı Yüzeyi\n\nKriptografik olarak mükemmel bir Provably Fair RNG bile kötü implementasyon ile kırılabilir. İşte matematiği geçenler.\n\n### Önyargılı Seed Pool Saldırısı\n\nEn gerçekçi saldırı — ve client seed rotasyonunun önemli olmasının bir nedeni.\n\nDürüst olmayan bir casino, binlerce aday sunucu seed'ini önceden üretir. Her biri için, yaygın client seed pattern'lerine karşı sonuçları hesaplarlar (varsayılan tarayıcı formatları, sık kullanılan kelimeler). Yalnızca tahmin edilebilir client seed'lerine karşı daha fazla kayıptan kazanç üretecek seed'leri yayınlarlar.\n\nHer yayınlanan seed, önceden taahhüt edilen hash'ine doğru şekilde hash'lenir. Commit-reveal matematiği geçer. Fakat mevcut seed'lerin havuzu, hiçbir oyuncu onları görmeden önceden elendi ve uzun vadeli house edge, belirtilen RTP'yi sessizce aşar.\n\n#### Rotasyon Bunu Neden Yendiği\n\nÖnyargılı seed saldırıları, casinonun server seed'i taahhüt etmeden *önce* gelecekteki client seed'inizi bilmesini gerektirir. Her 50-100 bahis'te client seed'inizi döndürün ve casinonun ön-hesaplaması işe yaramaz hale gelir — yeni client seed'i bilmeden sunucu seed'i taahhüt ettiler, bu nedenle sonuçları yönlendiremezler.\n\nBu, meşru casinoların anında rotasyon yapmanıza izin vermesinin nedenidir. Client seed rotasyonu reddeden (veya client seed'i kendi takvimlerinde otomatik olarak yeniden oluşturan, sizin takvimde değil) bir PF casino, saldırı yüzeyinin açık olduğunu işaret ediyor. [Client seed vs server seed](\u002Fblog\u002Fclient-seed-vs-server-seed) rehberi tam rotasyon iş akışını kapsar.\n\n### Zayıf Entropi Kaynakları\n\nSunucu seed üretimi tahmin edilebilir entropiye kullanılırsa, commit-reveal protokolü yine de çalışır ancak saldırgan seed'leri tahmin edebilir.\n\n#### Math.random Tuzağı\n\nJavaScript'in `Math.random()` doğrusal bir uyumlu üreteci varyasyonudur. Yaklaşık 700 ardışık çıktıyı gözlemledikten sonra, saldırgan tam iç durumu yeniden yapılandırabilir ve sonraki her çıktıyı tahmin edebilir. Bir PF casino sunucu seed üretimi için Math.random kullanırsa:\n\n1. Saldırgan 700+ tur oynar, her açıklanmış sunucu seed'i toplar\n2. Saldırgan PRNG durumunu yeniden yapılandırır\n3. Saldırgan taahhüt edilmeden *önce* sonraki hash'lenmiş sunucu seed'i tahmin eder\n4. Saldırgan sonucun tam bilgisini kullanarak bahis oynar\n\nÖnleme: casinolar `crypto.randomBytes(32)` (Node.js), `crypto.getRandomValues(new Uint8Array(32))` (tarayıcı) veya donanım RNG kullanmalıdır. Fark bir kod satırıdır ama güvenlik boşluğu tamtamdır.\n\n### İmplementasyon Uyarı İşaretleri\n\nBir Provably Fair RNG'nin güvenli olmadığını gösteren kısa kontrol listesi:\n\n- Client seed rotasyon düğmesi yok, veya rotasyon >5 saniye alıyor\n- Client seed casino tarafından kendi takvimlerinde otomatik olarak yeniden üretiliyor\n- Sunucu seed geçmişi algoritm veya dilim genişliğini göstermiyor\n- Doğrulama aracı yalnızca casinonun kendi web sitesinde çalışıyor (yerel olarak değil)\n- Yayınlanan hash algoritması yok — \"bir yerde SHA-256\" yeterli değil; tam formülü gerekli\n- Açıklanmış sunucu seed'ler herhangi bir turda önceden taahhüt edilen hash'leriyle eşleşmiyor\n\nBu işaretlerden herhangi biri, Provably Fair iddiasının normal bir RNG'nin üstüne pazarlama cilası olduğunu önerir. Hangi casinoların fiilen Provably Fair kodlarını yayınladığını yan yana görmek için [provably fair Bitcoin oyunları](\u002Fblog\u002Fprovably-fair-bitcoin-games) sıralamasına bakın.\n\n## Kendiniz Deneyin — İnteraktif Doğrulayıcı\n\nMatematik soyut olmaktan çıkıyor, onu kendi seed'lerinizde çalıştırır çalıştırmaz. Casinonuzun adalet panelinden herhangi dört değeri aşağıdaki doğrulayıcıya yapıştırın — her şey Web Crypto API aracılığıyla tarayıcınızda yürütülür, hiçbir veri sunucumuza gönderilmez.\n\n::inline-provably-fair-verifier\n::\n\nPratik bir ipucu: elinizde gerçek bir PF casino bahsi yoksa, doğrulanmış bir turu görmek için bu tek kullanımlık test değerlerini deneyin:\n\n- Sunucu seed hash: `bf3c0a9b0f4b3c8e8f4f0c5f0c4e8b7d8f3e2a1c9f6e3b7c4d5a8e2f9b1c6d3a` (yalnızca örnek — gerçek hash'lerle eşleşmez)\n- Sunucu seed: `f4a9c2e1b7d8e3c5a1b9f6d2e8c4a7b3e9d1c6a2b5f8e4c7a3b6e1d9c2a5b8f4`\n- Client seed: `demo-player`\n- Nonce: `1`\n\nSonuç, hash eşleşmesi artı yeniden yapılandırılmış dice ve crash sonuçlarında GEÇTI \u002F BAŞARISIZ kararını gösterir. Aynı mantık [Aviator provably fair hesaplayıcı](\u002Fblog\u002Fprovably-fair-aviator-calculator) adlı Spribe'ın crash tarzı oyununda çalışır ve tam doğrulayıcımız [provably fair merkezi](\u002Fcasino\u002Fprovably-fair) tüm ana akım PF casinoları kapsar. Bilinen bir RTP'ye karşı bahis boyutlandırmak için RNG'nin meşru olduğunu doğruladıktan sonra, [RTP hesaplayıcı](\u002Fcasino\u002Frtp-calculator), [house edge hesaplayıcı](\u002Fcasino\u002Fhouse-edge-calculator) ve [bankroll hesaplayıcı](\u002Fcasino\u002Fbankroll-calculator) ile eşleştirin.\n\n**Özetle:** matematik ancak kumarhane bahisten önce hash'i gerçekten yayınlarsa kurşun geçirmez olur. Her uygulamayı [provably fair merkezi](\u002Fcasino\u002Fprovably-fair) ile tekrar doğrulayın — her mekanın seed'i doğru kilitleyip kilitlemediğini ve hash'i nerede açtığını not ediyoruz.\n\n## SSS",[28,31,34,37,40,43,46,49,52,55,58,61,64,67,70],{"answer":29,"question":30},"Provably Fair RNG üç girdisi besler — kasyoyu server seed'i (SHA-256 hash'i arkasında gizli), senin client seed'in ve bir nonce — HMAC-SHA256'ya. Hex çıktısı daha sonra bir zar atışına, crash çarpanına veya kartla eşlenir. Server seed'in hash'i bahisten önce yayınlandığı için, kasino bunu sonradan değiştiremez ve tüm hesaplama belirleyicidir: üç girdiye sahip olan herkes tam olarak sonucu bir tarayıcıda yeniden oluşturabilir.","Provably Fair rastgele sayı üretimi gerçekte nasıl çalışır?",{"answer":32,"question":33},"Sözde kod: `hex = HMAC_SHA256(server_seed, client_seed + ':' + nonce); dice = (parseInt(hex.slice(0,10), 16) % 1_000_000) \u002F 10_000;`. HMAC çağrısı server seed'i anahtar olarak ve client-seed+nonce dizesini mesaj olarak kullanır. İlk 10 hex karakterini kes, ondalığa çevir, 1.000.000'a modulo al, 10.000'e böl — 0-99.9999 arası zar atışı elde edersin. Farklı oyunlar (crash, kartlar) yalnızca eşlemeyi değiştir, asla HMAC'ı değiştirme.","Provably Fair oyun için rastgele sayı üretimi sözde kodu nedir?",{"answer":35,"question":36},"Hayır — server seed olmadan, kasino onu döndürene kadar gizli kalır. HMAC-SHA256 tek yönlü bir fonksiyondur: çıktıyı ve mesajı bile bilsen, anahtarı gerçekçi bir zaman içinde kurtaramazsın. Sonuçları öngörebilmenin tek yolu, kasino aktif server seed'i raund bitiminden önce sızıtarsa, bu hemen fark edilir çünkü ortaya çıkan seed önceden taahhüt edilen hash'e uymaz. 2026'da SHA-256 üzerinde bunu değiştirecek bilinen pratik saldırı yoktur.","Provably Fair tahmin edilebilir mi?",{"answer":38,"question":39},"Algoritmanın kendisi kırılamaz — SHA-256 ve HMAC-SHA256'nın pratik preimage veya anahtar kurtarma saldırıları yoktur. Gerçekçi saldırı yüzeyleri hep uygulama hatalarıdır: kasino server seed üretimi için zayıf entropi kullanırsa (JavaScript'in Math.random gibi), kasino seed döndürmeyi reddederse veya kasino yaygın client seed'ler için kaybedilen sonuçları ön hesaplarsa. Hiçbiri matematiksel olarak kırılmaz — kurulumu kırarlar. Her 50-100 bet'te client seed'inizi döndürün ve tüm bilinen saldırıları yenin.","Provably Fair algoritmasını nasıl kırarım?",{"answer":41,"question":42},"HMAC-SHA256 teknik olarak kendi başına bir CSPRNG değildir, ama kriptografik olarak rastgele bir server seed ile ön koşulluyken bir gibi davranır. Çıktı, anahtarı bilmeyen biri için rastgeledan ayırt edilemez, bu da provably fair hazır oyunların gerektirdiği tam özelliktir. NIST SP 800-90A Rev 1, HMAC_DRBG'yi (HMAC-tabanlı belirleyici rastgele bit üreteci) tanımlar, birçok PF kasino bunu temel sayı üreteci olarak uygular.","HMAC-SHA256 gerçekten bir CSPRNG mi?",{"answer":44,"question":45},"Excel buna ihtiyacın yok — tarayıcı konsolunda JavaScript kullan. Döngü çalıştır: `for (let i=0; i\u003C10000; i++) console.log(await pfDice(serverSeed, clientSeed, i))` kasyonun kullandığı aynı HMAC-SHA256 + zar eşlemesi kullanarak. Histogramı çiz — 0-99.99 arasında görünür yanlılık olmaksızın uniform olmalı. Excel'in `RAND()` kriptografik değildir ve PF kasyonun çıktısıyla eşleşmeyecek; yalnızca dağılım şeklini kontrol etmek için kullan, tam değerleri değil.","Excel'de test için 10.000 rastgele sayı nasıl oluştururum?",{"answer":47,"question":48},"HMAC bir anahtar hash fonksiyondur — server seed'in çıktıyı yeniden oluşturmak için bilinmesi gereken gizli bir 'anahtar' olarak hareket etmesini sağlar. Düz SHA-256 bu anahtar özelliğine sahip değildir: SHA-256(server_seed + client_seed + nonce) hala belirleyici olarak çalışır, ama uzunluk-uzantı saldırılarına karşı savunmasızdır; burada kötü niyetli bir taraf anahtarı bilmeden daha uzun bir mesajla yeni bir hash hesaplayabilir. HMAC, SHA-256'yı uzunluk uzantısını yenen bir yapıyla sarmalanır, bu yüzden her modern PF kasino HMAC'ı kullanır.","Neden düz SHA-256 yerine HMAC kullanılır?",{"answer":50,"question":51},"Doğal olarak değil. Blokzincirler belirleyicidir — her doğrulayıcı aynı girdi'den aynı sonucu üretmelidir, bu nedenle entropi'de yerleşik kaynak yoktur. Bir dApp blok hash'i, zaman damgasını veya prevrandao'yu rastgelelik olarak kullanmaya çalışırsa, madenciler bunları manipüle edebilir. Çözüm, çevrimdışı sayı üretilen ve doğrulanabilir kriptografik kanıtlı oracle-teslim rastgeleliği (Chainlink VRF gibi) ve her ikisini zincire gönderen şeydir. Zincir üstü NFT saçılması, piyangolar ve bazı kripto kasinolar için VRF, saf blockhash şemalarının yerini büyük ölçüde almıştır.","Blokzincir Provably Fair rastgele sayılar üretebilir mi?",{"answer":53,"question":54},"PRNG (sözde rastgele sayı üreteci) belirleyicidir ama güvenli değildir — yeterli çıktı verilen tahmin edilebilir (ör. Math.random). CSPRNG (kriptografik olarak güvenli PRNG) belirleyicidir *ve* önceki çıktılar verilen bile tahmin edilemez, HMAC-DRBG, AES-CTR veya ChaCha20 gibi kriptografik ilkelleri kullanır. PF RNG, bir taahhüt-reveal protokolü içine sarılmış bir CSPRNG'dir: kasino, bahis yapmadan önce seed hash'i yayınlar, böylece raund sonrasında kasyonun seed'i değiştirmediğini doğrulayabilirsin. PF RNG = CSPRNG + şeffaflık.","PRNG, CSPRNG ve PF RNG arasındaki fark nedir?",{"answer":56,"question":57},"Nadiren. Çoğu büyük slot stüdyosu (Pragmatic Play, NetEnt, Play'n GO, Hacksaw) eCOGRA veya iTech Labs tarafından denetlenen proprietary CSPRNG'leri kullanır — Provably Fair değil. Mekanikler çok karmaşıktır (basamaklı makaralar, bonus tetikleyicileri, özellik alımları) tek bir HMAC çıktısına temiz bir şekilde eşlenmesi için. Provably Fair slotlar var — BGaming, Spribe ve Turbo bazı başlıkları PF ile gönder — ama daha basit tasarımlardir. İki güven modeli'nin daha derin karşılaştırması için, provably fair vs RNG sertifikalı dökümü görün.","Provably Fair slot makineleri için çalışır mı?",{"answer":59,"question":60},"Stake tarzı PF zar, HMAC-SHA256 çıktısını alır, ilk 5 hex karakterini (bazen 8-10) kes, ondalığa çevir, sonra 1.000.000'a modulo al ve 0-99.9999 değeri üretmek için 10.000'e böl. Sonuç 99.9999'u aşarsa (istatistiksel nadirlik), dilim hex dizesinin sonraki parçasına ilerler. Bu hex kesilmesinden yanlılık olmaksızın dağılımı uniform tutar. Doğrulama araçlarının her kasino için tam dilim genişliği ve bölen ihtiyaç duyması, genel doğrulayıcı bazen kasyonun kullanıcı arayüzünden biraz farklı sayı göstermesinin nedenidir.","PF zar eşlemesi nasıl çalışır?",{"answer":62,"question":63},"Crash farklı bir formül kullanır. HMAC çıktısının ilk 8 hex karakteri bir tam sayıya `h` dönüştürülür. `h` belirli bir ev kenarı faktörü (Stake'de 33) tarafından bölünebilir ise, crash çarpanı 1.00'dır (anlık patla). Aksi takdirde çarpan `floor((100 * 2^52 - h) \u002F (2^52 - h)) \u002F 100`. Bu, düşük çarpanlara eğilimli bir dağılım (çoğu raund 2x'den önce patlar) üretir ama sabırlı bahisleri ödüllendirir uzun sağ kuyruk. EV, ev kenarı faktörü %1 ise ~%99.","PF crash eşlemesi nasıl çalışır?",{"answer":65,"question":66},"Tüm protokol çöker. JavaScript'deki Math.random sistem saatiyle tohumlanır ve tahmin edilebilir çıktı üretir — yaklaşık server saatini bilen oyuncu, tüm gelecek server seed'lerini önceden hesaplayabilir ve her bahisi kazanabilir. Math.random, zaman tabanlı seed'ler veya tahmin edilebilir sayaçlar kullanan herhangi bir PF kasino (non-kriptografik entropi) etkili bir şekilde denetlenmemiştir, seed hash'leri görüntülese bile. İtibar için kasinolar crypto.randomBytes (Node.js) veya crypto.getRandomValues (tarayıcılar) kullanırlar OS entropi havuzlarıyla desteklenir.","Kasino server seed'i için Math.random kullanırsa ne olur?",{"answer":68,"question":69},"Hash eşleşme kontrolü için evet — SHA-256 evrenseldir. Oyun sonucu için kısmen. Çoğu PF zar sitesi aynı HMAC-SHA256 + ilk-5-hex dilimi formülü kullanır, böylece genel zar doğrulayıcı Stake, Primedice, Rainbet ve çoğu Original'ı doğru yeniden üretir. Crash ve blackjack eşlemeleri kasino tarafından farklılık gösterir ve bazıları kart oyunları için HMAC-SHA512 yerine SHA-256 kullanır. Hash eşleşirse ama sonuç sayısı farklıysa, kasyonun resmi doğrulayıcısına veya adalet dokümanlarına geç.","Tüm Provably Fair kasinolar için bir doğrulayıcı kullanabilir miyim?",{"answer":71,"question":72},"Görünür gelecek için evet. SHA-256, Grover'ın algoritmasıyla kırılması için kabaca 2^128 quantum işlemi gerektirirdi — yine de hesaplamalı olarak uygulanmaz. HMAC-SHA256 üstüne başka bir katman ekler. NIST post-quantum standardizasyon çabası SHA-256 veya HMAC'ı hedeflememişdir çünkü teorik bir ileri adım olmaksızın large-scale quantum bilgisayarlara karşı bile güvenli kalırlar. Genel-anahtar kriptografisi (RSA, ECDSA) quantum saldırılarına karşı savunmasız olandır, simetrik hash'ler değil. Provably Fair RNG, 2030'lar ve ötesine güvenli kalacaktır.","Provably Fair RNG quantum bilgisayarlarına karşı uzun vadede güvenli mi?",[74,75,76,77],"ru","de","tr","en",{"data":79,"body":80},{},{"type":81,"children":82},"root",[83,92,115,120,133,139,144,286,291,561,597,604,669,675,693,716,730,736,748,754,766,778,783,798,804,809,851,872,878,898,1032,1059,1065,1070,1076,1081,1292,1297,1309,1319,1332,1336,1342,1347,1355,1385,1393,1402,1410,1427,1435,1444,1452,1457,1465,1485,1498,1504,1509,1736,1748,1754,1759,1765,1770,2272,2284,2289,2293,2299,2304,2827,2847,2852,2858,2863,2872,2892,2898,2903,2909,2920,2943,2948,2954,2959,2989,3000,3006,3011,3017,3022,3069,3074,3080,3090,3126,3131,3137,3250,3271,3277,3282,3288,3293,3298,3303,3310,3321,3334,3340,3345,3351,3363,3392,3413,3419,3424,3457,3469,3475,3480,3484,3489,3537,3581,3597],{"type":84,"tag":85,"props":86,"children":88},"element","h2",{"id":87},"provably-fair-rastgele-sayı-üretimi-açıklandı-2026",[89],{"type":90,"value":91},"text","Provably Fair Rastgele Sayı Üretimi Açıklandı (2026)",{"type":84,"tag":93,"props":94,"children":95},"p",{},[96,98,105,107,113],{"type":90,"value":97},"Az önce bir kripto zar oyununda 0.5 BTC bahis koydunuz. Ekran ",{"type":84,"tag":99,"props":100,"children":102},"code",{"className":101},[],[103],{"type":90,"value":104},"37.42",{"type":90,"value":106}," gösteriyor ve kaybediyorsunuz. Adalet panelini açıyorsunuz ve sunucu seed'i hash'ı, istemci seed'iniz ve nonce gösteriyor — hiçbir şeyin manipüle edilmediğini \"kanıtlayan\" dört değer. Peki bu dört değer nasıl ",{"type":84,"tag":108,"props":109,"children":110},"em",{},[111],{"type":90,"value":112},"37.42'ye",{"type":90,"value":114}," dönüştü? Rastgele hex karakterleri gerçekte nasıl belirli bir zar sonucuna çevirdi?",{"type":84,"tag":93,"props":116,"children":117},{},[118],{"type":90,"value":119},"İşte burada önemli: tüm \"Provably Fair\" vaadi bir belirli işlem üzerine kurulu — kriptografik hash çıktısını oyun sonuçlarına dönüştürmek. Bu dönüştürmenin nasıl çalıştığını kaçırırsanız Provably Fair büyüyü andıran pazarlama gibi hissettiriyor. Bunu anlarsanız herhangi bir PF casino'yu yaklaşık 60 saniyede denetleyebilir, sahte uygulamaları bir bakışta görebilir ve protokolün tam olarak hangi saldırılara karşı dirençli olduğunu bilebilirsiniz.",{"type":84,"tag":93,"props":121,"children":122},{},[123,125,131],{"type":90,"value":124},"Bu rehber size ",{"type":84,"tag":126,"props":127,"children":128},"strong",{},[129],{"type":90,"value":130},"Provably Fair rastgele sayı üretimi",{"type":90,"value":132},"'ni bir geliştirici 2026'da nasıl yapacaksa öyle gösteriyor — kapının altındaki CSPRNG ilkel işlevleri, seed'leri sayılara dönüştüren HMAC-SHA256 formülü, zar, crash ve kartlar için farklı eşleme şemaları, ve matematik kusursuz olsa bile ayakta kalan saldırı yüzeyi. Sonunda PF RNG'lerin neden kriptografik olarak kırılamaz olduğunu, hangi uygulama hatalarının onları mahvettiğini ve blockchain rastgeleliğinin (Chainlink VRF) ne zaman devreye girdiğini bileceksiniz.",{"type":84,"tag":85,"props":134,"children":136},{"id":135},"özet-pf-rngler-gerçekte-sayıları-nasıl-üretir",[137],{"type":90,"value":138},"Özet — PF RNG'ler Gerçekte Sayıları Nasıl Üretir",{"type":84,"tag":93,"props":140,"children":141},{},[142],{"type":90,"value":143},"Her Provably Fair oyun aynı çekirdek RNG ilkelini kullanır, yalnızca çıktı eşlemesi değişir. İşte 60 saniyelik versiyon.",{"type":84,"tag":145,"props":146,"children":147},"table",{},[148,171],{"type":84,"tag":149,"props":150,"children":151},"thead",{},[152],{"type":84,"tag":76,"props":153,"children":154},{},[155,161,166],{"type":84,"tag":156,"props":157,"children":158},"th",{},[159],{"type":90,"value":160},"Adım",{"type":84,"tag":156,"props":162,"children":163},{},[164],{"type":90,"value":165},"Ne olur",{"type":84,"tag":156,"props":167,"children":168},{},[169],{"type":90,"value":170},"Kim kontrol eder",{"type":84,"tag":172,"props":173,"children":174},"tbody",{},[175,194,211,229,251,268],{"type":84,"tag":76,"props":176,"children":177},{},[178,184,189],{"type":84,"tag":179,"props":180,"children":181},"td",{},[182],{"type":90,"value":183},"1. Sunucu seed'i oluştur",{"type":84,"tag":179,"props":185,"children":186},{},[187],{"type":90,"value":188},"Casino'nun CSPRNG'si 32-64 byte rastgele string üretir",{"type":84,"tag":179,"props":190,"children":191},{},[192],{"type":90,"value":193},"Casino",{"type":84,"tag":76,"props":195,"children":196},{},[197,202,207],{"type":84,"tag":179,"props":198,"children":199},{},[200],{"type":90,"value":201},"2. Hash'le ve yayınla",{"type":84,"tag":179,"props":203,"children":204},{},[205],{"type":90,"value":206},"SHA-256(server_seed) round başlamadan önce sana gösterilir",{"type":84,"tag":179,"props":208,"children":209},{},[210],{"type":90,"value":193},{"type":84,"tag":76,"props":212,"children":213},{},[214,219,224],{"type":84,"tag":179,"props":215,"children":216},{},[217],{"type":90,"value":218},"3. İstemci seed'i + nonce topla",{"type":84,"tag":179,"props":220,"children":221},{},[222],{"type":90,"value":223},"Tarayıcın bir istemci seed'i ekler; nonce round sayacıdır",{"type":84,"tag":179,"props":225,"children":226},{},[227],{"type":90,"value":228},"Sen + protokol",{"type":84,"tag":76,"props":230,"children":231},{},[232,237,246],{"type":84,"tag":179,"props":233,"children":234},{},[235],{"type":90,"value":236},"4. HMAC hesapla",{"type":84,"tag":179,"props":238,"children":239},{},[240],{"type":84,"tag":99,"props":241,"children":243},{"className":242},[],[244],{"type":90,"value":245},"hex = HMAC-SHA256(server_seed, client_seed : nonce)",{"type":84,"tag":179,"props":247,"children":248},{},[249],{"type":90,"value":250},"Deterministic",{"type":84,"tag":76,"props":252,"children":253},{},[254,259,264],{"type":84,"tag":179,"props":255,"children":256},{},[257],{"type":90,"value":258},"5. Hex'i sonuca eşle",{"type":84,"tag":179,"props":260,"children":261},{},[262],{"type":90,"value":263},"Dilimleme + modulo + bölme = zar sonucu, crash çarpanı veya kart",{"type":84,"tag":179,"props":265,"children":266},{},[267],{"type":90,"value":250},{"type":84,"tag":76,"props":269,"children":270},{},[271,276,281],{"type":84,"tag":179,"props":272,"children":273},{},[274],{"type":90,"value":275},"6. Ortaya çık ve doğrula",{"type":84,"tag":179,"props":277,"children":278},{},[279],{"type":90,"value":280},"Rotasyondan sonra ham seed açıklanır; herkes adım 4'ü tekrar çalıştırabilir",{"type":84,"tag":179,"props":282,"children":283},{},[284],{"type":90,"value":285},"Sen",{"type":84,"tag":93,"props":287,"children":288},{},[289],{"type":90,"value":290},"Matematik şu:",{"type":84,"tag":93,"props":292,"children":293},{},[294],{"type":84,"tag":295,"props":296,"children":299},"span",{"className":297},[298],"katex",[300,399],{"type":84,"tag":295,"props":301,"children":304},{"className":302},[303],"katex-mathml",[305],{"type":84,"tag":306,"props":307,"children":309},"math",{"xmlns":308},"http:\u002F\u002Fwww.w3.org\u002F1998\u002FMath\u002FMathML",[310],{"type":84,"tag":311,"props":312,"children":313},"semantics",{},[314,392],{"type":84,"tag":315,"props":316,"children":317},"mrow",{},[318,324,330,336,344,349,353,358,363,368,373,378,383,388],{"type":84,"tag":319,"props":320,"children":321},"mtext",{},[322],{"type":90,"value":323},"outcome",{"type":84,"tag":325,"props":326,"children":327},"mo",{},[328],{"type":90,"value":329},"=",{"type":84,"tag":331,"props":332,"children":333},"mi",{},[334],{"type":90,"value":335},"f",{"type":84,"tag":325,"props":337,"children":341},{"fence":338,"stretchy":339,"minsize":340,"maxsize":340},"false","true","1.2em",[342],{"type":90,"value":343},"(",{"type":84,"tag":319,"props":345,"children":346},{},[347],{"type":90,"value":348},"HMAC-SHA256",{"type":84,"tag":325,"props":350,"children":351},{"stretchy":338},[352],{"type":90,"value":343},{"type":84,"tag":319,"props":354,"children":355},{},[356],{"type":90,"value":357},"server_seed",{"type":84,"tag":325,"props":359,"children":360},{"separator":339},[361],{"type":90,"value":362},",",{"type":84,"tag":319,"props":364,"children":365},{},[366],{"type":90,"value":367},"  ",{"type":84,"tag":319,"props":369,"children":370},{},[371],{"type":90,"value":372},"client_seed",{"type":84,"tag":325,"props":374,"children":375},{},[376],{"type":90,"value":377},":",{"type":84,"tag":319,"props":379,"children":380},{},[381],{"type":90,"value":382},"nonce",{"type":84,"tag":325,"props":384,"children":385},{"stretchy":338},[386],{"type":90,"value":387},")",{"type":84,"tag":325,"props":389,"children":390},{"fence":338,"stretchy":339,"minsize":340,"maxsize":340},[391],{"type":90,"value":387},{"type":84,"tag":393,"props":394,"children":396},"annotation",{"encoding":395},"application\u002Fx-tex",[397],{"type":90,"value":398},"\\text{outcome} = f\\big(\\text{HMAC-SHA256}(\\text{server\\_seed},\\; \\text{client\\_seed} : \\text{nonce})\\big)",{"type":84,"tag":295,"props":400,"children":403},{"className":401,"ariaHidden":339},[402],"katex-html",[404,441,529],{"type":84,"tag":295,"props":405,"children":408},{"className":406},[407],"base",[409,415,425,431,437],{"type":84,"tag":295,"props":410,"children":414},{"className":411,"style":413},[412],"strut","height:0.6151em;",[],{"type":84,"tag":295,"props":416,"children":419},{"className":417},[418,90],"mord",[420],{"type":84,"tag":295,"props":421,"children":423},{"className":422},[418],[424],{"type":90,"value":323},{"type":84,"tag":295,"props":426,"children":430},{"className":427,"style":429},[428],"mspace","margin-right:0.2778em;",[],{"type":84,"tag":295,"props":432,"children":435},{"className":433},[434],"mrel",[436],{"type":90,"value":329},{"type":84,"tag":295,"props":438,"children":440},{"className":439,"style":429},[428],[],{"type":84,"tag":295,"props":442,"children":444},{"className":443},[407],[445,450,457,468,477,483,492,498,502,507,516,520,525],{"type":84,"tag":295,"props":446,"children":449},{"className":447,"style":448},[412],"height:1.2em;vertical-align:-0.35em;",[],{"type":84,"tag":295,"props":451,"children":455},{"className":452,"style":454},[418,453],"mathnormal","margin-right:0.1076em;",[456],{"type":90,"value":335},{"type":84,"tag":295,"props":458,"children":460},{"className":459},[418],[461],{"type":84,"tag":295,"props":462,"children":466},{"className":463},[464,465],"delimsizing","size1",[467],{"type":90,"value":343},{"type":84,"tag":295,"props":469,"children":471},{"className":470},[418,90],[472],{"type":84,"tag":295,"props":473,"children":475},{"className":474},[418],[476],{"type":90,"value":348},{"type":84,"tag":295,"props":478,"children":481},{"className":479},[480],"mopen",[482],{"type":90,"value":343},{"type":84,"tag":295,"props":484,"children":486},{"className":485},[418,90],[487],{"type":84,"tag":295,"props":488,"children":490},{"className":489},[418],[491],{"type":90,"value":357},{"type":84,"tag":295,"props":493,"children":496},{"className":494},[495],"mpunct",[497],{"type":90,"value":362},{"type":84,"tag":295,"props":499,"children":501},{"className":500,"style":429},[428],[],{"type":84,"tag":295,"props":503,"children":506},{"className":504,"style":505},[428],"margin-right:0.1667em;",[],{"type":84,"tag":295,"props":508,"children":510},{"className":509},[418,90],[511],{"type":84,"tag":295,"props":512,"children":514},{"className":513},[418],[515],{"type":90,"value":372},{"type":84,"tag":295,"props":517,"children":519},{"className":518,"style":429},[428],[],{"type":84,"tag":295,"props":521,"children":523},{"className":522},[434],[524],{"type":90,"value":377},{"type":84,"tag":295,"props":526,"children":528},{"className":527,"style":429},[428],[],{"type":84,"tag":295,"props":530,"children":532},{"className":531},[407],[533,537,546,552],{"type":84,"tag":295,"props":534,"children":536},{"className":535,"style":448},[412],[],{"type":84,"tag":295,"props":538,"children":540},{"className":539},[418,90],[541],{"type":84,"tag":295,"props":542,"children":544},{"className":543},[418],[545],{"type":90,"value":382},{"type":84,"tag":295,"props":547,"children":550},{"className":548},[549],"mclose",[551],{"type":90,"value":387},{"type":84,"tag":295,"props":553,"children":555},{"className":554},[418],[556],{"type":84,"tag":295,"props":557,"children":559},{"className":558},[464,465],[560],{"type":90,"value":387},{"type":84,"tag":93,"props":562,"children":563},{},[564,566,571,573,579,581,587,589,595],{"type":90,"value":565},"Burada ",{"type":84,"tag":99,"props":567,"children":569},{"className":568},[],[570],{"type":90,"value":335},{"type":90,"value":572}," oyuna özel eşleme fonksiyonu — ",{"type":84,"tag":99,"props":574,"children":576},{"className":575},[],[577],{"type":90,"value":578},"f_dice",{"type":90,"value":580}," 0-99.99 döndürür, ",{"type":84,"tag":99,"props":582,"children":584},{"className":583},[],[585],{"type":90,"value":586},"f_crash",{"type":90,"value":588}," çarpan döndürür, ",{"type":84,"tag":99,"props":590,"children":592},{"className":591},[],[593],{"type":90,"value":594},"f_cards",{"type":90,"value":596}," karıştırılmış deste pozisyonlarını döndürür. HMAC parçası dünyadaki her PF casino'da aynıdır.",{"type":84,"tag":598,"props":599,"children":601},"h3",{"id":600},"bilmeniz-gereken-kilit-sayılar",[602],{"type":90,"value":603},"Bilmeniz Gereken Kilit Sayılar",{"type":84,"tag":605,"props":606,"children":607},"ul",{},[608,619,629,639,649,659],{"type":84,"tag":609,"props":610,"children":611},"li",{},[612,617],{"type":84,"tag":126,"props":613,"children":614},{},[615],{"type":90,"value":616},"3 giriş",{"type":90,"value":618},": sunucu seed'i + istemci seed'i + nonce her sonucu üretir",{"type":84,"tag":609,"props":620,"children":621},{},[622,627],{"type":84,"tag":126,"props":623,"children":624},{},[625],{"type":90,"value":626},"64 hex karakter",{"type":90,"value":628},": SHA-256 \u002F HMAC-SHA256 çıktısının uzunluğu",{"type":84,"tag":609,"props":630,"children":631},{},[632,637],{"type":84,"tag":126,"props":633,"children":634},{},[635],{"type":90,"value":636},"128 hex karakter",{"type":90,"value":638},": HMAC-SHA512'nin uzunluğu (BC.Game ve PF blackjack tarafından kullanılır)",{"type":84,"tag":609,"props":640,"children":641},{},[642,647],{"type":84,"tag":126,"props":643,"children":644},{},[645],{"type":90,"value":646},"~2^256 işlem",{"type":90,"value":648},": HMAC-SHA256'yı kırmak için gerekli — astronomik olarak ulaşılamaz",{"type":84,"tag":609,"props":650,"children":651},{},[652,657],{"type":84,"tag":126,"props":653,"children":654},{},[655],{"type":90,"value":656},"0.00-99.99",{"type":90,"value":658},": eşlemeden sonra standart zar aralığı",{"type":84,"tag":609,"props":660,"children":661},{},[662,667],{"type":84,"tag":126,"props":663,"children":664},{},[665],{"type":90,"value":666},"1.00x to ∞",{"type":90,"value":668},": standart crash çarpanı aralığı (pratikte float kesinliği tarafından sınırlı)",{"type":84,"tag":598,"props":670,"children":672},{"id":671},"adil-kârlı",[673],{"type":90,"value":674},"Adil ≠ Kârlı",{"type":84,"tag":93,"props":676,"children":677},{},[678,680,685,687,692],{"type":90,"value":679},"RNG'nin Provably Fair olması sana casino'nun bahis koyduktan ",{"type":84,"tag":108,"props":681,"children":682},{},[683],{"type":90,"value":684},"sonra",{"type":90,"value":686}," sonucu manipüle edemeyeceğini söyler. Bu size şunları ",{"type":84,"tag":126,"props":688,"children":689},{},[690],{"type":90,"value":691},"söylemez",{"type":90,"value":377},{"type":84,"tag":605,"props":694,"children":695},{},[696,701,706,711],{"type":84,"tag":609,"props":697,"children":698},{},[699],{"type":90,"value":700},"Ev avantajının makul olup olmadığı (RTP'yi ayrı kontrol et)",{"type":84,"tag":609,"props":702,"children":703},{},[704],{"type":90,"value":705},"Casino'nun çekilişleri onaylatıp onaylamayacağı",{"type":84,"tag":609,"props":707,"children":708},{},[709],{"type":90,"value":710},"Bonuslar ve bahis terimlerinin dürüst olup olmadığı",{"type":84,"tag":609,"props":712,"children":713},{},[714],{"type":90,"value":715},"Sunucu seed havuzu taahhüt edilmeden önce tarafsız olup olmadığı",{"type":84,"tag":93,"props":717,"children":718},{},[719,721,728],{"type":90,"value":720},"Tüm saldırı yüzeyini aşağıda ele alacağız. Geleneksel sertifikalandırma ile daha geniş bir karşılaştırma için bkz. ",{"type":84,"tag":722,"props":723,"children":725},"a",{"href":724},"\u002Fblog\u002Fprovably-fair-vs-rng-certified",[726],{"type":90,"value":727},"Provably Fair vs RNG Sertifikalı",{"type":90,"value":729}," rehberi.",{"type":84,"tag":85,"props":731,"children":733},{"id":732},"bir-rngyi-provably-fair-yapan-nedir",[734],{"type":90,"value":735},"Bir RNG'yi \"Provably Fair\" Yapan Nedir?",{"type":84,"tag":93,"props":737,"children":738},{},[739,741,746],{"type":90,"value":740},"Formüle geçmeden önce ",{"type":84,"tag":108,"props":742,"children":743},{},[744],{"type":90,"value":745},"Provably Fair",{"type":90,"value":747},"'i daha geniş RNG dünyasından ayırmak yardımcı olur. PF, CSPRNGs'nin yerine geçen bir değil, belirli bir yükseltmedir.",{"type":84,"tag":598,"props":749,"children":751},{"id":750},"taahhüt-ortaya-çıkar-i̇lkeli",[752],{"type":90,"value":753},"Taahhüt-Ortaya Çıkar İlkeli",{"type":84,"tag":93,"props":755,"children":756},{},[757,759,764],{"type":90,"value":758},"Provably Fair'in arkasındaki tüm numara ",{"type":84,"tag":126,"props":760,"children":761},{},[762],{"type":90,"value":763},"taahhüt-ortaya çıkar",{"type":90,"value":765}," adlı kriptografik bir desendir.",{"type":84,"tag":93,"props":767,"children":768},{},[769,771,776],{"type":90,"value":770},"Round başlamadan önce casino SHA-256 hash'ini yayınlayarak belirli bir sunucu seed'ine taahhüt eder. Hash, seed'i ortaya çıkarmadan onu benzersiz olarak tanımlayan 64 karakterlik bir parmak izi. SHA-256'nın pratik çarpışma saldırıları olmadığı için casino daha sonra aynı hash'i üreten ",{"type":84,"tag":108,"props":772,"children":773},{},[774],{"type":90,"value":775},"farklı",{"type":90,"value":777}," bir seed bulamaz — kilitlenirler.",{"type":84,"tag":93,"props":779,"children":780},{},[781],{"type":90,"value":782},"Round sonrasında (veya seed'lerinizi döndürdükten sonra) ham sunucu seed açıklanır. Siz bunu kendiniz hash'lersiniz. Hesapladığınız hash, round başlamadan önce yayınlananla eşleşiyorsa casino seed'leri turda değiştirilmediğini kanıtladı. İstemci seed'iniz (önceden bilmedikleri) ile birleştirildiğinde bu, turda sonuç manipülasyonunu kriptografik olarak imkânsız hale getirir.",{"type":84,"tag":93,"props":784,"children":785},{},[786,788,796],{"type":90,"value":787},"Taahhüt-ortaya çıkar katmanı PF'yi diğer CSPRNG'den ayıran şeydir. Geleneksel RNG-sertifikalı bir casino de CSPRNG kullanır — ancak hiçbir şey ",{"type":84,"tag":722,"props":789,"children":793},{"href":790,"rel":791},"https:\u002F\u002Fwww.itechlabs.com",[792],"nofollow",[794],{"type":90,"value":795},"iTech Labs denetimlerinin yalnızca istatistiksel özellikleri kanıtladığı",{"type":90,"value":797}," için produksiyonda onu değiştirilmesini engellemez.",{"type":84,"tag":598,"props":799,"children":801},{"id":800},"hmacı-rng-i̇lkeli-olarak",[802],{"type":90,"value":803},"HMAC'ı RNG İlkeli Olarak",{"type":84,"tag":93,"props":805,"children":806},{},[807],{"type":90,"value":808},"HMAC-SHA256, her PF turda gerçek rastgele sayı üretecidir. İşte neden çalışır:",{"type":84,"tag":605,"props":810,"children":811},{},[812,821,831,841],{"type":84,"tag":609,"props":813,"children":814},{},[815,819],{"type":84,"tag":126,"props":816,"children":817},{},[818],{"type":90,"value":250},{"type":90,"value":820},": Aynı girdiler verildiğinde HMAC her zaman aynı çıktıyı üretir. Bu seni doğrulamayı sağlayan şeydir.",{"type":84,"tag":609,"props":822,"children":823},{},[824,829],{"type":84,"tag":126,"props":825,"children":826},{},[827],{"type":90,"value":828},"Tek yön",{"type":90,"value":830},": Çıktı verildiğinde sunucu seed'ini (anahtarı) kurtaramazsın. Bu sonucu tahmin edilemez yapan şeydir.",{"type":84,"tag":609,"props":832,"children":833},{},[834,839],{"type":84,"tag":126,"props":835,"children":836},{},[837],{"type":90,"value":838},"Düzgün",{"type":90,"value":840},": HMAC çıktıları rastgele 256-bit string'lerden ayırt edilemez. Bu oyunu tarafsız yapan şeydir.",{"type":84,"tag":609,"props":842,"children":843},{},[844,849],{"type":84,"tag":126,"props":845,"children":846},{},[847],{"type":90,"value":848},"Anahtarlı",{"type":90,"value":850},": Sunucu seed çıktıyı tekrar üretmek için bilinmesi gereken bir sır olarak hareket eder. Bu manipülasyonu önleyen şeydir.",{"type":84,"tag":93,"props":852,"children":853},{},[854,856,863,865,870],{"type":90,"value":855},"Teknik olarak HMAC-SHA256 kendi başına bir CSPRNG değildir — bu bir mesaj kimlik doğrulama kodudur. Fakat anahtar (sunucu seed'i) gerçek bir entropi kaynağından oluşturulduğunda, yapı pratik amaçlar için bir CSPRNG'ye eşdeğerdir. NIST bunu ",{"type":84,"tag":722,"props":857,"children":860},{"href":858,"rel":859},"https:\u002F\u002Fcsrc.nist.gov\u002Fpublications\u002Fdetail\u002Fsp\u002F800-90a\u002Frev-1\u002Ffinal",[792],[861],{"type":90,"value":862},"SP 800-90A Rev 1",{"type":90,"value":864},"'de ",{"type":84,"tag":126,"props":866,"children":867},{},[868],{"type":90,"value":869},"HMAC_DRBG",{"type":90,"value":871}," olarak resmiyet verdi ve PF casino'lar bu standardı temel olarak halka açık seed taahhütü eklenerek yeniden uygularlar.",{"type":84,"tag":598,"props":873,"children":875},{"id":874},"csprngs-neden-önemlidir-mathrandom-değil",[876],{"type":90,"value":877},"CSPRNGs Neden Önemlidir (Math.random() Değil)",{"type":84,"tag":93,"props":879,"children":880},{},[881,883,889,891,896],{"type":90,"value":882},"Her meşru PF casino sunucu seed'ini kriptografik olarak güvenli bir RNG ile oluşturur — JavaScript'in ",{"type":84,"tag":99,"props":884,"children":886},{"className":885},[],[887],{"type":90,"value":888},"Math.random()",{"type":90,"value":890},"'u ",{"type":84,"tag":126,"props":892,"children":893},{},[894],{"type":90,"value":895},"değil",{"type":90,"value":897},". Fark çoğu oyuncunun fark ettiğinden daha önemlidir:",{"type":84,"tag":145,"props":899,"children":900},{},[901,922],{"type":84,"tag":149,"props":902,"children":903},{},[904],{"type":84,"tag":76,"props":905,"children":906},{},[907,912,917],{"type":84,"tag":156,"props":908,"children":909},{},[910],{"type":90,"value":911},"Jeneratör",{"type":84,"tag":156,"props":913,"children":914},{},[915],{"type":90,"value":916},"Çıktı görüldükten sonra tahmin edilebilir mi?",{"type":84,"tag":156,"props":918,"children":919},{},[920],{"type":90,"value":921},"PF için Kabul edilebilir mi?",{"type":84,"tag":172,"props":923,"children":924},{},[925,948,972,994,1016],{"type":84,"tag":76,"props":926,"children":927},{},[928,938,943],{"type":84,"tag":179,"props":929,"children":930},{},[931,936],{"type":84,"tag":99,"props":932,"children":934},{"className":933},[],[935],{"type":90,"value":888},{"type":90,"value":937}," (Chrome V8)",{"type":84,"tag":179,"props":939,"children":940},{},[941],{"type":90,"value":942},"Evet, ~700 çıktıdan sonra",{"type":84,"tag":179,"props":944,"children":945},{},[946],{"type":90,"value":947},"Asla",{"type":84,"tag":76,"props":949,"children":950},{},[951,962,967],{"type":84,"tag":179,"props":952,"children":953},{},[954,956],{"type":90,"value":955},"Linux ",{"type":84,"tag":99,"props":957,"children":959},{"className":958},[],[960],{"type":90,"value":961},"\u002Fdev\u002Furandom",{"type":84,"tag":179,"props":963,"children":964},{},[965],{"type":90,"value":966},"Hayır",{"type":84,"tag":179,"props":968,"children":969},{},[970],{"type":90,"value":971},"Evet",{"type":84,"tag":76,"props":973,"children":974},{},[975,986,990],{"type":84,"tag":179,"props":976,"children":977},{},[978,984],{"type":84,"tag":99,"props":979,"children":981},{"className":980},[],[982],{"type":90,"value":983},"crypto.getRandomValues",{"type":90,"value":985}," (tarayıcı)",{"type":84,"tag":179,"props":987,"children":988},{},[989],{"type":90,"value":966},{"type":84,"tag":179,"props":991,"children":992},{},[993],{"type":90,"value":971},{"type":84,"tag":76,"props":995,"children":996},{},[997,1008,1012],{"type":84,"tag":179,"props":998,"children":999},{},[1000,1002],{"type":90,"value":1001},"Node.js ",{"type":84,"tag":99,"props":1003,"children":1005},{"className":1004},[],[1006],{"type":90,"value":1007},"crypto.randomBytes",{"type":84,"tag":179,"props":1009,"children":1010},{},[1011],{"type":90,"value":966},{"type":84,"tag":179,"props":1013,"children":1014},{},[1015],{"type":90,"value":971},{"type":84,"tag":76,"props":1017,"children":1018},{},[1019,1024,1028],{"type":84,"tag":179,"props":1020,"children":1021},{},[1022],{"type":90,"value":1023},"Donanım RNG (Intel RDRAND)",{"type":84,"tag":179,"props":1025,"children":1026},{},[1027],{"type":90,"value":966},{"type":84,"tag":179,"props":1029,"children":1030},{},[1031],{"type":90,"value":971},{"type":84,"tag":93,"props":1033,"children":1034},{},[1035,1037,1042,1044,1049,1051,1057],{"type":90,"value":1036},"Eğer bir casino gizlice sunucu seed'ini ",{"type":84,"tag":99,"props":1038,"children":1040},{"className":1039},[],[1041],{"type":90,"value":888},{"type":90,"value":1043}," ile tohumlarsa, sofistike bir saldırgan yeterli halka açık çıktılardan seed'i yeniden oluşturabilir ve her gelecek turnu tahmin edebilir — HMAC matematik kusursuz olsa bile. İşte bu yüzden casino'nun gerçekten ",{"type":84,"tag":99,"props":1045,"children":1047},{"className":1046},[],[1048],{"type":90,"value":1007},{"type":90,"value":1050}," veya eşdeğerini kullandığını kontrol etmek önemlidir; ",{"type":84,"tag":722,"props":1052,"children":1054},{"href":1053},"\u002Fblog\u002Fwhat-is-provably-fair-gambling",[1055],{"type":90,"value":1056},"Provably Fair oyunları nedir",{"type":90,"value":1058}," açıklayıcısı güven zincirininin tamamını kapsar.",{"type":84,"tag":85,"props":1060,"children":1062},{"id":1061},"sayı-aslında-nasıl-üretilir",[1063],{"type":90,"value":1064},"Sayı Aslında Nasıl Üretilir",{"type":84,"tag":93,"props":1066,"children":1067},{},[1068],{"type":90,"value":1069},"Şimdi gerçek formül. Bu bölüm yer imlerine değer — yukarıdaki her şey bağlam bilgisiydi.",{"type":84,"tag":598,"props":1071,"children":1073},{"id":1072},"üç-giriş-bir-formül",[1074],{"type":90,"value":1075},"Üç Giriş, Bir Formül",{"type":84,"tag":93,"props":1077,"children":1078},{},[1079],{"type":90,"value":1080},"Her provably fair turun şunu hesaplar:",{"type":84,"tag":93,"props":1082,"children":1083},{},[1084],{"type":84,"tag":295,"props":1085,"children":1087},{"className":1086},[298],[1088,1159],{"type":84,"tag":295,"props":1089,"children":1091},{"className":1090},[303],[1092],{"type":84,"tag":306,"props":1093,"children":1094},{"xmlns":308},[1095],{"type":84,"tag":311,"props":1096,"children":1097},{},[1098,1154],{"type":84,"tag":315,"props":1099,"children":1100},{},[1101,1106,1110,1114,1118,1122,1126,1130,1134,1138,1142,1146,1150],{"type":84,"tag":319,"props":1102,"children":1103},{},[1104],{"type":90,"value":1105},"hex_output",{"type":84,"tag":325,"props":1107,"children":1108},{},[1109],{"type":90,"value":329},{"type":84,"tag":319,"props":1111,"children":1112},{},[1113],{"type":90,"value":348},{"type":84,"tag":325,"props":1115,"children":1116},{"stretchy":338},[1117],{"type":90,"value":343},{"type":84,"tag":319,"props":1119,"children":1120},{},[1121],{"type":90,"value":357},{"type":84,"tag":325,"props":1123,"children":1124},{"separator":339},[1125],{"type":90,"value":362},{"type":84,"tag":319,"props":1127,"children":1128},{},[1129],{"type":90,"value":367},{"type":84,"tag":319,"props":1131,"children":1132},{},[1133],{"type":90,"value":372},{"type":84,"tag":319,"props":1135,"children":1136},{},[1137],{"type":90,"value":367},{"type":84,"tag":325,"props":1139,"children":1140},{},[1141],{"type":90,"value":377},{"type":84,"tag":319,"props":1143,"children":1144},{},[1145],{"type":90,"value":367},{"type":84,"tag":319,"props":1147,"children":1148},{},[1149],{"type":90,"value":382},{"type":84,"tag":325,"props":1151,"children":1152},{"stretchy":338},[1153],{"type":90,"value":387},{"type":84,"tag":393,"props":1155,"children":1156},{"encoding":395},[1157],{"type":90,"value":1158},"\\text{hex\\_output} = \\text{HMAC-SHA256}(\\text{server\\_seed},\\; \\text{client\\_seed} \\; : \\; \\text{nonce})",{"type":84,"tag":295,"props":1160,"children":1162},{"className":1161,"ariaHidden":339},[402],[1163,1194,1269],{"type":84,"tag":295,"props":1164,"children":1166},{"className":1165},[407],[1167,1172,1181,1185,1190],{"type":84,"tag":295,"props":1168,"children":1171},{"className":1169,"style":1170},[412],"height:1.0044em;vertical-align:-0.31em;",[],{"type":84,"tag":295,"props":1173,"children":1175},{"className":1174},[418,90],[1176],{"type":84,"tag":295,"props":1177,"children":1179},{"className":1178},[418],[1180],{"type":90,"value":1105},{"type":84,"tag":295,"props":1182,"children":1184},{"className":1183,"style":429},[428],[],{"type":84,"tag":295,"props":1186,"children":1188},{"className":1187},[434],[1189],{"type":90,"value":329},{"type":84,"tag":295,"props":1191,"children":1193},{"className":1192,"style":429},[428],[],{"type":84,"tag":295,"props":1195,"children":1197},{"className":1196},[407],[1198,1203,1212,1217,1226,1231,1235,1239,1248,1252,1256,1261,1265],{"type":84,"tag":295,"props":1199,"children":1202},{"className":1200,"style":1201},[412],"height:1.06em;vertical-align:-0.31em;",[],{"type":84,"tag":295,"props":1204,"children":1206},{"className":1205},[418,90],[1207],{"type":84,"tag":295,"props":1208,"children":1210},{"className":1209},[418],[1211],{"type":90,"value":348},{"type":84,"tag":295,"props":1213,"children":1215},{"className":1214},[480],[1216],{"type":90,"value":343},{"type":84,"tag":295,"props":1218,"children":1220},{"className":1219},[418,90],[1221],{"type":84,"tag":295,"props":1222,"children":1224},{"className":1223},[418],[1225],{"type":90,"value":357},{"type":84,"tag":295,"props":1227,"children":1229},{"className":1228},[495],[1230],{"type":90,"value":362},{"type":84,"tag":295,"props":1232,"children":1234},{"className":1233,"style":429},[428],[],{"type":84,"tag":295,"props":1236,"children":1238},{"className":1237,"style":505},[428],[],{"type":84,"tag":295,"props":1240,"children":1242},{"className":1241},[418,90],[1243],{"type":84,"tag":295,"props":1244,"children":1246},{"className":1245},[418],[1247],{"type":90,"value":372},{"type":84,"tag":295,"props":1249,"children":1251},{"className":1250,"style":429},[428],[],{"type":84,"tag":295,"props":1253,"children":1255},{"className":1254,"style":429},[428],[],{"type":84,"tag":295,"props":1257,"children":1259},{"className":1258},[434],[1260],{"type":90,"value":377},{"type":84,"tag":295,"props":1262,"children":1264},{"className":1263,"style":429},[428],[],{"type":84,"tag":295,"props":1266,"children":1268},{"className":1267,"style":429},[428],[],{"type":84,"tag":295,"props":1270,"children":1272},{"className":1271},[407],[1273,1278,1287],{"type":84,"tag":295,"props":1274,"children":1277},{"className":1275,"style":1276},[412],"height:1em;vertical-align:-0.25em;",[],{"type":84,"tag":295,"props":1279,"children":1281},{"className":1280},[418,90],[1282],{"type":84,"tag":295,"props":1283,"children":1285},{"className":1284},[418],[1286],{"type":90,"value":382},{"type":84,"tag":295,"props":1288,"children":1290},{"className":1289},[549],[1291],{"type":90,"value":387},{"type":84,"tag":93,"props":1293,"children":1294},{},[1295],{"type":90,"value":1296},"Sözde kodda:",{"type":84,"tag":1298,"props":1299,"children":1303},"pre",{"className":1300,"code":1302,"language":90},[1301],"language-text","function pfHmac(serverSeed, clientSeed, nonce) {\n  const message = clientSeed + ':' + nonce\n  const hex = hmacSha256(serverSeed, message)  \u002F\u002F 64-karakterlik hex string\n  return hex\n}\n",[1304],{"type":84,"tag":99,"props":1305,"children":1307},{"__ignoreMap":1306},"",[1308],{"type":90,"value":1302},{"type":84,"tag":93,"props":1310,"children":1311},{},[1312,1317],{"type":84,"tag":99,"props":1313,"children":1315},{"className":1314},[],[1316],{"type":90,"value":377},{"type":90,"value":1318}," iki nokta üstüste, Stake, Primedice, Rainbet ve çoğu PF kasinoda kanonik ayırıcıdır. Birkaçı (BC.Game, Roobet) farklı ayırıcılar kullanır — tam format için her zaman kasinolar fairness belgelerini kontrol edin.",{"type":84,"tag":93,"props":1320,"children":1321},{},[1322,1324,1330],{"type":90,"value":1323},"Çıktı, ",{"type":84,"tag":99,"props":1325,"children":1327},{"className":1326},[],[1328],{"type":90,"value":1329},"8b2d4a1f9c6e7b3d5a8f2c9e4b1d7a6f3e8c5b2d9a4f7e1c8b3d6a2f9e5c4b7d",{"type":90,"value":1331}," gibi 64 karakterlik bir onaltılık dizedir. Bu hex, saf rastgeleliktir — 256 bit tahmin edilemezlik, istatistiksel olarak 256 adil para atışından ayırt edilemez.",{"type":84,"tag":1333,"props":1334,"children":1335},"chart-provably-fair-process",{},[],{"type":84,"tag":598,"props":1337,"children":1339},{"id":1338},"adım-adım-hmac-çıktısından-zar-atışına",[1340],{"type":90,"value":1341},"Adım Adım: HMAC Çıktısından Zar Atışına",{"type":84,"tag":93,"props":1343,"children":1344},{},[1345],{"type":90,"value":1346},"Bir turu sondan sona yapalım.",{"type":84,"tag":93,"props":1348,"children":1349},{},[1350],{"type":84,"tag":126,"props":1351,"children":1352},{},[1353],{"type":90,"value":1354},"Verilen değerler:",{"type":84,"tag":605,"props":1356,"children":1357},{},[1358,1367,1376],{"type":84,"tag":609,"props":1359,"children":1360},{},[1361],{"type":84,"tag":99,"props":1362,"children":1364},{"className":1363},[],[1365],{"type":90,"value":1366},"server_seed = f4a9c2e1b7d8e3c5a1b9f6d2e8c4a7b3e9d1c6a2b5f8e4c7a3b6e1d9c2a5b8f4",{"type":84,"tag":609,"props":1368,"children":1369},{},[1370],{"type":84,"tag":99,"props":1371,"children":1373},{"className":1372},[],[1374],{"type":90,"value":1375},"client_seed = player-xyz-42",{"type":84,"tag":609,"props":1377,"children":1378},{},[1379],{"type":84,"tag":99,"props":1380,"children":1382},{"className":1381},[],[1383],{"type":90,"value":1384},"nonce = 7",{"type":84,"tag":93,"props":1386,"children":1387},{},[1388],{"type":84,"tag":126,"props":1389,"children":1390},{},[1391],{"type":90,"value":1392},"Adım 1 — HMAC'ı Hesapla:",{"type":84,"tag":1298,"props":1394,"children":1397},{"className":1395,"code":1396,"language":90},[1301],"HMAC-SHA256(server_seed, \"player-xyz-42:7\")\n= 8b2d4a1f9c6e7b3d5a8f2c9e4b1d7a6f3e8c5b2d9a4f7e1c8b3d6a2f9e5c4b7d\n",[1398],{"type":84,"tag":99,"props":1399,"children":1400},{"__ignoreMap":1306},[1401],{"type":90,"value":1396},{"type":84,"tag":93,"props":1403,"children":1404},{},[1405],{"type":84,"tag":126,"props":1406,"children":1407},{},[1408],{"type":90,"value":1409},"Adım 2 — İlk 5 hex karakterini kes:",{"type":84,"tag":93,"props":1411,"children":1412},{},[1413,1419,1421],{"type":84,"tag":99,"props":1414,"children":1416},{"className":1415},[],[1417],{"type":90,"value":1418},"8b2d4",{"type":90,"value":1420}," → onluk sisteme çevir → ",{"type":84,"tag":99,"props":1422,"children":1424},{"className":1423},[],[1425],{"type":90,"value":1426},"569.300",{"type":84,"tag":93,"props":1428,"children":1429},{},[1430],{"type":84,"tag":126,"props":1431,"children":1432},{},[1433],{"type":90,"value":1434},"Adım 3 — 0-99.9999 aralığına eşle:",{"type":84,"tag":1298,"props":1436,"children":1439},{"className":1437,"code":1438,"language":90},[1301],"dice = (569_300 % 1_000_000) \u002F 10_000\n     = 569_300 \u002F 10_000\n     = 56.93\n",[1440],{"type":84,"tag":99,"props":1441,"children":1442},{"__ignoreMap":1306},[1443],{"type":90,"value":1438},{"type":84,"tag":93,"props":1445,"children":1446},{},[1447],{"type":84,"tag":126,"props":1448,"children":1449},{},[1450],{"type":90,"value":1451},"Adım 4 — Bahis mantığını uygula:",{"type":84,"tag":93,"props":1453,"children":1454},{},[1455],{"type":90,"value":1456},"\"50'nin altında at\" bahsi yaptıysan → kaybedersin (56.93 > 50). \"60'ın altında at\" bahsi yaptıysan → kazanırsın. Tam zar atışı bu üç giriş birleşir birleşmez belirlenmiştir, hiçbir UI animasyonu çalışmadan önce.",{"type":84,"tag":93,"props":1458,"children":1459},{},[1460],{"type":84,"tag":126,"props":1461,"children":1462},{},[1463],{"type":90,"value":1464},"Adım 5 — Doğrula:",{"type":84,"tag":93,"props":1466,"children":1467},{},[1468,1470,1475,1477,1483],{"type":90,"value":1469},"Turun ardından, açığa çıkarılan ",{"type":84,"tag":99,"props":1471,"children":1473},{"className":1472},[],[1474],{"type":90,"value":357},{"type":90,"value":1476},"'i alırsın. SHA-256 ile hash et — önceden taahhüt edilen hash eşleşiyor mu? Tamam. 1-3 adımlarını tekrar çalıştır — ",{"type":84,"tag":99,"props":1478,"children":1480},{"className":1479},[],[1481],{"type":90,"value":1482},"56.93",{"type":90,"value":1484},"'ü yeniden oluşturdun mu? Tamam. Tur kriptografik olarak adil olduğu ispatlanmış.",{"type":84,"tag":93,"props":1486,"children":1487},{},[1488,1490,1496],{"type":90,"value":1489},"Kopyala-yapıştır değerleri ve ekran görüntüleriyle tam bir anlatım için bkz. ",{"type":84,"tag":722,"props":1491,"children":1493},{"href":1492},"\u002Fblog\u002Fhow-to-verify-provably-fair",[1494],{"type":90,"value":1495},"bir provably fair turu nasıl doğrulanır",{"type":90,"value":1497},".",{"type":84,"tag":598,"props":1499,"children":1501},{"id":1500},"farklı-oyunlar-farklı-eşlemeler",[1502],{"type":90,"value":1503},"Farklı Oyunlar, Farklı Eşlemeler",{"type":84,"tag":93,"props":1505,"children":1506},{},[1507],{"type":90,"value":1508},"HMAC çağrısı her zaman aynıdır. Değişen şey adım 3 — hex'in belirli bir oyun sonucuyla nasıl eşleştirildiği.",{"type":84,"tag":145,"props":1510,"children":1511},{},[1512,1538],{"type":84,"tag":149,"props":1513,"children":1514},{},[1515],{"type":84,"tag":76,"props":1516,"children":1517},{},[1518,1523,1528,1533],{"type":84,"tag":156,"props":1519,"children":1520},{},[1521],{"type":90,"value":1522},"Oyun",{"type":84,"tag":156,"props":1524,"children":1525},{},[1526],{"type":90,"value":1527},"Hex dilimi",{"type":84,"tag":156,"props":1529,"children":1530},{},[1531],{"type":90,"value":1532},"Formül",{"type":84,"tag":156,"props":1534,"children":1535},{},[1536],{"type":90,"value":1537},"Çıktı aralığı",{"type":84,"tag":172,"props":1539,"children":1540},{},[1541,1571,1601,1633,1672,1704],{"type":84,"tag":76,"props":1542,"children":1543},{},[1544,1552,1557,1566],{"type":84,"tag":179,"props":1545,"children":1546},{},[1547],{"type":84,"tag":126,"props":1548,"children":1549},{},[1550],{"type":90,"value":1551},"Zar",{"type":84,"tag":179,"props":1553,"children":1554},{},[1555],{"type":90,"value":1556},"İlk 5 karakter",{"type":84,"tag":179,"props":1558,"children":1559},{},[1560],{"type":84,"tag":99,"props":1561,"children":1563},{"className":1562},[],[1564],{"type":90,"value":1565},"(int % 1e6) \u002F 1e4",{"type":84,"tag":179,"props":1567,"children":1568},{},[1569],{"type":90,"value":1570},"0.0000-99.9999",{"type":84,"tag":76,"props":1572,"children":1573},{},[1574,1582,1587,1596],{"type":84,"tag":179,"props":1575,"children":1576},{},[1577],{"type":84,"tag":126,"props":1578,"children":1579},{},[1580],{"type":90,"value":1581},"Crash",{"type":84,"tag":179,"props":1583,"children":1584},{},[1585],{"type":90,"value":1586},"İlk 8 karakter",{"type":84,"tag":179,"props":1588,"children":1589},{},[1590],{"type":84,"tag":99,"props":1591,"children":1593},{"className":1592},[],[1594],{"type":90,"value":1595},"floor((100 * 2^52 - h) \u002F (2^52 - h)) \u002F 100",{"type":84,"tag":179,"props":1597,"children":1598},{},[1599],{"type":90,"value":1600},"1.00x çok yüksek",{"type":84,"tag":76,"props":1602,"children":1603},{},[1604,1612,1617,1628],{"type":84,"tag":179,"props":1605,"children":1606},{},[1607],{"type":84,"tag":126,"props":1608,"children":1609},{},[1610],{"type":90,"value":1611},"Yazı Tura",{"type":84,"tag":179,"props":1613,"children":1614},{},[1615],{"type":90,"value":1616},"İlk 2 karakter",{"type":84,"tag":179,"props":1618,"children":1619},{},[1620,1626],{"type":84,"tag":99,"props":1621,"children":1623},{"className":1622},[],[1624],{"type":90,"value":1625},"int % 2",{"type":90,"value":1627}," (0 veya 1)",{"type":84,"tag":179,"props":1629,"children":1630},{},[1631],{"type":90,"value":1632},"Yazı\u002FTura",{"type":84,"tag":76,"props":1634,"children":1635},{},[1636,1644,1648,1667],{"type":84,"tag":179,"props":1637,"children":1638},{},[1639],{"type":84,"tag":126,"props":1640,"children":1641},{},[1642],{"type":90,"value":1643},"Rulet",{"type":84,"tag":179,"props":1645,"children":1646},{},[1647],{"type":90,"value":1616},{"type":84,"tag":179,"props":1649,"children":1650},{},[1651,1657,1659,1665],{"type":84,"tag":99,"props":1652,"children":1654},{"className":1653},[],[1655],{"type":90,"value":1656},"int % 37",{"type":90,"value":1658}," (Avrupa) veya ",{"type":84,"tag":99,"props":1660,"children":1662},{"className":1661},[],[1663],{"type":90,"value":1664},"% 38",{"type":90,"value":1666}," (Amerika)",{"type":84,"tag":179,"props":1668,"children":1669},{},[1670],{"type":90,"value":1671},"0-36 veya 0-37",{"type":84,"tag":76,"props":1673,"children":1674},{},[1675,1683,1688,1699],{"type":84,"tag":179,"props":1676,"children":1677},{},[1678],{"type":84,"tag":126,"props":1679,"children":1680},{},[1681],{"type":90,"value":1682},"Plinko",{"type":84,"tag":179,"props":1684,"children":1685},{},[1686],{"type":90,"value":1687},"İlk 4 karakter × n düşüş",{"type":84,"tag":179,"props":1689,"children":1690},{},[1691,1697],{"type":84,"tag":99,"props":1692,"children":1694},{"className":1693},[],[1695],{"type":90,"value":1696},"int % rows",{"type":90,"value":1698}," her düşüş için",{"type":84,"tag":179,"props":1700,"children":1701},{},[1702],{"type":90,"value":1703},"Çiviler arasında yol",{"type":84,"tag":76,"props":1705,"children":1706},{},[1707,1715,1720,1731],{"type":84,"tag":179,"props":1708,"children":1709},{},[1710],{"type":84,"tag":126,"props":1711,"children":1712},{},[1713],{"type":90,"value":1714},"Blackjack (HMAC-SHA512)",{"type":84,"tag":179,"props":1716,"children":1717},{},[1718],{"type":90,"value":1719},"Kart başına 4 karakter",{"type":84,"tag":179,"props":1721,"children":1722},{},[1723,1729],{"type":84,"tag":99,"props":1724,"children":1726},{"className":1725},[],[1727],{"type":90,"value":1728},"int % 52",{"type":90,"value":1730}," değiştirme mantığıyla",{"type":84,"tag":179,"props":1732,"children":1733},{},[1734],{"type":90,"value":1735},"Kart güverte pozisyonu",{"type":84,"tag":93,"props":1737,"children":1738},{},[1739,1741,1746],{"type":90,"value":1740},"Her eşleme, çıktı aralığında tekdüze olacak şekilde tasarlanmıştır — tekdüze rastgele bir hex değeri üzerinde modüler aritmetik, tekdüzeliği korur. Bu nedenle PF oyunları, kasino bireysel turları manipüle etmeden dürüst RTP talep edebilir. ",{"type":84,"tag":108,"props":1742,"children":1743},{},[1744],{"type":90,"value":1745},"Eşleme formülü",{"type":90,"value":1747},", random sayının kendisi değil, kasinolar tarafından hedef ev avantajını karşılamak için ayarlanır.",{"type":84,"tag":85,"props":1749,"children":1751},{"id":1750},"hex-dizesinden-oyun-sonucuna-matematiğiyle",[1752],{"type":90,"value":1753},"Hex Dizesinden Oyun Sonucuna (Matematiğiyle)",{"type":84,"tag":93,"props":1755,"children":1756},{},[1757],{"type":90,"value":1758},"Zar eşlemesi, ayrıştırmaya değerdir çünkü en açık durum — ve provably fair zar dağılımlarının doğru şekilde uygulandığında neden gerçekten tekdüze olduğunu gösterir.",{"type":84,"tag":598,"props":1760,"children":1762},{"id":1761},"zar-eşlemesi-0-999999",[1763],{"type":90,"value":1764},"Zar Eşlemesi (0-99.9999)",{"type":84,"tag":93,"props":1766,"children":1767},{},[1768],{"type":90,"value":1769},"Stake'in zarı ilk 5 hex karakterini kullanır, bu da 20 bit = 1.048.576 olası değer verir. Eşleme şu şekildedir:",{"type":84,"tag":93,"props":1771,"children":1772},{},[1773],{"type":84,"tag":295,"props":1774,"children":1776},{"className":1775},[298],[1777,1898],{"type":84,"tag":295,"props":1778,"children":1780},{"className":1779},[303],[1781],{"type":84,"tag":306,"props":1782,"children":1783},{"xmlns":308},[1784],{"type":84,"tag":311,"props":1785,"children":1786},{},[1787,1893],{"type":84,"tag":315,"props":1788,"children":1789},{},[1790,1795,1799],{"type":84,"tag":319,"props":1791,"children":1792},{},[1793],{"type":90,"value":1794},"dice",{"type":84,"tag":325,"props":1796,"children":1797},{},[1798],{"type":90,"value":329},{"type":84,"tag":1800,"props":1801,"children":1802},"mfrac",{},[1803,1881],{"type":84,"tag":315,"props":1804,"children":1805},{},[1806,1810,1815,1819,1846,1850,1854,1859,1863,1877],{"type":84,"tag":325,"props":1807,"children":1808},{"stretchy":338},[1809],{"type":90,"value":343},{"type":84,"tag":319,"props":1811,"children":1812},{},[1813],{"type":90,"value":1814},"int",{"type":84,"tag":325,"props":1816,"children":1817},{"stretchy":338},[1818],{"type":90,"value":343},{"type":84,"tag":1820,"props":1821,"children":1822},"msub",{},[1823,1828],{"type":84,"tag":319,"props":1824,"children":1825},{},[1826],{"type":90,"value":1827},"hex",{"type":84,"tag":315,"props":1829,"children":1830},{},[1831,1837,1841],{"type":84,"tag":1832,"props":1833,"children":1834},"mn",{},[1835],{"type":90,"value":1836},"0",{"type":84,"tag":325,"props":1838,"children":1839},{},[1840],{"type":90,"value":377},{"type":84,"tag":1832,"props":1842,"children":1843},{},[1844],{"type":90,"value":1845},"5",{"type":84,"tag":325,"props":1847,"children":1848},{"stretchy":338},[1849],{"type":90,"value":387},{"type":84,"tag":319,"props":1851,"children":1852},{},[1853],{"type":90,"value":367},{"type":84,"tag":319,"props":1855,"children":1856},{},[1857],{"type":90,"value":1858},"mod",{"type":84,"tag":319,"props":1860,"children":1861},{},[1862],{"type":90,"value":367},{"type":84,"tag":1864,"props":1865,"children":1866},"msup",{},[1867,1872],{"type":84,"tag":1832,"props":1868,"children":1869},{},[1870],{"type":90,"value":1871},"10",{"type":84,"tag":1832,"props":1873,"children":1874},{},[1875],{"type":90,"value":1876},"6",{"type":84,"tag":325,"props":1878,"children":1879},{"stretchy":338},[1880],{"type":90,"value":387},{"type":84,"tag":1864,"props":1882,"children":1883},{},[1884,1888],{"type":84,"tag":1832,"props":1885,"children":1886},{},[1887],{"type":90,"value":1871},{"type":84,"tag":1832,"props":1889,"children":1890},{},[1891],{"type":90,"value":1892},"4",{"type":84,"tag":393,"props":1894,"children":1895},{"encoding":395},[1896],{"type":90,"value":1897},"\\text{dice} = \\frac{(\\text{int}(\\text{hex}_{0:5}) \\; \\text{mod} \\; 10^6)}{10^4}",{"type":84,"tag":295,"props":1899,"children":1901},{"className":1900,"ariaHidden":339},[402],[1902,1933],{"type":84,"tag":295,"props":1903,"children":1905},{"className":1904},[407],[1906,1911,1920,1924,1929],{"type":84,"tag":295,"props":1907,"children":1910},{"className":1908,"style":1909},[412],"height:0.6944em;",[],{"type":84,"tag":295,"props":1912,"children":1914},{"className":1913},[418,90],[1915],{"type":84,"tag":295,"props":1916,"children":1918},{"className":1917},[418],[1919],{"type":90,"value":1794},{"type":84,"tag":295,"props":1921,"children":1923},{"className":1922,"style":429},[428],[],{"type":84,"tag":295,"props":1925,"children":1927},{"className":1926},[434],[1928],{"type":90,"value":329},{"type":84,"tag":295,"props":1930,"children":1932},{"className":1931,"style":429},[428],[],{"type":84,"tag":295,"props":1934,"children":1936},{"className":1935},[407],[1937,1942],{"type":84,"tag":295,"props":1938,"children":1941},{"className":1939,"style":1940},[412],"height:1.4539em;vertical-align:-0.345em;",[],{"type":84,"tag":295,"props":1943,"children":1945},{"className":1944},[418],[1946,1951,2268],{"type":84,"tag":295,"props":1947,"children":1950},{"className":1948},[480,1949],"nulldelimiter",[],{"type":84,"tag":295,"props":1952,"children":1954},{"className":1953},[1800],[1955],{"type":84,"tag":295,"props":1956,"children":1960},{"className":1957},[1958,1959],"vlist-t","vlist-t2",[1961,2256],{"type":84,"tag":295,"props":1962,"children":1965},{"className":1963},[1964],"vlist-r",[1966,2251],{"type":84,"tag":295,"props":1967,"children":1971},{"className":1968,"style":1970},[1969],"vlist","height:1.1089em;",[1972,2046,2060],{"type":84,"tag":295,"props":1973,"children":1975},{"style":1974},"top:-2.655em;",[1976,1982],{"type":84,"tag":295,"props":1977,"children":1981},{"className":1978,"style":1980},[1979],"pstrut","height:3em;",[],{"type":84,"tag":295,"props":1983,"children":1989},{"className":1984},[1985,1986,1987,1988],"sizing","reset-size6","size3","mtight",[1990],{"type":84,"tag":295,"props":1991,"children":1993},{"className":1992},[418,1988],[1994,2000],{"type":84,"tag":295,"props":1995,"children":1997},{"className":1996},[418,1988],[1998],{"type":90,"value":1999},"1",{"type":84,"tag":295,"props":2001,"children":2003},{"className":2002},[418,1988],[2004,2009],{"type":84,"tag":295,"props":2005,"children":2007},{"className":2006},[418,1988],[2008],{"type":90,"value":1836},{"type":84,"tag":295,"props":2010,"children":2013},{"className":2011},[2012],"msupsub",[2014],{"type":84,"tag":295,"props":2015,"children":2017},{"className":2016},[1958],[2018],{"type":84,"tag":295,"props":2019,"children":2021},{"className":2020},[1964],[2022],{"type":84,"tag":295,"props":2023,"children":2026},{"className":2024,"style":2025},[1969],"height:0.7463em;",[2027],{"type":84,"tag":295,"props":2028,"children":2030},{"style":2029},"top:-2.786em;margin-right:0.0714em;",[2031,2036],{"type":84,"tag":295,"props":2032,"children":2035},{"className":2033,"style":2034},[1979],"height:2.5em;",[],{"type":84,"tag":295,"props":2037,"children":2040},{"className":2038},[1985,2039,465,1988],"reset-size3",[2041],{"type":84,"tag":295,"props":2042,"children":2044},{"className":2043},[418,1988],[2045],{"type":90,"value":1892},{"type":84,"tag":295,"props":2047,"children":2049},{"style":2048},"top:-3.23em;",[2050,2054],{"type":84,"tag":295,"props":2051,"children":2053},{"className":2052,"style":1980},[1979],[],{"type":84,"tag":295,"props":2055,"children":2059},{"className":2056,"style":2058},[2057],"frac-line","border-bottom-width:0.04em;",[],{"type":84,"tag":295,"props":2061,"children":2063},{"style":2062},"top:-3.485em;",[2064,2068],{"type":84,"tag":295,"props":2065,"children":2067},{"className":2066,"style":1980},[1979],[],{"type":84,"tag":295,"props":2069,"children":2071},{"className":2070},[1985,1986,1987,1988],[2072],{"type":84,"tag":295,"props":2073,"children":2075},{"className":2074},[418,1988],[2076,2081,2090,2095,2175,2180,2185,2194,2198,2203,2246],{"type":84,"tag":295,"props":2077,"children":2079},{"className":2078},[480,1988],[2080],{"type":90,"value":343},{"type":84,"tag":295,"props":2082,"children":2084},{"className":2083},[418,90,1988],[2085],{"type":84,"tag":295,"props":2086,"children":2088},{"className":2087},[418,1988],[2089],{"type":90,"value":1814},{"type":84,"tag":295,"props":2091,"children":2093},{"className":2092},[480,1988],[2094],{"type":90,"value":343},{"type":84,"tag":295,"props":2096,"children":2098},{"className":2097},[418,1988],[2099,2108],{"type":84,"tag":295,"props":2100,"children":2102},{"className":2101},[418,90,1988],[2103],{"type":84,"tag":295,"props":2104,"children":2106},{"className":2105},[418,1988],[2107],{"type":90,"value":1827},{"type":84,"tag":295,"props":2109,"children":2111},{"className":2110},[2012],[2112],{"type":84,"tag":295,"props":2113,"children":2115},{"className":2114},[1958,1959],[2116,2163],{"type":84,"tag":295,"props":2117,"children":2119},{"className":2118},[1964],[2120,2156],{"type":84,"tag":295,"props":2121,"children":2124},{"className":2122,"style":2123},[1969],"height:0.3173em;",[2125],{"type":84,"tag":295,"props":2126,"children":2128},{"style":2127},"top:-2.357em;margin-right:0.0714em;",[2129,2133],{"type":84,"tag":295,"props":2130,"children":2132},{"className":2131,"style":2034},[1979],[],{"type":84,"tag":295,"props":2134,"children":2136},{"className":2135},[1985,2039,465,1988],[2137],{"type":84,"tag":295,"props":2138,"children":2140},{"className":2139},[418,1988],[2141,2146,2151],{"type":84,"tag":295,"props":2142,"children":2144},{"className":2143},[418,1988],[2145],{"type":90,"value":1836},{"type":84,"tag":295,"props":2147,"children":2149},{"className":2148},[434,1988],[2150],{"type":90,"value":377},{"type":84,"tag":295,"props":2152,"children":2154},{"className":2153},[418,1988],[2155],{"type":90,"value":1845},{"type":84,"tag":295,"props":2157,"children":2160},{"className":2158},[2159],"vlist-s",[2161],{"type":90,"value":2162},"​",{"type":84,"tag":295,"props":2164,"children":2166},{"className":2165},[1964],[2167],{"type":84,"tag":295,"props":2168,"children":2171},{"className":2169,"style":2170},[1969],"height:0.143em;",[2172],{"type":84,"tag":295,"props":2173,"children":2174},{},[],{"type":84,"tag":295,"props":2176,"children":2178},{"className":2177},[549,1988],[2179],{"type":90,"value":387},{"type":84,"tag":295,"props":2181,"children":2184},{"className":2182,"style":2183},[428,1988],"margin-right:0.3253em;",[],{"type":84,"tag":295,"props":2186,"children":2188},{"className":2187},[418,90,1988],[2189],{"type":84,"tag":295,"props":2190,"children":2192},{"className":2191},[418,1988],[2193],{"type":90,"value":1858},{"type":84,"tag":295,"props":2195,"children":2197},{"className":2196,"style":2183},[428,1988],[],{"type":84,"tag":295,"props":2199,"children":2201},{"className":2200},[418,1988],[2202],{"type":90,"value":1999},{"type":84,"tag":295,"props":2204,"children":2206},{"className":2205},[418,1988],[2207,2212],{"type":84,"tag":295,"props":2208,"children":2210},{"className":2209},[418,1988],[2211],{"type":90,"value":1836},{"type":84,"tag":295,"props":2213,"children":2215},{"className":2214},[2012],[2216],{"type":84,"tag":295,"props":2217,"children":2219},{"className":2218},[1958],[2220],{"type":84,"tag":295,"props":2221,"children":2223},{"className":2222},[1964],[2224],{"type":84,"tag":295,"props":2225,"children":2228},{"className":2226,"style":2227},[1969],"height:0.8913em;",[2229],{"type":84,"tag":295,"props":2230,"children":2232},{"style":2231},"top:-2.931em;margin-right:0.0714em;",[2233,2237],{"type":84,"tag":295,"props":2234,"children":2236},{"className":2235,"style":2034},[1979],[],{"type":84,"tag":295,"props":2238,"children":2240},{"className":2239},[1985,2039,465,1988],[2241],{"type":84,"tag":295,"props":2242,"children":2244},{"className":2243},[418,1988],[2245],{"type":90,"value":1876},{"type":84,"tag":295,"props":2247,"children":2249},{"className":2248},[549,1988],[2250],{"type":90,"value":387},{"type":84,"tag":295,"props":2252,"children":2254},{"className":2253},[2159],[2255],{"type":90,"value":2162},{"type":84,"tag":295,"props":2257,"children":2259},{"className":2258},[1964],[2260],{"type":84,"tag":295,"props":2261,"children":2264},{"className":2262,"style":2263},[1969],"height:0.345em;",[2265],{"type":84,"tag":295,"props":2266,"children":2267},{},[],{"type":84,"tag":295,"props":2269,"children":2271},{"className":2270},[549,1949],[],{"type":84,"tag":93,"props":2273,"children":2274},{},[2275,2277,2282],{"type":90,"value":2276},"Dilim 1.048.575'e ulaşabiliyorsa neden modulo 1.000.000? Modulo olmadan, 1.000.000-1.048.575 değerleri 100.0000-104.8575'e eşlenirdi, zar aralığının dışında. Modulo bunları geri katlıyor — ama küçük bir önyargı ekliyor (0-48.575 değerleri, 48.576-99.999'dan 2\u002F1 faktörü kadar daha olasıdır). Önyargıyı ortadan kaldırmak için, gerçek uygulamalar 1.000.000'dan büyük dilimleri ",{"type":84,"tag":108,"props":2278,"children":2279},{},[2280],{"type":90,"value":2281},"reddeder",{"type":90,"value":2283}," ve sonraki hex bloğuna ilerler (karakter 5-10, sonra 10-15, vb.).",{"type":84,"tag":93,"props":2285,"children":2286},{},[2287],{"type":90,"value":2288},"Doğru yapılırsa, bu 0.0000-99.9999 arasında mükemmel bir tekdüze dağılım üretir. 10.000 zarı test, essansiyel olarak düz kaplama gösterir — aşağıdaki histogram, herhangi bir yasal PF zar uygulamasıyla göreceğiniz şeyi yeniden üretir.",{"type":84,"tag":2290,"props":2291,"children":2292},"chart-rng-distribution",{},[],{"type":84,"tag":598,"props":2294,"children":2296},{"id":2295},"crash-eşlemesi-çarpan",[2297],{"type":90,"value":2298},"Crash Eşlemesi (Çarpan)",{"type":84,"tag":93,"props":2300,"children":2301},{},[2302],{"type":90,"value":2303},"Crash daha ilginçtir çünkü çıktı tekdüze değildir — dramatik oyun oynaması yaratmak ve hedef ev avantajını korumak için kasıtlı olarak eğrilmiştir.",{"type":84,"tag":93,"props":2305,"children":2306},{},[2307],{"type":84,"tag":295,"props":2308,"children":2310},{"className":2309},[298],[2311,2423],{"type":84,"tag":295,"props":2312,"children":2314},{"className":2313},[303],[2315],{"type":84,"tag":306,"props":2316,"children":2317},{"xmlns":308},[2318],{"type":84,"tag":311,"props":2319,"children":2320},{},[2321,2418],{"type":84,"tag":315,"props":2322,"children":2323},{},[2324,2329,2333],{"type":84,"tag":319,"props":2325,"children":2326},{},[2327],{"type":90,"value":2328},"crash",{"type":84,"tag":325,"props":2330,"children":2331},{},[2332],{"type":90,"value":329},{"type":84,"tag":1800,"props":2334,"children":2335},{},[2336,2414],{"type":84,"tag":315,"props":2337,"children":2338},{},[2339,2344,2409],{"type":84,"tag":325,"props":2340,"children":2341},{"fence":339},[2342],{"type":90,"value":2343},"⌊",{"type":84,"tag":2345,"props":2346,"children":2347},"mstyle",{"scriptlevel":1836,"displaystyle":339},[2348],{"type":84,"tag":1800,"props":2349,"children":2350},{},[2351,2387],{"type":84,"tag":315,"props":2352,"children":2353},{},[2354,2359,2364,2377,2382],{"type":84,"tag":1832,"props":2355,"children":2356},{},[2357],{"type":90,"value":2358},"100",{"type":84,"tag":325,"props":2360,"children":2361},{},[2362],{"type":90,"value":2363},"⋅",{"type":84,"tag":1864,"props":2365,"children":2366},{},[2367,2372],{"type":84,"tag":1832,"props":2368,"children":2369},{},[2370],{"type":90,"value":2371},"2",{"type":84,"tag":1832,"props":2373,"children":2374},{},[2375],{"type":90,"value":2376},"52",{"type":84,"tag":325,"props":2378,"children":2379},{},[2380],{"type":90,"value":2381},"−",{"type":84,"tag":331,"props":2383,"children":2384},{},[2385],{"type":90,"value":2386},"h",{"type":84,"tag":315,"props":2388,"children":2389},{},[2390,2401,2405],{"type":84,"tag":1864,"props":2391,"children":2392},{},[2393,2397],{"type":84,"tag":1832,"props":2394,"children":2395},{},[2396],{"type":90,"value":2371},{"type":84,"tag":1832,"props":2398,"children":2399},{},[2400],{"type":90,"value":2376},{"type":84,"tag":325,"props":2402,"children":2403},{},[2404],{"type":90,"value":2381},{"type":84,"tag":331,"props":2406,"children":2407},{},[2408],{"type":90,"value":2386},{"type":84,"tag":325,"props":2410,"children":2411},{"fence":339},[2412],{"type":90,"value":2413},"⌋",{"type":84,"tag":1832,"props":2415,"children":2416},{},[2417],{"type":90,"value":2358},{"type":84,"tag":393,"props":2419,"children":2420},{"encoding":395},[2421],{"type":90,"value":2422},"\\text{crash} = \\frac{\\left\\lfloor \\dfrac{100 \\cdot 2^{52} - h}{2^{52} - h} \\right\\rfloor}{100}",{"type":84,"tag":295,"props":2424,"children":2426},{"className":2425,"ariaHidden":339},[402],[2427,2457],{"type":84,"tag":295,"props":2428,"children":2430},{"className":2429},[407],[2431,2435,2444,2448,2453],{"type":84,"tag":295,"props":2432,"children":2434},{"className":2433,"style":1909},[412],[],{"type":84,"tag":295,"props":2436,"children":2438},{"className":2437},[418,90],[2439],{"type":84,"tag":295,"props":2440,"children":2442},{"className":2441},[418],[2443],{"type":90,"value":2328},{"type":84,"tag":295,"props":2445,"children":2447},{"className":2446,"style":429},[428],[],{"type":84,"tag":295,"props":2449,"children":2451},{"className":2450},[434],[2452],{"type":90,"value":329},{"type":84,"tag":295,"props":2454,"children":2456},{"className":2455,"style":429},[428],[],{"type":84,"tag":295,"props":2458,"children":2460},{"className":2459},[407],[2461,2466],{"type":84,"tag":295,"props":2462,"children":2465},{"className":2463,"style":2464},[412],"height:3.1486em;vertical-align:-0.345em;",[],{"type":84,"tag":295,"props":2467,"children":2469},{"className":2468},[418],[2470,2474,2823],{"type":84,"tag":295,"props":2471,"children":2473},{"className":2472},[480,1949],[],{"type":84,"tag":295,"props":2475,"children":2477},{"className":2476},[1800],[2478],{"type":84,"tag":295,"props":2479,"children":2481},{"className":2480},[1958,1959],[2482,2812],{"type":84,"tag":295,"props":2483,"children":2485},{"className":2484},[1964],[2486,2807],{"type":84,"tag":295,"props":2487,"children":2490},{"className":2488,"style":2489},[1969],"height:2.8036em;",[2491,2513,2525],{"type":84,"tag":295,"props":2492,"children":2494},{"style":2493},"top:-3.1461em;",[2495,2500],{"type":84,"tag":295,"props":2496,"children":2499},{"className":2497,"style":2498},[1979],"height:3.4911em;",[],{"type":84,"tag":295,"props":2501,"children":2503},{"className":2502},[1985,1986,1987,1988],[2504],{"type":84,"tag":295,"props":2505,"children":2507},{"className":2506},[418,1988],[2508],{"type":84,"tag":295,"props":2509,"children":2511},{"className":2510},[418,1988],[2512],{"type":90,"value":2358},{"type":84,"tag":295,"props":2514,"children":2516},{"style":2515},"top:-3.7211em;",[2517,2521],{"type":84,"tag":295,"props":2518,"children":2520},{"className":2519,"style":2498},[1979],[],{"type":84,"tag":295,"props":2522,"children":2524},{"className":2523,"style":2058},[2057],[],{"type":84,"tag":295,"props":2526,"children":2528},{"style":2527},"top:-4.8036em;",[2529,2533],{"type":84,"tag":295,"props":2530,"children":2532},{"className":2531,"style":2498},[1979],[],{"type":84,"tag":295,"props":2534,"children":2536},{"className":2535},[1985,1986,1987,1988],[2537],{"type":84,"tag":295,"props":2538,"children":2540},{"className":2539},[418,1988],[2541],{"type":84,"tag":295,"props":2542,"children":2545},{"className":2543},[2544,1988],"minner",[2546,2562,2794],{"type":84,"tag":295,"props":2547,"children":2552},{"className":2548,"style":2551},[480,1985,2039,2549,1988,2550],"size6","delimcenter","top:0.075em;",[2553],{"type":84,"tag":295,"props":2554,"children":2556},{"className":2555},[464,1987,1988],[2557],{"type":84,"tag":295,"props":2558,"children":2560},{"className":2559},[1988],[2561],{"type":90,"value":2343},{"type":84,"tag":295,"props":2563,"children":2565},{"className":2564},[418,1985,2039,2549],[2566,2570,2790],{"type":84,"tag":295,"props":2567,"children":2569},{"className":2568},[480,1949],[],{"type":84,"tag":295,"props":2571,"children":2573},{"className":2572},[1800],[2574],{"type":84,"tag":295,"props":2575,"children":2577},{"className":2576},[1958,1959],[2578,2778],{"type":84,"tag":295,"props":2579,"children":2581},{"className":2580},[1964],[2582,2773],{"type":84,"tag":295,"props":2583,"children":2586},{"className":2584,"style":2585},[1969],"height:1.4911em;",[2587,2667,2678],{"type":84,"tag":295,"props":2588,"children":2590},{"style":2589},"top:-2.314em;",[2591,2595],{"type":84,"tag":295,"props":2592,"children":2594},{"className":2593,"style":1980},[1979],[],{"type":84,"tag":295,"props":2596,"children":2598},{"className":2597},[418],[2599,2647,2652,2658,2662],{"type":84,"tag":295,"props":2600,"children":2602},{"className":2601},[418],[2603,2608],{"type":84,"tag":295,"props":2604,"children":2606},{"className":2605},[418],[2607],{"type":90,"value":2371},{"type":84,"tag":295,"props":2609,"children":2611},{"className":2610},[2012],[2612],{"type":84,"tag":295,"props":2613,"children":2615},{"className":2614},[1958],[2616],{"type":84,"tag":295,"props":2617,"children":2619},{"className":2618},[1964],[2620],{"type":84,"tag":295,"props":2621,"children":2624},{"className":2622,"style":2623},[1969],"height:0.7401em;",[2625],{"type":84,"tag":295,"props":2626,"children":2628},{"style":2627},"top:-2.989em;margin-right:0.05em;",[2629,2634],{"type":84,"tag":295,"props":2630,"children":2633},{"className":2631,"style":2632},[1979],"height:2.7em;",[],{"type":84,"tag":295,"props":2635,"children":2637},{"className":2636},[1985,1986,1987,1988],[2638],{"type":84,"tag":295,"props":2639,"children":2641},{"className":2640},[418,1988],[2642],{"type":84,"tag":295,"props":2643,"children":2645},{"className":2644},[418,1988],[2646],{"type":90,"value":2376},{"type":84,"tag":295,"props":2648,"children":2651},{"className":2649,"style":2650},[428],"margin-right:0.2222em;",[],{"type":84,"tag":295,"props":2653,"children":2656},{"className":2654},[2655],"mbin",[2657],{"type":90,"value":2381},{"type":84,"tag":295,"props":2659,"children":2661},{"className":2660,"style":2650},[428],[],{"type":84,"tag":295,"props":2663,"children":2665},{"className":2664},[418,453],[2666],{"type":90,"value":2386},{"type":84,"tag":295,"props":2668,"children":2669},{"style":2048},[2670,2674],{"type":84,"tag":295,"props":2671,"children":2673},{"className":2672,"style":1980},[1979],[],{"type":84,"tag":295,"props":2675,"children":2677},{"className":2676,"style":2058},[2057],[],{"type":84,"tag":295,"props":2679,"children":2681},{"style":2680},"top:-3.677em;",[2682,2686],{"type":84,"tag":295,"props":2683,"children":2685},{"className":2684,"style":1980},[1979],[],{"type":84,"tag":295,"props":2687,"children":2689},{"className":2688},[418],[2690,2695,2699,2704,2708,2755,2759,2764,2768],{"type":84,"tag":295,"props":2691,"children":2693},{"className":2692},[418],[2694],{"type":90,"value":2358},{"type":84,"tag":295,"props":2696,"children":2698},{"className":2697,"style":2650},[428],[],{"type":84,"tag":295,"props":2700,"children":2702},{"className":2701},[2655],[2703],{"type":90,"value":2363},{"type":84,"tag":295,"props":2705,"children":2707},{"className":2706,"style":2650},[428],[],{"type":84,"tag":295,"props":2709,"children":2711},{"className":2710},[418],[2712,2717],{"type":84,"tag":295,"props":2713,"children":2715},{"className":2714},[418],[2716],{"type":90,"value":2371},{"type":84,"tag":295,"props":2718,"children":2720},{"className":2719},[2012],[2721],{"type":84,"tag":295,"props":2722,"children":2724},{"className":2723},[1958],[2725],{"type":84,"tag":295,"props":2726,"children":2728},{"className":2727},[1964],[2729],{"type":84,"tag":295,"props":2730,"children":2733},{"className":2731,"style":2732},[1969],"height:0.8141em;",[2734],{"type":84,"tag":295,"props":2735,"children":2737},{"style":2736},"top:-3.063em;margin-right:0.05em;",[2738,2742],{"type":84,"tag":295,"props":2739,"children":2741},{"className":2740,"style":2632},[1979],[],{"type":84,"tag":295,"props":2743,"children":2745},{"className":2744},[1985,1986,1987,1988],[2746],{"type":84,"tag":295,"props":2747,"children":2749},{"className":2748},[418,1988],[2750],{"type":84,"tag":295,"props":2751,"children":2753},{"className":2752},[418,1988],[2754],{"type":90,"value":2376},{"type":84,"tag":295,"props":2756,"children":2758},{"className":2757,"style":2650},[428],[],{"type":84,"tag":295,"props":2760,"children":2762},{"className":2761},[2655],[2763],{"type":90,"value":2381},{"type":84,"tag":295,"props":2765,"children":2767},{"className":2766,"style":2650},[428],[],{"type":84,"tag":295,"props":2769,"children":2771},{"className":2770},[418,453],[2772],{"type":90,"value":2386},{"type":84,"tag":295,"props":2774,"children":2776},{"className":2775},[2159],[2777],{"type":90,"value":2162},{"type":84,"tag":295,"props":2779,"children":2781},{"className":2780},[1964],[2782],{"type":84,"tag":295,"props":2783,"children":2786},{"className":2784,"style":2785},[1969],"height:0.7693em;",[2787],{"type":84,"tag":295,"props":2788,"children":2789},{},[],{"type":84,"tag":295,"props":2791,"children":2793},{"className":2792},[549,1949],[],{"type":84,"tag":295,"props":2795,"children":2797},{"className":2796,"style":2551},[549,1985,2039,2549,1988,2550],[2798],{"type":84,"tag":295,"props":2799,"children":2801},{"className":2800},[464,1987,1988],[2802],{"type":84,"tag":295,"props":2803,"children":2805},{"className":2804},[1988],[2806],{"type":90,"value":2413},{"type":84,"tag":295,"props":2808,"children":2810},{"className":2809},[2159],[2811],{"type":90,"value":2162},{"type":84,"tag":295,"props":2813,"children":2815},{"className":2814},[1964],[2816],{"type":84,"tag":295,"props":2817,"children":2819},{"className":2818,"style":2263},[1969],[2820],{"type":84,"tag":295,"props":2821,"children":2822},{},[],{"type":84,"tag":295,"props":2824,"children":2826},{"className":2825},[549,1949],[],{"type":84,"tag":93,"props":2828,"children":2829},{},[2830,2831,2837,2839,2845],{"type":90,"value":565},{"type":84,"tag":99,"props":2832,"children":2834},{"className":2833},[],[2835],{"type":90,"value":2836},"h = int(hex[0:8])",{"type":90,"value":2838}," (ilk 8 hex karakterden 32-bitlik bir tamsayı). Bir değişiklikle: eğer ",{"type":84,"tag":99,"props":2840,"children":2842},{"className":2841},[],[2843],{"type":90,"value":2844},"h mod 33 == 0",{"type":90,"value":2846}," ise, çarpan 1.00x'tir (anında patlar), bu da Stake'in ~%1 ev avantajını oluşturur. Diğer kasinolar farklı bölenler kullanır — 25 (Rainbet ~%4 avantaj), 50 (düşük avantaj varyantları), 100 (çok düşük avantaj).",{"type":84,"tag":93,"props":2848,"children":2849},{},[2850],{"type":90,"value":2851},"Bu formülü bir milyon kez çalıştır ve ~%50 turun 2x'nin altında patladığı, ~%10 10x'i geçtiği ve belki %1 100x'e ulaştığı bir dağılım alırsın. Beklenen değer, bahis başına 0.99 olur — eksik olan %1, per-tur manipülasyona değil formül sabitlerindeki ev avantajıdır.",{"type":84,"tag":598,"props":2853,"children":2855},{"id":2854},"kart-eşlemesi-güverte-karıştırmaları",[2856],{"type":90,"value":2857},"Kart Eşlemesi (Güverte Karıştırmaları)",{"type":84,"tag":93,"props":2859,"children":2860},{},[2861],{"type":90,"value":2862},"PF blackjack, poker ve baccarat, HMAC-SHA512 (daha uzun çıktı = hash çağrısı başına daha fazla kart) kullanarak sanal güverteler karıştırır. Fisher-Yates karıştırması standarttır:",{"type":84,"tag":1298,"props":2864,"children":2867},{"className":2865,"code":2866,"language":90},[1301],"for i = 51 down to 1:\n  j = hmac_int(i) mod (i + 1)\n  swap(deck[i], deck[j])\n",[2868],{"type":84,"tag":99,"props":2869,"children":2870},{"__ignoreMap":1306},[2871],{"type":90,"value":2866},{"type":84,"tag":93,"props":2873,"children":2874},{},[2875,2877,2883,2885,2891],{"type":90,"value":2876},"Her ",{"type":84,"tag":99,"props":2878,"children":2880},{"className":2879},[],[2881],{"type":90,"value":2882},"hmac_int(i)",{"type":90,"value":2884}," çağrısı, 128 karakterlik SHA-512 çıktısının 4 hex karakterini tüketir. Bir turun kartları tamamen bir HMAC çağrısıyla belirlenir, bu nedenle sıklıkla doğrulama panelinde 13+ ondalık dönüştürülmüş tamsayılar görsün — her kart takası başına bir. Stake ve BC.Game'de belirli uygulama için bkz. ",{"type":84,"tag":722,"props":2886,"children":2888},{"href":2887},"\u002Fblog\u002Fprovably-fair-blackjack",[2889],{"type":90,"value":2890},"provably fair blackjack rehberi",{"type":90,"value":1497},{"type":84,"tag":85,"props":2893,"children":2895},{"id":2894},"geleneksel-rng-vs-provably-fair-rng",[2896],{"type":90,"value":2897},"Geleneksel RNG vs Provably Fair RNG",{"type":84,"tag":93,"props":2899,"children":2900},{},[2901],{"type":90,"value":2902},"RNG düzeyinde özelde (daha geniş adalet yığınından değil), PF sertifikalı CSPRNG'nin kesin bir üst kümesidir.",{"type":84,"tag":598,"props":2904,"children":2906},{"id":2905},"geleneksel-rngler-nerede-başarısız-olur",[2907],{"type":90,"value":2908},"Geleneksel RNG'ler Nerede Başarısız Olur",{"type":84,"tag":93,"props":2910,"children":2911},{},[2912,2914,2919],{"type":90,"value":2913},"eCOGRA, iTech Labs ve GLI'den sertifikalı RNG'ler hepsi kriptografik olarak güvenlidir — matematik PF'nin kadar güçlüdür. Sorun primitifde değil, ",{"type":84,"tag":126,"props":2915,"children":2916},{},[2917],{"type":90,"value":2918},"çalışma zamanı güven modelinde",{"type":90,"value":377},{"type":84,"tag":605,"props":2921,"children":2922},{},[2923,2928,2933,2938],{"type":84,"tag":609,"props":2924,"children":2925},{},[2926],{"type":90,"value":2927},"Sertifikalı RNG, casino'nun sunucusunda yaşar, bir kez denetlenir",{"type":84,"tag":609,"props":2929,"children":2930},{},[2931],{"type":90,"value":2932},"Çıktısını asla doğrudan görmezsiniz, sadece oyunun son durumunu görürsünüz",{"type":84,"tag":609,"props":2934,"children":2935},{},[2936],{"type":90,"value":2937},"Hiçbir şey casino'yu üretimde sertifikalı kodu çalıştırmaya zorlamamaz",{"type":84,"tag":609,"props":2939,"children":2940},{},[2941],{"type":90,"value":2942},"Tur başına bir anlaşmazlık gerçek zamanda çözülemez",{"type":84,"tag":93,"props":2944,"children":2945},{},[2946],{"type":90,"value":2947},"Pragmatic Play'in sertifikalı slot motoru sessizce Roobet'in üretiminde eCOGRA'nın test ettiğinden farklı bir RNG çalıştırırsa, hiçbir sertifika kontrolü bunu yakalamaz. Boşluk yalnızca tur başına açık doğrulama ile kapanır.",{"type":84,"tag":598,"props":2949,"children":2951},{"id":2950},"pfnin-primitivee-eklediği-şey",[2952],{"type":90,"value":2953},"PF'nin Primitive'e Eklediği Şey",{"type":84,"tag":93,"props":2955,"children":2956},{},[2957],{"type":90,"value":2958},"Provably Fair aynı kriptografik temeli alır ve bunu açığa çıkarır. Özel olarak:",{"type":84,"tag":605,"props":2960,"children":2961},{},[2962,2974,2979,2984],{"type":84,"tag":609,"props":2963,"children":2964},{},[2965,2967,2972],{"type":90,"value":2966},"Sunucu seed hash'i bahsinizden ",{"type":84,"tag":108,"props":2968,"children":2969},{},[2970],{"type":90,"value":2971},"önce",{"type":90,"value":2973}," yayımlanır (taahhüt)",{"type":84,"tag":609,"props":2975,"children":2976},{},[2977],{"type":90,"value":2978},"İstemci seed'iniz HMAC girişine katkıda bulunur (birlikte imzalama)",{"type":84,"tag":609,"props":2980,"children":2981},{},[2982],{"type":90,"value":2983},"Ham sunucu seed'i tur sonra açığa çıkarılır (açıklama)",{"type":84,"tag":609,"props":2985,"children":2986},{},[2987],{"type":90,"value":2988},"Hesaplama deterministiktir ve herhangi bir tarayıcıda yeniden üretilebilir (doğrulama)",{"type":84,"tag":93,"props":2990,"children":2991},{},[2992,2994,2999],{"type":90,"value":2993},"Bu tamamen farktır. Aynı HMAC, aynı CSPRNG matematiği — üzerine yerleştirilmiş dört ekstra şeffaflık adımı ile. Her iki modelin nasıl karşılaştırıldığı hakkında daha derinlemesine bir anlatım için bkz. ",{"type":84,"tag":722,"props":2995,"children":2996},{"href":724},[2997],{"type":90,"value":2998},"provably fair vs RNG certified",{"type":90,"value":1497},{"type":84,"tag":85,"props":3001,"children":3003},{"id":3002},"blockchain-randomness-chainlink-vrf-ve-onchain-oyunlar",[3004],{"type":90,"value":3005},"Blockchain Randomness — Chainlink VRF ve Onchain Oyunlar",{"type":84,"tag":93,"props":3007,"children":3008},{},[3009],{"type":90,"value":3010},"PF RNG merkezileştirilmiş kripto casino'ları güzel bir şekilde kapsar. Peki ya tamamen merkezi olmayan uygulamalar — onchain piyangolar, NFT özellik ataması, onchain zar? İşte bu noktada farklı bir çözüm devreye girer.",{"type":84,"tag":598,"props":3012,"children":3014},{"id":3013},"blockchainler-neden-güvenli-rastgele-sayılar-üretemez",[3015],{"type":90,"value":3016},"Blockchainler Neden Güvenli Rastgele Sayılar Üretemez",{"type":84,"tag":93,"props":3018,"children":3019},{},[3020],{"type":90,"value":3021},"Her blockchain tasarımı gereği deterministiktir — her doğrulayıcı aynı girdilerden aynı durumu üretmelidir, aksi takdirde fikir birliği bozulur. Bu rastgeleliği yapısal olarak zorlaştırır:",{"type":84,"tag":605,"props":3023,"children":3024},{},[3025,3036,3047,3058],{"type":84,"tag":609,"props":3026,"children":3027},{},[3028,3034],{"type":84,"tag":99,"props":3029,"children":3031},{"className":3030},[],[3032],{"type":90,"value":3033},"block.timestamp",{"type":90,"value":3035}," madenci tarafından birkaç saniye içinde kontrol edilebilir",{"type":84,"tag":609,"props":3037,"children":3038},{},[3039,3045],{"type":84,"tag":99,"props":3040,"children":3042},{"className":3041},[],[3043],{"type":90,"value":3044},"block.blockhash",{"type":90,"value":3046}," madenler tarafından blok tutarak manipüle edilebilir",{"type":84,"tag":609,"props":3048,"children":3049},{},[3050,3056],{"type":84,"tag":99,"props":3051,"children":3053},{"className":3052},[],[3054],{"type":90,"value":3055},"block.prevrandao",{"type":90,"value":3057}," (Merge sonrası Ethereum) daha iyidir ancak yine de doğrulayıcılar tarafından sapma yapılabilir",{"type":84,"tag":609,"props":3059,"children":3060},{},[3061,3063,3067],{"type":90,"value":3062},"Herhangi bir onchain entropi kaynağı, kullanılmadan ",{"type":84,"tag":108,"props":3064,"children":3065},{},[3066],{"type":90,"value":2971},{"type":90,"value":3068}," kontrat tarafından okunabilir, amacı bozar",{"type":84,"tag":93,"props":3070,"children":3071},{},[3072],{"type":90,"value":3073},"Blockhash kullanan naif dApp piyangolar geçmişte boşaltılmıştır. 1 milyon dolarlık bir jackpot'u manipüle etme ekonomik teşviki bir madenciyi rasyonel olarak bir blok tutmaya yapabilir.",{"type":84,"tag":598,"props":3075,"children":3077},{"id":3076},"chainlink-vrf-nasıl-çözer",[3078],{"type":90,"value":3079},"Chainlink VRF Nasıl Çözer",{"type":84,"tag":93,"props":3081,"children":3082},{},[3083,3088],{"type":84,"tag":126,"props":3084,"children":3085},{},[3086],{"type":90,"value":3087},"Chainlink VRF",{"type":90,"value":3089}," (Verifiable Random Function) rastgeleliği çevrimdışı üretir ve bunu kriptografik bir kanıt ile onchain'e sunmuştur. Akış:",{"type":84,"tag":3091,"props":3092,"children":3093},"ol",{},[3094,3099,3104,3116,3121],{"type":84,"tag":609,"props":3095,"children":3096},{},[3097],{"type":90,"value":3098},"Akıllı kontrat bir rastgele sayı talep eder",{"type":84,"tag":609,"props":3100,"children":3101},{},[3102],{"type":90,"value":3103},"Chainlink oracle değeri çevrimdışı olarak özel anahtarı + talep seed'i kullanarak üretir",{"type":84,"tag":609,"props":3105,"children":3106},{},[3107,3109],{"type":90,"value":3108},"Kanıt, oracle'ın genel anahtarına karşı herkesin doğrulayabileceği bir ",{"type":84,"tag":722,"props":3110,"children":3113},{"href":3111,"rel":3112},"https:\u002F\u002Fdocs.chain.link\u002Fvrf",[792],[3114],{"type":90,"value":3115},"BLS imzasıdır",{"type":84,"tag":609,"props":3117,"children":3118},{},[3119],{"type":90,"value":3120},"Hem değer hem de kanıt tek bir işlemde onchain'e geri gönderilir",{"type":84,"tag":609,"props":3122,"children":3123},{},[3124],{"type":90,"value":3125},"Kontrat değeri kullanmadan önce kanıtı doğrular",{"type":84,"tag":93,"props":3127,"children":3128},{},[3129],{"type":90,"value":3130},"Kritik özellik: kanıt rastgele değeri oracle'ın özel anahtarına ve talep seed'ine bağladığı için, oracle uygun değerleri seçemez. Herhangi bir sapma matematiksel olarak tespit edilebilir.",{"type":84,"tag":598,"props":3132,"children":3134},{"id":3133},"vrf-vs-hmac-tabanlı-pf-ne-zaman-kullanılır",[3135],{"type":90,"value":3136},"VRF vs HMAC Tabanlı PF Ne Zaman Kullanılır",{"type":84,"tag":145,"props":3138,"children":3139},{},[3140,3161],{"type":84,"tag":149,"props":3141,"children":3142},{},[3143],{"type":84,"tag":76,"props":3144,"children":3145},{},[3146,3151,3156],{"type":84,"tag":156,"props":3147,"children":3148},{},[3149],{"type":90,"value":3150},"Kullanım durumu",{"type":84,"tag":156,"props":3152,"children":3153},{},[3154],{"type":90,"value":3155},"En uygun",{"type":84,"tag":156,"props":3157,"children":3158},{},[3159],{"type":90,"value":3160},"Neden",{"type":84,"tag":172,"props":3162,"children":3163},{},[3164,3182,3199,3216,3233],{"type":84,"tag":76,"props":3165,"children":3166},{},[3167,3172,3177],{"type":84,"tag":179,"props":3168,"children":3169},{},[3170],{"type":90,"value":3171},"Merkezileştirilmiş zar\u002Fcrash",{"type":84,"tag":179,"props":3173,"children":3174},{},[3175],{"type":90,"value":3176},"HMAC tabanlı PF",{"type":84,"tag":179,"props":3178,"children":3179},{},[3180],{"type":90,"value":3181},"Daha basit, daha ucuz, aynı garantiler",{"type":84,"tag":76,"props":3183,"children":3184},{},[3185,3190,3194],{"type":84,"tag":179,"props":3186,"children":3187},{},[3188],{"type":90,"value":3189},"Onchain piyelgo",{"type":84,"tag":179,"props":3191,"children":3192},{},[3193],{"type":90,"value":3087},{"type":84,"tag":179,"props":3195,"children":3196},{},[3197],{"type":90,"value":3198},"Güvensiz, merkezi operatör yok",{"type":84,"tag":76,"props":3200,"children":3201},{},[3202,3207,3211],{"type":84,"tag":179,"props":3203,"children":3204},{},[3205],{"type":90,"value":3206},"NFT özellik ataması",{"type":84,"tag":179,"props":3208,"children":3209},{},[3210],{"type":90,"value":3087},{"type":84,"tag":179,"props":3212,"children":3213},{},[3214],{"type":90,"value":3215},"Manipüle edilemeyen nadirlik",{"type":84,"tag":76,"props":3217,"children":3218},{},[3219,3224,3228],{"type":84,"tag":179,"props":3220,"children":3221},{},[3222],{"type":90,"value":3223},"Merkezileştirilmiş blackjack",{"type":84,"tag":179,"props":3225,"children":3226},{},[3227],{"type":90,"value":3176},{"type":84,"tag":179,"props":3229,"children":3230},{},[3231],{"type":90,"value":3232},"Chainlink VRF kartı başına çok pahalı",{"type":84,"tag":76,"props":3234,"children":3235},{},[3236,3241,3245],{"type":84,"tag":179,"props":3237,"children":3238},{},[3239],{"type":90,"value":3240},"Yüksek jackpot'lu DeFi oyunu",{"type":84,"tag":179,"props":3242,"children":3243},{},[3244],{"type":90,"value":3087},{"type":84,"tag":179,"props":3246,"children":3247},{},[3248],{"type":90,"value":3249},"Madenci manipülasyon riski çok yüksek",{"type":84,"tag":93,"props":3251,"children":3252},{},[3253,3255,3261,3263,3269],{"type":90,"value":3254},"2026'da çoğu kripto casino HMAC tabanlı PF kullanmaya devam ediyor çünkü hızlı, ucuz ve zaten iyi anlaşılmış. VRF, onchain DeFi, NFT'ler ve tamamen merkezi olmayan oyunlaştırmanın parladığı yerdir. ",{"type":84,"tag":722,"props":3256,"children":3258},{"href":3257},"\u002Fblog\u002Fprovably-fair-bitcoin-games",[3259],{"type":90,"value":3260},"Provably fair Bitcoin oyunları",{"type":90,"value":3262}," sıralamamız özel olarak her casino'nun hangi PF uygulamasını kullandığına göre filtreler.\nBu kavramları canlı bir kumarhanede stres testine tabi tutmak istiyorsanız ",{"type":84,"tag":722,"props":3264,"children":3266},{"href":3265},"\u002Fcasino\u002Fprovably-fair",[3267],{"type":90,"value":3268},"provably fair dizini",{"type":90,"value":3270}," yatırım yapmadan inceleyebileceğiniz uygulamaları listeler — çoğu, server-seed hash'lerini açık bir uç noktada yayınlar.",{"type":84,"tag":85,"props":3272,"children":3274},{"id":3273},"provably-fair-rngların-saldırı-yüzeyi",[3275],{"type":90,"value":3276},"Provably Fair RNG'ların Saldırı Yüzeyi",{"type":84,"tag":93,"props":3278,"children":3279},{},[3280],{"type":90,"value":3281},"Kriptografik olarak mükemmel bir Provably Fair RNG bile kötü implementasyon ile kırılabilir. İşte matematiği geçenler.",{"type":84,"tag":598,"props":3283,"children":3285},{"id":3284},"önyargılı-seed-pool-saldırısı",[3286],{"type":90,"value":3287},"Önyargılı Seed Pool Saldırısı",{"type":84,"tag":93,"props":3289,"children":3290},{},[3291],{"type":90,"value":3292},"En gerçekçi saldırı — ve client seed rotasyonunun önemli olmasının bir nedeni.",{"type":84,"tag":93,"props":3294,"children":3295},{},[3296],{"type":90,"value":3297},"Dürüst olmayan bir casino, binlerce aday sunucu seed'ini önceden üretir. Her biri için, yaygın client seed pattern'lerine karşı sonuçları hesaplarlar (varsayılan tarayıcı formatları, sık kullanılan kelimeler). Yalnızca tahmin edilebilir client seed'lerine karşı daha fazla kayıptan kazanç üretecek seed'leri yayınlarlar.",{"type":84,"tag":93,"props":3299,"children":3300},{},[3301],{"type":90,"value":3302},"Her yayınlanan seed, önceden taahhüt edilen hash'ine doğru şekilde hash'lenir. Commit-reveal matematiği geçer. Fakat mevcut seed'lerin havuzu, hiçbir oyuncu onları görmeden önceden elendi ve uzun vadeli house edge, belirtilen RTP'yi sessizce aşar.",{"type":84,"tag":3304,"props":3305,"children":3307},"h4",{"id":3306},"rotasyon-bunu-neden-yendiği",[3308],{"type":90,"value":3309},"Rotasyon Bunu Neden Yendiği",{"type":84,"tag":93,"props":3311,"children":3312},{},[3313,3315,3319],{"type":90,"value":3314},"Önyargılı seed saldırıları, casinonun server seed'i taahhüt etmeden ",{"type":84,"tag":108,"props":3316,"children":3317},{},[3318],{"type":90,"value":2971},{"type":90,"value":3320}," gelecekteki client seed'inizi bilmesini gerektirir. Her 50-100 bahis'te client seed'inizi döndürün ve casinonun ön-hesaplaması işe yaramaz hale gelir — yeni client seed'i bilmeden sunucu seed'i taahhüt ettiler, bu nedenle sonuçları yönlendiremezler.",{"type":84,"tag":93,"props":3322,"children":3323},{},[3324,3326,3332],{"type":90,"value":3325},"Bu, meşru casinoların anında rotasyon yapmanıza izin vermesinin nedenidir. Client seed rotasyonu reddeden (veya client seed'i kendi takvimlerinde otomatik olarak yeniden oluşturan, sizin takvimde değil) bir PF casino, saldırı yüzeyinin açık olduğunu işaret ediyor. ",{"type":84,"tag":722,"props":3327,"children":3329},{"href":3328},"\u002Fblog\u002Fclient-seed-vs-server-seed",[3330],{"type":90,"value":3331},"Client seed vs server seed",{"type":90,"value":3333}," rehberi tam rotasyon iş akışını kapsar.",{"type":84,"tag":598,"props":3335,"children":3337},{"id":3336},"zayıf-entropi-kaynakları",[3338],{"type":90,"value":3339},"Zayıf Entropi Kaynakları",{"type":84,"tag":93,"props":3341,"children":3342},{},[3343],{"type":90,"value":3344},"Sunucu seed üretimi tahmin edilebilir entropiye kullanılırsa, commit-reveal protokolü yine de çalışır ancak saldırgan seed'leri tahmin edebilir.",{"type":84,"tag":3304,"props":3346,"children":3348},{"id":3347},"mathrandom-tuzağı",[3349],{"type":90,"value":3350},"Math.random Tuzağı",{"type":84,"tag":93,"props":3352,"children":3353},{},[3354,3356,3361],{"type":90,"value":3355},"JavaScript'in ",{"type":84,"tag":99,"props":3357,"children":3359},{"className":3358},[],[3360],{"type":90,"value":888},{"type":90,"value":3362}," doğrusal bir uyumlu üreteci varyasyonudur. Yaklaşık 700 ardışık çıktıyı gözlemledikten sonra, saldırgan tam iç durumu yeniden yapılandırabilir ve sonraki her çıktıyı tahmin edebilir. Bir PF casino sunucu seed üretimi için Math.random kullanırsa:",{"type":84,"tag":3091,"props":3364,"children":3365},{},[3366,3371,3376,3387],{"type":84,"tag":609,"props":3367,"children":3368},{},[3369],{"type":90,"value":3370},"Saldırgan 700+ tur oynar, her açıklanmış sunucu seed'i toplar",{"type":84,"tag":609,"props":3372,"children":3373},{},[3374],{"type":90,"value":3375},"Saldırgan PRNG durumunu yeniden yapılandırır",{"type":84,"tag":609,"props":3377,"children":3378},{},[3379,3381,3385],{"type":90,"value":3380},"Saldırgan taahhüt edilmeden ",{"type":84,"tag":108,"props":3382,"children":3383},{},[3384],{"type":90,"value":2971},{"type":90,"value":3386}," sonraki hash'lenmiş sunucu seed'i tahmin eder",{"type":84,"tag":609,"props":3388,"children":3389},{},[3390],{"type":90,"value":3391},"Saldırgan sonucun tam bilgisini kullanarak bahis oynar",{"type":84,"tag":93,"props":3393,"children":3394},{},[3395,3397,3403,3405,3411],{"type":90,"value":3396},"Önleme: casinolar ",{"type":84,"tag":99,"props":3398,"children":3400},{"className":3399},[],[3401],{"type":90,"value":3402},"crypto.randomBytes(32)",{"type":90,"value":3404}," (Node.js), ",{"type":84,"tag":99,"props":3406,"children":3408},{"className":3407},[],[3409],{"type":90,"value":3410},"crypto.getRandomValues(new Uint8Array(32))",{"type":90,"value":3412}," (tarayıcı) veya donanım RNG kullanmalıdır. Fark bir kod satırıdır ama güvenlik boşluğu tamtamdır.",{"type":84,"tag":598,"props":3414,"children":3416},{"id":3415},"i̇mplementasyon-uyarı-i̇şaretleri",[3417],{"type":90,"value":3418},"İmplementasyon Uyarı İşaretleri",{"type":84,"tag":93,"props":3420,"children":3421},{},[3422],{"type":90,"value":3423},"Bir Provably Fair RNG'nin güvenli olmadığını gösteren kısa kontrol listesi:",{"type":84,"tag":605,"props":3425,"children":3426},{},[3427,3432,3437,3442,3447,3452],{"type":84,"tag":609,"props":3428,"children":3429},{},[3430],{"type":90,"value":3431},"Client seed rotasyon düğmesi yok, veya rotasyon >5 saniye alıyor",{"type":84,"tag":609,"props":3433,"children":3434},{},[3435],{"type":90,"value":3436},"Client seed casino tarafından kendi takvimlerinde otomatik olarak yeniden üretiliyor",{"type":84,"tag":609,"props":3438,"children":3439},{},[3440],{"type":90,"value":3441},"Sunucu seed geçmişi algoritm veya dilim genişliğini göstermiyor",{"type":84,"tag":609,"props":3443,"children":3444},{},[3445],{"type":90,"value":3446},"Doğrulama aracı yalnızca casinonun kendi web sitesinde çalışıyor (yerel olarak değil)",{"type":84,"tag":609,"props":3448,"children":3449},{},[3450],{"type":90,"value":3451},"Yayınlanan hash algoritması yok — \"bir yerde SHA-256\" yeterli değil; tam formülü gerekli",{"type":84,"tag":609,"props":3453,"children":3454},{},[3455],{"type":90,"value":3456},"Açıklanmış sunucu seed'ler herhangi bir turda önceden taahhüt edilen hash'leriyle eşleşmiyor",{"type":84,"tag":93,"props":3458,"children":3459},{},[3460,3462,3467],{"type":90,"value":3461},"Bu işaretlerden herhangi biri, Provably Fair iddiasının normal bir RNG'nin üstüne pazarlama cilası olduğunu önerir. Hangi casinoların fiilen Provably Fair kodlarını yayınladığını yan yana görmek için ",{"type":84,"tag":722,"props":3463,"children":3464},{"href":3257},[3465],{"type":90,"value":3466},"provably fair Bitcoin oyunları",{"type":90,"value":3468}," sıralamasına bakın.",{"type":84,"tag":85,"props":3470,"children":3472},{"id":3471},"kendiniz-deneyin-i̇nteraktif-doğrulayıcı",[3473],{"type":90,"value":3474},"Kendiniz Deneyin — İnteraktif Doğrulayıcı",{"type":84,"tag":93,"props":3476,"children":3477},{},[3478],{"type":90,"value":3479},"Matematik soyut olmaktan çıkıyor, onu kendi seed'lerinizde çalıştırır çalıştırmaz. Casinonuzun adalet panelinden herhangi dört değeri aşağıdaki doğrulayıcıya yapıştırın — her şey Web Crypto API aracılığıyla tarayıcınızda yürütülür, hiçbir veri sunucumuza gönderilmez.",{"type":84,"tag":3481,"props":3482,"children":3483},"inline-provably-fair-verifier",{},[],{"type":84,"tag":93,"props":3485,"children":3486},{},[3487],{"type":90,"value":3488},"Pratik bir ipucu: elinizde gerçek bir PF casino bahsi yoksa, doğrulanmış bir turu görmek için bu tek kullanımlık test değerlerini deneyin:",{"type":84,"tag":605,"props":3490,"children":3491},{},[3492,3505,3516,3527],{"type":84,"tag":609,"props":3493,"children":3494},{},[3495,3497,3503],{"type":90,"value":3496},"Sunucu seed hash: ",{"type":84,"tag":99,"props":3498,"children":3500},{"className":3499},[],[3501],{"type":90,"value":3502},"bf3c0a9b0f4b3c8e8f4f0c5f0c4e8b7d8f3e2a1c9f6e3b7c4d5a8e2f9b1c6d3a",{"type":90,"value":3504}," (yalnızca örnek — gerçek hash'lerle eşleşmez)",{"type":84,"tag":609,"props":3506,"children":3507},{},[3508,3510],{"type":90,"value":3509},"Sunucu seed: ",{"type":84,"tag":99,"props":3511,"children":3513},{"className":3512},[],[3514],{"type":90,"value":3515},"f4a9c2e1b7d8e3c5a1b9f6d2e8c4a7b3e9d1c6a2b5f8e4c7a3b6e1d9c2a5b8f4",{"type":84,"tag":609,"props":3517,"children":3518},{},[3519,3521],{"type":90,"value":3520},"Client seed: ",{"type":84,"tag":99,"props":3522,"children":3524},{"className":3523},[],[3525],{"type":90,"value":3526},"demo-player",{"type":84,"tag":609,"props":3528,"children":3529},{},[3530,3532],{"type":90,"value":3531},"Nonce: ",{"type":84,"tag":99,"props":3533,"children":3535},{"className":3534},[],[3536],{"type":90,"value":1999},{"type":84,"tag":93,"props":3538,"children":3539},{},[3540,3542,3548,3550,3555,3557,3563,3565,3571,3573,3579],{"type":90,"value":3541},"Sonuç, hash eşleşmesi artı yeniden yapılandırılmış dice ve crash sonuçlarında GEÇTI \u002F BAŞARISIZ kararını gösterir. Aynı mantık ",{"type":84,"tag":722,"props":3543,"children":3545},{"href":3544},"\u002Fblog\u002Fprovably-fair-aviator-calculator",[3546],{"type":90,"value":3547},"Aviator provably fair hesaplayıcı",{"type":90,"value":3549}," adlı Spribe'ın crash tarzı oyununda çalışır ve tam doğrulayıcımız ",{"type":84,"tag":722,"props":3551,"children":3552},{"href":3265},[3553],{"type":90,"value":3554},"provably fair merkezi",{"type":90,"value":3556}," tüm ana akım PF casinoları kapsar. Bilinen bir RTP'ye karşı bahis boyutlandırmak için RNG'nin meşru olduğunu doğruladıktan sonra, ",{"type":84,"tag":722,"props":3558,"children":3560},{"href":3559},"\u002Fcasino\u002Frtp-calculator",[3561],{"type":90,"value":3562},"RTP hesaplayıcı",{"type":90,"value":3564},", ",{"type":84,"tag":722,"props":3566,"children":3568},{"href":3567},"\u002Fcasino\u002Fhouse-edge-calculator",[3569],{"type":90,"value":3570},"house edge hesaplayıcı",{"type":90,"value":3572}," ve ",{"type":84,"tag":722,"props":3574,"children":3576},{"href":3575},"\u002Fcasino\u002Fbankroll-calculator",[3577],{"type":90,"value":3578},"bankroll hesaplayıcı",{"type":90,"value":3580}," ile eşleştirin.",{"type":84,"tag":93,"props":3582,"children":3583},{},[3584,3589,3591,3595],{"type":84,"tag":126,"props":3585,"children":3586},{},[3587],{"type":90,"value":3588},"Özetle:",{"type":90,"value":3590}," matematik ancak kumarhane bahisten önce hash'i gerçekten yayınlarsa kurşun geçirmez olur. Her uygulamayı ",{"type":84,"tag":722,"props":3592,"children":3593},{"href":3265},[3594],{"type":90,"value":3554},{"type":90,"value":3596}," ile tekrar doğrulayın — her mekanın seed'i doğru kilitleyip kilitlemediğini ve hash'i nerede açtığını not ediyoruz.",{"type":84,"tag":85,"props":3598,"children":3600},{"id":3599},"sss",[3601],{"type":90,"value":3602},"SSS"]