安全模型
Gatoll 的安全建立在清晰分工:合約無需信任、握有資金;驗證服務是唯一信任元件,權力刻意收窄。
驗證密鑰託管
Section titled “驗證密鑰託管”驗證服務透過簽署 EIP-712 憑證授權領取。簽名密鑰逐鏈存在硬體支援的 secret 裡,與應用程式碼隔離,不寫進 log 或設定。即使外圍系統被攻破也不等於拿到密鑰;密鑰只在合約理解的窄 ClaimAuth 結構內簽名。
治理與密鑰輪替
Section titled “治理與密鑰輪替”驗證服務的鏈上地址、獎池實作、治理錢包本身,都只能經多簽變更。單一營運者不能換驗證者、不能改指向的實作、不能奪控。關鍵是:每個獎池在創建時快照驗證者且不再更改——協議輪替驗證者只影響未來 Loot,既有 Loot 的授權者終身固定。
驗證服務不能做什麼
Section titled “驗證服務不能做什麼”即使驗證服務完全作惡,仍被合約限制——合約會獨立再驗每一筆領取:
- 不能動帳——不持有資金、沒有提款路徑;
- 不能付錯池——憑證 domain 綁定單一獎池地址;
- 不能付給別人——
recipient必須等於 caller; - 不能雙付——一次性 nonce 和每錢包一次領取在鏈上強制;
- 不能憑空造值——轉帳上限是真實餘額。
驗證服務決定資格;合約決定結算。
- 防重放。 domain +
poolAddress、recipient、銷毀的一次性nonce、短deadline讓每張憑證只能用一次。見領取與結算。 - 重入防護。 領取和取回都有 reentrancy guard。
- 不可變設定。 獎池的創作者、驗證者、資產、玩法、時間、名額在創建時快照,之後不能改。
- 有界取回。 取回讀鏈上帳本,出資者不能取回超過自己出的。見取回。
| 層級 | 假設 |
|---|---|
| 獎池資金 | 無需信任——程式託管並釋出 |
| 分配與結算 | 無需信任——鏈上計算並強制 |
| 領取資格 | 信任驗證服務誠實評估 Gate;密鑰硬體託管、多簽治理 |
| 活動資料 | 從索引器讀;永遠可與鏈上事件對帳 |
這是設計上最小的信任面:一個只能說「這個地址合格」的預言機,由決定一切跟錢有關的事的合約把關。