BTC生態(tài)擴(kuò)容方案巡禮(1):銘文何去何從

訪客 1年前 (2023-12-26) 閱讀數(shù) 330 #區(qū)塊鏈
文章標(biāo)簽 前沿文章

作者:Simon shieh,來(lái)源:MetaTrust Labs

0x0 前言

2023年12月6日,在比特幣投資者們都在為銘文(Inscriptions)給比特幣帶來(lái)的漲幅而歡呼的時(shí)候,Bitcoin Core節(jié)點(diǎn)客戶端的開(kāi)發(fā)者Luke Dashjr澆來(lái)了一盆冷水。他認(rèn)為銘文是一種“垃圾郵件”攻擊,并提交了修復(fù)代碼及CVE漏洞報(bào)告(CVE-2023-50428)。隨后比特幣社區(qū)炸開(kāi)了鍋,繼2017年硬分叉的混亂之后,比特幣社區(qū)再次陷入激烈的辯論中。

那么比特幣應(yīng)該更注重安全性而舍棄掉一些意料之外的feature呢,還是應(yīng)該更加包容意料之外的創(chuàng)新而稍微容忍一點(diǎn)可能的安全性問(wèn)題呢?

我們知道,比特幣的旅程不僅僅是投機(jī)和炒作,更是其生態(tài)系統(tǒng)和安全格局不斷演化的歷程。本文旨在深入探討比特幣增長(zhǎng)的雙重?cái)⑹拢浩渖鷳B(tài)系統(tǒng)內(nèi)不斷擴(kuò)展的效用和安全措施的強(qiáng)化。我們將探索創(chuàng)新與強(qiáng)大的安全協(xié)議的協(xié)同作用,如何為數(shù)字資產(chǎn)的新時(shí)代鋪平道路。

0x1 BTC生態(tài)一覽及基礎(chǔ)知識(shí)

我們知道作為加密貨幣革命的基石,比特幣一直被人們當(dāng)做黃金一樣進(jìn)行價(jià)值存儲(chǔ),在其他公鏈DEFI創(chuàng)新如火如荼之時(shí),人們似乎都已經(jīng)忘了比特幣的存在。

然而,恰恰是在比特幣上,先驅(qū)者們最早開(kāi)啟了穩(wěn)定幣、Layer2、甚至DEFI的實(shí)驗(yàn),比如現(xiàn)在幣圈的硬通貨USDT最早就是發(fā)行在比特幣Omnilayer網(wǎng)絡(luò)上,下圖就是從技術(shù)實(shí)現(xiàn)角度對(duì)比特幣生態(tài)的一個(gè)基本分類(lèi)。

包括基于雙向錨定的側(cè)鏈、基于輸出腳本(OP_RETURN)的文本解析、基于Taproot腳本的銘刻、基于BIP300更新升級(jí)的驅(qū)動(dòng)鏈和基于狀態(tài)通道的閃電網(wǎng)絡(luò)等技術(shù)。

上面可能很多術(shù)語(yǔ)大家還不了解,不著急,我們先熟悉以下的基礎(chǔ)知識(shí),然后再一一講解這些生態(tài)的技術(shù)原理并探討其中的安全問(wèn)題。

UTXO是比特幣交易的基本單位

與以太坊的賬戶余額體系不同,比特幣的系統(tǒng)中并沒(méi)有賬戶這個(gè)概念。以太坊引入了四顆棵復(fù)雜的Merkle Patricia Trie來(lái)存儲(chǔ)和驗(yàn)證賬戶狀態(tài)的變化。與之相比,比特幣巧妙的利用UTXO來(lái)更加簡(jiǎn)潔的解決了這些問(wèn)題。

以太坊的四棵樹(shù)

比特幣的輸入與輸出

UTXO(Unspent Transaction Outputs,未花費(fèi)的交易輸出),這個(gè)名字聽(tīng)上去特別拗口,但其實(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 地址私鑰的簽名)。

