比特幣跨鏈為何致符文離奇遺失?談符文遺失帶來的一些警示

本技術研究研究由ScaleBit 研究團隊的Leon 撰寫

TL;DR

本文就近期BEVM 跨鏈操作中出現的一些符文「丟失」現象進行了深度分析,同時提出了避免此類問題再次發生的安全性建議。

近期,我們注意到BEVM 跨鏈操作中出現的一些符文「丟失」現象,引起了社區的關注和疑慮。本文將對這一問題進行深度分析,旨在為用戶提供更全面的了解該問題,同時也藉著這個話題給大家說說最近火熱的銘文和符文使用過程中的一點注意事項。

背景

北京時間2023 年12 月23 日,一些BEVM 跨鏈交易用戶發現帳戶中持有的部分COOK、PSBTS 在不知情的情況下被轉移到跨鏈橋,隨後該部分用戶向BEVM 團隊提出質疑。接著BEVM 官方推特發出聲明,稱由於該部分符文不被主流錢包比如 Unisat 支持,所以在跨鏈到 BEVM 的時候,該類非主流的銘文會被當做普通的UTXO 轉到BEVM 地址。

ScaleBit 安全團隊注意到此事以後,隨即進行了調查。經過ScaleBit 團隊的研究,確認該部分符文確實是在同一筆跨鏈交易中被當作普通的UTXO 轉移,而非 BEVM「盜取」。

正文

引用BEVM 官網資訊介紹,BEVM 是一個以BTC 為Gas 且兼容EVM 的BTC Layer2,核心目標是拓展比特幣的智能合約場景,幫助BTC 突破比特幣區塊鏈非圖靈完備、不支持智能合約的束縛,讓BTC 可以在BEVM 這個Layer2 上建構以BTC 為原生Gas 的去中心化應用程式。

近來隨著BEVM 奧德賽活動的開啟,許多用戶開始將BTC 跨鏈到BEVM 進行交互,以期望能夠在未來BEVM 生態參與搶佔先機。但在跨鏈過程中,部分用戶發現所持有部分COOK、PSBTS 遺失,根據區塊鏈瀏覽器,查到該部分符文被轉移到了BEVM 跨鏈橋,於是有了前面提到的情況。

接下來,就跟我們一起看看到底發生了什麼事。

