最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

當(dāng)前位置:主頁(yè) > 區(qū)塊鏈 > 比特幣 > BitVM全面解讀

一文詳解比特幣虛擬機(jī)BitVM所需的背景知識(shí)

2024-06-09 00:50:59 | 來(lái)源: | 作者:佚名
對(duì)于大多數(shù)人而言,要理解BitVM和比特幣二層相關(guān)的技術(shù)名詞絕非易事,因?yàn)槟阋葘?duì)其周邊的基礎(chǔ)知識(shí)有系統(tǒng)性的理解,尤其是比特幣腳本和Taproot等背景知識(shí),目前網(wǎng)上已有的參考資料要么篇幅太長(zhǎng)廢話連篇,要么解釋的不夠透徹讓人似懂非懂

一文詳解比特幣虛擬機(jī)BitVM所需的背景知識(shí)!對(duì)于大多數(shù)人而言,要理解BitVM和比特幣二層相關(guān)的技術(shù)名詞絕非易事,因?yàn)槟阋葘?duì)其周邊的基礎(chǔ)知識(shí)有系統(tǒng)性的理解,尤其是比特幣腳本和Taproot等背景知識(shí)。目前網(wǎng)上已有的參考資料要么篇幅太長(zhǎng)廢話連篇,要么解釋的不夠透徹讓人似懂非懂。我們致力于解決上述問(wèn)題,力求以盡可能清晰的語(yǔ)言,幫助更多人理解比特幣二層的周邊知識(shí),對(duì)BitVM體系建立起系統(tǒng)性認(rèn)知。需要的朋友一起看看吧!

BitVM前言

近期Delphi Digital發(fā)布了題為《The Dawn of Bitcoin Programmability: Paving the Way for Rollups 》的比特幣二層相關(guān)技術(shù)研報(bào),系統(tǒng)的梳理了和比特幣Rollup有關(guān)的核心概念,如BitVM全家桶、OP_CAT和Covenant限制條款、比特幣生態(tài)DA層、橋以及Bitlayer、Citrea、Yona、Bob等四大采用BitVM的比特幣二層。

該研報(bào)雖然大體展示了比特幣二層技術(shù)的大致圖景,但整體比較泛泛而缺乏細(xì)節(jié)描述,讓人似懂非懂。極客web3在Delphi研報(bào)基礎(chǔ)上進(jìn)行了展開(kāi)式的深入挖掘,嘗試讓更多人系統(tǒng)的理解BitVM等技術(shù)。

我們將與Bitlayer研究團(tuán)隊(duì)及BitVM中文社區(qū)共同開(kāi)展一個(gè)名為“走近BTC”的系列專(zhuān)欄,長(zhǎng)期圍繞BitVM、OP_CAT和比特幣跨鏈橋等重點(diǎn)話題進(jìn)行科普,致力于為更多人祛魅比特幣二層相關(guān)技術(shù),幫更多愛(ài)好者鋪平道路。

幾個(gè)月前,ZeroSync負(fù)責(zé)人Robin Linus發(fā)布了名為《BitVM: Compute Anything on Bitcoin》的文章,正式提出了BitVM的概念,推動(dòng)了比特幣二層技術(shù)的進(jìn)展。可以說(shuō)這是比特幣生態(tài)最具革命性的創(chuàng)新之一,引爆了整個(gè)比特幣二層生態(tài),吸引了如Bitlayer、Citrea、BOB等明星項(xiàng)目的參與,為整個(gè)市場(chǎng)帶來(lái)了生機(jī)。

之后,更多研究人員參與改進(jìn)了BitVM,先后推出了BitVM1、BitVM2、BitVMX、BitSNARK等不同的迭代版本。其大致情況如下所示:

  • Robin Linus于去年最先提出的BitVM實(shí)現(xiàn)白皮書(shū),就是基于虛構(gòu)邏輯門(mén)電路的BitVM實(shí)現(xiàn)方案,被稱(chēng)為BitVM0;
  • Robin Linus在后面幾次演講和采訪中,又非正式的介紹了基于虛構(gòu)CPU的BitVM方案(稱(chēng)為BitVM1),類(lèi)似于Optimism的欺詐證明系統(tǒng)Cannon,可以用比特幣腳本在鏈下模擬出一個(gè)通用CPU的效果。
  • Robin Linus還提出了BitVM2,一個(gè)Permissionless的單步非交互式欺詐證明協(xié)議。
  • Rootstock Labs和Fairgate Labs的成員發(fā)布了BitVMX白皮書(shū),與BitVM1類(lèi)似,他們希望通過(guò)比特幣腳本模擬出通用CPU的效果(在鏈下)。

