區(qū)塊鏈博彩的公平性證明--莊家自證清白

背景

在線博彩一直是一個蓬勃發(fā)展向抢,屢禁不止的行業(yè)(在很多國家屬于合法行業(yè))固逗。然而左权,對于賭徒來說,除了可能受到可能的監(jiān)管限制以外褐墅,“莊家”作弊或者跑路也是其可能遭受損失的一大原因拆檬。區(qū)塊鏈集去中心化,不可篡改妥凳,可追溯等特性于一身竟贯,是解決類似信任問題的天然方法。

優(yōu)勢

在線博彩主要涉及到的重要數(shù)據(jù)包括逝钥,游戲結(jié)果屑那,輸贏判定,支付結(jié)算等艘款。區(qū)塊鏈的優(yōu)勢主要在于:

1. 透明度和信任持际。
中心化的應(yīng)用的數(shù)據(jù)完全是黑盒,用戶權(quán)益很難保證哗咆。而基于區(qū)塊鏈的智能合約技術(shù)蜘欲,由于不可篡改和公開透明性,任意用戶均可審計合約代碼和查看交易數(shù)據(jù)岳枷。

2. 減少詐騙芒填。
對于基于多節(jié)點共同維護的區(qū)塊鏈賬本而言,任何人無法單方面篡改數(shù)據(jù)空繁,而通過圖靈完備的智能合約添加相關(guān)限制殿衰,去除兌付風險。

3. 加密貨幣支付盛泡。
加密貨幣是區(qū)塊鏈的血液闷祥,所有結(jié)算可直接通過合約代幣直接結(jié)算。

4. 匿名性。
基于公私鑰技術(shù)凯砍,任何人可以隨意生成錢包地址箱硕,來作為用戶身份標識,不需要受到任何監(jiān)管以及KYC驗證悟衩。通過掌控錢包的私鑰剧罩,用戶可以完全控制這個賬戶的行為。當然座泳,也正是這種便捷的特性惠昔,一旦用戶丟失私鑰將徹底失去賬戶控制權(quán),丟失錢包數(shù)字資產(chǎn)挑势。此外镇防,由于監(jiān)管機構(gòu)無法進行有效監(jiān)管,加密貨幣在很多國家被禁止流通潮饱。

5. 增加可訪問性来氧。
中心化的博彩網(wǎng)站可直接通過封鎖IP、域名等進行查封香拉,此外啦扬,用戶很多時候需要通過中間代理商來進行投注。區(qū)塊鏈的多中心特性缕溉,使整個區(qū)塊鏈網(wǎng)絡(luò)始終具有可用性考传,用戶可直接向智能合約發(fā)起交易,不受任何第三方約束证鸥。

公平性證明

區(qū)塊鏈技術(shù)的核心在于密碼學(xué)上的可證明性,在應(yīng)用到博彩行業(yè)時勤晚,最重要的數(shù)據(jù)就是開獎結(jié)果枉层。因此,如何證明這個開獎結(jié)果是基于一個絕對公平的隨機源赐写,不管是莊家還是玩家都無法作弊呢鸟蜡?

筆者研究了bustabitsatoshidice等多個botcoin gambling項目,其原理都大同小異挺邀。

流程設(shè)計

  1. 生成服務(wù)器種子序列{$serverSeed_i$}揉忘。假設(shè)一個游戲有N局,那么服務(wù)器先生成一個$serverSeed_0$, 然后連續(xù)使用hash函數(shù)N次端铛,得到$serverSeed_0$,$serverSeed_1$,...,$serverSeed_N$泣矛,此時公布$serverSeed_N$出去,使用$serverSeed_{N-1}$作為第一局的服務(wù)器種子
  2. 選定一個未發(fā)生的隨機源作為clientSeed
  3. 基于1,2生成的兩個種子數(shù)據(jù)禾蚕,通過hash運算您朽,計算游戲結(jié)果。這里以bustabit為例:
function getResult(serverSeed, clientSeed) {
    var hash = crypto.createHmac('sha256', serverSeed).update(clientSeed).digest('hex');

    // In 1 of 101 games the game crashes instantly.
    if (divisible(hash, 101))
        return 0;

    // Use the most significant 52-bit from the hash to calculate the crash point
    var h = parseInt(hash.slice(0,52/4),16);
    var e = Math.pow(2,52);

    return Math.floor((100 * e - h) / (e - h));
};
  1. 公布游戲結(jié)果以及本輪使用的serverSeed换淆,并使用serverSeed鏈的前一個種子來作為新的一局的serverseed

補充說明:這里serverSeed一般可選擇某個比特幣錢包的私鑰來作為初始值計算hash鏈哗总。而對于確定clientSeed所需的未發(fā)生的公共可信的隨機源的選取几颜,可選取未來某個比特幣區(qū)塊的blockHeight,亦或者未到達的某一天的股市點數(shù)的hash值讯屈,等等蛋哭。

公平性分析

基于上述的流程分析不難看出,“莊家”在確定了serverSeedhash鏈之后涮母,此時由于clientSeed尚未確定谆趾,因此他無法通過篩選合適的{$serverSeed_i$}序列來使得開獎結(jié)果更符合自己的利益。
而一旦clientSeed的值確定下來哈蝇,由于“莊家”一早就公布了$serverSeed_N$,已無法更改或重置整個{$serverSeed_i$}序列(基于hash函數(shù)的不可碰撞性)棺妓。
當游戲結(jié)束時,服務(wù)器公布了本輪用到的serverSeed, 用戶可驗證:

  1. 基于該serverSeedclientSeed炮赦,計算出來的游戲結(jié)果是否和開獎結(jié)果相符怜跑;
  2. 由于上一輪游戲公布的$serverSeed_{i+1}$正是本輪的服務(wù)器種子的hash值,因此用戶可驗證以下公式是否成立
