歐科雲鏈:BRC-20交易並不適用BTC-UTXO標籤模型

2023-07-06 00:07:41

原文來源:歐科雲鏈研究院

原文作者:Jason Jiang

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

BRC 20 交易與 PSBT

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

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

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

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

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

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

為何 BRC 20 交易具有特殊性?

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

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

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

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

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

(ordi 的 deploy 交易-BTC 轉账)

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

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

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

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

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

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

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

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

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

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

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

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

輸入腳本:EMPTY

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

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

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

就如同下面這筆交易:

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

Address: bc1pd6pd4pdzx2an8w8pg8dlst8329ck8t8a6ehqqatglfstqmf3f9yss9yz7y

Winess:[" 1b003b4099402cde95be79ab7f4b488c74058c0f620cf4cbeb37a90ca871c4a499334a1262f24fdbe484d7511a54a04aa0d693b02159b603021942cb74f55e9d83 "]

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

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

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

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

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

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

作為全球領先的 Web 3 數據科技企業,歐科雲鏈目前已具備行業領先的標籤解析能力:不僅擁有全球最多的地址標籤數量(30 億+)和最全面的黑灰地址標籤(2700 萬+),還根據市場發展情況及時更新和拓展地址標籤庫,以滿足用戶最新需求。但無論是地址標籤解析還是其他鏈上數據分析,都離不开與市場的交互與連接。歐科雲鏈團隊也始終秉持开放態度,期待與更多行業夥伴在地址標籤解析和其他鏈上數據議題方面展开深入交流與合作,共同推動 Web 3 生態繁榮。

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

推薦文章

Jupiter第二輪空投线索再梳理:快照已拍攝,投票即將啓動

原創 | Odaily星球日報( @OdailyChina ) 作者|Azuma( @azuma_...

星球日報
3 8小時前

揭祕「新聞交易」:上幣2秒後买入,10分鐘賺上千萬?

11 月 11 日後半天的主題是「暴漲」,而前半天最熱門的事件無疑是幣安上线了兩個小市值代幣 AC...

星球日報
4 8小時前

Arthur Hayes新文:“特朗普經濟學”將大規模印鈔,比特幣到100萬美元是時間問題

作者:Arthur Hayes 編譯:深潮TechFlow 2024年12月31日,你認為比特幣的...

深潮TechFlow
4 8小時前

加密行業沉浮史:從一堆空氣到美金30000億

原文編輯:劉旌 原文來源: 暗湧 Waves Web3 的世界每天都在狂歡。 昨天深夜,人們一邊嘆...

星球日報
3 8小時前

即將正式上线,Unichain早期生態一覽

11 月 12 日,這個比特幣一睜眼就快 9 萬美元的早上,社區突然發現 Unichain 這條專...

星球日報
6 8小時前

IOSG Ventures:再談Unichain的設計架構,必要性何在?

原文來源:IOSG Ventures 前言 多年來,Uniswap 一直在不斷推動功能和創新的改革...

星球日報
3 8小時前