# Avalanche Cortina 升級消除 X 因子，為雪崩生態提供更理想的環境

By [小烏鴉Ma𝕏](https://paragraph.com/@soaringcrowz-2) · 2023-03-26

---

前言
--

Avalanche Cortina 升級相信是不少信仰者期盼的事情，這一變化不只優化了X-Chain，使其為 Avalanche Warp Messaging 集成、複雜交易類型和狀態同步提供便利，最重要的是，讓交易所自此之後可以支援 X-Chain，讓用戶在進行交易時，多了一個選擇。

本文主要是針對官方工程師 Patrick O'Grady 公告的《Cortina: X-Chain Linearization》內容進行摘譯，介紹了 Avalanche Cortina 升級所帶來的變化，並整理重點後，表達我對於本次升級的看法。

不過由於本文涉及較多技術名詞和系統架構，我已經盡量用我理解的方式解釋，但對 Avalanche 毫無概念的夥伴而言，會很生硬難嗑，建議可以直接看重點摘要即可。

[https://twitter.com/avalancheavax/status/1639003685635383296](https://twitter.com/avalancheavax/status/1639003685635383296)

重點摘要
----

1.  Cortina升級將啟動X-Chain線性化，從DAG共識轉換為基於鏈的完全排序協議。
    
2.  X-Chain線性化將為Avalanche Warp Messaging（AWM）集成、複雜交易類型和狀態同步提供便利，並使得交易所可以支援X-Chain。
    
3.  Cortina還修改了用於委託人獎勵的批處理方式，以解決節點上累積的大量UTXO的問題。
    
4.  Cortina還將C-Chain區塊的氣體限制從8M增加到15M，以便更複雜的dApp部署。
    
5.  升級節點到AvalancheGo v1.10.0的過程與其他升級相同，但需要在Cortina啟動之前升級X-Chain節點，否則將會影響節點的正常運行。
    

![圖片來源：Avalanche](https://storage.googleapis.com/papyrus_images/8d9d0d0814b0083e1cd6c275f0aab3c20f3baa197c3c78303b22580400b4e6a8.png)

圖片來源：Avalanche

X-Chain 線性化
-----------

X-Chain 採用 [Avalanche 共識](https://arxiv.org/pdf/1906.08936.pdf)，是一種無領導者的基於 DAG 的協議，允許非衝突的 UTXO 同時處理高吞吐量，而無需建立活動的完全排序。另一方面，C-Chain、P-Chain 和所有 Avalanche 子網路都採用 [Snowman++](https://github.com/ava-labs/avalanchego/blob/master/vms/proposervm/README.md)，一種基於鏈的完全排序協議，可以在數千個參與者之間序列化不衝突的區塊生產。

現有的 X-Chain 語義阻礙或顯著複雜化了集成 [Avalanche Warp Messaging (AWM)](https://medium.com/avalancheavax/avalanche-warp-messaging-awm-launches-with-the-first-native-subnet-to-subnet-message-on-avalanche-c0ceec32144a)、添加複雜的 X-Chain 交易、啟用狀態同步和廣泛的交換支援。AWM 集成需要 Snowman++ 驗證來自其他 Avalanche 子網路的傳入消息的 [BLS Multi-Signature](https://crypto.stanford.edu/~dabo/pubs/papers/BLSmultisig.html)。這個限制意味著 X-Chain 在其當前的形式下無法與子網路互動，而且它運行的基於 DAG 的共識無法廣泛應用於子網路，這些子網路希望與其他子網路無縫溝通。

X-Chain 上的部分排序意味著在邊緣驗證期間沒有典型狀態，並且根據設計，在不同節點上以不同的順序處理邊緣。沒有典型狀態，與共享的鏈上對象互動，如交易所，以及狀態同步到網路尖端（以避免重新處理所有歷史活動）成為一個非常複雜且容易出錯的問題，這會浪費社區進一步發展子網路的時間。最後，非確定性的交易排序極大地阻礙了許多遺留的交易所集成 X-Chain 在其當前的形式，因為大多數遺留的交易所都是設計用於像比特幣和以太坊這樣的完全排序區塊鏈，它們難以在部分排序區塊鏈上在不同時間點協調餘額。

Cortina 將 X-Chain 遷移為運行 Snowman++ 共識並作為完全排序區塊鏈的過程稱為「線性化」。當線性化開始時，將不再可能向 X-Chain DAG 添加其他邊緣。DAG 的終端狀態現在是不可變的，將用作由 Snowman++ 驅動的線性 X-Chain 的創世狀態。在此過程中，用於 X-Chain 的交易格式和提交交易、獲取交易狀態和獲取餘額的 API 將不會更改，因此大多數錢包不需要進行任何更改來支援此線性化事件。但是，支援 X-Chain 的探索器將需要遷移為解析 X-Chain 區塊而不是解析 X-Chain 邊緣，X-Chain 邊緣看起來非常類似於 P-Chain 區塊。線性化是無縫的，不應導致 P-Chain、C-Chain 或任何子網路停機。然而，X-Chain 將暫時無法訪問。

如上所述，此遷移為 Avalanche Warp Messaging 集成，修改共享 X-Chain 狀態的新交易類型，提供啟用狀態同步的簡單路徑，並使交易所能夠支援 X-Chain，其中包含許多用於 Elastic Subnets 的代幣。儘管可以對 DAG 引入完全排序，但在 X-Chain 上這樣做需要重寫現有的 Avalanche 共識引擎，並且對任何子網路都沒有用處。遷移到整個 Avalanche 網路上的單一共識引擎，可以減少受信任計算基底的大小，增加現有研發工作的利用率，從而實現更快的開發和更廣泛的創新。

批量委託者獎勵
-------

自 Avalanche 網路推出以來，驗證器就有機會向任何委託其節點的人收取服務費。如果驗證器在委託期的 80% 的時間內線上，他們將獲得委託者所獲得的獎勵（費用）的百分比。P-Chain 會將此費用作為單獨的 UTXO 分發給每個委託期。

![圖片來源：Avalanche](https://storage.googleapis.com/papyrus_images/a27475a9191c88ca135a7d668c1869d00b7f3a1830f20e89d4af56e1cca5b0cf.png)

圖片來源：Avalanche

隨著網路上的委託者數量在過去幾個月內大幅增加（截至 2023 年 3 月 20 日約為 8 萬人），驗證器所收到的費用 UTXO 的數量也大幅增加。這通常意味著驗證器將最終獲得數千個小型 UTXO，這些 UTXO 必須聚合才能用於任何事情。在探索器和錢包中跟踪數千個 UTXO，使提供良好的 UX 比必要的要困難得多。

Cortina 修改了在 Cortina 啟動後開始投票的所有驗證器分發委託費用的方式（之前的驗證器不會有任何變化）。現在，不再為每個成功的委託期發送費用 UTXO，而是在節點整個驗證期間批量處理費用，並在解除委託時分發。

增加 C-Chain Gas限制
----------------

![圖片來源：Avalanche](https://storage.googleapis.com/papyrus_images/0dad42b59e759793bdc0090e027df71fef9573014112b82521411510bb4a9ccb.png)

圖片來源：Avalanche

自 Apricot Phase 1 以來，C-Chain 區塊 Gas 限制已經被設置為 [8M Gas](https://github.com/ava-labs/coreth/blob/b1223203dbca7708142b8884f46a4deec678d80e/params/avalanche_params.go#L21)。C-Chain 的區塊大約每 2 秒產生一次，因此此設置限制了每 10 秒可以消耗的最大 Gas 為約 40M Gas。然而，每個滾動的 10 秒窗口的瓦斯目標設置為 [15M Gas](https://github.com/ava-labs/coreth/blob/b1223203dbca7708142b8884f46a4deec678d80e/params/avalanche_params.go#L32)。這意味著當一個 10 秒窗口中使用了超過 15M Gas 時，Gas 價格將上漲（並在使用少於 15M 時下降）。

有關動態費用在 C-Chain 上的工作原理可以參考《[Apricot Phase Three: C-Chain Dynamic Fees](https://medium.com/avalancheavax/apricot-phase-three-c-chain-dynamic-fees-432d32d67b60)》。

除了在任何 Gas 價格下限制某些窗口中可以消耗的 Gas 量之外，區塊 Gas 限制還限制了可以在單個區塊中發出的交易的複雜性。當 Avalanche 上的不同開發人員開始部署更複雜的 DApp 時，他們表達了每個區塊的 8M 瓦斯不足以滿足他們的使用情況。Cortina 將 C-Chain 區塊 Gas 限制增加到 15M Gas。為了避免增加驗證主網所需的資源量，Gas目標將保持不變，每 10 秒為 15M Gas。

結論
--

![圖片來源：Avalanche](https://storage.googleapis.com/papyrus_images/319184a0082c84632099bbc2efa5b1d071c234c7e4ffda49d492564df85526df.png)

圖片來源：Avalanche

其實之前不少朋友一直有跟我聊到，在 Layer2 這麼強勢的情況下，Avalanche 這麼溫吞的進度，該如何進行競爭？

對我個人而言，我不覺得 Avalanche 會需要跟其他公鏈項目去做比較，因為其生態已經相對完整，加上項目團隊和一批鐵桿粉絲持續經營與建設，也讓 Avalanche 成為不少企業優先選擇的公鏈，像是Shopify、AWS、GREE 和騰訊雲等，都是經過長時間的累積口碑才有這些合作的誕生。

而且 Avalanche 的開發一直都是如火如荼地進行，只是沒有像其他 Layer2 聲量那麼大而已，但至少這個團隊注重細節、願意在技術層面穩扎穩打，這樣才能在機會來臨時不失手，並隨時都做好的應戰準備。

畢竟區塊鏈的世界瞬息萬變，看看多少 Avalanche 同期出道的項目都不見了，但是它仍舊屹立不搖。

參考資料
----

1.  [Patrick O'Grady《Cortina: X-Chain Linearization》](https://medium.com/avalancheavax/cortina-x-chain-linearization-a1d9305553f6)
    
2.  [X-Chain Migration Guide](https://docs.avax.network/apis/avalanchego/x-chain-migration)

---

*Originally published on [小烏鴉Ma𝕏](https://paragraph.com/@soaringcrowz-2/avalanche-cortina-x)*