hash(serverSeed_{i})==serverSeed_{i+1}

風險控制

我們不妨分析下流程設(shè)計中提到的getResult函數(shù)的邏輯吠勘。首先基于本輪的serverSeedclientSeed經(jīng)過hash運算得到一個名為hash的變量性芬,取其16進制表示的前13位(即2進制的前52位),因此它的值在0到$2^{52}$之間剧防。而返回值是100到$2^{52}$之間的一個雙曲函數(shù):

計算結(jié)果

通過定積分計算植锉,其均值在36左右,而且當生成的h值越接近$2^{52}$時峭拘,取值接近無窮大俊庇。因此,莊家添加了以下風控邏輯:

Under some circumstances, the server will force people to cash out.
The most common reason is that the game multiplier has gotten so large that we are risking too much of our bankroll (1.125%). If a player has won more than 0.75% of the bankroll, that player is also forced to cash out his winnings.
Another possible reason is unexpected server problems. The server attempts to cash everyone out and then pause once it encounters an unexpected issue.

考慮到雙曲函數(shù)的特性鸡挠,在絕大部分取值區(qū)域得到的計算結(jié)果比較平均辉饱,添加以上風控邏輯,對單局用戶整體收益閥值和單用戶收益閥值做控制拣展,一旦超出就強制結(jié)束彭沼,極大的降低了賠付成本。而用戶在單局盈利較大的情況下對此也不會有明顯的反感备埃。

總結(jié)

區(qū)塊鏈的透明化姓惑,代幣支付能有效解決博彩行業(yè)的諸多痛點,目前博彩應(yīng)用也是dapp應(yīng)用的一大方向按脚。對于bustabit這種半中心化的博彩項目來說于毙,如何自證公平性是最重要的問題。本文分析了其公平性設(shè)計乘寒,從理論上保證了“莊家”無作弊的可能望众。隨機源的選取,哈希鏈種子序列的設(shè)計,以及開獎結(jié)果的設(shè)計烂翰,風控邏輯等夯缺,都有其精妙之處,值得學(xué)習(xí)甘耿。

參考文獻

bustabit

satoshidice

比特幣賭博網(wǎng)站保證公平的原理是什么踊兜?

bustabit github

bustabit1.0 seeding event topic

bustabit2.0 seeding event topic

bustabit verification

區(qū)塊鏈重塑博彩業(yè)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市佳恬,隨后出現(xiàn)的幾起案子捏境,更是在濱河造成了極大的恐慌,老刑警劉巖毁葱,帶你破解...
    沈念sama閱讀 212,454評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件垫言,死亡現(xiàn)場離奇詭異,居然都是意外死亡倾剿,警方通過查閱死者的電腦和手機筷频,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,553評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來前痘,“玉大人凛捏,你說我怎么就攤上這事∏鄣蓿” “怎么了坯癣?”我有些...
    開封第一講書人閱讀 157,921評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長最欠。 經(jīng)常有香客問我示罗,道長,這世上最難降的妖魔是什么芝硬? 我笑而不...
    開封第一講書人閱讀 56,648評論 1 284
  • 正文 為了忘掉前任鹉勒,我火速辦了婚禮,結(jié)果婚禮上吵取,老公的妹妹穿的比我還像新娘。我一直安慰自己锯厢,他們只是感情好皮官,可當我...
    茶點故事閱讀 65,770評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著实辑,像睡著了一般捺氢。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上剪撬,一...
    開封第一講書人閱讀 49,950評論 1 291
  • 那天摄乒,我揣著相機與錄音,去河邊找鬼。 笑死馍佑,一個胖子當著我的面吹牛斋否,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播拭荤,決...
    沈念sama閱讀 39,090評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼茵臭,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了舅世?” 一聲冷哼從身側(cè)響起旦委,我...
    開封第一講書人閱讀 37,817評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎雏亚,沒想到半個月后缨硝,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,275評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡罢低,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,592評論 2 327
  • 正文 我和宋清朗相戀三年查辩,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片奕短。...
    茶點故事閱讀 38,724評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡宜肉,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出翎碑,到底是詐尸還是另有隱情谬返,我是刑警寧澤,帶...
    沈念sama閱讀 34,409評論 4 333
  • 正文 年R本政府宣布日杈,位于F島的核電站遣铝,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏莉擒。R本人自食惡果不足惜酿炸,卻給世界環(huán)境...
    茶點故事閱讀 40,052評論 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望涨冀。 院中可真熱鬧填硕,春花似錦、人聲如沸鹿鳖。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,815評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽翅帜。三九已至姻檀,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間涝滴,已是汗流浹背绣版。 一陣腳步聲響...
    開封第一講書人閱讀 32,043評論 1 266
  • 我被黑心中介騙來泰國打工胶台, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人杂抽。 一個月前我還...
    沈念sama閱讀 46,503評論 2 361
  • 正文 我出身青樓诈唬,卻偏偏與公主長得像,于是被迫代替她去往敵國和親默怨。 傳聞我的和親對象是個殘疾皇子讯榕,可洞房花燭夜當晚...
    茶點故事閱讀 43,627評論 2 350

推薦閱讀更多精彩內(nèi)容