具體來(lái)說(shuō),比特幣交易其數(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,以此來(lái)驗(yàn)證新交易的合法性。通過(guò)UTXO和簽名驗(yàn)證機(jī)制,節(jié)點(diǎn)能夠在不追溯整個(gè)交易歷史的情況下驗(yàn)證新交易的合法性,從而簡(jiǎn)化了網(wǎng)絡(luò)的運(yùn)行和維護(hù)過(guò)程。

比特幣獨(dú)特的交易結(jié)構(gòu)是符合其白皮書(shū)《Bitcoin: A Peer-to-Peer Electronic Cash System》設(shè)計(jì)的,比特幣是一個(gè)電子現(xiàn)金系統(tǒng),其交易結(jié)構(gòu)就是在模擬現(xiàn)金的交易過(guò)程,一個(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ī)則來(lái)解鎖UTXO資產(chǎn),這些腳本位于交易的輸入部分。這種腳本語(yǔ)言的靈活性使得比特幣可以實(shí)現(xiàn)多種條件組合,展示出其作為“部分可編程貨幣”的特性。

在比特幣網(wǎng)絡(luò)中,每個(gè)節(jié)點(diǎn)都運(yùn)行著一個(gè)堆棧解釋器,用于基于“先進(jìn)先出”的規(guī)則解釋這些腳本。

最經(jīng)典的比特幣腳本主要有兩種常用類(lèi)型:P2PKH(Pay-to-Public-Key-Hash)和P2SH(Pay-to-Script-Hash)。P2PKH是一種簡(jiǎn)單的交易類(lèi)型,其中接收方只需用相應(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_開(kāi)頭的單詞是相關(guān)的腳本命令,也是節(jié)點(diǎn)所能解析的指令。這些命令規(guī)則根據(jù)Pubkey script的不同來(lái)進(jìn)行劃分,它也決定著解鎖腳本的規(guī)則。

比特幣中的腳本機(jī)制相對(duì)簡(jiǎn)單,只是一個(gè)基于堆棧式的,解釋相關(guān)OP指令的引擎,能夠解析的腳本規(guī)則并不是太多,不能實(shí)現(xiàn)很復(fù)雜的邏輯。但它為區(qū)塊鏈可編程提供了一個(gè)原型,后續(xù)一些生態(tài)項(xiàng)目其實(shí)是基于腳本的原理發(fā)展起來(lái)的。而隨著隔離見(jiàn)證和Taproot的更新,OP指令的類(lèi)型變得更加豐富,每筆交易可包含的腳本大小得到了擴(kuò)容,比特幣生態(tài)迎來(lái)了爆發(fā)式的增長(zhǎng)。

0x2 ?銘文技術(shù)原理與安全問(wèn)題

銘文技術(shù)的火爆,離不開(kāi)比特幣的隔離見(jiàn)證和Taproot更新。

技術(shù)上看,區(qū)塊鏈的去中心化程度越高,其效率通常越低。以比特幣為例,它的每個(gè)區(qū)塊的大小仍然維持在1MB,與中本聰最初挖出的第一個(gè)區(qū)塊大小相同。面對(duì)擴(kuò)容的問(wèn)題,比特幣社區(qū)并沒(méi)有選擇簡(jiǎn)單直接地增加區(qū)塊大小這一路徑。相反,他們采取了一種名為“隔離見(jiàn)證”(Segregated Witness,簡(jiǎn)稱SegWit)的方法,這是一種不需要進(jìn)行硬分叉的升級(jí)方案,旨在通過(guò)優(yōu)化區(qū)塊中的數(shù)據(jù)結(jié)構(gòu)來(lái)提高網(wǎng)絡(luò)的處理能力和效率。

隔離見(jiàn)證

在比特幣交易中,每筆交易的信息主要分為兩個(gè)部分:基礎(chǔ)交易數(shù)據(jù)和見(jiàn)證數(shù)據(jù)。基礎(chǔ)交易數(shù)據(jù)包括了諸如賬戶資金結(jié)余等關(guān)鍵財(cái)務(wù)信息,而見(jiàn)證數(shù)據(jù)則用于驗(yàn)證用戶的身份。對(duì)用戶來(lái)說(shuō),他們主要關(guān)心的是與資產(chǎn)直接相關(guān)的信息,如賬戶資金結(jié)余,而身份驗(yàn)證的細(xì)節(jié)并不需要在交易中占用太多資源。換句話說(shuō),接收資產(chǎn)的一方主要關(guān)注的是資產(chǎn)是否可用,而不必過(guò)分關(guān)注發(fā)送方的詳細(xì)信息。

然而,在比特幣的交易結(jié)構(gòu)中,見(jiàn)證數(shù)據(jù)(即簽名信息)占據(jù)了大量的存儲(chǔ)空間,這導(dǎo)致轉(zhuǎn)賬效率降低和交易打包成本增加。為了解決這個(gè)問(wèn)題,隔離見(jiàn)證(SegWit)技術(shù)被引入,它的核心思想是將見(jiàn)證數(shù)據(jù)從主要的交易數(shù)據(jù)中分離出來(lái),并單獨(dú)存儲(chǔ)。這樣做的結(jié)果是優(yōu)化了存儲(chǔ)空間的使用,從而提高了交易效率并減少了成本。

這樣,原有的1M大小區(qū)塊不變的情況下,每個(gè)區(qū)塊可以容納的交易更多,而隔離見(jiàn)證數(shù)據(jù)(也就是各種簽名腳本)則可以占用額外的3M空間,為T(mén)aproot腳本指令的豐富奠定了存儲(chǔ)基礎(chǔ)。

Taproot

Taproot是比特幣網(wǎng)絡(luò)的一個(gè)重要軟分叉升級(jí),旨在提高比特幣腳本的私密性、效率,以及智能合約的處理能力。這次升級(jí)被認(rèn)為是自2017年SegWit升級(jí)之后的一個(gè)主要進(jìn)步。

這次Taproot升級(jí)包括了三個(gè)不同的比特幣改進(jìn)提案(BIP):Taproot(默克爾抽象語(yǔ)法樹(shù), 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腳本來(lái)實(shí)現(xiàn)附加數(shù)據(jù);另一個(gè)是閃電網(wǎng)絡(luò)升級(jí)為T(mén)aproot Asset,從簡(jiǎn)單的點(diǎn)對(duì)點(diǎn)BTC支付進(jìn)化為點(diǎn)對(duì)多且支持發(fā)行新的資產(chǎn);還有一個(gè)就是新提出的BitVM,通過(guò)Taproot中的op_booland和op_not來(lái)把bool電路“蝕刻”到Taproot腳本里,從而實(shí)現(xiàn)智能合約虛擬機(jī)功能。

Ordinals

Ordinals是Casey Rodarmor在2022 年 12 月發(fā)明的協(xié)議,它為每個(gè)聰(Satoshi)賦予獨(dú)特序列號(hào),并在交易中追蹤它們。任何人都可以通過(guò) Ordinals 在UTXO的Taproot腳本中附加額外的數(shù)據(jù),包括文本、圖片、視頻等。

熟悉Ordinals的朋友一定知道:比特幣總量是2100萬(wàn)個(gè),每個(gè)比特幣包含10^8個(gè)Satoshi(聰),所以比特幣網(wǎng)絡(luò)上一共有2100萬(wàn)*10^8個(gè)聰,Ordinals協(xié)議會(huì)將這些聰區(qū)分出來(lái),每個(gè)聰都有一個(gè)唯一的編號(hào)。這是理論上可以做到的,但是實(shí)際上做不到。

因?yàn)锽TC網(wǎng)絡(luò)出于抵御粉塵攻擊的原因,轉(zhuǎn)賬有一個(gè)最少546聰(segwit最少294聰)的限制,也就是不可以1聰1聰?shù)霓D(zhuǎn)賬,根據(jù)轉(zhuǎn)賬的地址類(lèi)型,至少要轉(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)來(lái)追蹤和識(shí)別這294聰或456聰?shù)霓D(zhuǎn)移情況。