首先,我們透過 BEVM 瀏覽器(https://scan.bevm.io/stats)找到了一些跨鏈交易訊息,透過分析,我們找到跨鏈橋的接收位址為:

bc1p43kqxnf7yxcz5gacmqu98cr2r5gndtauzrwpypdzmsgp7n3lssgs5wruvy。

隨後,我們在Rune Alpha(支援COOK 和PSBTS 等RUNES 協議的通用瀏覽器和服務)上查看,其地址上持有包括11 萬多的COOK 和28 萬多的PSBTS 在內的大量各種符文。

我們隨即對此部分符文相關交易進行了研究與分析。

我們拿其中的某一筆交易舉例:

https://runealpha.xyz/txs/c1bf015ce01a3610b436fb2e418685855cd7a37143cd52a4d1858a53e610b5f2

其交易內容如圖所示:

我們可以看到,該筆交易的輸入有兩個,分別為 0.00000546 BTC(包含1000 COOK)和 0.02169031 BTC,輸出為 0.02 BTC(包含1000 COOK)和 0.00148377 BTC。

作為對比,我們找了一筆不是跟跨鏈橋交易的COOK 的交易,其輸出如下圖:

可以看到,不管是輸入或輸出,都包含一個 0.00000546 BTC 的UTXO。

為什麼會這樣呢?這裡我們就需要了解一些相關的知識了。

UTXO

首先,我們來了解什麼是UTXO。

UTXO,全稱為 Unspent Transaction Output,直譯即未花費交易輸出,這是比特幣的核心知識點。在比特幣的交易中,每筆交易都有輸入和輸出,別人付給你的錢是“交易輸入”,你收到的錢是“交易輸出”。

UTXO 的核心設計想法是無狀態,它記錄的是交易事件,而不記錄最終狀態,也就是說只記錄變更事件,使用者需要根據歷史記錄自行計算餘額。因此,比特幣的交易模型和我們平常使用的銀行帳號有所不同,它並沒有帳戶這個說法,比特幣只有UTXO。一個UTXO 可以想像成一個任意金額的「硬幣」。

UTXO 湊輸入與找零

UTXO,就是跟硬幣一樣,不能掰開用,那麼交易過程中如何湊夠輸入金額,又如何找零的呢?

例如小明給小剛轉帳1 BTC。整個過程是這樣的,小明要收集足夠的輸入,比如小明的地址對應的以往交易中,找到了一個面值為0.9 的UTXO,不夠1 BTC,好在交易中是允許有多個輸入的,所以小明又找到了一個面額0.2 的UTXO,這樣在這次轉帳的交易中,就會有兩個輸入。同時輸出也會有兩個,一個是指向小剛位址,面值是1 BTC。另一個指向小明的位址,面值是約0.1 BTC,這個輸出就是找零了。

在比特幣轉帳過程中,湊輸入沒有固定的演算法,取決於錢包的實作。

比特幣銘文和符文

其次,我們需要了解什麼是銘文和符文。比特幣銘文和符文是比特幣生態中的兩個重要概念。

比特幣銘文主要的代表是Ordinals 協議。 Ordinals 誕生於2022 年12 月,內容完全在鏈上,由Casey Rodarmor 開發。該協議利用了Sat 編號系統,Ordinals 透過賦予每個聰序號,在交易中追蹤它們,同時用戶可以透過Ordinals 附加額外的數據(圖像、影片、文字等)在比特幣區塊鏈上,使得每個聰都獨一無二,因而具有NFT 的性質。 BRC-20 就是基於該協定創建。

Runes 協議,也稱為符文協議。隨著BRC-20 的火爆,BRC-20 相關代幣的交易佔據了Ordinals 協議的大部分比例。 2023 年9 月26 日,Casey Rodarmor 重新開發了一個名為Runes 的協議(也就是大家現在提到的符文協議),作為BRC-20 的替代品。該協議是一個簡單的、基於UTXO(未使用的交易輸出)的、能使比特幣用戶具有使用良好體驗的FT(Fungible Token、可替代代幣)協議。符文主要的代表就是我們提到COOK 和PSBTS。

比特幣銘文和符文的載體都是UTXO,比特幣銘文(Inscription)與符文(Rune)的一個關鍵區別在於,銘文是刻在隔離見證數據裡,而符文是刻在 OP_RETURN 裡。 OP_RETURN 能儲存的資料大小非常有限,但是用於發幣綽綽有餘,這個也並非什麼新技術。

對於用戶鑄造銘文或符文,本質上都是發送符合金額的比特幣給協議,協議返給你一個帶有銘文或符文的UTXO,一般是一個 0.00000546 BTC 的UTXO。這裡說下為什麼是0.00000546, 這個是比特幣設定最低交易金額。

轉移銘文,也是因為這些錢包識別了這些UTXO 的特殊格式, 錢包通過對應的協議,將這些UTXO 作為輸入,並支付額外手續費,轉給了對方。

為什麼用戶丟了「符文」?

對於用戶丟失符文,由於它本質上還是UTXO,在用戶使用UniSat 進行比特幣跨鏈操作的時候,由於UniSat 不識別該部分含符文的UTXO ,並當做了普通的UTXO 進行了處理,湊輸入發送給了跨鏈橋。

實際上,不僅是跨鏈操作,用戶在不支援符文的錢包中進行其他比特幣轉帳操作,也有可能丟失符文。在12 月7 日就有用戶在Unisat 上進行BRC-20 swap 操作遺失了15, 000 COOK。

還有一個比較有趣的事情,在Runes Alpha 上鑄造符文的時候,也是有可能把使用者的銘文的當成Gas 轉走的。

為什麼沒有人回饋丟銘文?

我們透過BEVM 的官方文檔,發現BEVM 跨鍊是支援銘文跨鏈的,只需要使用者通過BSwap,即可將自己的銘文跨鏈到BEVM 上。而跨鏈使用的錢包是UniSat 錢包。這是一款用於BTC 生態的Chrome 插件錢包,可幫助用戶儲存、鑄造和傳輸BRC-20 代幣。它能夠識別用戶的銘文,從而避免將該部分UTXO 進行合併,只有用戶主動交易銘文的時候,才會被轉移。

由於 Unisat 目前還不支援符文協議,這就是為什麼用戶跨鏈會「丟失」符文而不丟失銘文的原因。如果換做其他不支援符文的錢包,也會發生類似的情況。

符文還可以找回來嗎?

既然符文被轉移到跨鏈橋了,用戶還可以拿回該部分符文嗎?

我們查閱了BEVM 白皮書,BEVM 的資產跨鏈方案是基於比特幣的Taproot 技術構建的,是融合了Schnorr 簽名+ Mast 合約+ 1000 BTC 輕節點組成的POS 網路來實現資產的去中心化跨鍊和管理,BTC- BEVM 的雙向跨鍊是完全基於鏈上的節點共識來管理的,實現了完全的程式​​碼化和去信任化,而非依賴多簽或人為管理,這讓BTC 及比特幣資產的跨鏈安全做到和BFT POS 一樣去中心化和安全,因此,BEVM 官方也無法發起單獨的轉帳交易來取出用戶的「符文資產」。

由於BEVM 不支援符文協議,該部分符文被轉出的機率是完全隨機的,當託管合約執行交易時,這些「符文資產」可能會被當作普通的UTXO 被轉出,但是整個過程是完全隨機的,不受人為控制的,如果要強制取出,必須徹底改變BEVM 整個鏈的共識,這無疑於將BEVM 硬分叉。

總的來說,該事件是由於多個原因造成的:

  • 跨鏈操作所使用的錢包不支援符文。

  • BEVM 是分散式去中心化的託管資產,無法手動取出。

  • 使用者對於符文協定的不熟悉。

如何避免此類問題再次發生?

對於一般用戶,如何避免該類問題再次發生?在做互動操作時候,我們建議使用者先做好以下幾點:

  • 確保使用的錢包支援銘文或銘文協議。

  • 確保要互動的協定(例如跨鏈橋)是否支援銘文符文協定。

  • 在使用協議前,先研究是否有用戶操作過程中出現問題。

  • 使用多個錢包管理不同資產。

同時也提醒開發者,在開發設計的時候,需要充分考慮和準備,從程式碼層面解決可能出現的協定不相容問題。如果不能,要在上線前做好研究並做出明確提醒,避免造成不必要的質疑和麻煩。

總結

銘文和符文的出現,是比特幣生態不斷探索和創新的重要的里程碑,極大的推動了大家對比特幣生態的關注和參與熱情,對於未來的比特幣生態發展也起了極大的積極意義。但是,對於目前來說,銘文和符文還處於比較早期階段,希望大家在參與的同時,一定要注意相關的風險,切忌盲目。

Total
0
Shares
Related Posts