目前BitVM相關(guān)開(kāi)發(fā)者生態(tài)的建設(shè)日漸明朗,周邊工具的迭代完善也已肉眼可見(jiàn),相比于去年,如今的BitVM生態(tài)已經(jīng)從最初的“空中樓閣”變得“依稀可見(jiàn)”,這也吸引了越來(lái)越多的開(kāi)發(fā)者和VC爭(zhēng)相涌入比特幣生態(tài)。

但對(duì)于大多數(shù)人而言,要理解BitVM和比特幣二層相關(guān)的技術(shù)名詞絕非易事,因?yàn)槟阋葘?duì)其周邊的基礎(chǔ)知識(shí)有系統(tǒng)性的理解,尤其是比特幣腳本和Taproot等背景知識(shí)。目前網(wǎng)上已有的參考資料要么篇幅太長(zhǎng)廢話連篇,要么解釋的不夠透徹讓人似懂非懂。我們致力于解決上述問(wèn)題,力求以盡可能清晰的語(yǔ)言,幫助更多人理解比特幣二層的周邊知識(shí),對(duì)BitVM體系建立起系統(tǒng)性認(rèn)知。

MATT和承諾:BitVM的基礎(chǔ)思想

首先我們要強(qiáng)調(diào),BitVM的基礎(chǔ)思想是MATT,含義是Merkleize All The Things,主要指通過(guò)Merkle Tree這種樹(shù)狀的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)來(lái)展示復(fù)雜的程序執(zhí)行過(guò)程,設(shè)法讓比特幣Native的驗(yàn)證欺詐證明。

MATT雖然可以表達(dá)出一段復(fù)雜程序及其數(shù)據(jù)處理痕跡,但不會(huì)直接在BTC鏈上發(fā)布這些數(shù)據(jù),因?yàn)檫@些數(shù)據(jù)的總體規(guī)模非常龐大。采用MATT的方案只在鏈下的Merkle樹(shù)中存儲(chǔ)數(shù)據(jù),只把Merkle樹(shù)最頂部的摘要(Merkle Root)發(fā)布到鏈上。這棵Merkle樹(shù)主要包含三大核心內(nèi)容:

  • 智能合約腳本代碼
  • 合約所需的數(shù)據(jù)
  • 合約執(zhí)行中留下的痕跡(智能合約在EVM等虛擬機(jī)中執(zhí)行時(shí)對(duì)內(nèi)存、CPU寄存器產(chǎn)生的變更記錄)

(一個(gè)簡(jiǎn)單的Merkle Tree默克爾樹(shù)示意圖 其Merkle Root是由圖中底部的8個(gè)數(shù)據(jù)片段經(jīng)過(guò)多層hash計(jì)算得到的)

MATT方案下,只有尺寸極小的Merkle Root存儲(chǔ)在鏈上,Merkle Tree包含的完整數(shù)據(jù)集存儲(chǔ)在鏈下,這用到了一種被稱(chēng)為“承諾”的思路。這里解釋下什么是“承諾”(Commitment)。

承諾類(lèi)似于一種簡(jiǎn)潔化的聲明,我們可以把它理解為一大批數(shù)據(jù)壓縮后得到的“指紋”。一般而言,在鏈上發(fā)布“承諾”的人會(huì)聲稱(chēng),某些存放在鏈下的數(shù)據(jù)是準(zhǔn)確無(wú)誤的,這些鏈下數(shù)據(jù)要對(duì)應(yīng)一個(gè)簡(jiǎn)潔化的聲明,這個(gè)聲明就是“承諾”。

在某些時(shí)候,數(shù)據(jù)的hash可以作為對(duì)數(shù)據(jù)本身的“承諾”,其他的承諾方案還有KZG承諾或Merkle Tree等。在Layer2慣用的欺詐證明協(xié)議中,數(shù)據(jù)發(fā)布者會(huì)在鏈下發(fā)布完整數(shù)據(jù)集,在鏈上發(fā)布數(shù)據(jù)集的承諾。如果有人發(fā)現(xiàn)鏈下的數(shù)據(jù)集中存在無(wú)效數(shù)據(jù),就會(huì)針對(duì)鏈上的數(shù)據(jù)承諾進(jìn)行挑戰(zhàn)。

通過(guò)承諾(Commitment),二層能夠把大量數(shù)據(jù)壓縮處理,只在比特幣鏈上發(fā)布其“承諾”。當(dāng)然,還要保證發(fā)布在鏈下的完整數(shù)據(jù)集可以被外界觀測(cè)到。

目前幾大 BitVM方案如BitVM0、BitVM1、BitVM2和BitVMX,基本都采用了類(lèi)似的抽象結(jié)構(gòu):