銘文在交易中的編碼方式

原則上Taproot腳本的花費(fèi)只能從現(xiàn)有的Taproot輸出中進(jìn)行,所以銘文理論上應(yīng)該是通過(guò)一個(gè)兩階段的提交/揭示程序來(lái)進(jìn)行的。首先,在提交交易中,創(chuàng)建一個(gè)基于script path spend的內(nèi)容的Taproot輸入,并在輸出中指明花費(fèi)/掲示的簽名條件。其次,在揭示交易中,由提交交易創(chuàng)建的輸出被花費(fèi),揭示鏈上的銘文內(nèi)容。

不過(guò)在現(xiàn)實(shí)的indexer場(chǎng)景中,并不十分關(guān)注掲示交易的作用,而是直接在輸入腳本中讀取由一個(gè)OP_FALSE OP_IF ... OP_ENDIF組成的腳本片段,從其中讀取銘文的內(nèi)容。

因?yàn)镺P_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腳本里面。

我們從鏈上找一筆交易來(lái)詳細(xì)說(shuō)明ordinals的編碼原理:

https://explorer.btc.com/btc/transaction/885d037ed114012864c031ed5ed8bbf5f95b95e1ef6469a808e9c08c4808e3ae

我們可以查看這個(gè)交易的詳細(xì)信息:

