作者: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與Arch有何不同?

根據上面的技術框架圖,我們可以簡單地闡述OP_NET 在比特幣主網實現智慧合約的流程。首先,部署/ 互動合約的用戶從比特幣主網發起交易,這筆交易的資料欄位中會包含字串「BSI」,使執行層能夠嗅探到這是一筆OP_NET 合約互動性質的交易。交易確認後,OP_VM 執行對應的合約作業並進行狀態更新,交由OP_NET 節點進行狀態確認,最終將狀態提供給比特幣dApp。而在比特幣dApp 拿到合約執行結果並進行對應動作後,也會將它們的動作結果提交到比特幣主網上。

看到這裡,您可能會有一種熟悉的感覺——這不又是鏈下索引器「鏈下執行、鏈上確認」那一套嗎?確實有一丟丟相似。但是OP_NET 有一個有趣的機制就是它實際上是「燒比特幣」的。

簡單分析兩種最新比特幣智能合約實作方案:OP_NET與Arch有何不同?

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 層」。

簡單分析兩種最新比特幣智能合約實作方案:OP_NET與Arch有何不同?

從上圖我們可以大概地闡述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 之類的協議一樣跑出來。