【#區(qū)塊鏈# #BTC 生態(tài)擴(kuò)容方案巡禮:銘文何去何從#】
探索熱門的銘文生態(tài)的技術(shù)原理和可能存在的安全問題。
撰文:Simon shieh
2023 年 12 月 6 日,在比特幣投資者們都在為銘文(Inscriptions)給比特幣帶來的漲幅而歡呼的時(shí)候,Bitcoin Core 節(jié)點(diǎn)客戶端的開發(fā)者 Luke Dashjr 澆來了一盆冷水。他認(rèn)為銘文是一種「垃圾郵件」攻擊,并提交了修復(fù)代碼及 CVE 漏洞報(bào)告(CVE-2023-50428)。隨后比特幣社區(qū)炸開了鍋,繼 2017 年硬分叉的混亂之后,比特幣社區(qū)再次陷入激烈的辯論中。
那么比特幣應(yīng)該更注重安全性而舍棄掉一些意料之外的 feature 呢,還是應(yīng)該更加包容意料之外的創(chuàng)新而稍微容忍一點(diǎn)可能的安全性問題呢?
我們知道,比特幣的旅程不僅僅是投機(jī)和炒作,更是其生態(tài)系統(tǒng)和安全格局不斷演化的歷程。本文旨在深入探討比特幣增長的雙重?cái)⑹拢浩渖鷳B(tài)系統(tǒng)內(nèi)不斷擴(kuò)展的效用和安全措施的強(qiáng)化。我們將探索創(chuàng)新與強(qiáng)大的安全協(xié)議的協(xié)同作用,如何為數(shù)字資產(chǎn)的新時(shí)代鋪平道路。
我們知道作為加密貨幣革命的基石,比特幣一直被人們當(dāng)做黃金一樣進(jìn)行價(jià)值存儲(chǔ),在其他公鏈 DEFI 創(chuàng)新如火如荼之時(shí),人們似乎都已經(jīng)忘了比特幣的存在。
然而,恰恰是在比特幣上,先驅(qū)者們最早開啟了穩(wěn)定幣、Layer2、甚至 DEFI 的實(shí)驗(yàn),比如現(xiàn)在幣圈的硬通貨 USDT 最早就是發(fā)行在比特幣 Omnilayer 網(wǎng)絡(luò)上,下圖就是從技術(shù)實(shí)現(xiàn)角度對(duì)比特幣生態(tài)的一個(gè)基本分類。
包括基于雙向錨定的側(cè)鏈、基于輸出腳本(OP_RETURN)的文本解析、基于 Taproot 腳本的銘刻、基于 BIP300 更新升級(jí)的驅(qū)動(dòng)鏈和基于狀態(tài)通道的閃電網(wǎng)絡(luò)等技術(shù)。
上面可能很多術(shù)語大家還不了解,不著急,我們先熟悉以下的基礎(chǔ)知識(shí),然后再一一講解這些生態(tài)的技術(shù)原理并探討其中的安全問題。
與以太坊的賬戶余額體系不同,比特幣的系統(tǒng)中并沒有賬戶這個(gè)概念。以太坊引入了四顆棵復(fù)雜的 Merkle Patricia Trie 來存儲(chǔ)和驗(yàn)證賬戶狀態(tài)的變化。與之相比,比特幣巧妙的利用 UTXO 來更加簡潔的解決了這些問題。
以太坊的四棵樹
比特幣的輸入與輸出
UTXO(Unspent Transaction Outputs,未花費(fèi)的交易輸出),這個(gè)名字聽上去特別拗口,但其實(shí)搞清楚輸入、輸出和交易這三個(gè)概念后,就很好理解了。
熟悉以太坊的朋友應(yīng)該知道,交易(transaction)是區(qū)塊鏈網(wǎng)絡(luò)中基本通信單位,一旦交易被打包出塊和確認(rèn),就意味著鏈上狀態(tài)變更的確定。而在比特幣的交易中,并不是單一的地址對(duì)地址的狀態(tài)操作,而是多個(gè)輸入腳本和輸出腳本構(gòu)成。
上圖是一筆非常典型的比特幣 2 對(duì) 2 交易。理論上,輸入的 BTC 數(shù)量和輸出的 BTC 數(shù)量應(yīng)該相等,實(shí)際上輸出比輸入少的部分的 BTC 就作為礦工的手續(xù)費(fèi)由出塊礦工賺取,等同于以太坊中的 Gas Fee。
我們可以看到兩個(gè)輸入地址在轉(zhuǎn)移 BTC 的同時(shí),需要在輸入的腳本中做驗(yàn)證,證明這兩個(gè)輸入地址可以花費(fèi)這兩筆輸入(也就是上一筆的未花費(fèi)輸出,UTXO),而輸出腳本,則規(guī)定了花費(fèi)兩筆輸出比特幣的條件,也就是在下一次將這筆未花費(fèi)的輸出作為輸入時(shí),應(yīng)滿足什么條件(一般普通轉(zhuǎn)賬,條件就是輸出地址的簽名,例如上圖,P2wPKH 表示需要 taproot 地址的簽名驗(yàn)證,P2PKH 則表示需要 legacy 地址私鑰的簽名)。
具體來說,比特幣交易其數(shù)據(jù)結(jié)構(gòu)如下:
在比特幣交易中,基本結(jié)構(gòu)由兩個(gè)關(guān)鍵部分組成:輸入和輸出。輸入部分指明了交易的發(fā)起方,而輸出部分則指明了交易的接收方和找零(如果有的話)。交易費(fèi)用則是輸入總額與輸出總額的差額。由于每一筆交易的輸入都是之前某筆交易的輸出,因此交易的輸出成為了交易結(jié)構(gòu)的核心要素。
這種結(jié)構(gòu)形成了一種鏈?zhǔn)竭B接。在比特幣網(wǎng)絡(luò)中,每一筆合法的交易都可以追溯到之前的一個(gè)或多個(gè)交易的輸出。這些交易鏈的起點(diǎn)是挖礦獎(jiǎng)勵(lì),而終點(diǎn)則是當(dāng)前尚未被花費(fèi)的交易輸出。網(wǎng)絡(luò)中所有未花費(fèi)的輸出統(tǒng)稱為比特幣網(wǎng)絡(luò)的 UTXO(Unspent Transaction Output)。
在比特幣網(wǎng)絡(luò)中,每筆新交易的輸入必須是未花費(fèi)的輸出。此外,每個(gè)輸入還需要前一筆輸出的對(duì)應(yīng)私鑰簽名。比特幣網(wǎng)絡(luò)中的每個(gè)節(jié)點(diǎn)都存儲(chǔ)著當(dāng)前區(qū)塊鏈上的所有 UTXO,以此來驗(yàn)證新交易的合法性。通過 UTXO 和簽名驗(yàn)證機(jī)制,節(jié)點(diǎn)能夠在不追溯整個(gè)交易歷史的情況下驗(yàn)證新交易的合法性,從而簡化了網(wǎng)絡(luò)的運(yùn)行和維護(hù)過程。
比特幣獨(dú)特的交易結(jié)構(gòu)是符合其白皮書《Bitcoin: A Peer-to-Peer Electronic Cash System》設(shè)計(jì)的,比特幣是一個(gè)電子現(xiàn)金系統(tǒng),其交易結(jié)構(gòu)就是在模擬現(xiàn)金的交易過程,一個(gè)地址上可以花費(fèi)的數(shù)量取決于之前收到的現(xiàn)金數(shù)量,每筆交易都是要把這個(gè)地址上的所有現(xiàn)金都整體花費(fèi)出去,而交易的輸出地址通常一個(gè)是接收地址,一個(gè)是找零地址,就像在超市使用現(xiàn)金交易時(shí)的找零。
在比特幣網(wǎng)絡(luò)中,腳本扮演著至關(guān)重要的角色。事實(shí)上,比特幣交易的每個(gè)輸出實(shí)際上是指向一個(gè)腳本,而不是一個(gè)具體的地址。這些腳本就像一組規(guī)則,定義了接收方如何才能使用輸出中鎖定的資產(chǎn)。
交易的合法性驗(yàn)證依賴于兩種腳本:鎖定腳本和解鎖腳本。鎖定腳本存在于交易的輸出中,用于定義解鎖該輸出所需的條件。解鎖腳本則與之相對(duì)應(yīng),必須遵循鎖定腳本定義的規(guī)則來解鎖 UTXO 資產(chǎn),這些腳本位于交易的輸入部分。這種腳本語言的靈活性使得比特幣可以實(shí)現(xiàn)多種條件組合,展示出其作為「部分可編程貨幣」的特性。
在比特幣網(wǎng)絡(luò)中,每個(gè)節(jié)點(diǎn)都運(yùn)行著一個(gè)堆棧解釋器,用于基于「先進(jìn)先出」的規(guī)則解釋這些腳本。
最經(jīng)典的比特幣腳本主要有兩種常用類型:P2PKH(Pay-to-Public-Key-Hash)和 P2SH(Pay-to-Script-Hash)。P2PKH 是一種簡單的交易類型,其中接收方只需用相應(yīng)的私鑰簽名即可使用資產(chǎn)。P2SH 則更為復(fù)雜,例如在多重簽名的情況下,需要多個(gè)私鑰的組合簽名才能使用資產(chǎn),或者。
這些腳本和驗(yàn)證機(jī)制共同構(gòu)成了比特幣網(wǎng)絡(luò)的核心運(yùn)作方式,確保了交易的安全性和靈活性。
比如在比特幣中,P2PKH 的 output 腳本規(guī)則如下:
Pubkey script: OP_DUP OP_HASH160?OP_EQUALVERIFY OP_CHECKSIG
Input 則需要提供簽名
Signature script: sig
而 P2SH 的 output 腳本規(guī)則如下:
Pubkey script: OP_HASH160?OP_EQUAL
Input 需要提供多簽列表
Signature script:?[sig] [sig...]
在上述的 2 種腳本規(guī)則里,Pubkey script 代表著鎖定腳本,Signature script 代表著解鎖腳本。OP_開頭的單詞是相關(guān)的腳本命令,也是節(jié)點(diǎn)所能解析的指令。這些命令規(guī)則根據(jù) Pubkey script 的不同來進(jìn)行劃分,它也決定著解鎖腳本的規(guī)則。
比特幣中的腳本機(jī)制相對(duì)簡單,只是一個(gè)基于堆棧式的,解釋相關(guān) OP 指令的引擎,能夠解析的腳本規(guī)則并不是太多,不能實(shí)現(xiàn)很復(fù)雜的邏輯。但它為區(qū)塊鏈可編程提供了一個(gè)原型,后續(xù)一些生態(tài)項(xiàng)目其實(shí)是基于腳本的原理發(fā)展起來的。而隨著隔離見證和 Taproot 的更新,OP 指令的類型變得更加豐富,每筆交易可包含的腳本大小得到了擴(kuò)容,比特幣生態(tài)迎來了爆發(fā)式的增長。
銘文技術(shù)的火爆,離不開比特幣的隔離見證和 Taproot 更新。
技術(shù)上看,區(qū)塊鏈的去中心化程度越高,其效率通常越低。以比特幣為例,它的每個(gè)區(qū)塊的大小仍然維持在 1MB,與中本聰最初挖出的第一個(gè)區(qū)塊大小相同。面對(duì)擴(kuò)容的問題,比特幣社區(qū)并沒有選擇簡單直接地增加區(qū)塊大小這一路徑。相反,他們采取了一種名為「隔離見證」(Segregated Witness,簡稱 SegWit)的方法,這是一種不需要進(jìn)行硬分叉的升級(jí)方案,旨在通過優(yōu)化區(qū)塊中的數(shù)據(jù)結(jié)構(gòu)來提高網(wǎng)絡(luò)的處理能力和效率。
在比特幣交易中,每筆交易的信息主要分為兩個(gè)部分:基礎(chǔ)交易數(shù)據(jù)和見證數(shù)據(jù)?;A(chǔ)交易數(shù)據(jù)包括了諸如賬戶資金結(jié)余等關(guān)鍵財(cái)務(wù)信息,而見證數(shù)據(jù)則用于驗(yàn)證用戶的身份。對(duì)用戶來說,他們主要關(guān)心的是與資產(chǎn)直接相關(guān)的信息,如賬戶資金結(jié)余,而身份驗(yàn)證的細(xì)節(jié)并不需要在交易中占用太多資源。換句話說,接收資產(chǎn)的一方主要關(guān)注的是資產(chǎn)是否可用,而不必過分關(guān)注發(fā)送方的詳細(xì)信息。
然而,在比特幣的交易結(jié)構(gòu)中,見證數(shù)據(jù)(即簽名信息)占據(jù)了大量的存儲(chǔ)空間,這導(dǎo)致轉(zhuǎn)賬效率降低和交易打包成本增加。為了解決這個(gè)問題,隔離見證(SegWit)技術(shù)被引入,它的核心思想是將見證數(shù)據(jù)從主要的交易數(shù)據(jù)中分離出來,并單獨(dú)存儲(chǔ)。這樣做的結(jié)果是優(yōu)化了存儲(chǔ)空間的使用,從而提高了交易效率并減少了成本。
這樣,原有的 1M 大小區(qū)塊不變的情況下,每個(gè)區(qū)塊可以容納的交易更多,而隔離見證數(shù)據(jù)(也就是各種簽名腳本)則可以占用額外的 3M 空間,為 Taproot 腳本指令的豐富奠定了存儲(chǔ)基礎(chǔ)。
Taproot 是比特幣網(wǎng)絡(luò)的一個(gè)重要軟分叉升級(jí),旨在提高比特幣腳本的私密性、效率,以及智能合約的處理能力。這次升級(jí)被認(rèn)為是自 2017 年 SegWit 升級(jí)之后的一個(gè)主要進(jìn)步。
這次 Taproot 升級(jí)包括了三個(gè)不同的比特幣改進(jìn)提案(BIP):Taproot(默克爾抽象語法樹, MAST)、Tapscript,以及一個(gè)全新的多簽友好的數(shù)字簽名方案,稱為「Schnorr 簽名」。Taproot 的目的是為比特幣用戶提供多種好處,包括提高交易的私密性和降低交易成本。此外,它還將增強(qiáng)比特幣在執(zhí)行更復(fù)雜交易方面的能力,從而擴(kuò)展其應(yīng)用范圍。
Taproot 更新直接影響了 3 個(gè)生態(tài):一個(gè)是 ordinals 協(xié)議,它利用了 Taproot 的 script-path spend scripts 腳本來實(shí)現(xiàn)附加數(shù)據(jù);另一個(gè)是閃電網(wǎng)絡(luò)升級(jí)為 Taproot Asset,從簡單的點(diǎn)對(duì)點(diǎn) BTC 支付進(jìn)化為點(diǎn)對(duì)多且支持發(fā)行新的資產(chǎn);還有一個(gè)就是新提出的 BitVM,通過 Taproot 中的 op_booland 和 op_not 來把 bool 電路「蝕刻」到 Taproot 腳本里,從而實(shí)現(xiàn)智能合約虛擬機(jī)功能。
Ordinals 是 Casey Rodarmor 在 2022 年 12 月發(fā)明的協(xié)議,它為每個(gè)聰(Satoshi)賦予獨(dú)特序列號(hào),并在交易中追蹤它們。任何人都可以通過 Ordinals 在 UTXO 的 Taproot 腳本中附加額外的數(shù)據(jù),包括文本、圖片、視頻等。
熟悉 Ordinals 的朋友一定知道:比特幣總量是 2100 萬個(gè),每個(gè)比特幣包含 10^8 個(gè) Satoshi(聰),所以比特幣網(wǎng)絡(luò)上一共有 2100 萬 *10^8 個(gè)聰,Ordinals 協(xié)議會(huì)將這些聰區(qū)分出來,每個(gè)聰都有一個(gè)唯一的編號(hào)。這是理論上可以做到的,但是實(shí)際上做不到。
因?yàn)?BTC 網(wǎng)絡(luò)出于抵御粉塵攻擊的原因,轉(zhuǎn)賬有一個(gè)最少 546 聰(segwit 最少 294 聰)的限制,也就是不可以 1 聰 1 聰?shù)霓D(zhuǎn)賬,根據(jù)轉(zhuǎn)賬的地址類型,至少要轉(zhuǎn) 546 聰或 294 聰,而根據(jù) Ordinals 先進(jìn)先出的編號(hào)理論,至少每個(gè)區(qū)塊的 1 號(hào)~294 號(hào)聰是不可分割。
所以所謂的銘刻,并不是銘刻在某個(gè)聰上的,而是銘刻在一筆交易的腳本中,而這筆交易至少要包含 294 聰?shù)霓D(zhuǎn)賬,然后由中心化的 indexer(比如 unisat)來追蹤和識(shí)別這 294 聰或 456 聰?shù)霓D(zhuǎn)移情況。
原則上 Taproot 腳本的花費(fèi)只能從現(xiàn)有的 Taproot 輸出中進(jìn)行,所以銘文理論上應(yīng)該是通過一個(gè)兩階段的提交 / 揭示程序來進(jìn)行的。首先,在提交交易中,創(chuàng)建一個(gè)基于 script path spend 的內(nèi)容的 Taproot 輸入,并在輸出中指明花費(fèi) / 掲示的簽名條件。其次,在揭示交易中,由提交交易創(chuàng)建的輸出被花費(fèi),揭示鏈上的銘文內(nèi)容。
不過在現(xiàn)實(shí)的 indexer 場(chǎng)景中,并不十分關(guān)注掲示交易的作用,而是直接在輸入腳本中讀取由一個(gè) OP_FALSE OP_IF ... OP_ENDIF 組成的腳本片段,從其中讀取銘文的內(nèi)容。
因?yàn)?OP_FALSE OP_IF 的指令組合會(huì)導(dǎo)致該段腳本不會(huì)被執(zhí)行,所以可以在其中存儲(chǔ)任意內(nèi)容的字節(jié),而不影響原本腳本的邏輯。
一個(gè)包含字符串「Hello, world!」的文本銘文被序列化如下:
OP_FALSE OP_IF OP_PUSH "ord"OP_1OP_PUSH?
"text/plain;charset=utf-8"OP_0OP_PUSH "Hello, world!"OP_ENDIF
Ordinals 協(xié)議本質(zhì)上就是將這一段代碼序列化到 Taproot 腳本里面。
我們從鏈上找一筆交易來詳細(xì)說明 ordinals 的編碼原理:
https://explorer.btc.com/btc/transaction/885d037ed114012864c031ed5ed8bbf5f95b95e1ef6469a808e9c08c4808e3ae
我們可以查看這個(gè)交易的詳細(xì)信息:
我們對(duì) witness 字段從 0063(OP_FALSE OP_IF)開始的編碼進(jìn)行分析,可以了解序列化的編碼內(nèi)容:
所以只要我們能把這見證腳本中的這部分的代碼解碼出來,就能知道銘刻的內(nèi)容了。這里編碼的是純文本信息,其他數(shù)據(jù)比如 html、圖片、視頻等也都是類似的。
理論上你也可以定義自己的編碼內(nèi)容,甚至是只有自己知道的加密內(nèi)容,只不過這些內(nèi)容不能在 ordinals 瀏覽器中顯示。
2023 年 3 月 9 日,一位名叫 domo 的匿名 Twitter 用戶在推特上發(fā)布了一條推文,在 Ordinals Protocol 之上創(chuàng)建一個(gè)同質(zhì)化代幣標(biāo)準(zhǔn),稱之為 BRC20 標(biāo)準(zhǔn)。這個(gè)想法是可以通過 Ordinals 協(xié)議將 JSON 字符串?dāng)?shù)據(jù)刻在 Taproot 腳本中,以部署、鑄造和傳輸同質(zhì)化的 BRC-20 代幣。
?圖 1:BRC-20 代幣的卑微開端(domo 關(guān)于該主題的第一個(gè)帖子)
來源:Twitter(@domodata)
圖 2:BRC-20 代幣可能的三個(gè)初始操作(p = 協(xié)議名稱,op = 操作,tick = 股票代碼 / 標(biāo)識(shí)符,max = 最大供應(yīng)量,lim = 鑄造限制,amt = 數(shù)量)
來源:https://domo-2.gitbook.io/brc-20-experiment/,幣安研究
Token 的發(fā)起方通過 deploy 將 brc20 代幣部署上鏈,然后參與者通過 mint 來幾乎無成本的獲取 Token(只有礦工費(fèi)),當(dāng) mint 數(shù)量超過 max 后,mint 銘文的銘刻會(huì)被 indexer 認(rèn)為是無效的。這之后,擁有 Token 的地址可以通過 transfer 銘文來轉(zhuǎn)移 Token。
值得注意的是,Ordinals 的創(chuàng)始人 Casey,對(duì) BRC-20 的交易占據(jù)了 Ordinals 協(xié)議的大部分比例非常不爽。他曾公開表示 BRC-20 給他創(chuàng)造的 Ordinals 帶來了一堆垃圾。所以,Casey 團(tuán)隊(duì)公開發(fā)信,讓幣安把 ORDI 代幣介紹中的 Ordinals 刪掉,他不想讓 Ordinals 協(xié)議和 ORDI 扯上關(guān)系。
BRC20 swap
目前銘文交易最大的市場(chǎng)、indexer 以及錢包供應(yīng)商 unisat 針對(duì) BRC20 的交易提出了 BRC20 swap 協(xié)議,現(xiàn)在已經(jīng)可以允許早期用戶進(jìn)行試用。
之前的銘文交易,只能通過一種叫做 PSBT(部分簽名的比特幣交易)的方式來進(jìn)行,和 Opensea 的鏈下簽名方案類似,通過中心化的服務(wù)來「撮合」買賣雙方的簽名。這就導(dǎo)致 BRC20 資產(chǎn)只能像 NFT 資產(chǎn)那樣通過掛單方式來交易,流動(dòng)性和交易效率都很低。
brc20 swap 通過在 brc20 協(xié)議的 json 串中,引入了一種叫模塊的機(jī)制,這個(gè)模塊中可以部署一套類似智能合約的腳本。以 swap 模塊為例,用戶可以通過 transfer 將 BRC20 鎖入模塊中,也就是發(fā)起一筆給自己的轉(zhuǎn)賬交易,但是交易中的銘文被鎖在模塊中,用戶在完成交易,或撤出 LP 后,可以發(fā)起一筆交易,再把 brc20 代幣提取出來。
目前,brc20 swap 采用黑模塊的擴(kuò)展模式運(yùn)行,黑模塊是出于安全考慮,在未經(jīng)共識(shí)和驗(yàn)證的情況下,通過模塊中的資金總和來確定用戶可以提取的資金,也就是任何用戶不能提取超過鎖入模塊資產(chǎn)總和的資產(chǎn)。
當(dāng)黑模塊的行為被用戶理解和執(zhí)行,逐步變得可靠,逐漸被更多索引者接受后,產(chǎn)品從黑模塊過渡到白模塊,達(dá)成共識(shí)升級(jí)。用戶也就可以自由充提資產(chǎn)。
此外,因?yàn)?brc20 協(xié)議乃至整個(gè) Ordinals 生態(tài)依然處于早期,Unisat 占據(jù)較大影響力和聲譽(yù),其為協(xié)議提供了完整的交易和余額查詢等索引服務(wù),有一家獨(dú)大的中心化風(fēng)險(xiǎn)。其模塊化運(yùn)行的架構(gòu),使得更多服務(wù)商可以參與進(jìn)來,從而實(shí)現(xiàn)索引更加去中心化。
BRC420
Brc420 協(xié)議由 RCSV 開發(fā)。他們?cè)谠秀懳牡幕A(chǔ)上,增加了遞歸索引的擴(kuò)展。通過遞歸的方式定義了更復(fù)雜的資產(chǎn)格式。同時(shí),Brc420 在單個(gè)銘文的基礎(chǔ)上建立了使用權(quán)和版稅之間的約束關(guān)系。當(dāng)用戶 mint 資產(chǎn)時(shí),需要給創(chuàng)作者支付版稅,并且擁有一個(gè)銘文時(shí)可以分配其使用權(quán)并為其設(shè)定價(jià)格,此舉可激勵(lì) Ordinals 生態(tài)更多創(chuàng)新。
Brc420 的提出為銘文生態(tài)提供了更廣闊的想象空間,除了可以通過遞歸引用構(gòu)建更復(fù)雜的元宇宙外,也可以通過代碼銘文的遞歸引用,來構(gòu)建智能合約生態(tài)。
ARC20
ARC20 代幣標(biāo)準(zhǔn)是由 Atomicals 協(xié)議提供的,在這個(gè)標(biāo)準(zhǔn)中,「原子」是基本單位,構(gòu)建在比特幣的最小單位聰(sat)之上。這意味著每個(gè) ARC20 代幣始終由 1 個(gè) sat 支持。此外,ARC20 還是首個(gè)通過工作量證明(PoW)銘文鑄造的代幣協(xié)議,允許參與者通過類似挖掘比特幣的方式直接挖掘銘文或 NFT。
將 1 個(gè) ARC20 代幣等同于 1 個(gè) sat 帶來了多個(gè)好處:
1. 首先,每個(gè) ARC20 代幣的價(jià)值永遠(yuǎn)不會(huì)低于 1 個(gè) sat,這使得比特幣在此過程中充當(dāng)了一種「數(shù)字黃金錨定」的角色。
2. 其次,驗(yàn)證交易時(shí)只需查詢與 sat 相對(duì)應(yīng)的 UTXO,這與 BRC20 需要鏈下賬本狀態(tài)記錄和第三方排序器的復(fù)雜性形成對(duì)比。
3. 此外,ARC20 的所有操作都可以通過比特幣網(wǎng)絡(luò)完成,不需要額外的步驟。
4. 最后,由于 UTXO 的可組合性,理論上可以實(shí)現(xiàn) ARC20 代幣與比特幣的直接交換,這為未來的流動(dòng)性提供了可能性。
Atomicals 協(xié)議為 ARC20 代幣設(shè)置了 Bitwork Mining 的特殊前綴參數(shù)。代幣發(fā)行者可以選擇特殊前綴,而用戶要通過 CPU 挖礦計(jì)算出匹配的前綴后,才能獲得鑄造該 ARC20 代幣的資格。這種「一 CPU 一票」的模式與比特幣原教旨主義者們的理念相符。
銘文看上去只是一段「無害」的文本上鏈,并通過中心化的 indexer 來解析,似乎安全問題只是中心化服務(wù)上的安全考慮,但在鏈上安全方面,還是需要注意以下幾點(diǎn):
1. 增加節(jié)點(diǎn)負(fù)擔(dān)
銘文會(huì)增加比特幣區(qū)塊的大小,這會(huì)增加節(jié)點(diǎn)在網(wǎng)絡(luò)傳播、存儲(chǔ)和驗(yàn)證區(qū)塊時(shí)所需的資源。如果銘文過多,會(huì)降低比特幣網(wǎng)絡(luò)的去中心化程度,使網(wǎng)絡(luò)更容易受到攻擊。
2. 降低安全性
銘文可以用于存儲(chǔ)任何類型的數(shù)據(jù),包括惡意代碼。如果惡意代碼被添加到比特幣區(qū)塊中,可能會(huì)導(dǎo)致網(wǎng)絡(luò)安全漏洞。
3. 交易需要構(gòu)造
銘文的交易需要進(jìn)行交易的構(gòu)造,并且關(guān)注 ordinals 的先入先出規(guī)則,以防止由于疏忽導(dǎo)致銘文的索引性被破壞。
4. 買賣存在風(fēng)險(xiǎn)
銘文的交易市場(chǎng),不論是 OTC 還是 PSBT,都存在資產(chǎn)損失風(fēng)險(xiǎn)。
以下是一些具體的安全問題:
1. 孤塊率和分叉率增加
銘文會(huì)增加區(qū)塊的大小,這會(huì)導(dǎo)致孤塊率和分叉率增加。孤塊是指沒有被其他節(jié)點(diǎn)承認(rèn)的區(qū)塊,分叉是指網(wǎng)絡(luò)中存在多個(gè)競(jìng)爭(zhēng)的區(qū)塊鏈。孤塊和分叉會(huì)降低網(wǎng)絡(luò)的穩(wěn)定性和安全性。
2. 攻擊者篡改銘文
攻擊者可以利用銘文的開放性進(jìn)行篡改攻擊。
例如,攻擊者可以將銘文中存儲(chǔ)的信息替換為惡意代碼,從而在滲透進(jìn) indexer 的服務(wù)器或通過木馬入侵用戶設(shè)備。
3. 錢包使用不當(dāng)
如果錢包使用不當(dāng),錢包不能索引銘文的情況下,很可能錯(cuò)誤的轉(zhuǎn)移走銘文,導(dǎo)致資產(chǎn)損失。
4. 釣魚或詐騙
攻擊者可能通過假冒的 unisat 等 indexer 網(wǎng)站,來誘導(dǎo)用戶進(jìn)行銘文交易,從而竊取用戶資產(chǎn)。
5. PSBT 簽名疏漏
Atomicals Market 曾經(jīng)因?yàn)殄e(cuò)誤的簽名方法使用,而導(dǎo)致用戶資產(chǎn)受損。
相關(guān)閱讀:
https://metatrust.io/company/blogs/post/the-analysis-of-the-atomicals-market-user-asset-loss
為了解決這些安全問題,可以采取以下措施:
1. 限制銘文的大小
可以限制銘文的大小,以減少對(duì)節(jié)點(diǎn)負(fù)擔(dān)的影響,這一點(diǎn)文章開頭提到的 Luke 已經(jīng)在做了。
2. 對(duì)銘文進(jìn)行加密
可以對(duì)銘文進(jìn)行加密,以防止惡意代碼的攻擊。
3. 使用可信的銘文來源
可以使用可信的銘文來源,以防止簽名問題和被釣魚。
4. 使用支持銘文的錢包
使用支持銘文的錢包來進(jìn)行轉(zhuǎn)賬活動(dòng)。
5. 注重銘文代碼及相關(guān)腳本的審核
在 brc20-swap 及遞歸銘文的新型實(shí)驗(yàn)中,由于代碼和相關(guān)腳本的引入,需要確保這些代碼及腳本的安全性。
從技術(shù)和安全的角度說,比特幣銘文本質(zhì)上還是一種規(guī)則繞過的漏洞,taproot 腳本并不是為了存儲(chǔ)數(shù)據(jù)而出現(xiàn)的,其安全性也存在一些問題。Luke 對(duì) bitcoin core 代碼的修改從安全角度來說是正確的。Luke 并未對(duì)比特幣的共識(shí)層進(jìn)行直接修改,而是選擇調(diào)整 Spam Filter(策略過濾器)模塊,使得節(jié)點(diǎn)在接收到 P2P 廣播消息時(shí),能夠自動(dòng)過濾掉 Ordinals 交易。在這個(gè)策略過濾器中,有多個(gè)名為 isStandard() 的函數(shù)用于檢查交易的各個(gè)方面是否符合標(biāo)準(zhǔn)。如果交易不符合標(biāo)準(zhǔn),節(jié)點(diǎn)接收到的這筆交易將會(huì)被迅速丟棄。
換言之,盡管 Ordinals 交易最終還是可以被加入?yún)^(qū)塊鏈,但大多數(shù)節(jié)點(diǎn)不會(huì)將這類數(shù)據(jù)加入交易池,這將增加 Ordinals 數(shù)據(jù)被愿意將其打包上鏈的礦池接收的延時(shí)。然而,如果某個(gè)礦池廣播了一個(gè)包含 BRC-20 交易的區(qū)塊,其他節(jié)點(diǎn)仍然會(huì)對(duì)其進(jìn)行認(rèn)可。
Luke 已經(jīng)在 Bitcoin Knots 客戶端中推出了對(duì)策略過濾器(policy)的修改,并且計(jì)劃在 Bitcoin Core 客戶端中引入類似的更改。在這次修改中,他引入了一個(gè)新的參數(shù),名為 g_script_size_policy_limit,用于在多個(gè)不同的位置限制腳本的大小。這一改動(dòng)意味著在處理交易時(shí),腳本大小將受到額外的限制,影響著交易的接受和處理方式。
目前,該參數(shù)的默認(rèn)值是 1650Bytes,任何節(jié)點(diǎn)客戶端都可以在啟動(dòng)時(shí)通過參數(shù) -maxscriptsize 來設(shè)置:
不過即使代碼更新,距離礦工節(jié)點(diǎn)全部更新為新版本還有很長的一段時(shí)間,這段時(shí)間,銘文社區(qū)的創(chuàng)新者們應(yīng)該可以創(chuàng)造出更安全的協(xié)議。
Metatrust Labs 通過鏈上數(shù)據(jù)和資產(chǎn)追蹤,在 metaScore 平臺(tái)上已經(jīng)對(duì)銘文投資風(fēng)險(xiǎn)進(jìn)行了評(píng)分和監(jiān)控,同時(shí)在 metaScout 平臺(tái)上也推出比特幣網(wǎng)絡(luò)監(jiān)控的規(guī)則引擎,可以幫助投資者監(jiān)控比特幣銘文的實(shí)時(shí)數(shù)據(jù)。
這一期,我們探索現(xiàn)在熱門的銘文生態(tài)的技術(shù)原理和可能存在的安全問題,下一期,我們將為大家?guī)砀訌?fù)雜的 Taproot 電路蝕刻技術(shù)——bitVM,敬請(qǐng)期待。
小編推薦下載
BTC China比特幣中國 金融理財(cái)
生態(tài)商城 購物優(yōu)惠
以太生態(tài) 金融理財(cái)
生態(tài)建材 購物優(yōu)惠
生態(tài)種植 金融理財(cái)
可生態(tài) 金融理財(cái)
迷你生態(tài) 金融理財(cái)
JKB生態(tài) 金融理財(cái)
相關(guān)推薦
相關(guān)文章
更多>>資訊排行
同類軟件下載
BTC18 金融理財(cái)
BTC98 金融理財(cái)
BTC.COM 學(xué)習(xí)工具
BTC礦池 學(xué)習(xí)工具
btc123 金融理財(cái)
BTC友礦 金融理財(cái)
btc區(qū)塊鏈行情 金融理財(cái)
BTC瀏覽器 金融理財(cái)
AT生態(tài) 金融理財(cái)
專業(yè)照明解決方案 生活實(shí)用
熱門標(biāo)簽