#dusk $DUSK

今天繼續看 @Dusk 的 Boreas 更新,最讓我在意的不是 Phoenix 退役,也不是又多了幾個 fork rule。

而是一個更底層的問題:

協議升級以後,過去的一筆交易,爲什麼還能一直保持同一個含義?

這事聽起來像廢話。

但硬分叉之後,節點已經在跑新規則了,歷史區塊裏卻還躺着舊版本的 transaction、舊 verifier、舊 execution semantics。

如果今天的節點拿現在這套規則去重新解釋以前的 bytes,歷史 replay 就可能出問題。

所以 Boreas 這次把 transaction handling 的版本邊界做得更明確。

Live ingress 走當前協議規則。

舊 envelope 可以在入口被識別、normalize。

進入 ledger 之前再變成 canonical transaction。

而歷史區塊,則繼續按它當年的規則去 decode 和 replay。

我覺得這裏真正重要的不是“格式統一”。

而是:

交易除了內容,還有它所屬的協議時代。

Aegis 是 Aegis 的規則。

Boreas 是 Boreas 的規則。

硬分叉可以改變未來,但不能順手把過去重新解釋一遍。

這也是爲什麼我現在看鏈升級,不太只看“新增了什麼”。

我更關心的是:

新版本上線以後,今天的節點還能不能準確理解幾年前那條鏈到底發生過什麼。

對一個要做 regulated market infrastructure 的網絡來說,這種歷史連續性其實很基礎。

賬可以升級。

賬裏的過去不能跟着升級。