如何理解 AVM:一種讓 BTC 實現動態“狀態機”的圖靈完備虛擬機?
作者:Haotian
如何理解 @atomicalsxyz 最新發布的 AVM 虛擬機白皮書? 簡單而言:它是一種通過模擬比特幣虛擬機,讓原本「無狀態」比特幣主網實現搭載智能合約系統的能力,進而可以完成 BTC 資產之外更複雜資產的狀態記錄和處理能力,類似於圖靈完備智能合約。接下來,分享下我的理解:
1)比特幣原本設計為一套點對點的電子現金系統,有一定 Script 腳本數據存儲能力,同時有一些基本的 OP Codes 操作碼,也有一套基於 UTXO 時間鎖和花費條件的驗證資產邏輯。
因此,比特幣網絡在記錄並傳輸 BTC 資產時能夠實現「無狀態」下的資產管理。由於 UTXO 極簡模型和預定義狀態轉化規則的限定,這種無狀態模型只能處理 BTC 單個資產的有限管理。
若嘗試在比特幣網絡上新增資產,比如 BRC20、ARC20、Runes 等資產,就需要有一套更複雜的動態「狀態機」模型來記錄這些資產的存儲、交易、狀態變化等。如何實現呢?
一種方式是採用外部協議和 layer2 二層解決方案在鏈下構建「狀態機」模型來延展處理,像 @NervosNetwork @RoochNetwork 等目前優秀的二層擴展方案,甚至 RGB、閃電網絡等 Native 解決方案都屬於此類;
另一種方式是直接擴展 Script 腳本的功能,以增加新的操作碼或存儲空間來處理複雜資產的創建和轉移,像 Covenant 和 OP_CAT 等依賴 BIP 提案標準被通過的方案都屬於這種;
以上兩種方式要麼過於「主動」,短時間內難達成共識統一,要麼過於「被動」,存在極大的不確定性。AVM 虛擬機給出的是一種介於兩者之間,直接在比特幣主網上構建虛擬機執行環境的特殊處理方案。
2)如何做呢?AVM 主要工作原理包含三部分:
1、比特幣腳本模擬,其實就是比特幣指令集,通過雙堆棧 PDA(可壓入存儲自動機)實現了圖靈完備屬性;
2、沙盒運行環境,整個模擬機處於一個受控的隔離環境中,使得沙盒中的執行和之外的執行互不干擾;
3、狀態哈希,可以讓參與者驗證其索引器的狀態是否正確同步,防止了狀態不一致潛在的攻擊性。
簡單理解:AVM 直接利用當前 BTC 有限的存儲空間和 OP Codes 處理框架,通過在每筆 BTC 主網交易中引入一種特殊的編碼和解碼方式(沙盒環境)。
這個沙盒自帶索引器、沙盒解析器(指令集),全球 Database(數據庫)等等,可以獨立完成一整套資產的存儲、交易狀態記錄等管理,等同於在 BTC 主網內置了一個動態的"狀態機",繼而就可以實現複雜的智能合約處理以及狀態同步和驗證。
3)有了 AVM 虛擬機理論上可以讓比特幣主網具備基礎智能合約操作功能,讓比特幣具備管理多重複雜資產以及複雜狀態邏輯 DApp 落地的可能性,相當於讓比特幣網絡具備了一定的自構建生態功能。
這當然算是一個偉大的進步,至少和 RGB、閃電網絡以及各類優秀二層協議處理方案算同級別的 BTC 擴展能力創新。甚至在 Native 方面還要優於其他方案。
不過,AVM 要依賴比特幣 Script 腳本做編碼存儲、同時依賴 OP Codes 做交易執行,因此它整體受限於 BTC 的主網性能,比如:區塊存儲空間大小、出快速度等。
試想,一個基於 AVM 構建的 DeFi 項目,每分鐘只能處理 7 筆交易,兩個狀態轉化之間需要等待十分鐘,這樣的智能合約即使理論上完備,依然被束縛住了手腳。而且依賴比特幣 Script 腳本指令集來開發複雜的合約功能,要比以太坊 Solidity 等語言開發智能合約更複雜、難度更大。
況且,AVM 的白皮書只是理清楚了一種 Make Sense 的內置虛擬機執行方式,其實際部署上線到應用環境如何運轉、如何穩定運行等問題依然是未知數。
以上
整體來說,我傾向於把 AVM 的開發落地視為一種基於 BTC 主網 Script 腳本擴展的有益主動探索,確實能帶動一些較簡約的智能合約在 BTC 主網落地,同時可比特幣主網能在二層生態構建以及 BitVM 等鏈上和鏈下組合生態中發揮更大的占比作用和價值。
但,和其他各類 BTC 擴展解決方案一樣,AVM 同樣也有優缺點,也得憑藉落地後的生態構建情況來給自己擴大「正統性」吸引力,建議保持理性謹慎樂觀態度。