我們對(duì)witness字段從0063(OP_FALSE OP_IF)開(kāi)始的編碼進(jìn)行分析,可以了解序列化的編碼內(nèi)容:

所以只要我們能把這見(jiàn)證腳本中的這部分的代碼解碼出來(lái),就能知道銘刻的內(nèi)容了。這里編碼的是純文本信息,其他數(shù)據(jù)比如html、圖片、視頻等也都是類(lèi)似的。

理論上你也可以定義自己的編碼內(nèi)容,甚至是只有自己知道的加密內(nèi)容,只不過(guò)這些內(nèi)容不能在ordinals瀏覽器中顯示。

BRC20

2023年3 月 9 日,一位名叫 domo 的匿名Twitter 用戶在推特上發(fā)布了一條推文,在 Ordinals Protocol 之上創(chuàng)建一個(gè)同質(zhì)化代幣標(biāo)準(zhǔn),稱之為BRC20標(biāo)準(zhǔn)。這個(gè)想法是可以通過(guò)Ordinals協(xié)議將 JSON字符串?dāng)?shù)據(jù)刻在Taproot腳本中,以部署、鑄造和傳輸同質(zhì)化的 BRC-20 代幣。

圖 1:BRC-20 代幣的卑微開(kāi)端(domo 關(guān)于該主題的第一個(gè)帖子)

來(lái)源:Twitter(@domodata)

圖 2:BRC-20 代幣可能的三個(gè)初始操作(p = 協(xié)議名稱,op = 操作,tick = 股票代碼 / 標(biāo)識(shí)符,max = 最大供應(yīng)量,lim = 鑄造限制,amt = 數(shù)量)

來(lái)源:https://domo-2.gitbook.io/brc-20-experiment/,幣安研究

Token的發(fā)起方通過(guò)deploy將brc20代幣部署上鏈,然后參與者通過(guò)mint來(lái)幾乎無(wú)成本的獲取Token(只有礦工費(fèi)),當(dāng)mint數(shù)量超過(guò)max后,mint銘文的銘刻會(huì)被indexer認(rèn)為是無(wú)效的。這之后,擁有Token的地址可以通過(guò)transfer銘文來(lái)轉(zhuǎn)移Token。

值得注意的是,Ordinals的創(chuàng)始人Casey,對(duì)BRC-20 的交易占據(jù)了 Ordinals 協(xié)議的大部分比例非常不爽。他曾公開(kāi)表示 BRC-20 給他創(chuàng)造的 Ordinals 帶來(lái)了一堆垃圾。所以,Casey 團(tuán)隊(duì)公開(kāi)發(fā)信,讓幣安把 ORDI 代幣介紹中的 Ordinals 刪掉,他不想讓 Ordinals 協(xié)議和 ORDI 扯上關(guān)系。

擴(kuò)展協(xié)議

BRC20 swap

目前銘文交易最大的市場(chǎng)、indexer以及錢(qián)包供應(yīng)商unisat針對(duì)BRC20的交易提出了BRC20 swap協(xié)議,現(xiàn)在已經(jīng)可以允許早期用戶進(jìn)行試用。

