跳至主要内容

安全白皮書:生存協定與避風港

寵物離開家園後,每一秒的流浪都是對資料完整性的考驗。

1. 墓碑狀態機 (The Tombstone State Machine)

開發者在實作容器啟動邏輯時,最常見的錯誤是「僅檢查靈魂是否存在」。在大逃殺與遠征場景中,為了安全性,寵物的 dna.seed 會被清空。此時,容器必須進入 「墓碑狀態」

A. 具備寵物的重新定義

在實作 hasPet() 方法時,必須遵循以下邏輯:

fn has_pet(data: GameData) -> bool {
// 判定 1: 擁有活躍靈魂 (Seed)
let has_soul = !data.dna.seed.is_empty();

// 判定 2: 正在遠征中 (墓碑狀態)
let is_on_expedition = data.status == "EXPEDITION";

return has_soul || is_on_expedition;
}

開發者警示: 若未包含「判定 2」,玩家在遠征途中重新整理網頁,系統將會誤判為「空屋」,導致蛋蛋看起來像消失了。

2. 延遲衰減結算 (Lazy Evaluation)

在去中心化環境下,寵物並不維持長連線。我們透過 「離開基準時間 (Base Timestamp)」 來實作能量衰減。

結算流程圖 (Decay Flow)

3. 召回機制與「防丟保障」

為了應對玩家在複製連結後「弄丟網址」或「剪貼簿失效」的極端情況,核心容器必須提供 「備份簽證」

當寵物處於 EXPEDITION 狀態時,大廳 UI 必須在墓碑上顯示 「重新複製連結」。這允許玩家在不損毀當前遠征靈魂的前提下,再次拿回簽證。

B. 靈魂重塑 (Recall)

  • 黃金一小時 (Free Recall): 出發後 60 分鐘內,玩家可免費重塑靈魂。
  • 緊急救援 (Emergency Recall): 出發超過一小時後,系統將視為「靈魂漂流過久」,必須扣除 100 認證金幣 (G) 執行能量重塑。若餘額不足 100G,系統將攔截召回請求。
  • 安全性: 由於序號遞增,原本流浪在外的舊 Token 將因為「序號過期」而無法再回歸,徹底防止靈魂雙胞胎現象。

4. 經濟清算與核銷 (Gold Clearing)

在生存協定下,資產的實體化必須具備 「生命能量」 作為媒介。

  • 核銷前提: 寵物的體力 (Stamina) 必須大於 0。
  • 攔截機制: 若寵物處於 Exhausted (能量耗盡) 狀態,核心容器將拒絕執行金幣核銷 (Pending -> Balance),直至玩家完成能量救援。

5. 傳輸原子性與雙向握手 (Handshake Protocol)

為了防止靈魂在傳輸過程中因網路中斷而遺失(靈魂遺失在以太中),同步傳輸必須遵循以下流程:

  1. 數據發送: 發起端發送靈魂數據包。
  2. 接收確認: 接收端成功寫入存檔後,回傳 EXPEDITION_ACK
  3. 本地墓碑化: 發起端 僅在收到 ACK 後 才能清空本地 Seed 並進入 EXPEDITION 狀態。

開發者警示: 嚴禁在未收到接收端確認前執行本地刪除/清空操作。

召回安全性泳道圖 (Recall Safety)

透過這套「墓碑」與「序號」的雙重保障,我們賦予了去中心化生命真正的韌性,確保玩家的每一顆蛋蛋都能平安歸家。