1.程序分解和承諾:首先將復(fù)雜的程序分解為大量的、較基礎(chǔ)的操作碼(編譯),然后把這些操作碼在具體執(zhí)行時(shí)產(chǎn)生的痕跡記錄下來(lái)(說(shuō)白了就是一段程序跑在CPU和內(nèi)存中時(shí),整個(gè)的狀態(tài)變化記錄,稱(chēng)為T(mén)race)。之后,我們對(duì)包括Trace和操作碼在內(nèi)的所有數(shù)據(jù)進(jìn)行整理,組織成一個(gè)數(shù)據(jù)集,然后生成該數(shù)據(jù)集的承諾。

具體的承諾方案可以有多種形式,如:Merkle樹(shù)、PIOPs(各種ZK算法)、哈希函數(shù)

2.資產(chǎn)質(zhì)押和預(yù)簽名:數(shù)據(jù)發(fā)布者和驗(yàn)證者需要通過(guò)預(yù)簽名的形式,把一定金額的資產(chǎn)鎖定在鏈上,并且會(huì)有限制條件。這些條件會(huì)針對(duì)未來(lái)可能發(fā)生的情況而針對(duì)性的觸發(fā),如果數(shù)據(jù)發(fā)布者作惡,驗(yàn)證者可以提交證明把數(shù)據(jù)發(fā)布者的資產(chǎn)拿走

3.數(shù)據(jù)和承諾發(fā)布:數(shù)據(jù)發(fā)布者在鏈上發(fā)布承諾,鏈下發(fā)布完整的數(shù)據(jù)集,驗(yàn)證者檢索數(shù)據(jù)集并檢查是否有任何錯(cuò)誤。鏈下數(shù)據(jù)集中的每個(gè)部分都與鏈上的承諾有關(guān)聯(lián)性。

4.挑戰(zhàn)和懲罰:一旦驗(yàn)證者發(fā)現(xiàn)數(shù)據(jù)發(fā)布者提供的數(shù)據(jù)有錯(cuò)誤,它會(huì)把這部分?jǐn)?shù)據(jù)拿到鏈上去直接驗(yàn)證(要先把這部分?jǐn)?shù)據(jù)切的特別細(xì)),這就是欺詐證明的邏輯。如果驗(yàn)證結(jié)果顯示,數(shù)據(jù)發(fā)布者的確在鏈下提供了無(wú)效數(shù)據(jù),它的資產(chǎn)就會(huì)被挑戰(zhàn)他的驗(yàn)證者拿走。

總結(jié)下就是,數(shù)據(jù)發(fā)布者Alice在鏈下公開(kāi)二層交易執(zhí)行過(guò)程中產(chǎn)生的所有痕跡,把對(duì)應(yīng)的承諾發(fā)布到鏈上。如果你要證明某部分?jǐn)?shù)據(jù)有誤,先向比特幣節(jié)點(diǎn)證明這部分?jǐn)?shù)據(jù)和鏈上的承諾相關(guān)聯(lián),也就是證明這些數(shù)據(jù)是Alice本人對(duì)外公開(kāi)的,然后讓比特幣節(jié)點(diǎn)確定這部分?jǐn)?shù)據(jù)有錯(cuò)誤。

現(xiàn)在我們大致理解了BitVM的整體思路,所有的BitVM變體基本都脫離不了上述范式。那么接下來(lái),讓我們開(kāi)始學(xué)習(xí)和理解上述流程中用到的一些重要技術(shù),先從最基礎(chǔ)的比特幣腳本和Taproot以及預(yù)簽名開(kāi)始。

什么是Bitcoin Script腳本

比特幣相關(guān)的知識(shí)要比以太坊的更難理解,就連最基礎(chǔ)的轉(zhuǎn)賬行為都涉及到一系列概念,包括UTXO(未花費(fèi)的交易輸出)、鎖定腳本(也稱(chēng)為ScriptPubKey)和解鎖腳本(也稱(chēng)為ScriptSig)。我們先對(duì)這幾個(gè)主要概念進(jìn)行講解。

(一段比特幣腳本代碼的示例 由比高級(jí)語(yǔ)言更底層的操作碼組成 )

以太坊的資產(chǎn)表達(dá)方式,更像支付寶或者微信,每次轉(zhuǎn)賬只是對(duì)不同賬戶的余額做加減法,這種方法是以賬戶為核心,資產(chǎn)余額只是賬戶名下的一個(gè)數(shù)字;比特幣的資產(chǎn)表達(dá)形式更像黃金,每塊黃金(UTXO)都會(huì)標(biāo)記出主人,轉(zhuǎn)賬實(shí)際上是把舊的UTXO銷(xiāo)毀,把新的UTXO產(chǎn)生(主人會(huì)變更)。

比特幣UTXO包含兩個(gè)關(guān)鍵字段:

