正反觀點激烈交鋒:銘文是對比特幣網絡的漏洞攻擊還是安全創新

反對觀點:銘文是一種漏洞,損害比特幣網絡去中心化;正面觀點:銘文是一種創新,並讓比特幣網絡更安全。

編譯:GaryMa,吳說區塊鏈

反對觀點:銘文是一種漏洞,損害比特幣網絡去中心化。

撰文:William Casarin,比特幣開發者、Nostr Damus 創始人

我將作為辯論小組的一員,反駁有關銘文對比特幣有益的觀點。我決定研究一下銘文的技術細節。我開始明白 luke 的觀點,即它是如何利用比特幣反數據垃圾機制的漏洞的。

在比特幣中存儲數據的「標準」方式

向比特幣添加「數據」的標準方式是調用 OP_RETURN 操作碼。比特幣開發人員注意到人們通過大型多重簽名交易將數據(如比特幣白皮書)存儲在 UTXO 集合中。問題在於,這個集合是不可修剪的,並且可能會隨著時間的推移而增長。另一方面,OP_RETURN 輸出是可證明可修剪的,不會增加 UTXO 膨脹。

以下是 2014 年 3 月 0.9.0 版本發佈說明的摘錄,其中討論了這個問題:

關於 OP_RETURN:社區中存在一些混淆和誤解,涉及到 0.9 版本和區塊鏈中的 OP_RETURN 功能以及數據。這個改變並不是對在區塊鏈中存儲數據的認可。OP_RETURN 的改變創建了一個可證明可修剪的輸出,以避免一些已經部署的存儲任意數據(如圖像)作為永遠不能花費的交易輸出的數據存儲方案,使比特幣的 UTXO 數據庫膨脹。在區塊鏈中存儲任意數據仍然是一個不好的主意;在其他地方存儲非貨幣數據的成本更低效率更高。

Bitcoin Core 的許多工作都集中在確保系統在去中心化的情況下繼續以預期目的運作。人們試圖濫用它存儲數據,Bitcoin Core 一直不鼓勵這樣做,因為它不是為存儲圖像和數據而設計的,而是用於在網絡空間中傳輸數字貨幣。

為了激勵人們不要做愚蠢的事情,OP_RETURN 交易沒有被設為非標準,因此它們可以被節點和礦工中繼,但有一個附加條件:

  • 它們只能推送 40 字節(後來增加到 80、83,我猜是為了支持更大的根默克爾哈希,因為這是 OP_RETURN 的唯一明智的用例)
  • 比特幣還添加了一個稱為 -datacarriersize 的選項,它限制了從這些輸出中中繼或挖掘的總字節數。

為什麼銘文在技術上是一種漏洞

銘文通過在 OP_IF 塊內使用 OP_PUSH 將數據偽裝為比特幣腳本程序數據,繞過了 datacarriersize 限制。Ordinals 不使用 OP_RETURN,並且不受 datacarriersize 限制的約束,因此節點運行者和礦工目前對於他們希望中繼和包含在區塊中的此數據的總大小具有有限的控制權。Luke 的 Bitcoin Knots 有一些選項來對抗這種垃圾數據,所以希望不久的將來我們也能在 Bitcoin Core 中看到這一點。

銘文還利用了 segwit v1(見證折扣)和 v2/taproot(沒有任意腳本大小限制)中的特性。這些特性中的每一個都有其引入的有趣且合理的理由。

見證折扣的目的是降低花費許多輸出的成本,有助於減少 UTXO 集的大小。銘文利用這個折扣來存儲偽裝成比特幣腳本的猴子 jpeg。請記住,比特幣不是用來存儲數據的,所以任何時候比特幣開發者都無意讓它變得便宜和容易中繼數據,所以這應該被視為一個漏洞。希望它得到修復,或者至少為節點運行者提供工具來對抗這種垃圾數據。

未來將何去何從

