詳解AVM:基於模擬虛擬機器上的比特幣智能合約

作者:BitcoinSquare

就在本週,@atomicalsxyz發布了最新的AVM 虛擬機白皮書,相信大家還記得去年的$ATOM 以及跨年時候打的$quark 等ARC-20 代幣,而Atomicals 協議這次的AVM 白皮書具體講了什麼,對於後續的比特幣生態有什麼影響呢,下面我們就來分析協議和白皮書的內容。

一、背景

隨著比特幣生態系統的發展,如Segwit、Taproot、Schnorr、MAST和Taproot Scripts等技術的更新推出,促使了新的應用的產生。在此基礎上誕生了許多比特幣的代幣發行方式,也促進了比特幣生態的持續發展。

Ordinals協議的誕生與比特幣網路上的satoshi(聰)的概念密切相關。該協議引入了序數(Ordinals)和銘文(Inscriptions)的概念。序數是為每個聰依照其開採順序分配一個唯一編號,無論聰在不同錢包間如何轉移,其序數標識始終保持不變。銘文(Inscriptions)則是透過在聰上刻錄訊息來實現的。結合SegWit和Taproot,Ordinals協議允許在比特幣區塊鏈上為每個聰刻錄一個小於4 MB的文件,即銘文。隨著比特幣生態的發展,Ordinals創始人Casey建議使用Runes作為BRC-20的替代方案。相較於BRC-20,Runes減少了伺服器共識層,變得更加簡單,同時不依賴鏈下數據,也不需要原生代幣,非常適合比特幣的原生UTXO模型。

而我們要介紹的Atomicals 協議的誕生也是機緣巧合,最開始創始人Arthur 在Ordinals 協議剛發布的時候想在其基礎上開發一個DID 項目,但是在過程中發現了有些局限性,隨後在2023 年5月在推特上發不了關於協議的構思推文,隨後在去年9 月正式上線。對於Atomicals 中的ARC-20概念,其實並不是很多人理解的銘文協議,它更像是一種染色幣,它將比特幣的最小單位sat 作為基本“原子”,其獨特之處在於每個代幣單位至少由一個聰單位支持,並根據使用未花費交易輸出UTXO 架構發送和接收比特幣的相同規則進行操作。

在追蹤歷史交易記錄和計算當前的ARC-20 資產餘額時,人們僅需檢查與ARC-20 代幣相關的比特幣UTXO,無需從鏈下儲存模組中檢索額外資料。這一點是ARC-20 與BRC-20 協定之間的主要區別,因為BRC-20 協定通常依賴鏈下索引器和鏈下儲存層。 ARC-20 協定顯著降低了索引伺服器成本,提高了去中心化程度,且其轉帳安全性依賴於BTC 網絡,不產生冗餘交易,同時保持與BTC 相同的原子性,適合開發多種原生應用程式。 Atomicals 協議不僅僅是想只做資產發行,而是如何為資產提供更豐富的使用場景,以增強其流動性,並在功能性上進行更多拓展。

二、 AVM 是什麼

比特幣最初設計為一種點對點的電子現金系統,具備一定的Script腳本資料儲存能力和基本的OP Codes操作碼,迄今為止,比特幣上的所有覆蓋協議都是基於固定或預先定義的狀態機。所有覆蓋協議基本上共享兩種狀態機:一種用於訊號傳遞以創建數位資產,另一種用於管理這些數位資產的轉移。狀態機規則本質上是不可更改的,並且硬編碼在各自的覆蓋協議索引器中——應用開發者無法自訂數位資產的行為。

