最新發現:BRC-20交易並不適用BTC-UTXO標籤模型

2023-07-04 16:51 歐科雲鏈


作者:Jason Jiang,歐科雲鏈

在Web3世界,鏈上活動所產生的數據直接對應着價值流動,掌握鏈上數據就能發現更多Alpha。加上近年加密市場頻繁遭遇風險事件,個人和機構用戶對鏈上數據也愈加敏感。鏈上數據已成爲洞悉加密世界必不可少的“利器”。但面對近來風頭正盛的BRC20交易,我們對其進行地址標籤分析時,卻發現此前的BTC-UTXO模型卻似乎並不完全適用。那問題究竟出在哪兒?又該如何解決?

BRC20交易與PSBT

分析問題前,首先要了解BRC20基本情況。2023年1月,比特幣核心貢獻者Casey Rodarmor提出“序數理論”(Ordinals Theory),允許用戶在比特幣最小單位“聰”上寫入任意文件(不超過4MB的圖像、文本、視頻等)。隨後,匿名分析師@domodata基於Ordinals協議創建BRC20代幣標准。這是一種實驗性代幣標准,允許任何人在比特幣網絡發行代幣。

Ordinals協議和BRC20標准給比特幣生態創造了價值轉移之外的全新用例,使其在減半之後有了另一種極具吸引力的敘事邏輯。作爲最古老的區塊鏈生態,比特幣因此煥發無限活力,BRC20代幣也在2023年上半年成爲廣受關注的賽道:截至2023年6月29日,BRC20相關代幣已超過6000種,市值超過6億美元。

但與以太坊 ERC20 部署智能合約後可立即發行和傳輸代幣不同,BRC20並不是實際意義上的代幣,而是記錄特定文本的“聰”,因此需要單獨索引器來了解 BRC20 代幣的狀態或余額。同時,BRC20是以公鑰腳本中的JSON 數據包爲承載體,相關代幣合約部署以及代幣鑄造、轉移都需要利用Ordinals協議將銘文設置爲JSON數據格式來實現。

由於比特幣公鑰腳本只存儲數據,並不支持智能合約指令執行程序,所以BRC20代幣也無法構建相關協議實現自動交割,理論上只能通過集中托管或OTC完成交易。這些方式不論交易效率和信任程度都不盡如人意,於是PSBT(Partially Signed Bitcoin Transactions,部分籤名比特幣交易)开始被用於BRC20相關交易中。

所謂PSBT,是由BTC核心开發者Andrew Chow提出的一項提高未籤名交易便捷性的標准。它可以創建一個未完全籤名的交易以及一些其他數據來協助未籤名交易的傳輸,促進未籤名交易的可移植性,讓多方能在不同時間、不同場合(軟件或硬件錢包)更便捷地對同一筆交易進行籤名。在一筆多籤交易中,Creator只需先創建一個PSBT標識要花費的UTXO和接收UTXO的output,再將這個PSBT復制到可籤名的程序中,通過Combiner將多個PSBT集成到一個PSBT中並發給每個參與者,各方完成籤名後即可完成完整交易。

簡言之,PSBT允許用戶僅對部分input進行籤名,以幫助BRC20代幣在沒有智能合約的情況下實現交易的去信任化。包括UniSat和其他Ordinals市場都在利用PSBT技術使买賣雙方能以無需信任和非托管方式進行交易。

爲何BRC20交易具有特殊性?

這是因爲,如今我們在對比特幣地址標籤進行解析時,主要基於UTXO特性的Common Spending和One-Time-Change等原則進行追溯。其中,Common Spending原則是指,如果一筆BTC交易同時有多個輸入地址,那么可認定這些input地址屬於同一個實體,因爲只有他/它有所有的私鑰才能將這些地址放在同一交易中

但在使用PSBT進行BRC-20交易時,整個PSBT廣播前都會在鏈下協調好买賣方在Input與Output確認後再完成籤名,因此在輸入中可能會有买方、賣方、平台等多個角色,並存在一個具體參與方(物理上)同時擔任多個角色的可能性,因此採用Common Spending原則的標籤模型並不能兼容此類交易。