這個故事的有趣之處在於人們似乎對存儲在比特幣區塊鏈上的圖像賦予了價值,並且願意支付費用將其收入區塊中,因此沒有意識形態的礦工和不關心比特幣的健康和去中心化的人們很高興支付或收取費用然後繼續前進。

數據不應該打折,人們應該為存儲數據支付全價。他們應該只使用 OP_RETURN 和哈希,比如 opentimestamps 或任何其他在比特幣中存儲數據的合理協議。

經過這次分析,我認為這是一種相當糟糕的垃圾數據漏洞,比特幣開發人員應該著手於解決方案。像 Luke 這樣實際關心網絡健康和去中心化的意識形態開發人員正在這樣做,我很高興看到這一點。

正面觀點:銘文是一種創新,並讓比特幣網絡更安全

撰文:jolestar

Bitcoin 開發者 LukeDashjr 要禁止銘文(Inscription)的推文引起激烈討論,他的主要理由是這是個 Bug,會影響 Bitcoin 網絡的安全。

Bug 還是 Feature 之爭影響深遠,如果它是個 Bug,那修復它的版本就是延續了當前版本的正統版本,但如果它是個 Feature,修復它就是要刪除這個 Feature,那修復版本就是一個分叉版本,所以值得深入討論一下。

如何度量區塊鏈網絡的安全,一直是一個有爭議的話題。一個經常被人拿來用的度量的維度是出塊節點的數量(miner 或者 validator)。這點上 PoW 系統不佔優勢,經常被 PoS 推崇者嘲諷。還記得當初 EOS 用的 21 個節點嘲笑 BTC 不夠去中心化,不夠安全的文章麼?

而 Bitcoin 開發者們經常用的一個度量方法是全節點的數量。為了讓個人 PC 都能運行全節點,所以要嚴格限制區塊大小,以及 UTXO 集,以降低全節點的成本。但多少個全節點算夠呢?銘文在多大程度上會影響 Bitcoin 的全節點數量呢?反倒從當前的統計圖上能看出,大約因為銘文的熱度,很多人需要和 Bitcoin RPC 交互,增加了 Bitcoin 全節點的數量。

從全節點這個角度衡量,也不能說銘文影響了 Bitcoin 網絡的安全。

區塊鏈是一個公開賬本,關心賬本是否正確的人越多,這個賬本越安全。而用戶為什麼關心這個賬本?因為這個賬本上記載了和他利益相關的東西,無論它是 BTC 也好,還是其他什麼東西也好,只要他覺得有價值,他就會關心這個賬本。

而用戶關心賬本的方式也並不是只有自己運行全節點一個途徑。用戶只要直接和 Bitcoin 網絡發生連接,就有這個效果。比如用戶安裝鏈上錢包,查看鏈上交易,帶來的安全保證就高於用戶把 Bitcoin 託管在交易所或者託管錢包裡。

而我們能看到的現象是,這波銘文熱明顯的帶來了用戶和 Bitcoin 網絡更多的直接連接(瀏覽器錢包),帶來了 DApp 應用生態的雛形(網站上掛銘文通過 psbt 鏈上交易),有更多用戶關心這個賬本上記錄了什麼東西了(區塊鏈瀏覽器的湧現和訪問量)。所以說,即便是從安全的角度,銘文對 Bitcoin 網絡的安全是有提升的。

銘文乍一看沒有太多技術含量,只是簡單粗暴的往 Bitcoin 網絡上寫數據,還依賴一箇中心化的 Indexer。

但我們可以把它理解成一種把 Bitcoin 當數據可用層(DA)的 Sovereign Rollup,只是在這個模式裡,由客戶端直接寫 DA,可以叫做 DA first 模式,而 Indexer 相當於模塊化區塊鏈裡的 Bitcoin 執行層,所以也可以認為 Indexer 實際上就是 Bitcoin 的 L2。

