比特幣|BRC-20 基礎設施不完善所產生的安全風險是什麼?

Kyle
分享
比特幣|BRC-20 基礎設施不完善所產生的安全風險是什麼?

在近期 BRC-20 市場熱絡之下,Ordinals 機制衍伸的相關安全問題也再次被社群搬到檯面上討論,BRC-20 有什麼安全問題?身為持有者有什麼絕對需要知道的事情?

BRC-20 背景知識

在討論 BRC-20 安全問題之前,需要先稍微理解 Ordinals 協議與 BRC-20 的運作原理,就可以輕鬆深入理解。

Ordinals

Ordinals 是今年一月由軟體工程師 Casey Rodarmor 開發並開源的專案,該協議可以追蹤比特幣網路上的所有的比特幣,追蹤的單位是比特幣的最小單位「聰 (satoshi)」。

廣告 - 內文未完請往下捲動

Ordinals 協議可以提供用戶與開放者,將任何資訊寫入聰的交易備註欄位中,讓特定的聰可以關聯外部的元資料,例如圖片或是文字等等,進而開啟 Bitcoin 上的 NFT 時代。這個紀錄對應資料的動作稱之為銘刻 (inscribe)。

因為比特幣網路並沒有原生虛擬機與智能合約系統,因此這些資料是連結到鏈下的伺服器做管理,這都還好,但直到出現了 BRC-20。

BRC-20

隨後在今年三月份,一個名為 @domodata 利用 Ordinals 協議製作了 BRC-20 標準,也就是將刻上去的文字以 JSON 檔案的形式,將代幣的資料紀錄,範例如下:

鑄造 ORDI 代幣的JSON 資訊 (資料來源)

上述有說明比特幣網路沒有智能合約系統,所有資訊其實都是放在交易備註欄位之中。因此定義 BRC-20 的鑄造、轉移、銷毀的機制,當然也是寫文字上去並沒有實質效力,需要有其他機制協助運算與結算,現階段都是是利用鏈下的伺服器與索引器 (indexer) 去追蹤與管理所有紀錄。

例如小明要轉帳給小美 10 PEPE 代幣,那麼就需要將 PEPE 的轉帳資訊,利用 JSON 的形式寫入轉移聰交易備註欄中,等待確實打包出塊之後,等待 indexer 追蹤到 JSON 檔案內的資訊,再從 indexer 的帳本中扣除小明的 PEPE 代幣,並增加小美的 PEPE 代幣紀錄。

因此,需要有可以追蹤 BRC-20 代幣交易資訊的交易所與錢包,目前有支援 BRC-20 代幣的服務如下:

  • OKX Wallet
  • UniSat Wallet
  • Magic Eden

BRC-20 衍生問題

可以發現 BRC-20 的機制有明顯的安全問題,持有者需要對於 indexer 有信任,才可以完成這些交易,如果這些 indexer 作惡、異常、被駭客入侵等等,那麼用戶資產就會面臨安全風險。

利用這種機制可能衍生出有人拿空氣跟自己買代幣 (無中生有),或者有人拿固定量的代幣跟別人做多次交易 (雙花問題),以下分別說明。

無中生有

社群成員 Sam 於 X (Twitter) 舉例,假設駭客想要小明手上的 A 代幣,若此時駭客正好有能力駭入某個知名的 indexer,並且有能力控制它一個小時,在這一小時裡,他先給自己憑空增加了 B 代幣 ( 竄改indexer資料庫即可 ),然後把代幣 B 轉給小明。

小明很謹慎,他在瀏覽器上也能看到自己得到了代幣 B,於是放心的把代幣 A 轉給對方,在一個小時結束後 indexer 發現被入侵並重新同步了數據,此時小明刷新瀏覽器會發現代幣 B 不見了,且代幣 A 也消失了。

