Overview
牌堆承諾
開局前把 sha3_256(deck || salt) 上鏈,先鎖住一副牌。
揭示驗證
終局公開 deck 與 salt,任何人都能重算雜湊。
發牌綁定
揭示出的 deck 必須切出與原始發牌紀錄相同的四手牌。
事件歷史
房間建立、加入、發牌、出牌、pass、結束、揭示都可作為 Move events 審計。
押注池
testnet SUI 可鎖在 GameRoom,勝者依 Move 狀態領取。
Architecture
Frontend / SDK
Sui Move
Verifier / Explorer
WAITING
建立房間、等待玩家加入、保存 deck commitment。
PLAYING
莊家發牌後進入遊戲,合約驗證出牌與 turn state。
ENDED
某位玩家手牌歸零,winner 寫入 GameRoom。
REVEALED
公開 deck + salt,驗證 hash 與原始發牌是否匹配。
Verifiability
sha3_256(deck || salt)。 終局時公開 deck 與 salt 後,系統要同時通過兩個檢查:第一,重算 hash 必須等於開局承諾; 第二,將 revealed deck 切成四份 13 張牌,必須等於當初紀錄的 original_hands。Commit
先把 deck commitment 上鏈。
Deal
保存實際發出的 original_hands。
Reveal
公開 deck 與 salt。
Verify
hash match 且 deal match 才算通過。
竄改發牌檢查
竄改發牌不是更改揭示牌堆,而是把「實際發牌紀錄」替換成另一組合法但不同的手牌。 因此 revealed deck 仍然能算出相同 commitment,hash 會過;但 revealed deck 切出來的四手牌 對不上 original_hands,所以 deal match 會失敗。
Move Contract
big_two::big_two。 它不是只記錄結果,而是把回合狀態、牌型檢查、事件輸出、終局 winner 與 pot claim 都放在 Move 狀態機裡。create_room建立不押注房間,寫入 deck commitment。
create_room_with_stake建立押注房間,將第一筆 testnet SUI 放入 pot。
join_room / join_room_with_stake玩家加入房間;押注房需支付相同金額。
deal_cards莊家送出四份 13 張手牌,合約檢查 52 張合法且不重複。
play_cards驗證輪次、手牌所有權、牌型、大小與首出梅花 3。
pass_turn允許玩家 pass,三家 pass 後清空 trick 並回到上一位出牌者。
reveal_deck公開 deck 與 salt,驗證 commitment 以及 dealHands(deck) == original_hands。
claim_pot遊戲結束後,只有 GameRoom 記錄的 winner 可以領取 pot。
Rule Model
0..51 編碼;rank = card / 4,suit = card % 4。 花色大小為梅花、方塊、紅心、黑桃;第一手必須包含梅花 3。牌型強度
規則變體
Operation Flow
建立房間
產生 deck commitment,顯示牌堆承諾雜湊。
鏈上建立
連接 Sui Wallet,在 testnet 建立 GameRoom 並押入 0.1 SUI。
發牌與出牌
執行梅花 3 首出、花色比較、鐵支與 pass 流程。
竄改發牌
替換原始發牌紀錄,使 hash 通過但 deal match 失敗。
揭示驗證
公開 deck + salt,並在驗證面板比對 commitment 與發牌紀錄。
勝利結算
說明 winner、GameRoom pot 與 claim_pot 的鏈上限制。
Trust Model
可以證明
尚未證明
公開手牌
目前版本以公開手牌狀態呈現,以便完整檢查發牌、出牌與揭示流程。
隨機性邊界
commitment 可驗證牌局未被事後替換,但不能單獨證明初始牌堆由公平隨機來源產生。
測試網押注
testnet SUI escrow 用於驗證資產流程,不構成正式賭博或主網資金協議。
同步範圍
目前版本聚焦可驗證狀態與操作介面,不包含完整多人即時同步與爭議處理。
升級路線
多玩家 seed commit-reveal,降低單一莊家控制牌堆的能力。
接入 Sui Random object,讓 deck 來源更接近鏈上隨機。
使用 TEE、ZK 或 mental poker 協議處理隱藏手牌。
參考來源
以下為可驗證遊戲歷史、鏈上資產管理與可信執行環境相關的公開參考資料。