作者:Cookie
過去半個月,OP_NET 與 Arch 這兩個比特幣主網上的智能合約實現方案引發瞭較多的討論。有意思的事情是,OP_NET 這個名字與大傢熟悉的 OP_CAT 很像,都以「OP_」開頭,具有很強的、讓大傢認為這哥倆差不多的迷惑性。
所以,在開篇要和大傢先提一嘴 OP_CAT。首先,OP_CAT 是比特幣操作碼,從去年開始有以「量子貓」Quantum Cats,也就是「大巫師」Taproot Wizards 的創始人 Udi Wertheimer 為首的社區力量一直在呼喊要「復活」OP_CAT。說是「復活」,是因為 OP_CAT 是本就存在的比特幣操作碼,但中本聰在 2010 年將該操作碼因可能導致潛在的 DoS 攻擊的原因給去除瞭。CAT 是「concatenate」一詞的縮寫,如同這個詞的意思,OP_CAT 的作用就是允許進行字符串的連接操作,將兩個字符串拼接成一個。
那麼這個操作碼如何使比特幣實現智能合約?講真的這真的非常抽象難懂,因此在這裡我推薦有興趣的朋友閱讀來自另一位律動作者 Jaleel 的文章(「13 行代碼助力比特幣實現智能合約?讀懂 OP_CAT 軟分叉」)。在這裡我想為大傢快速總結的幾個要點是:
OP_CAT 涉及到比特幣網絡的軟分叉,而要走到這一步,首先需要 BIP-347 提案通過,目前該提案僅進展到整個提案流程的第二階段「Proposed」狀態。
在 BCH 和 BSV 上的 OP_CAT 已經復活瞭幾年有餘,但是相關的用例還是非常抽象。在目前的討論中,我們幾乎看不到特別清晰直接的、到底用 OP_CAT 能做出一個什麼樣的 dApp 這種程度的案例。
OP_CAT 不是一步到位的「解藥」,復活 OP_CAT 更像是解除比特幣智能合約封印的第一步。合理的期待是,如果 OP_CAT 能夠成功復活,一些優秀的用例出現,隨後又會繼續討論解鎖更多的比特幣操作碼。我們可以先期待在激活瞭 OP_CAT 的 Fractal 上會不會有令我們耳目一新的創新出現。
而 OP_NET 實際上應該歸為符文、BRC-20、ARC-20 這些「協議」一類。雖然它的名字也有一個「OP_」,但其實現方式和比特幣操作碼完全沒有關系。
OP_NET
OP_NET 的框架大體上可以分為兩個部分,首先既然是比特幣主網的智能合約實施方案,那麼比特幣主網一定在整個技術框架中占據瞭一部分。可以說,比特幣主網在 OP_NET 的技術框架中扮演的角色是「行為發起層」與「最終確認層」。而智能合約的執行與狀態確認則是另一部分,也就是 OP_VM 和 OP_NET 節點共同組成的「執行層」。
根據上面的技術框架圖,我們可以簡單地闡述 OP_NET 在比特幣主網實現智能合約的流程。首先,部署 / 交互合約的用戶從比特幣主網發起交易,這筆交易的數據字段中會包含字符串「BSI」,使執行層能夠嗅探到這是一筆 OP_NET 合約交互性質的交易。交易得到確認後,OP_VM 執行相應的合約操作並進行狀態更新,交由 OP_NET 節點進行狀態確認,最終將狀態提供給比特幣 dApp。而在比特幣 dApp 拿到合約執行結果並進行相應動作後,也會將它們的動作結果提交到比特幣主網上。
看到這裡,您可能會有一種熟悉的感覺——這不又是鏈下索引器「鏈下執行、鏈上確認」那一套嗎?確實有一丟丟相似。但是 OP_NET 有一個有意思的機制就是它實際上是「燒比特幣」的。
OP_NET 的交易費用由兩部分組成,第一部分自然是作為一筆比特幣交易最基本的比特幣網絡費用,另一部分則是 OP_NET 交易費,而 OP_NET 交易費又由執行費和優先級費組成,這兩部分費用都是用比特幣來進行支付的。OP_NET 交易費必須多於 330 聰以確保不會被視為「粉塵」(過小的 UTXO)而被節點拒絕接收,優先級費則使合約執行動作可以像以太坊那樣拉高 Gas 以確保自己的交易被優先執行(OP_VM 可以對優先執行哪個動作進行排序)。
如果 OP_NET 交易費用大於 0.0025 比特幣,就會有 330 聰被「燃燒」,多出來的部分則給到節點運行者當作獎勵。所謂「燃燒」,其實有點像以太坊經常出現的打到合約地址裡的錢取不出來的那種情況,因為 OP_NET 實際上用瞭一種特定類型的比特幣交易「Taproot 腳本路徑支出」將比特幣地址抽象成瞭合約地址,這個合約地址是任何人都無法控制的,因此也就起到瞭「燃燒」的效果。
最後,我們結合這個項目的背景對這個項目進行一個小觀察。這個項目背後的團隊是 MotoSwap 的團隊,不知道大傢還記不記得 BRC-20 行情時曾經在 BRC-20 Token 總市值排到第三的 $OSHI,OSHI 是做應用的,後來團隊發生過一些分歧,有一部分就轉去 CBRC-20 上做瞭 Moto。OP_NET 本身雖然使用比特幣作為協議交互消耗的 Token,但是它還內置瞭 OP_20 和 OP_721 這兩個標準,所以也可以說,這個項目方的風格更偏向去年我們所熟悉的那種「新協議、新資產」風格。
Arch
與 OP_NET 不同,Arch 已經宣佈拿到瞭由 Multicoin Capital 領投,OKX、Portal Ventures、Big Brain Holdings、ABCDE 等參投的 700 萬美元種子輪融資。Arch 會有自己的 Token,既作為 Gas 費,也作為其 PoS 網絡驗證者的質押 Token。
也因此,Arch 的定位和 OP_NET 完全不同。如果說 OP_NET 至少在短期內還是更偏向「新協議、新資產」風格,那麼 Arch 則完全是「建造在比特幣主網基礎上的智能合約層」,或者說,「比特幣 1.5 層」。
從上圖我們可以大概地闡述 Arch 的工作流程。用戶從比特幣主網發起交易,Arch 節點嗅探交易並進行處理與驗證,領導者節點則負責「區塊事務」,即建立 Arch 網絡的區塊,另外還負責將最終確認的比特幣交易提交回比特幣主網。
看上去和 OP_NET 有點像?但其實如果仔細閱讀 Arch 的官方文檔,會發現他們在如何保證網絡穩定性以及其它與「執行層」相關的技術闡述中要比 OP_NET 更詳細一些。比如他們使用瞭「FROST + ROAST」的簽名方案,使得 Arch 能夠確保隻要 51% 的網絡成員誠實且合作,就可以簽署簽名來保證網絡的穩健性。
最後,雖然 Arch 有自己的 Token 作為「執行層」也就是 Arch 網絡的 Gas 費用,但是用戶在通過 Arch 來進行合約交互的時候還是可以用比特幣支付,費用轉換會在後端進行。因此在使用上,Arch 不會出現需要另一套錢包這樣的情況。
結語
OP_NET 與 Arch 技術實現上有一點點相似,總體上我們都可以說是把比特幣主網當成瞭「發起端」與「確認層」,「執行層」則是他們自己。但這兩個項目的定位卻是風格迥異,前者是「協議」,後者是「比特幣 1.5 層」。
當然瞭,比特幣主網爆塊時間過長的問題可能還是會限制二者發展出的 dApp 的效率,他們自身的執行和確認是足夠快的,但是最終在比特幣主網上的那個確認還是要看比特幣主網的礦工們給不給力。盡管如此,我們都樂見比特幣生態的不斷探索,隻有探索,才有發展。
最後值得註意的就是 Arch 的 Token 可能在明年的第一季度 TGE,因此如果未來推出相關的測試等活動,或是基於 Arch 推出的 dApp,大傢有興趣可以留心並且去交互。OP_NET 則沒有什麼好擼的,目前還是隻能期待它上面跑出什麼爆款 Token,但是現在整個生態的熱度可能比較難支持 OP_NET 像過去 ARC-20 之類的協議一樣跑出來。