News

可證明公平,還是認證過的產生器

認證過的產生器要你相信一份稽核。可證明公平則給你一張每局一張、自己就能查的收據。差別在這裡。

fairnessprovably fairexplainer

認證過的產生器,意思是某個獨立實驗室在某個時間點檢驗過一個亂數產生器,並認定它的輸出在統計上站得住腳。可證明公平,意思是遊戲把一張關於你自己這盤棋的密碼學收據交到每位玩家手上,於是每一擲都能在不必相信任何人的情況下重新推算。一種模式稽核機器。另一種證明你的棋局。

這兩個詞都會出現在那些替你擲骰的線上遊戲的信任頁面上,聽起來像可以互換。它們不能。它們回答的是不同的問題,出錯的方式也不同,而這個差別決定了你坐下來玩的時候,別人要你相信的究竟是什麼。

認證過的產生器到底認證了什麼?

認證實驗室拿一個產生器,把它的輸出送進一組又一組統計檢驗,尋找偏誤:出現太頻繁的數字、會重複的模式、會漂移的序列。如果數以百萬計的樣本看起來和真正的隨機無從分辨,實驗室就簽下證書。這份工作是真的,也需要專業。它確立的是:那個產生器,就它被檢驗時的樣子,在那一天產出了紮實的隨機性。

請注意證書看不到什麼。它是在實驗室裡開出來的,而你的骰子是在伺服器上擲的。

  • 被檢驗的程式碼,是不是幾個月、許多次更新之後仍在線上的那份程式碼。
  • 產生器和你這盤棋之間的接線:把一個原始亂數變成你那個 6 和 4 的那段程式碼。
  • 任何一盤棋裡的任何一擲。認證談的是產生器的一般情形,從來不是你星期二晚上那盤棋。

所以認證帶著一條沉默的附加條款:請相信檢驗之後什麼都沒變,也請相信被認證的那條路徑,就是你這盤棋真正走過的路徑。多數工作室確實做到了。重點是你查不了。這種模式是在某一瞬間檢查機器,然後在之後的每一瞬間憑信心相信部署。

可證明公平是什麼意思?

可證明公平是另一種約定。遊戲不再指著一份你從未看過的稽核報告,而是在開始之前就把自己綁在自己的隨機性上,結束之後再揭露足夠的資訊,讓你自己重算每一擲。證據隨著棋局一起走。實務上,它像一個封好的信封。

承諾. 第一步之前,伺服器產生一個祕密種子,並公布它的 SHA-256 指紋。指紋不會洩漏任何關於未來點數的訊息,但它把種子釘死。之後只要改動種子的一個位元,指紋就對不上了。

點數. 棋局進行時,每一擲都用 HMAC-SHA256 從種子推導出來,每擲一次算一回。骰子在信封被封起來的那一刻就已經定案。中途無法在不打破已公布承諾的情況下,塞進一個比較友善的數字。

揭露. 棋局結束後,種子被揭露。任何人都能把它做雜湊、和承諾比對、重算每一擲,再把結果跟棋盤上真正出現的骰子並排。如果全部吻合,這盤棋就不可能被操縱。如果有任何一處被動過,算式會說出來。

信任從公司移到了算術上。你不再需要相信那份稽核夠徹底,也不需要相信部署夠忠實。你需要的是 SHA-256 撐得住,而那正是整個網際網路每天所倚賴的同一個假設。

證書說的是:我們看的那一天,硬幣是公平的。收據說的是:你這一擲是公平的,而且把算式攤開來。

那認證還有意義嗎?

有。承諾揭露證明你拿到的正是被承諾的那份隨機性。它並不證明被承諾的那份隨機性本身是好的。一個脆弱或可預測的種子來源,一樣會產出完美通過驗證的收據:可證明地交付了糟糕的骰子。判斷來源的品質,正是稽核與統計檢驗存在的理由,而在受監管的產業裡,證書根本就是強制要求。

這兩種模式回答不同的問題。稽核問的是:那份隨機性好不好?收據問的是:我這盤棋真的用到它了嗎?只有前者的系統,靠的是對部署永無止境的信心。只有後者的系統,可以忠實地交付糟糕的骰子,並且證明這一點。最強的系統把兩扇門都關上。

為什麼公開的驗證很重要?

因為沒有人讀得到的收據保護不了任何人。有些遊戲會公布承諾,卻不給玩家一個實際可用的查核方式,或者把驗證藏在正被質疑的那個應用程式裡面。那樣就沒有任何一個圈能閉合。如果唯一能替一個系統背書的工具屬於那個系統,你就又回到了信心,只是多繞了幾步。

最強的做法會公布三樣東西。承諾,在棋局之前。種子,在棋局之後。以及一個獨立、公開、在應用程式之外執行的重算方式。這就是為什麼 Orion 的驗證住在瀏覽器裡,在 orion.arthea.ai/verify:不必註冊,不必安裝,而且我們的說法不參與這項檢查。