之前的銘文交易,只能通過(guò)一種叫做PSBT(部分簽名的比特幣交易)的方式來(lái)進(jìn)行,和Opensea的鏈下簽名方案類(lèi)似,通過(guò)中心化的服務(wù)來(lái)“撮合”買(mǎi)賣(mài)雙方的簽名。這就導(dǎo)致BRC20資產(chǎn)只能像NFT資產(chǎn)那樣通過(guò)掛單方式來(lái)交易,流動(dòng)性和交易效率都很低。

brc20 swap通過(guò)在brc20協(xié)議的json串中,引入了一種叫模塊的機(jī)制,這個(gè)模塊中可以部署一套類(lèi)似智能合約的腳本。以swap模塊為例,用戶可以通過(guò)transfer將BRC20鎖入模塊中,也就是發(fā)起一筆給自己的轉(zhuǎn)賬交易,但是交易中的銘文被鎖在模塊中,用戶在完成交易,或撤出LP后,可以發(fā)起一筆交易,再把brc20代幣提取出來(lái)。

目前,brc20 swap采用黑模塊的擴(kuò)展模式運(yùn)行,黑模塊是出于安全考慮,在未經(jīng)共識(shí)和驗(yàn)證的情況下,通過(guò)模塊中的資金總和來(lái)確定用戶可以提取的資金,也就是任何用戶不能提取超過(guò)鎖入模塊資產(chǎn)總和的資產(chǎn)。

當(dāng)黑模塊的行為被用戶理解和執(zhí)行,逐步變得可靠,逐漸被更多索引者接受后,產(chǎn)品從黑模塊過(guò)渡到白模塊,達(dá)成共識(shí)升級(jí)。用戶也就可以自由充提資產(chǎn)。

此外,因?yàn)閎rc20協(xié)議乃至整個(gè)Ordinals生態(tài)依然處于早期,Unisat占據(jù)較大影響力和聲譽(yù),其為協(xié)議提供了完整的交易和余額查詢等索引服務(wù),有一家獨(dú)大的中心化風(fēng)險(xiǎn)。其模塊化運(yùn)行的架構(gòu),使得更多服務(wù)商可以參與進(jìn)來(lái),從而實(shí)現(xiàn)索引更加去中心化。

BRC420

Brc420協(xié)議由RCSV開(kāi)發(fā)。他們?cè)谠秀懳牡幕A(chǔ)上,增加了遞歸索引的擴(kuò)展。通過(guò)遞歸的方式定義了更復(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)提供了更廣闊的想象空間,除了可以通過(guò)遞歸引用構(gòu)建更復(fù)雜的元宇宙外,也可以通過(guò)代碼銘文的遞歸引用,來(lái)構(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è)通過(guò)工作量證明(PoW)銘文鑄造的代幣協(xié)議,允許參與者通過(guò)類(lèi)似挖掘比特幣的方式直接挖掘銘文或NFT。

將1個(gè)ARC20代幣等同于1個(gè)sat帶來(lái)了多個(gè)好處:

1. 首先,每個(gè)ARC20代幣的價(jià)值永遠(yuǎn)不會(huì)低于1個(gè)sat,這使得比特幣在此過(guò)程中充當(dāng)了一種“數(shù)字黃金錨定”的角色。

2. 其次,驗(yàn)證交易時(shí)只需查詢與sat相對(duì)應(yīng)的UTXO,這與BRC20需要鏈下賬本狀態(tài)記錄和第三方排序器的復(fù)雜性形成對(duì)比。

3. 此外,ARC20的所有操作都可以通過(guò)比特幣網(wǎng)絡(luò)完成,不需要額外的步驟。

4. 最后,由于UTXO的可組合性,理論上可以實(shí)現(xiàn)ARC20代幣與比特幣的直接交換,這為未來(lái)的流動(dòng)性提供了可能性。

Atomicals協(xié)議為ARC20代幣設(shè)置了Bitwork Mining的特殊前綴參數(shù)。代幣發(fā)行者可以選擇特殊前綴,而用戶要通過(guò)CPU挖礦計(jì)算出匹配的前綴后,才能獲得鑄造該ARC20代幣的資格。這種“一CPU一票”的模式與比特幣原教旨主義者們的理念相符。