數(shù)額,以“聰(satoshi)”為單位(一億聰為一BTC);

鎖定腳本,也稱(chēng) “腳本公鑰(ScriptPubKey)”,會(huì)定義UTXO的解鎖條件。

需要注意的是,比特幣UTXO的所有權(quán)是通過(guò)鎖定腳本來(lái)表達(dá)的,如果你要把自己的UTXO轉(zhuǎn)讓給Sam,可以發(fā)起交易銷(xiāo)毀自己的某個(gè)UTXO,把新生成的UTXO的解鎖條件寫(xiě)為“只有Sam可解鎖”。

之后,Sam如果要使用這些比特幣,需要提交一個(gè)解鎖腳本(ScriptSig),在這個(gè)解鎖腳本中Sam要出示自己的數(shù)字簽名,證明自己是Sam本人。如果解鎖腳本和前述鎖定腳本相匹配,Sam就可以解鎖并把這些比特幣再轉(zhuǎn)給別人。

(解鎖腳本要和鎖定腳本相匹配才行)

從表現(xiàn)形式的角度看,比特幣鏈上的每筆交易都對(duì)應(yīng)著多個(gè)Input和Output,每個(gè)Input中要聲明自己想解鎖的某個(gè)UTXO,并提交解鎖腳本,解鎖并銷(xiāo)毀該UTXO;Output中會(huì)展示新生成的UTXO信息,對(duì)外公示鎖定腳本的內(nèi)容。

比如,在一筆交易的Input中,你證明自己是Sam,把別人給你的多個(gè)UTXO解鎖,統(tǒng)一銷(xiāo)毀,再生成多個(gè)新的UTXO并聲明讓xxx在未來(lái)去解鎖。

具體而言,在交易的Input數(shù)據(jù)中,你要聲明自己要解鎖哪些UTXO,并指出這些UTXO數(shù)據(jù)的“存儲(chǔ)位置”。這里要注意,比特幣和以太坊截然不同,以太坊提供了合約賬戶和EOA賬戶兩種賬戶來(lái)存儲(chǔ)數(shù)據(jù), 資產(chǎn)余額作為數(shù)字,記錄在合約賬戶或EOA賬戶名下,統(tǒng)一放置在名為“世界狀態(tài)”的數(shù)據(jù)庫(kù)中,轉(zhuǎn)賬時(shí)直接從“世界狀態(tài)”中對(duì)特定賬戶進(jìn)行修改,便于定位到數(shù)據(jù)的存儲(chǔ)位置;

比特幣沒(méi)有世界狀態(tài)的設(shè)計(jì),資產(chǎn)數(shù)據(jù)分散存儲(chǔ)在過(guò)往的區(qū)塊中(就是未解鎖的UTXO數(shù)據(jù),在每筆交易的OutPut中單獨(dú)存放)。

如果你想解鎖某個(gè)UTXO,要說(shuō)明該UTXO信息存在于過(guò)去哪筆交易的Output中,出示這筆交易的ID(就是其hash),讓比特幣節(jié)點(diǎn)去歷史記錄中尋找。如果要查詢(xún)某個(gè)地址的比特幣余額,需要從頭遍歷所有區(qū)塊,找出和xx地址關(guān)聯(lián)的未解鎖UTXO。

平時(shí)用比特幣錢(qián)包時(shí),可以快速檢查某地址擁有的比特幣余額,很多時(shí)候是因?yàn)殄X(qián)包服務(wù)自身通過(guò)掃描區(qū)塊,對(duì)所有地址建立了索引,方便我們快速查詢(xún)。

(當(dāng)你生成一筆交易聲明把自己的UTXO送給別人時(shí),要根據(jù)這些UTXO所屬的交易hash/ID來(lái)標(biāo)記出該UTXO在比特幣歷史記錄中的位置)

有意思的是,比特幣交易的結(jié)果是在鏈下計(jì)算完成的,用戶在本地設(shè)備上生成交易時(shí),就要直接把Input和Output全部創(chuàng)建好,相當(dāng)于把交易的輸出結(jié)果計(jì)算完了。交易在廣播到比特幣網(wǎng)絡(luò)中,被節(jié)點(diǎn)驗(yàn)證后才上鏈。這種“鏈下計(jì)算—鏈上驗(yàn)證”的模式與以太坊是完全不同的,在以太坊上,你只需要提供交易輸入?yún)?shù),交易結(jié)果由以太坊節(jié)點(diǎn)計(jì)算并輸出。

