KANITLANABILIR ADIL NEDIR?Rocketpot Provably Fair algoritmalarını kullanır. Oyunun sonucunu aşağıda verilen kaynak kodu ile doğrulayabilirsiniz. Provably Fair sistemi, hiç kimsenin, ne oyuncuların ne de sitenin operatörünün, oyun başlamadan önce oyunun sonucunu bilemeyeceğini ve hiç kimsenin oyunun rastgele sayılarını kurcalayamayacağını sağlamak için kullanılan matematiksel bir yöntemdir. |
NASIL ÇALIŞIYOR?Biz Zincirin son öğesinin karması Her oyun zincirdeki bir hash ile eşleşir: Zincirin |
NASIL DOĞRULANIR?Bir hash'in #n numaralı oyuna ait olduğunu doğrulamak için, hash'i n kez hash'lemeniz ve sonucu sonlandırıcı hash ile karşılaştırmanız yeterlidir. Bir oyunun sonucunu hash'inden hesaplamak için: |
const CryptoJS = require("crypto-js"); function generateGameResultFromSeed(roundSeed, salt) { // Kullanılacak en anlamlı bit sayısı const nBitsToUse = 52; // Adım 1. HMAC_SHA256(message=seed, key=salt) const hmac = CryptoJS.HmacSHA256(roundSeed, salt); const roundHash = hmac.toString(CryptoJS.enc.Hex); // Adım 2. r = 52 en anlamlı bit const roundRandSource = roundHash.slice(0, nBitsToUse / 4); const r = parseInt(roundRandSource, 16); // Adım 3. Çarpışma = r / 2^52'yi hesaplayın, [0; 1) içinde eşit olarak dağıtılır const twoPower52 = Math.pow(2, nBitsToUse); let crash = r / twoPower52; // Adım 4. 100 - 100B aralığında normalleştirilmiş çökmeyi hesaplayın crash = Math.floor(97 / crash); crash = Math.min(crash, 100000000000); çökme = Math.max(çökme, 100); // Adım 5. Jackpot turunda oyuncu seçimi için sonraki 52 biti tohum olarak al const jpPlayerRandSource = roundHash.slice(nBitsToUse / 4, 2 * nBitsToUse / 4); const jpPlayerRandom = parseInt(jpPlayerRandSource, 16); // Adım 6. Çarkta Jackpot değerini seçmek için sonraki 52 biti tohum olarak alın const jpValueRandSource = roundHash.slice(2 * nBitsToUse / 4, 3 * nBitsToUse / 4); const jpValueRandom = parseInt(jpValueRandSource, 16); return {roundHash, jpPlayerRandom, jpValueRandom, crash, roundSeed};
}
İlgili sonucu hesaplamak için kullanılmadan önce, her oyun hash'i, bir bitcoin bloğunun hash'inin küçük harfli, onaltılık dize gösterimi ile tuzlanır. Kullanılacak bloğun numarası, kazılmadan önce Bitcointalk forumunda (URL https://bitcointalk.org/index.php?topic=5178349) yayınlandı ve oyuncular için elverişsiz bir zinciri kasıtlı olarak seçmediğimizi kanıtladı. Bu blok Madencilikten önce kullanılacak bloğun numarasını bitcointalk tohumlama etkinliği gönderisinin aşağıdaki anlık görüntülerinde yayınladığımız doğrulanabilir: https://archive.is/Mwq4s , http://loyce.club/archive/posts/5224/52246534.html ve https://archive.is/r8zCU (gönderiyi kazıyıp arşivlediği için LoyceV'ye teşekkürler!) |
JACKPOT OYUNCU SEÇIMI VE ÇARK POZISYONLARIJackpot çarkı sonuçları aşağıdaki kod ile doğrulanabilir: https: //jsfiddle.net/7uackeqo/ Hazırlık adımları:
Yorum: Hash'ten bir tamsayı üretme işlemi herhangi bir çarpışma oyununa benzer, sadece 1 yerine 3 tamsayı üretiyoruz. Oyuncu seçim adımları:
Yorum: Oyuncu seçim sürecini açıklamanın sezgisel bir yolu, her oyuncunun bahsin her satoshi'si başına 1 bilet almasıdır. Ve sonra hash zincirindeki değere göre bir bilet seçilir. Oyuncu listesi (oyuncu isimleri ve bahislerinden oluşur) ve tur hash'i göz önüne alındığında, herkes oyuncu seçim sonucunu doğrulayabilir. Tüm bahisler yapıldıktan sonra, operatörün oyuncu seçimini manipüle etmesinin bir yolu yoktur. Çark döndürme adımları:
Yorum: Çark yapılandırması (sektör indeksleri ve değerleri) ve tur hash'i göz önüne alındığında, herkes çark dönüş sonucunu doğrulayabilir ve tohum olayı gerçekleştikten sonra dönüş sonucunu manipüle etmenin bir yolu yoktur. Bu metin 24 Eylül 2019 tarihinde düzenlenmiştir. |