以具體的BRC20 Token交易爲例。目前常見的BRC20交易涉及Token合約部署(Deploy)、鑄造(Mint)和轉移(Transfer)三種主要類型。

(1)在Deploy和Mint過程中,代幣轉账沒有發送方地址而只有接收方地址,其BTC轉账交易的Input和output地址最多只有一個,所以無法用基於Common Spending原則的模型進行標籤拓展。

(ordi的deploy交易-代幣轉账)

(ordi的deploy交易-BTC轉账)

(2)在BRC20代幣的Transfer過程中,Input地址通常會有多個,我們可以通過查看交易的代幣轉账來辨別本次交易的买方和賣方地址。例如,在下面這筆ordi的Transfer交易(https://www.oklink.com/cn/btc/tx/bc2ac0be40b33cfaf0dedf7bafc97de113ce56e2e6dc7caf67c116f00d1dc849)中,代幣發送方(bc1p...hdjn)爲交易的賣方,代幣接收方(bc1p...wftk)爲交易的买方。

但在BTC轉账交易的Input裏會存在多個地址,其中有賣方地址,也可能會有买方地址和疑似第三方平台的地址:

經過分析,我們發現在BRC20的Transfer過程中,盡管輸入腳本類型大部分是單籤(也存在少數多籤情況),但由於可能應用PSBT技術,將賣方和第三方平台地址等共同添加到input中來實現多籤,所以會導致input中多個地址雖然看起來是單籤,但實際上卻並不屬於同一個實體/個人,因此也無法採用Common Spending原則進行判斷。

綜上,BRC20交易的特殊性主要體現在:在Deploy和Mint過程中最多只會出現一個input地址,無法滿足“Common Spending”原則的前提條件。在Transfer過程中,由於input地址中有可能包含多種角色,如果用基於“Common Spending”原則的UTXO模型對交易地址進行標籤拓展,可能會將买方、賣方和第三方平台打上相同標籤,導致標籤錯誤,從而會誤導其他主體對BRC20市場的判斷,甚至會影響比特幣地址標籤的整體准確性和可信性

如何消除BRC20對UTXO標籤模型的影響?

爲了消除BRC-20交易帶來的負面影響,在拓展BTC-UTXO標籤模型的過程中,我們可以選擇通過特定篩選機制識別和剔除相關交易,以保證整個BTC- UTXO標籤庫的准確性。同時考慮到,多重籤名對基於“Common Spending”原則的BTC-UTXO標籤拓展模型的影響,我們也需要對相關交易的input和output腳本進行解析,以過濾多籤地址,從而在理論上支持UTXO標籤拓展不受影響。

其中,識別多籤主要是通過查看其鎖定腳本中是否包含多個公鑰和對應的籤名條件。多籤鎖定腳本通常包含類似於"OP_CHECKMULTISIG" 或 "OP_CHECKMULTISIGVERIFY" 的操作碼,並且需要滿足多個籤名條件才能解鎖資金。如果在輸出腳本中發現包含多個公鑰和對應籤名條件,那么這個輸出就是一個多重籤名輸出。同樣地,如果輸入腳本包含了多個籤名,那么這個輸入就是一個多重籤名輸入。

需要注意的是,在進行腳本類型解析時,我們首先要判斷交易是否爲隔離見證交易。如果是隔離見證交易則需要對Witness信息進行解析。以下爲常見的非隔離見證交易腳本和隔離見證交易腳本列表:

以非隔離見證交易腳本Pay-to-Public-Key-Hash (P2PKH)爲例。這是最常見的比特幣交易類型之一。在 P2PKH 交易中,發送方需要提供接收方的公鑰哈希作爲交易輸出腳本。接收方需要提供與該公鑰相對應的私鑰來解鎖輸出。在對P2PKH進行解析時,主要規則爲:

輸入腳本:包含籤名信息以及公鑰;script.getChunks().size() == 2;

輸出腳本:OP_DUP + OP_HASH160 + pubkeyHash + OP_EQUALVERIFY + OP_CHECKSIG;判斷是否以OP_DUP开頭並且以OP_CHECKSIG結尾。

在隔離見證交易中,以P2WPKH爲例。這是一種使用隔離見證技術的交易類型,它可以提高交易的效率和安全性。在 P2WPKH 交易中,發送方需要提供接收方的公鑰哈希作爲輸出腳本。在對這類交易進行解析時,其規則爲:

輸入腳本:EMPTY

witness:籤名 + pubkey;判斷時首先獲取input script是否爲EMPTY,然後判斷witness.getPushCount() == 2

輸出腳本:0 + 20byte witness program;判斷時首先判斷是否以0开頭,之後判斷witness program長度是否爲20byte。(注:P2WPKH的output script中witness program長度規定爲20byte。)

除了依據不同交易的輸入輸出腳本特徵對多籤地址進行識別,我們也可以根據相關特徵對BRC20交易進行篩選。根據調研,BRC20交易採用PSBT技術通過线下籤名的形式完成,其隔離見證類型爲Witness裏以83爲結尾的半籤名。

就如同下面這筆交易:

(https://www.oklink.com/cn/btc/tx/cbb6bbd6a828b15afe01ec77eab3e96a83be3d5ff56d99caf8185af79c3d1b53)

Address:bc1pd6pd4pdzx2an8w8pg8dlst8329ck8t8a6ehqqatglfstqmf3f9yss9yz7y

Winess:["1b003b4099402cde95be79ab7f4b488c74058c0f620cf4cbeb37a90ca871c4a499334a1262f24fdbe484d7511a54a04aa0d693b02159b603021942cb74f55e9d83"]

Witness裏有以83結尾的半籤名,所以理應將其視爲BRC20相關交易。

在識別各類多籤地址及BRC20之後,我們就可以根據一定的規則對多籤地址和BRC20交易進行剔除,從而保證BTC- UTXO標籤拓展模式的可行性和可信性。其基本思路如下圖所示:

值得注意的是,當前全球主要鏈上數據服務商在拓展UTXO標籤時,大都會考慮多重籤名所帶來的影響,但還未有其他機構關注或提出BRC20交易可能導致UTXO標籤錯誤的問題。

彌合信息差在海量鏈上數據尋找價值增量

Web3世界對大多數人來說是陌生且神祕的,洞察Web3世界最重要的工具就是鏈上標籤。標籤解析能力也因此成爲評估鏈上數據分析商競爭力的核心指標。但當我們真的選擇鏈上數據服務商時,除了要關注鏈上標籤的數量,還要關注標籤的質量:標籤是否准確?更新是否及時?......一個錯誤的標籤帶來的負面影響有時候遠比沒有標籤的影響更大。基於此前積累的標籤技術能力和對BRC20市場的深入理解,歐科雲鏈團隊此次發現並提出BRC20交易對UTXO標籤模型的影響,其目的就是希望引起市場重視,提升比特幣地址標籤的可信性和可用性,讓鏈上標籤的質量更過硬。

除了標籤解析,全球鏈上數據服務市場在擁有至少百億美元級別的巨大發展潛力的同時,也需要持續創新以提升產品與服務質量。鏈上數據服務商不可能再像Reuters和Bloomberg等傳統金融數據服務商那樣,通過直接販賣即時數據和信息獲利,只能轉向在海量鏈上信息中探尋更多增量價值,以更好的技術創新與服務創新吸引用戶。只有根植於鏈上數據並有效結合鏈下信息,實現與虛擬與現實的有機結合,同時具有敏銳市場分析與數據洞察能力,鏈上數據分析服務才能適應加密創新與Web3市場發展。

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。

標題:最新發現:BRC-20交易並不適用BTC-UTXO標籤模型

地址:https://www.sgitmedia.com/article/3964.html

相關閱讀: