在這一頁
骰子(加密版)
在這一頁
簡介
本頁面介紹一種名為「骰子」的遊戲,這種遊戲常見於使用加密貨幣進行投注和交易的網路賭場。遊戲與六面骰子無關,但輸贏是基於 0 到 10,000 之間的隨機數。請勿將其與其他名為“骰子”的遊戲混淆。
規則
- 與遊戲名稱相反,勝利和失敗是基於 0 到 10,000 之間(包括 0 和 10,000)隨機選擇的整數。
- 玩家將能夠確定獲勝目標或獲勝賠率(例如 2 比 1)。
- 獲勝的目標是「擲出」一個高於某個指定門檻的數字或低於另一個門檻的數字。
- 如果玩家調整賭注的一個要素(獲勝目標或賠率),那麼另一個要素也會進行調整,使得獲勝賠率與獲勝機率成反比,確保所有可能的賭注都具有相同的莊家優勢。
例子
假設一款遊戲的報酬率設定為 99%。如果玩家將中獎機率配置為 2 賠 1,那麼遊戲會將玩家的中獎機率調整為 0.99/2 = 49.5%。實現這一目標的目標如下:
- 超過 5050
- 4950以下
玩家可以選擇自己喜歡的目標。
假設玩家將中獎賠率調整為1賠3。那麼遊戲會將中獎機率調整為0.99/3=33%。實現這一目標的目標是:
- 超過 6700
- 3300以下
我不知道當獲勝目標是整數時如何處理平局。平手的賭場優勢比平手輸掉的賭場優勢低0.01%。
下表顯示了根據賠率為 2 比 1 的投注的玩家回報率 (RTP) 得出的獲勝目標。例如,如果獲勝目標低於 4975,則玩家回報率為 99.5%。
返回玩家指南
返回 給玩家 | 可能性 獲勝 | 在下面 | 超過 |
---|---|---|---|
99.5% | 49.75% | 4,975 | 5,025 |
99.4% | 49.70% | 4,970 | 5,030 |
99.3% | 49.65% | 4,965 | 5,035 |
99.2% | 49.60% | 4,960 | 5,040 |
99.1% | 49.55% | 4,955 | 5,045 |
99.0% | 49.50% | 4,950 | 5,050 |
98.9% | 49.45% | 4,945 | 5,055 |
98.8% | 49.40% | 4,940 | 5,060 |
98.7% | 49.35% | 4,935 | 5,065 |
98.6% | 49.30% | 4,930 | 5,070 |
98.5% | 49.25% | 4,925 | 5,075 |
上圖中,賠率為 2 賠 1 的投注金額低於 49,600,高於 53,999。上表顯示,回報率為 99.2%。也可以簡單計算為 2*(49600/100000) = 99.2%。
可證明公平
假設艾米和鮑伯想在遠端且不信任的情況下玩一場石頭剪刀布的遊戲。該怎麼做呢?
這可以透過加密動作輕鬆實現。網路上有很多加密程序,例如miniwebtool.com上的程式。例如,假設 Amy 想玩剪刀。她可以加密“剪刀”,並獲得以下加密訊息,即哈希值。
17f174ce4953e98e7418d22b29f7569505e4bcc39859e7825500d43a5ec1b87d d521d508d6ece5397021013c0c561bcd9ba947f1f40ac1a2f3a670b485b0aff6
然後,她可以在鮑勃行動之前將其發送給他,以證明她的行動是命中註定的。假設鮑勃隨後宣布他的行動是紙牌。艾米可以宣布勝利,並通過告訴鮑勃加密訊息“剪刀”來證明這一點,鮑勃將看到這條訊息的哈希值與艾米在他行動之前發送給他的哈希值完全相同。
然而,鮑勃知道只有三種可能的結果,他可能會用哈希程序計算“剪刀”的結果,並得到上述結果,然後選擇“石頭”。為了防止這種情況發生,艾米應該添加一些其他文本,例如隨機字符,以確保鮑勃無法解密她的哈希值。例如,她可以加密“b980Cql98lbaj -- 剪刀”,並得到以下不同的雜湊值。
5e4c68f7b35503c79b1aa31df87c6043bd30a1cff28b8431394cbbb829c90d4d51dec1b25ac5be44873572dbabd735c410066c68566c6
請注意,哈希值中只有 16 個可能的字符,即 0 到 9 和字母 a 到 f。整個雜湊值實際上是一個數字,不是以十進位表示,而是以十六進位表示,即十六進位。
這概念在「可能公平」遊戲中也適用。然而,它增加了一層額外的安全保障,允許玩家對賭注結果產生影響。否則,賭場可能會作弊。例如,賭場注意到玩家通常在骰子遊戲中押“大於”,然後給他一個較小的數字作為遊戲結果,即使這個數字是加密的。
用簡單易懂的英語來說,它的運作原理如下:
- 賭場選擇一串隨機字元(稱為種子),將其加密為哈希值,然後將該哈希值提供給玩家,以證明賭場對結果的貢獻是注定的。
- 玩家選擇自己的種子。
- 玩家下注。
- 兩個字串連接在一起(任意順序)。
- 步驟 5 中的組合字串被加密為雜湊值。
- 雜湊值的某些部分從 16 進位轉換為 10 進位。
- 將 6 的部分結果(可能是最後六位數)對應到 0 到 999,999 之間的某個數字。這便是遊戲結果。
- 下注結束時,賭場會顯示自己的種子,玩家可以驗證該種子是否加密為下注前提供的雜湊。這表明,一旦玩家選擇了自己的種子,結果就已註定。
儘管如此,賭場仍然可以作弊。其中一種作弊方式是透過預設玩家種子。如果玩家進入公平遊戲介面,他會看到一個預設玩家種子。玩家可以點擊選擇不同的種子,也可以輸入自己的種子,但我懷疑很多玩家不會介意。作弊的賭場可能會精心選擇預設玩家種子和賭場種子,然後進行哈希運算,最終導致玩家輸錢。
賭場作弊的另一種方式是簡單地選擇一個賭場種子,該種子經過哈希運算後會導致輸錢,即使它與玩家下注前提供的結果並無關聯。我在Wixiplay玩遊戲時就遇到過這種情況。如果您發現賭場的種子/哈希值不匹配,該怎麼辦?如果您指控他們作弊,他們要么會不加評論地否認,要么乾脆忽略指控。當我被 Wixiplay 欺騙時,他們最初不理我。後來,我向庫拉索博彩管理委員會投訴,卻連一點回應都沒有。
公平公正的賭場
Bonus Code
遊戲成果計劃
完成上述所有步驟來確定遊戲結果是否公平相當耗時。為了簡化流程,我用 PHP 編寫了一個程序,它可以根據玩家和賭場的種子輕鬆確定遊戲結果。該程式只有在遊戲結果如下確定的情況下才能正常運作:
- 加入伺服器和客戶端種子,先加入伺服器種子。
- 產生步驟 1 中字串的 SHA-512 雜湊值。
- 將哈希的前五個字元從十六進制轉換為十進制。
- 如果步驟 3 的結果超過 999,999,則將雜湊值前進 5 位元並傳回步驟 3。否則,轉到步驟 5。
- 取步驟 3 的最後五位數字。這就是遊戲結果。
此腳本適用於 Crypto.Games 的骰子遊戲。其他賭場可能會採用其他方式來決定隨機六位數,或使用 SHA-512 以外的雜湊演算法。
要使用我的程序,請前往此PHP 沙盒,按照頂部註釋中的說明進入,然後按一下「執行程式碼」。遊戲結果和合法伺服器種子的確認將顯示在程式碼下方的結果方塊中。
作為備份,下面的按鈕將顯示我的程式碼。
[劇透=骰子公平遊戲代碼]
// Crypto.Games 的骰子遊戲轉換 // 要使用,請在第 5 行輸入客戶端種子,在第 6 行輸入伺服器種子,在第 7 行輸入下一個伺服器種子的雜湊值。 $client_seed =“f0g9s8f7g097sdfg098sd7f0g87s0fg897”; $server_seed =“SxG74IkdDRmWh0jT015TCA01fUoCA0lI2N3KxS8L”; $next_hash = “1c42ef7fcbb94c2841d4ee88467c13813c30f5f774260f1a308b960884a7fd8b”; $server_seed_hash = hash('sha256',"$server_seed"); $combined_seed = $server_seed.$client_seed; echo "組合種子 = $combined_seed\n"; $combined_hash = hash('sha512', $combined_seed); echo“組合種子的雜湊值=$combined_hash\n”; $位置=0; $first_five=substr($combined_hash,$position,5); // echo "前五個字符,從位置 $position = $first_five\n 開始"; 做 { $hex_to_dec=hexdec($first_five); $位置+=5; } 當 ($hex_to_dec > 999999) 時; // echo "轉換為十進位 = $hex_to_dec\n"; $mod5=$hex_to_dec%100000; echo "\n遊戲結果 = $mod5\n"; 如果 ($server_seed_hash == $next_hash) { echo "伺服器種子符合.\n"; } 別的 { echo“伺服器種子不符!\n”; echo "伺服器種子 =\t$server_seed\n"; echo「伺服器種子雜湊=\t$server_seed_hash\n」; echo“所謂的下一個哈希=\t$next_hash\n”; } // 程式 // 1. 加入伺服器和客戶端種子,先加入伺服器種子。 // 2. 產生步驟 1 字串的 SHA-512 雜湊值。 // 3. 將雜湊的前五個字元從十六進位轉換為十進位。 // 4. 如果步驟 3 的結果超過 999,999,則將雜湊值前進 5 位元並傳回步驟 3。否則,轉到步驟 5。 // 5. 取出步驟 3 的最後五位數字。這將是遊戲結果。 ? >[劇透]
關於公平博彩的最終建議
如果你不想費心驗證遊戲結果是否公平,至少要讓賭場看起來你正在核實結果,以維護其誠信。賭場會知道你是否點擊「公平遊戲」來驗證結果。如果他們有作弊傾向,那麼常識告訴我們,他們更有可能欺騙那些不核實結果的顧客。
如果您確實點擊了“公平遊戲”,請在客戶端種子的某個位置添加至少幾個隨機字元。這將阻止賭場提供獎勵客戶端種子,從而避免賭場想要的結果。
如果您發現賭場作弊,請給我一些證據。我很樂意核實,並警告其他玩家不要在那裡玩,我會把他們加到我的賭場黑名單中。