作者:郝天
如何理解@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同樣也有優缺點,也得憑藉落地後的生態建構情況來給自己擴大「正統性」吸引力,建議保持理性謹慎樂觀態度。