然而,由於UTXO模型和預先定義狀態轉換規則的限制,這種無狀態模型只能處理BTC單一資產的有限管理。為了在比特幣網路上新增如BRC20、ARC20、Runes等資產,需要更複雜的動態「狀態機」模型來記錄這些資產的儲存、交易和狀態變化。其中一種方法是採用外部協定和Layer 2解決方案,例如我們先前文章中提到的Nervos Network、RGB、閃電網路等,是在鏈下建立「狀態機」模型;而另一種方法是直接擴展Script腳本功能,增加新的操作碼或儲存空間,例如Covenant和OP_CAT等BIP提案。然而問題是第一種方式在短時間內難以達成共識,而第二種方式又存在不確定性。

AVM虛擬機器則提供了一個介於兩者之間的解決方案,直接在比特幣主網上建立虛擬機器執行環境,以特殊處理方式實現複雜資產的創建和轉移,並允許應用開發者完全自訂和定義其數位資產的任意規則。基本想法是允許開發者將智慧合約程式碼放置在交易的資料段中,以便所有相關方都可以執行。透過將程式碼儲存在區塊鏈上,不同的相關方可以透過以相同方式執行邏輯來輕鬆同步狀態。

三、工作原理

我們都知道智慧合約程式語言應至少具備以下關鍵屬性:可預測的運行時間、圖靈完備性以及在資源受限系統上的高效執行的能力。從上述要求來看,比特幣腳本非常適合作為定義數位資產創建和轉移規則的指令集。智慧合約程式碼儲存在比特幣交易中,覆蓋協議索引器執行這些程式碼以進行各種方法呼叫和狀態轉換。所有相關方執行相同的邏輯並達成相同的狀態轉換,從而形成一種自發性的共識。

透過模擬比特幣虛擬機器及其腳本解釋器來創建和執行各種覆蓋數位資產的智慧合約。比特幣區塊鏈作為時間戳記和資料提供者,將智慧合約程式儲存在鏈上,但這些程式的執行由覆蓋協議索引器在沙盒運行時中進行。覆蓋協定索引器節點由應用程式開發人員、服務提供者和使用者共同操作,從而形成一種新興的共識:

1.比特幣腳本模擬:比特幣指令集,透過雙堆疊PDA 實現了圖靈完備屬性;

2、沙盒運作環境:整個模擬機處於受控的隔離環境中,使得沙盒中的執行和之外的執行互不干擾;

3.狀態雜湊:可以讓參與者驗證其索引器的狀態是否正確同步,防止了狀態不一致潛在的攻擊性。

簡單來說,AVM 就是直接利用目前BTC 的有限的儲存空間和OP Codes 處理框架,透過在每筆BTC 主網交易中引入一種特殊的編碼和解碼方式,也就是沙盒環境,這個沙盒是比特幣腳本解釋器的精簡版本,具有一些顯著的差異,例如直接接受執行鎖定腳本(scriptPubKey)和解鎖腳本(scriptSig),以及各種其他資料如代幣狀態和受保護記憶體快照,而這個環境可以獨立完成一整套資產的儲存、交易記錄等,繼而就可以實現複雜的智能合約處理以及狀態同步和驗證。

四、未來發展

那在未來AVM 有那些可能的發展呢,它提供了一個能夠處理智能合約和dApp的高級執行環境,配備用於增強性能的自定義指令集,同時可以降低Gas費,優化狀態轉換功能以增加並行處理能力,從而提高吞吐量和可擴展性。同時,AVM實現了互通性和跨鏈通訊。簡單來說AVM 讓Atomicals 協議能夠執行各種任務,而不僅僅是之前簡單的代幣發行機制。在滿足了發行資產、管理資產等需求的基礎後,才可以真正的將比特幣生態發展起來,也會有更大規模的應用和系統架構的實現。

儘管AVM有許多局限性,例如只能操作ARC20資產,以及在主網出塊速度和費率下的一層智能合約的可用性仍是未知數,此外,儘管比特幣腳本語言設計用於資源受限的環境,複雜智能合約仍可能消耗大量運算資源,在執行效率方面仍有疑慮。但它的出現依然令人興奮,期待更進一步的技術創新突破。

Total
0
Shares
Related Posts