揀一個池,睇佢嘅完整紀錄
每個池嘅開池 commitment、獎品一覽、rarity 剩餘同逐抽 draw log 全部公開。 池完結(closed)之後,仲可以喺你部機度重算成個池,逐抽核對。
所有驗證計算都喺你部機嘅瀏覽器度做,唔使信任店家部 server。
離線驗證(唔打 network,貼 JSON 就得)
貼上 reveal JSON(格式:{"server_seed","serialized_pool","commitment","price","draws"}), 撳「驗證」,成套計算都喺你部機度行,一個 request 都唔會發出。
點解可以信?(commit-reveal 四步)
- 開池鎖 hash:開池嗰陣,店家將成個池嘅卡、排列連埋每抽售價計一個 SHA-256 指紋(commitment)公開咗。之後池入面任何一張卡、任何次序、甚至個售價想改都會令個 hash 對唔上。
- 你嘅 seed 參與:每一抽由你自己提交一個 client seed,抽到邊張卡係由店家嘅秘密 seed 加你嘅 seed 一齊用 HMAC 算出嚟 — 唔係店家話事,亦唔係求其撳個掣。
- 收據為證:每抽即場出收據(QR),記低 nonce、你嘅 seed、digest 同 commitment,攞喺手邊,冇得抵賴。
- 完結公開重算:池完結後店家公開秘密 seed 同原始清單,任何人(包括你宜家用緊呢頁)都可以逐抽重算,逐項核對。
一句講晒:店家開池嗰刻已經冇能力改結果(hash 鎖死咗),而你嘅 seed 佢事先估唔到 — 兩邊都被數學綁住,冇得出千。
一個誠實嘅補充:commit-reveal 鎖死咗「開池後改唔到池」, 但店家始終知道 server seed — 如果你個 client seed 係店員代打,或者由 kiosk 隨機生成, 理論上知道 server seed 嘅人係有得揀一個啱自己嘅 seed。 想有最強保證,掃 QR 用自己手機提交 seed 就得。