此外,UTXO的鎖定腳本(Locking Script)是可以自定義的,你可以把UTXO設(shè)定為“某個(gè)比特幣地址的主人可解鎖”,該地址的主人需要提供數(shù)字簽名和公鑰(P2PKH)。而在Pay-to-Script-Hash(P2SH)交易類(lèi)型中,你可以在UTXO鎖定腳本中添加一個(gè)Script Hash,誰(shuí)能提交這個(gè)Hash對(duì)應(yīng)的腳本原像,并滿足該腳本原像中預(yù)設(shè)的條件,就可以解鎖UTXO。BitVM所依賴(lài)的Taproot腳本,用到了類(lèi)似于P2SH的特性。

比特幣腳本怎么觸發(fā)

這里我們先以P2PKH為案例介紹比特幣腳本的觸發(fā)方式,只有理解了其觸發(fā)方式才能理解更為復(fù)雜的Taproot和BitVM。P2PKH全稱(chēng)“Pay to Public Key Hash”,在這種方案下,UTXO的鎖定腳本中會(huì)設(shè)置一個(gè)公鑰hash,解鎖時(shí)需要提交對(duì)應(yīng)該hash的公鑰,這和常規(guī)的比特幣轉(zhuǎn)賬思路基本一致。

此時(shí),比特幣節(jié)點(diǎn)要確定解鎖腳本中的公鑰,和鎖定腳本中指定的公鑰hash能對(duì)上號(hào),也就是說(shuō),要確定解鎖人提交的“鑰匙”和UTXO預(yù)設(shè)的“鎖”彼此匹配。

進(jìn)一步說(shuō),P2PKH方案下,比特幣節(jié)點(diǎn)收到交易后,會(huì)將用戶給出的解鎖腳本ScriptSig,與要解鎖的UTXO的鎖定腳本ScriptPubkey拼接到一起,放在BTC腳本的執(zhí)行環(huán)境內(nèi)執(zhí)行。下圖給出執(zhí)行前的拼接結(jié)果:

可能讀者并不了解BTC的腳本執(zhí)行環(huán)境,此處我們進(jìn)行簡(jiǎn)單介紹。首先,BTC腳本包含兩種元素:

數(shù)據(jù)和操作碼。這些數(shù)據(jù)和操作碼會(huì)按照從左到右的順序,依次壓入棧內(nèi)按照指定邏輯來(lái)執(zhí)行,得到最終結(jié)果(關(guān)于什么是棧 此處不展開(kāi)詳述 讀者可以自行Chatgpt)。

以上圖為例,左側(cè)是某人上傳的解鎖腳本ScriptSig,包含他的數(shù)字簽名和公鑰,而右側(cè)的鎖定腳本ScriptPubkey中,包含UTXO創(chuàng)建者生成該UTXO時(shí)設(shè)置的一段操作碼和數(shù)據(jù)(此處我們不需要了解每個(gè)操作碼的含義,理解個(gè)大概即可)。

上圖中右側(cè)的鎖定腳本中的DUP、HASH160、EQUALVERIFY等操作碼,負(fù)責(zé)把左側(cè)的解鎖腳本中攜帶的Public key取哈希,和鎖定腳本中預(yù)設(shè)的Public key hash做對(duì)比,若兩者相等,說(shuō)明解鎖腳本中上傳的公鑰,和鎖定腳本中預(yù)設(shè)的公鑰哈希相匹配,這就通過(guò)了第一道驗(yàn)證。

但是,有個(gè)問(wèn)題,UTXO鎖定腳本的內(nèi)容其實(shí)是在鏈上公開(kāi)的,任何人都能觀測(cè)到其中包含的公鑰哈希,誰(shuí)都可以上傳對(duì)應(yīng)的公鑰,謊稱(chēng)自己是那個(gè)被“欽定”的人。所以在驗(yàn)證完公鑰和公鑰hash后,還要驗(yàn)證交易發(fā)起人是否真是該公鑰的實(shí)際控制者,這就要對(duì)數(shù)字簽名進(jìn)行核驗(yàn)。鎖定腳本中的CHECKSIG操作碼,就是負(fù)責(zé)驗(yàn)證數(shù)字簽名的。

總結(jié)一下,P2PKH方案下,交易發(fā)起人提交的解鎖腳本中,包含公鑰和數(shù)字簽名,該公鑰要和鎖定腳本中指定的公鑰哈希匹配,且交易的數(shù)字簽名正確,滿足這些條件才能順利解鎖UTXO。