銘文安全嗎

銘文看上去只是一段“無(wú)害”的文本上鏈,并通過(guò)中心化的indexer來(lái)解析,似乎安全問(wèn)題只是中心化服務(wù)上的安全考慮,但在鏈上安全方面,還是需要注意以下幾點(diǎn):

1. 增加節(jié)點(diǎn)負(fù)擔(dān)

銘文會(huì)增加比特幣區(qū)塊的大小,這會(huì)增加節(jié)點(diǎn)在網(wǎng)絡(luò)傳播、存儲(chǔ)和驗(yàn)證區(qū)塊時(shí)所需的資源。如果銘文過(guò)多,會(huì)降低比特幣網(wǎng)絡(luò)的去中心化程度,使網(wǎng)絡(luò)更容易受到攻擊。

2. 降低安全性

銘文可以用于存儲(chǔ)任何類(lèi)型的數(shù)據(jù),包括惡意代碼。如果惡意代碼被添加到比特幣區(qū)塊中,可能會(huì)導(dǎo)致網(wǎng)絡(luò)安全漏洞。

3. 交易需要構(gòu)造

銘文的交易需要進(jìn)行交易的構(gòu)造,并且關(guān)注ordinals的先入先出規(guī)則,以防止由于疏忽導(dǎo)致銘文的索引性被破壞。

4. 買(mǎi)賣(mài)存在風(fēng)險(xiǎn)

銘文的交易市場(chǎng),不論是OTC還是PSBT,都存在資產(chǎn)損失風(fēng)險(xiǎn)。

以下是一些具體的安全問(wèn)題:

1. 孤塊率和分叉率增加

銘文會(huì)增加區(qū)塊的大小,這會(huì)導(dǎo)致孤塊率和分叉率增加。孤塊是指沒(méi)有被其他節(jié)點(diǎn)承認(rèn)的區(qū)塊,分叉是指網(wǎng)絡(luò)中存在多個(gè)競(jìng)爭(zhēng)的區(qū)塊鏈。孤塊和分叉會(huì)降低網(wǎng)絡(luò)的穩(wěn)定性和安全性。

2. 攻擊者篡改銘文

攻擊者可以利用銘文的開(kāi)放性進(jìn)行篡改攻擊。

例如,攻擊者可以將銘文中存儲(chǔ)的信息替換為惡意代碼,從而在滲透進(jìn)indexer的服務(wù)器或通過(guò)木馬入侵用戶設(shè)備。

3. 錢(qián)包使用不當(dāng)

如果錢(qián)包使用不當(dāng),錢(qián)包不能索引銘文的情況下,很可能錯(cuò)誤的轉(zhuǎn)移走銘文,導(dǎo)致資產(chǎn)損失。

4. 釣魚(yú)或詐騙

攻擊者可能通過(guò)假冒的unisat等indexer網(wǎng)站,來(lái)誘導(dǎo)用戶進(jìn)行銘文交易,從而竊取用戶資產(chǎn)。

5. PSBT簽名疏漏

Atomicals Market曾經(jīng)因?yàn)殄e(cuò)誤的簽名方法使用,而導(dǎo)致用戶資產(chǎn)受損

相關(guān)閱讀:

<The Analysis of the Atomicals Market User Asset Loss>

https://metatrust.io/company/blogs/post/the-analysis-of-the-atomicals-market-user-asset-loss

為了解決這些安全問(wèn)題,可以采取以下措施:

1. 限制銘文的大小

可以限制銘文的大小,以減少對(duì)節(jié)點(diǎn)負(fù)擔(dān)的影響,這一點(diǎn)文章開(kāi)頭提到的Luke已經(jīng)在做了。

2. 對(duì)銘文進(jìn)行加密

可以對(duì)銘文進(jìn)行加密,以防止惡意代碼的攻擊。

3. 使用可信的銘文來(lái)源

可以使用可信的銘文來(lái)源,以防止簽名問(wèn)題和被釣魚(yú)。