為什麼會發生這種事?原因如下:

  • 駭客和小明連接了同樣的 indexer 伺服器,小明和駭客看到的前端資料始終是一樣的,包括被駭前後和被駭的過程。
  • 駭客轉給小明的代幣 B 並未發生在比特幣鏈上,此次交易資訊只發生在 indexer 伺服器裡,駭客可以改資料庫裡面的數據。因為此時小明信任這個 indexer,所以看到 indexer 瀏覽器更新的資料便認為代幣 B 的交易已經完成。
  • 就算小明直接去比特幣網路查銘文,但駭客完全可以發一筆交易,上頭刻著駭客自己寫的 JSON 資訊 (indexer不會認可) 給小明查。
  • 小明給駭客的代幣 A 的交易確實在鏈上發生了,且因為小明確實有足夠多的代幣 A,所以即便 indexer 發現被駭後進行回滾,小明的這筆交易還是會被成功執行。

客手上都沒有代幣 B,為什麼這筆交易能發成功?原因是比特幣網路沒有虛擬機跟智能合約,只是記錄了一個數據,整個合法性校驗完全是靠indexer 來完成的,而此時 indexer 已經被黑客控制了。

雙花問題

除了駭客的問題之外,過往也有出現過多個索引器版本差異導致雙花問題的風險,也就是因為不同索引器版本差異,使得一個資產有機會有多次交易的可能,但是當這些主流索引器同步共識後,就會使買到非共識資產的持有者資產損失。

延伸閱讀:資產安全|BRC-20 版本出落差,部分平台暫停相關交易

現階段該怎麼保護自己

多注意社群的更新動向,通常 Twitter 消息最靈通,確保自己交易資產時 indexer 是可以信任的。

期待未來可以有更好的基礎設施,可以降低 BRC-20 的安全風險。

社群潛在解決方案

上述問題出在現階段生態 indexer 數量太少,如果有 100個 indexer,那麼駭客根本不知道小明會用哪個 indexer,小明也可以隨時切換到其它 indexer 去做多重驗證,此時駭客做壞事的成本就會提高,高到幾乎不想做壞事。

需要用經濟機制去解決問題。實際上會有多少 indexer 在運行,取決於 indexer 運營商可以得到多少利潤,利潤夠高自然會去運行,數量就會提升,如同現在大多數去中心化網路節點的運作模式,數量夠多就足以去中心化、去信任化,不用擔心節點的故障或是作惡問題。

ORDI 作為治理代幣創造對應協議

有社群成員提出使用最早的 BRC-20 代幣 — ORDI,並建構一套治理機制,所有 indexer 都需要質押 ODRI 代幣才可以營運,若成功交易給予代幣獎勵,若其作惡則沒收代幣。

不過現階段 ORDI 代幣發展至今,大動作改變其代幣經濟不容易維持社群共識,因此推動非常困難。

較期待有新的協議與代幣擁有足夠多的共識來解決這個問題,也開始有團隊著手嘗試,有人提出了 TRAC。

TRAC 去中心化索引網路協議

TRAC 協議包含一個去中心化網路、對應的客戶端、代幣治理經濟模型,目標是打造一個去中心化的 indexer 網路,預期利用代幣獎勵與懲罰機制,強化 BRC-20 網路安全。

不過目前該專案共識是否足以推動願景仍是未知數,因為需要大多主流的 indexer 都願意加入響應才有機會做到。

期待更多 BRC-20 基礎設施發展

其實上述這些衍生問題與資產面臨的風險,歸根究底的原因其實就是:

因為 BRC-20 沒有智能合約支持。

因此需要重新打造一條去中心化網路,搭配激勵機制,以提供安全的 indexer 執行層。

不過既然都要重頭開始,為什麼不一次到位,做一個專為比特幣執行的去中心化虛擬機執行層呢?更符合成本效益。因為要重新打造一條去中心化網路就需要一個新的經濟模型去維持,由過往區塊鏈、去中心化儲存網路到預言機領域的發展歷史,可以得知從零打造一個去中心化網路與共識是一件非常困難的事情。比起技術,筆者認為共識是更加可貴、更困難達到的,若有能力凝聚共識,就把技術補足吧。

預期未來將可以看到比特幣的智能合約層。

不論接下來 BRC-20 的發展發向與結果如何,可以看到許多人正在努力嘗試優化現有生態,期待可以看到 BRC-20 更加成熟的一天。