(這個(gè)圖是動(dòng)態(tài)的:P2PKH方案下比特幣解鎖腳本示意圖 來(lái)源:https://learnmeabitcoin.com/technical/script )

當(dāng)然,比特幣網(wǎng)絡(luò)中支持多種交易類(lèi)型,不只有Pay to public key/public key hash,還有P2SH(Pay to Script hash)等,一切取決于UTXO創(chuàng)建時(shí)自定義的鎖定腳本被設(shè)置成什么樣。

這里需要注意的是,P2SH方案下,鎖定腳本中可以預(yù)設(shè)一個(gè)Script Hash,而解鎖腳本需要把Script Hash對(duì)應(yīng)的腳本內(nèi)容完整提交上來(lái)。比特幣節(jié)點(diǎn)可以執(zhí)行這段腳本,如果這段腳本里定義了多簽驗(yàn)證的邏輯,就可以在比特幣鏈上實(shí)現(xiàn)多簽錢(qián)包的效果。

當(dāng)然,P2SH方案下,UTXO創(chuàng)建者要讓未來(lái)解鎖UTXO的人事先知道Script Hash對(duì)應(yīng)的腳本內(nèi)容,只要雙方都知道這段Script的內(nèi)容,那么我們就可以實(shí)現(xiàn)比多簽更復(fù)雜的業(yè)務(wù)邏輯。

這里要說(shuō)明一點(diǎn),比特幣鏈上(區(qū)塊)并不直接記錄哪些UTXO和哪些地址關(guān)聯(lián),它只記錄UTXO可以被哪個(gè)公鑰哈希/哪個(gè)腳本哈希解鎖,但我們根據(jù)公鑰hash/腳本hash可以快速算出對(duì)應(yīng)的地址(錢(qián)包界面顯示的那一段像亂碼的東西)。

我們之所以能在區(qū)塊瀏覽器和錢(qián)包界面看到xx地址下有xx數(shù)額的比特幣,是因?yàn)閰^(qū)塊瀏覽器和錢(qián)包項(xiàng)目方幫你解析了這些數(shù)據(jù),會(huì)掃描所有區(qū)塊并根據(jù)鎖定腳本中聲明的公鑰hash/腳本hash,計(jì)算出對(duì)應(yīng)的“地址”,然后顯示出xx地址名下有多少比特幣。

隔離見(jiàn)證與Witness

當(dāng)我們理解了P2SH的思路后,便和BitVM所依賴(lài)的Taproot更近一步了。但在此之前,我們要了解一個(gè)重要的概念:Witness和隔離見(jiàn)證。

復(fù)盤(pán)前面講到的解鎖腳本和鎖定腳本,以及UTXO解鎖流程,會(huì)發(fā)現(xiàn)一個(gè)問(wèn)題:交易的數(shù)字簽名包含在解鎖腳本中,生成簽名時(shí)不能把解鎖腳本覆蓋進(jìn)去(生成簽名用到的參數(shù)不能包含簽名本身),所以數(shù)字簽名只能覆蓋解鎖腳本之外的部分,也就是只能與交易數(shù)據(jù)的主干部分建立關(guān)聯(lián),不能完整的覆蓋交易數(shù)據(jù)。

這樣一來(lái),就算交易的解鎖腳本被中間人稍做手腳,也不會(huì)影響到驗(yàn)簽結(jié)果。比如說(shuō),比特幣節(jié)點(diǎn)或礦池可以在交易的解鎖腳本中,塞入其他數(shù)據(jù),在不影響驗(yàn)簽和交易結(jié)果的前提下,使得交易數(shù)據(jù)發(fā)生細(xì)微變化,最后算出的交易hash/交易ID也會(huì)改變。這被稱(chēng)為交易延展性問(wèn)題。

這帶來(lái)的壞處是,如果你打算連續(xù)發(fā)起多筆交易,并且有次序上的依賴(lài)關(guān)系(比如,交易3引用了交易2的輸出,交易2引用了交易1的輸出),那么排后面的交易必然要引用前面交易的ID(hash),礦池或比特幣節(jié)點(diǎn)等任意中間人可以微調(diào)解鎖腳本中的內(nèi)容,使交易上鏈后的hash與你預(yù)期的不一致,那么你預(yù)先創(chuàng)建好的多筆有次序關(guān)聯(lián)的交易會(huì)失效。

實(shí)際上,在DLC橋和BitVM2的方案中,會(huì)批量構(gòu)建有先后次序關(guān)聯(lián)性的交易,所以前面提到的場(chǎng)景并不少見(jiàn)。

簡(jiǎn)單來(lái)說(shuō),交易延展性問(wèn)題是因?yàn)椋灰椎腎D/hash在計(jì)算時(shí),會(huì)把解鎖腳本的數(shù)據(jù)包含進(jìn)去,而比特幣節(jié)點(diǎn)等中間人可以微調(diào)解鎖腳本中的內(nèi)容, 導(dǎo)致交易ID與用戶預(yù)期的不符合。其實(shí)這是比特幣在早期設(shè)計(jì)時(shí)考慮不周留下的歷史包袱。