4. 使用支持銘文的錢(qián)包

使用支持銘文的錢(qián)包來(lái)進(jìn)行轉(zhuǎn)賬活動(dòng)。

5. 注重銘文代碼及相關(guān)腳本的審核

在brc20-swap及遞歸銘文的新型實(shí)驗(yàn)中,由于代碼和相關(guān)腳本的引入,需要確保這些代碼及腳本的安全性。

從技術(shù)和安全的角度說(shuō),比特幣銘文本質(zhì)上還是一種規(guī)則繞過(guò)的漏洞,taproot腳本并不是為了存儲(chǔ)數(shù)據(jù)而出現(xiàn)的,其安全性也存在一些問(wèn)題。Luke對(duì)bitcoin core代碼的修改從安全角度來(lái)說(shuō)是正確的。Luke并未對(duì)比特幣的共識(shí)層進(jìn)行直接修改,而是選擇調(diào)整Spam Filter(策略過(guò)濾器)模塊,使得節(jié)點(diǎn)在接收到P2P廣播消息時(shí),能夠自動(dòng)過(guò)濾掉Ordinals交易。在這個(gè)策略過(guò)濾器中,有多個(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ì)將這類(lèi)數(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ì)策略過(guò)濾器(policy)的修改,并且計(jì)劃在Bitcoin Core客戶端中引入類(lèi)似的更改。在這次修改中,他引入了一個(gè)新的參數(shù),名為g_script_size_policy_limit,用于在多個(gè)不同的位置限制腳本的大小。這一改動(dòng)意味著在處理交易時(shí),腳本大小將受到額外的限制,影響著交易的接受和處理方式。

目前,該參數(shù)的默認(rèn)值是1650Bytes,任何節(jié)點(diǎn)客戶端都可以在啟動(dòng)時(shí)通過(guò)參數(shù)-maxscriptsize來(lái)設(shè)置:

不過(guò)即使代碼更新,距離礦工節(jié)點(diǎn)全部更新為新版本還有很長(zhǎng)的一段時(shí)間,這段時(shí)間,銘文社區(qū)的創(chuàng)新者們應(yīng)該可以創(chuàng)造出更安全的協(xié)議。

Metatrust Labs通過(guò)鏈上數(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)在熱門(mén)的銘文生態(tài)的技術(shù)原理和可能存在的安全問(wèn)題,下一期,我們將為大家?guī)?lái)更加復(fù)雜的Taproot電路蝕刻技術(shù)——bitVM,敬請(qǐng)期待。

熱門(mén)
主站蜘蛛池模板: 丰满人妻熟妇乱又伦精品视| 内射白浆一区二区在线观看| 3d动漫精品啪啪一区二区免费| 污污内射在线观看一区二区少妇| 国产精品另类激情久久久免费| 久久久久亚洲Av片无码下载蜜桃| 漂亮人妻被黑人久久精品| 四名学生毛还没长齐在线视频| 69av免费观看| 天天操天天干天天干| 中文字幕一区二区精品区| 日韩国产免费一区二区三区| 亚洲国产成人久久笫一页| 热re99久久国产精品| 加勒比综合在线| 中文字幕一区二区三区久久网站| 欧美日韩在线国产| 免费看美女被靠到爽的视频| 色哟哟视频在线观看网站| 国产大学生粉嫩无套流白浆 | 特黄一级**毛片| 哒哒哒免费视频观看在线www| 69pao精品视频在线观看| 国产麻豆媒一区一区二区三区| 中文字幕在线国产| 日本国产成人精品视频| 久久精品福利视频| 欧美一区二区三区视频在线观看| 免费看美女被靠到爽的视频| 美女舒服好紧太爽了视频| 国产亚洲日韩欧美一区二区三区 | 中文字幕天天躁日日躁狠狠躁免费 | 经典三级在线播放| 国产午夜精品理论片| 国产成人精品一区二区秒拍| 国产精品亚洲综合五月天| 91香蕉短视频| 国模精品一区二区三区视频 | 波多野结衣无内裤护士| 免费a级毛片无码专区| 精品不卡一区中文字幕|