解析AVM:基於模擬虛擬機上的比特幣智能合約
BlockBeats 律動財經 2024-06-09 20:00
就在本周,@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 虛擬機則提供了一種介於兩者之間的解決方案,直接在比特幣主網上構建虛擬機執行環境,以特殊處理方式實現複雜資產的創建和轉移,且允許應用開發者完全自定義和定義其數字資產的任意規則。基本思路是允許開發者將智能合約代碼放置在交易的數據段中,以便所有相關方都可以執行。通過將代碼儲存在區塊鏈上,不同的相關方可以通過以相同方式執行邏輯來輕鬆同步狀態。
三、工作原理
我們都知道智能合約編程語言應至少具備以下關鍵屬性:可預測的運行時間、圖靈完備性以及在資源受限系統上的高效執行的能力。從上述要求來看,比特幣腳本非常適合作為定義數字資產創建和轉移規則的指令集。智能合約程序代碼儲存在比特幣交易中,覆蓋協議索引器執行這些代碼以進行各種方法調用和狀態轉換。所有相關方執行相同的邏輯並達成相同的狀態轉換,從而形成一種自發的共識。
通過模擬比特幣虛擬機及其腳本解釋器來創建和執行各種覆蓋數字資產的智能合約。比特幣區塊鏈作為時間戳和數據提供者,將智能合約程序儲存在鏈上,但這些程序的執行由覆蓋協議索引器在沙盒運行時中進行。覆蓋協議索引器節點由應用開發人員、服務提供商和用戶共同操作,從而形成一種新興的共識:
2、沙盒運行環境:整個模擬機處於受控的隔離環境中,使得沙盒中的執行和之外的執行互不干擾;
3、狀態哈希:可以讓參與者驗證其索引器的狀態是否正確同步,防止了狀態不一致潛在的攻擊性。
簡單來說,AVM 就是直接利用當前 BTC 的有限的儲存空間和 OP Codes 處理框架,通過在每筆 BTC 主網交易中引入一種特殊的編碼和解碼方式,也就是沙盒環境,這個沙盒是比特幣腳本解釋器的精簡版本,具有一些顯著的差異,比如直接接受執行鎖定腳本(scriptPubKey)和解鎖腳本(scriptSig),以及各種其他數據如代幣狀態和受保護內存快照,而這個環境可以獨立完成一整套資產的儲存、交易記錄等,繼而就可以實現複雜的智能合約處理以及狀態同步和驗證。
四、未來發展
那在未來 AVM 有那些可能的發展呢,它提供了一個能夠處理智能合約和 dApp 的高級執行環境,配備用於增強性能的自定義指令集,同時可以降低 Gas 費,優化狀態轉換功能以增加並行處理能力,從而提高吞吐量和可擴展性。同時,AVM 實現了互操作性和跨鏈通信。簡單來說 AVM 讓 Atomicals 協議能夠執行各種任務,不僅僅是之前簡單的代幣發行機制。在滿足了發行資產、管理資產等需求的基礎後,才可以真正的將比特幣生態發展起來,也才會有更加大規模的應用和系統架構的實現。
儘管 AVM 存在諸多侷限性,例如只能操作 ARC20 資產,以及在主網出塊速度和費率下的一層智能合約的可用性仍是未知數,此外,儘管比特幣腳本語言設計用於資源受限的環境,複雜智能合約仍可能消耗大量計算資源,在執行效率方面仍有疑慮。但是它的出現依然令人興奮,期待更進一步的技術創新突破。
暢行幣圈交易全攻略,專家駐群實戰交流
▌立即加入鉅亨買幣實戰交流 LINE 社群(點此入群)
不管是新手發問,還是老手交流,只要你想參與虛擬貨幣現貨交易、合約跟單、合約網格、量化交易、理財產品的投資,都歡迎入群討論學習!
- 從零開始學合約系列講座熱烈報名中
- 掌握全球財經資訊點我下載APP
文章標籤
上一篇
下一篇