這個模式的缺點很明顯,沒有排序器(Sequencer)批量打包交易,用戶體驗很差,交易費也很貴,沒有欺詐證明,安全性也受質疑。如果有技術團隊設計了這樣一個方案,肯定沒有投資人願意投資,但市場的魅力就在於,用戶把它給玩出來了。前一段時間 BRC20 的餘額在不同交易所的數據不一致,用戶通過發推來社會共識,最終也實現了一致性,正好說明它是可行的。

但這個模式的優點是它是協議先行,先設計公開的協議和數據格式,鏈上只保存協議必須的數據,執行和校驗在鏈下。而任何一個團隊都可以實現一個 Indexer 接入這個 L2 的執行層網絡,整個 DA 的數據是共享的。而 Ethereum 的 L2 方案裡,每個 L2 相當於在 L1 的 DA 上圈了一塊地,各自搶佔空間,數據並沒有共享。

這會完全呈現出不同的競爭態勢。因為任何 L1 的空間總是有限的,如果 L2 沒能開拓出新的,讓用戶信任的空間,那實際上並沒有實現擴容。

所以說銘文是對 Bitcoin 作為 DA 的價值發現,同時配合 Indexer 的這種玩法展示了一種新的 L2 的構建途徑,對 Bitcoin 生態有重大意義,它是個 Feature 不是 Bug。

可能的解決方案

當然,Bitcoin 開發者們擔心的 UTXO 集膨脹的問題也是存在的。但它並不是無解的,因為銘文協議是一種鏈下共識的協議,只要 Indexer 以及社區達成共識,可以有非常多的解決方案,我這裡拍腦袋寫幾個。

1. 用 Hash 替代銘文的內容。現在銘文包含了各種媒體文件,json 等,體積比較大。但實際上,只要 indexer 層成熟了,完全可以實現只寫 Hash 到 L1,原始內容保存在 Indexer 或者用戶的錢包裡。

2. 設計一套協議,支持銘文在鏈上和鏈下之間的遷移。銘文遷移到鏈下的時候,相當於在 L1 銷燬,UTXO 也就消費掉了。如果要再次回到鏈上,用戶需要提供 Off-chain 轉移的簽名聚合,這樣 Indexer 之間就可以校驗。

還有一種方式是採用類似 Taproot 那樣的稀疏默克爾樹的校驗方式,來實現鏈上鍊下的遷移。這個我原來設計過一個 Ethereum NFT 的遷移方案,但可惜 Ethereum 上的 NFT 是通過 Interface 定義的,不是數據對象模式,很難發揮出這種優勢,而銘文的這種模式非常適合。感興趣的朋友也可以看下這個鏈接:

https://github.com/rooch-network/rollup-nft

更多的方案就不寫了。我想說的是,技術是一個生態系統,它需要隨著用戶的使用和反饋來生長。很多創新都不是開發者們在電腦前規劃設計出來的,而是隨機的嘗試,然後和用戶的反饋碰撞湧現出來的。

引用我在《語言是一個去中心化系統》中的一句話:接受一個系統是去中心化的,那就得接受它會演化出你不喜歡的東西,也得接受它的演化過程中的各種失敗的嘗試。

未來

現在這些協議發的資產大都屬於 meme 幣範疇,meme 幣能否從有限次博弈變成一個長期的博弈的系統,主要看幾方博弈:

1. 早期獲利的參與者 holder 是否願意持續投資生態,給資產提供應用場景,類似 Bitcoin 早期 holder 們投資各種基礎設施。如果都套現離場,那就只是一場 meme 遊戲。

2. 基礎設施提供者能否提供這樣的空間和場景。這一方面取決於 Bitcoin L2 等基礎設施提供的能力,另外一方面也受包括 Bitcoin 核心開發者在內的 Bitcoin 社區態度的影響。

相关赛道:
來源
免責聲明:以上內容僅為作者觀點,不代表Followin的任何立場,不構成與Followin相關的任何投資建議。
喜歡
1
收藏
評論