簡談線上隨機亂數與Gambling Fairness

in #cn5 years ago (edited)

roll-the-dice-1502706_640.jpg
pixabay

區塊鏈線上賭博,常常強調Provable Fairness,是想對玩家保證賭博的公平性。畢竟,沒有這件事,就沒有公平賭局,就沒有一切。

我因為持有EPC Tokens,所以對EpicDice比較熟悉。就以他們為例子來試著說明。先簡單說一下EpicDice的賭局數字產生機制:你按下ROLL按鍵投注時,就會在區塊鏈上產生一筆轉帳,把你賭金傳給莊家,這一筆交易會產生一個txid,莊家會把這個txid用網頁上那段代碼,轉換成1-100的數字,再跟你設定的條件比對(Below/Above某數字),因此決定輸贏。

網頁上可以輕易找到Fairness這個頁面:

螢幕快照 2019-06-16 上午10.11.53.png

那麼,到底什麼是Provable Fairness呢?首先說Provable,這很簡單,就是說任何人(其實主要是玩家)都可以驗證每一個賭局的結果產生的“正確性“,是可以事後檢驗跟重複的。這只是第一步,畢竟,如果你的賭局每次都”可被驗證“地設計成坑玩家的機制,那還是Provable啊!在區塊鏈上,Provable這件事變成很容易,畢竟,如果有一中心化的莊家就算說我開放我的程式碼給你看,你也沒辦法確認這就是當初執行的代碼啊!這跟智能合約能夠出現的邏輯是一樣的。

那麼,上面的頁面就有代碼公開,你沒學過程式,也可以複製貼上,從區塊鏈上找你自己那一筆txid,填上之後,去驗證結果是否跟莊家宣稱的一樣。至於,莊家是否真的實際上用這一段代碼,那是無所謂的,因為重點是你用的這一段代碼,確實與其結果一致。

所以,Fairness就是接下來的重點:Fairness。這裡有兩層意義,第一,給訂設定好的規則跟代碼,你跟莊家是否都無法改變結果?你當然不行,在此例,莊家,同樣不行。重點在於區塊鏈上的東西,是莊家跟你都無法更動,只能被動取得的。區塊鏈以外的處理程序,已經公開,你也可以去驗證。所以,至少,你跟莊家之間是平等的。

另一個人們會關切的Fairness,跟賭局有關的,就是是否足夠隨機(randomess)。只要賭局發生的機率是純隨機過程,那麼1-100出線機率就會是均等的1%。這賭局的隨機性夠嗎?這問題就不好回答了。你可以用實測方式來觀察看看,我因為沒這能力所以沒辦法做,但概念上很簡單:持續取得區塊鏈上每一筆txid,transaction id,格式大概是這樣 3d2f91379fec271ee9137e4479c0cbf02117c74b,然後每一筆都按照上面方法轉換成1-100,持續統計,拉長時間,看看是否機率趨近於均等,就算是一種實驗觀測。

我採用另一個方式來分析。txid,在區塊鏈上產生的方式是什麼?txid,又稱為transaction hash,應該就是把交易內容的超長數字串,利用Hash function,轉換成固定長度的數字串如上。因此,Hash function的哈希輸出,是否有足夠的隨機性,成為重點。這一點特性,其實對於區塊鏈的運作並不重要(重要的是哈希碰撞不發生),所以不容易找到文章分析。只怕我找到了可能也看不懂吧?^_^.... 所以,這部分我就不知道了,如果有人去做第一種方式實測,也算是可以驗證看看。

當然,Fairness是否一定要包括(pure) Randomness?這是可以探討的問題。我個人認為,只要Randomness有到達一定程度,就可以了。Fairness主要的體現,應該在於莊家跟你對於規則都是平等的這件事上面。舉個極端例子說,如果這個Hash方式,透過這個代碼,會讓數字60-80出現機率特別高,那麼,其實莊家也得接受這事實,結果可能會是,厲害玩家們開始大量投注Above 60這個事件,造成莊家預期利潤下降,他們或許得考慮調整抽成或是吸收起來,但無論如何,這對於雙方都是平等的。

這或許是大家沒有Claim隨機性,而是宣稱Fairness了吧?

當然,在我看起來,Hash真的是很隨機啦~~~ XD

Sort:  

也太巧,原來昨天EpicDice就出了一篇官方文章談這話題:

EpicDice Fairness

跟我談的內容幾乎都類似,只是比我更專業啦!甚至他們也做了我說的第一類觀測,把部分結果放上來了。

我是真沒看到這一篇喔(點讚是跟讚,去支持跟擼審查的啦XD),怎麼這麼巧啊!?哈哈哈~~~

我可是很中立的!來點讚我也是一樣客觀啦~~~ (價格還不夠...XD)

* 原諒我用回帖置頂更新,因為我都搞到9標籤了,懶得再去改一遍~~~

我还想说怎么这么奇怪呢,原来你还没看到那篇啊。但这也显示出了你对游戏的理解深度,很是难能可贵。

賭也要賭得專業!

夠不夠隨機性這點,好像在以前編程課有說不是真隨機,它有固定算法做出隨機的效果。也和SEED有關,會令結果有一點偏向。然後,我就睡著了。

电脑产生的只是伪随机性(有兴趣可以看看 Pseudorandomness)

謝謝解釋

什麼,小芝麻不是藝術系畢業嗎?怎麼上起編程來了?難道是程序猿偽裝中?....

什麼是真隨機,我也早就都忘記了.... >_<~~~~~~

有做遊戲的課,多媒體藝術也有用到PROGRAMMING,像隨機一個數字引發不同濾鏡效果,然後思考人生.... xDD

手持EPC 分紅的路人甲來了圍觀,圍觀後表示不明白。

!shop

Posted using Partiko Android

什麼?是我寫太差了嗎?😅😅

Posted using Partiko Android

我資質未到,我先去炒幣,輸到足夠經驗後,便會回來研究技術。

Posted using Partiko Android

😍😍 帶我飛…

Posted using Partiko Android

長賭必輸!

這是亙古不變的道理!

Du erhieltest aufgrund deiner LanaCharleenToken ein Upvote. alt-Text

Thank you so much for participating in the Partiko Delegation Plan Round 1! We really appreciate your support! As part of the delegation benefits, we just gave you a 3.00% upvote! Together, let’s change the world!

Coin Marketplace

STEEM 0.36
TRX 0.12
JST 0.039
BTC 70223.87
ETH 3561.28
USDT 1.00
SBD 4.73