后來(lái)推出的隔離見(jiàn)證/SegWit升級(jí),其實(shí)就是把交易ID和解鎖腳本徹底解耦,計(jì)算交易hash時(shí)不需要把解鎖腳本數(shù)據(jù)包含進(jìn)去。遵循SegWit升級(jí)的UTXO鎖定腳本,會(huì)默認(rèn)在首位設(shè)置一個(gè)叫“OP_0”的操作碼,充當(dāng)標(biāo)記;而對(duì)應(yīng)的解鎖腳本,從SigScript更名為了Witness(見(jiàn)證)。

遵循隔離見(jiàn)證規(guī)則后,交易延展性問(wèn)題會(huì)被妥善解決,你不需要擔(dān)心發(fā)送給比特幣節(jié)點(diǎn)的交易數(shù)據(jù)被微調(diào)。當(dāng)然我們不需要想的太復(fù)雜,P2WSH的功能和前面談到的P2SH并無(wú)本質(zhì)差異,你可以在UTXO鎖定腳本中預(yù)設(shè)一個(gè)腳本哈希,等解鎖腳本的提交者把hash對(duì)應(yīng)的腳本內(nèi)容提交到鏈上并執(zhí)行。

如果你要實(shí)現(xiàn)的腳本內(nèi)容特別龐大,包含特別多的代碼,通過(guò)常規(guī)的方法無(wú)法把完整的腳本提交到比特幣鏈上(每個(gè)區(qū)塊有大小限制)。那怎么辦?這就需要借助Taproot,針對(duì)上鏈的腳本內(nèi)容進(jìn)行精簡(jiǎn)化處理,而B(niǎo)itVM正是基于Taproot構(gòu)建出的復(fù)雜方案。

免責(zé)聲明:本文只為提供市場(chǎng)訊息,所有內(nèi)容及觀點(diǎn)僅供參考,不構(gòu)成投資建議,不代表本站觀點(diǎn)和立場(chǎng)。投資者應(yīng)自行決策與交易,對(duì)投資者交易形成的直接或間接損失,作者及本站將不承擔(dān)任何責(zé)任。!

你可能感興趣的文章

幣圈快訊

  • 韓國(guó)前仁川市長(zhǎng)柳正福遭警方搜查涉嫌隱匿2.1萬(wàn)枚加密資產(chǎn)逃避財(cái)產(chǎn)申報(bào)

    2026-07-28 10:02
    有人舉報(bào)稱(chēng)韓國(guó)仁川市長(zhǎng)候選人被指虛報(bào)財(cái)產(chǎn),疑涉配偶加密資產(chǎn)未申報(bào)。
  • AI機(jī)器人公司Enigma完成7100萬(wàn)美元種子輪融資IndexVentures等領(lǐng)投

    2026-07-28 10:01
    據(jù)Ventureburn報(bào)道,AI機(jī)器人公司Enigma完成7100萬(wàn)美元種子輪融資,由IndexVentures和RibbitCapital聯(lián)合領(lǐng)投,ConvictionPartners及OpenAI、Anthropic、DeepMind、xAI、Cognition、Wiz等AI領(lǐng)域個(gè)人投資者參投。該公司成立于11個(gè)月前,此輪為物理AI領(lǐng)域規(guī)模最大的種子輪之一,資金將用于擴(kuò)大研究和工程團(tuán)隊(duì)、提升算力基礎(chǔ)設(shè)施并增加真實(shí)環(huán)境部署。Enigma已開(kāi)發(fā)超100套自研機(jī)器人系統(tǒng),運(yùn)營(yíng)于加州和以色列,并開(kāi)放遠(yuǎn)程交互以收集訓(xùn)練數(shù)據(jù)。公司認(rèn)為機(jī)器人普及的最大障礙是人機(jī)交互方式,其平臺(tái)采用硬件無(wú)關(guān)策略,可適配不同制造商的機(jī)器人設(shè)備。
  • Hyperliquid平臺(tái)鯨魚(yú)當(dāng)前持倉(cāng)52.21億美元多空持倉(cāng)比為0.97

    2026-07-28 10:00
    據(jù)Coinglass數(shù)據(jù),Hyperliquid平臺(tái)鯨魚(yú)當(dāng)前持倉(cāng)52.21億美元,多單持倉(cāng)25.76億美元,持倉(cāng)占比49.33%,空單持倉(cāng)26.46億美元,持倉(cāng)占比50.67%。多單盈虧-1.38億美元,空單盈虧6,614.68萬(wàn)美元。 其中,巨鯨地址0xb83d..36在1869.41美元價(jià)格5倍全倉(cāng)做空ETH,目前未實(shí)現(xiàn)盈虧-36.84萬(wàn)美元。
  • 韓股暴跌拖累兩倍做多海力士暴跌超21%兩倍做多三星電子跌超17%

    2026-07-28 09:59
    7月28日,港股市場(chǎng)存儲(chǔ)芯片股集體重挫,其中,南方兩倍做多海力士暴跌超21%,南方兩倍做多三星電子跌超17%,兆易創(chuàng)新跌超11%,瀾起科技跌超9%。隔夜美股芯片股遭遇劇烈重挫,引發(fā)連鎖反應(yīng),拖累今日的日韓股市全線崩盤(pán)。韓國(guó)綜合指數(shù)一度跌超8%,海力士跌超11%,三星電子跌超9%。消息面上,英偉達(dá)不僅與SK集團(tuán)達(dá)成5000億美元AI合作,更在探討為OpenAI提供高達(dá)2500億美元的融資兜底擔(dān)保,此舉重燃了市場(chǎng)對(duì)AI資本支出循環(huán)現(xiàn)金流邏輯的疑慮。英偉達(dá)5年期CDS單日飆升14bp至82bp,創(chuàng)歷史最大日內(nèi)漲幅。市場(chǎng)意識(shí)到,英偉達(dá)已不再是無(wú)風(fēng)險(xiǎn)、躺賺的“純粹賣(mài)鏟人”,而是降級(jí)為整條AI激進(jìn)負(fù)債鏈上的隱性無(wú)限責(zé)任擔(dān)保人。一旦下游AI應(yīng)用變現(xiàn)不及預(yù)期,英偉達(dá)將被迫承擔(dān)致命的連帶債務(wù)風(fēng)險(xiǎn)。
  • 幣安BTC散戶流入約為巨鯨兩倍巨鯨流入較近期高點(diǎn)下降44.3%

    2026-07-28 09:56
    CryptoQuant分析指出,幣安比特幣流入數(shù)據(jù)出現(xiàn)顯著分化。巨鯨30日總流入為39億美元,較6月12日峰值約70億美元下降44.3%;散戶流入為78億美元,較6月5日約100億美元僅下降22%。散戶流入目前約為巨鯨的兩倍,差距達(dá)39億美元。分析指出,這種分化恰逢美聯(lián)儲(chǔ)FOMC會(huì)議前夕。聯(lián)邦基金期貨目前定價(jià)約36%概率加息25個(gè)基點(diǎn),維持3.5-3.75%目標(biāo)區(qū)間不變是更可能的情景。從比特幣角度看,意外加息可能支撐美元和國(guó)債收益率,增加風(fēng)險(xiǎn)資產(chǎn)波動(dòng)性;若加息暫停伴隨偏鴿派指引,則可能部分緩解宏觀壓力。周三美聯(lián)儲(chǔ)決議將成為測(cè)試這一分化是否持續(xù)或開(kāi)始收斂的關(guān)鍵變量。
  • 查看更多
更多

熱門(mén)幣種

  • 幣種
    最新價(jià)格
    24H漲跌幅
  • bitcoin BTC 比特幣

    BTC

    比特幣

    $ 63231.87¥ 427839.47
    -3.03%
  • ethereum ETH 以太坊

    ETH

    以太坊

    $ 1875.52¥ 12690.14
    -3.69%
  • tether USDT 泰達(dá)幣

    USDT

    泰達(dá)幣

    $ 0.999¥ 6.7594
    +0%
  • binance-coin BNB 幣安幣

    BNB

    幣安幣

    $ 565.13¥ 3823.78
    -1.43%
  • usdc USDC USD Coin

    USDC

    USD Coin

    $ 1.0008¥ 6.7716
    +0%
  • ripple XRP 瑞波幣

    XRP

    瑞波幣

    $ 1.0578¥ 7.1572
    -4.47%
  • solana SOL Solana

    SOL

    Solana

    $ 73.2039¥ 495.31
    -4.26%
  • tron TRX 波場(chǎng)

    TRX

    波場(chǎng)

    $ 0.3236¥ 2.1895
    -2.41%
  • hyperliquid HYPE Hyperliquid

    HYPE

    Hyperliquid

    $ 56.2874¥ 380.85
    -5.34%
  • dogecoin DOGE 狗狗幣

    DOGE

    狗狗幣

    $ 0.069747¥ 0.4719
    -4.3%
花垣县| 光山县| 米林县| 民和| 彩票| 涞源县| 普安县| 万盛区| 中超| 湘阴县| 商洛市| 昌宁县| 盐源县| 百色市| 连江县| 灯塔市| 嘉义市| 始兴县| 姜堰市| 巴马| 镇平县| 隆德县| 武城县| 正宁县| 卢龙县| 宁德市| 建阳市| 漯河市| 安福县| 南陵县| 宽甸| 雷州市| 太原市| 册亨县| 明光市| 伊通| 政和县| 青铜峡市| 紫金县| 鞍山市| 平潭县|