比特幣交易所 比特幣交易所
Ctrl+D 比特幣交易所
ads

一文解讀比特幣升級提案 Taproot:P2SH、MAST 和 Schnorr 簽名_BTC

Author:

Time:1900/1/1 0:00:00

本文將討論比特幣升級提案?Taproot?,該提案將引入很多全新功能。本文將從各個技術層面分析Taproot、介紹本次升級中涉及的技術以及這些技術會給比特幣用戶帶來哪些好處。

什么是Taproot?

Taproot由BitcoinCore貢獻者?GregoryMaxwell?于2018年首次提出。該實現目前尚在開發中。如果沒有Taproot,這些復雜的交易需要多個事務來完成,因此很容易失敗。

Taproot可以讓復雜交易像單個比特幣交易那樣執行,從而增強比特幣的隱私性。

Taproot升級包括三個重要的技術變化,用來增強比特幣的可擴展性、隱私性和靈活性。

P2SH

MAST

Schnorr簽名

我們將從技術層面討論這三個概念,從而了解Taproot升級會給比特幣用戶帶來哪些好處。

P2SH

比特幣地址是一個包含字母和數字的字符串。用戶可以將其分享給其他人,以便從后者那里接收BTC。比特幣交易主要有兩大標準:Pay-to-PubKeyHash(P2PKH)和Pay-to-ScriptHash(P2SH)。

在討論P2SH(PayToScriptHash)和P2PKH(Pay-To-PubKeyHash)這兩個概念之前,我們首先熟悉一下關于比特幣的背景知識:

MakerDAO已通過并執行提高DAI儲蓄率、提高Spark Protocol債務上限等的執行提案:8月7日消息,據MakerDAO治理頁面顯示,北京時間8月5日,MakerDAO社區投票通過增強DSA激活、SparkProtocol債務上限提高、RWA金庫更新、2023年第二季度AVC會員補償、Monetails Clydesdale的DAO決議、啟動項目資金、Spark Proxy Spell執行的執行提案。該提案已于北京時間8月7日執行。

除了將DAI存款利率上調至8%外,其他協議主要變化包括:Spark Protocol直接存款模塊最大債務上限從2000萬枚DAI增加至2億枚DAI;RWA004-A債務上限從700萬枚DAI降至0DAI、RWA002-A協議實施更新;134.1枚MKR分配給AVC會員;Spark Protocol更新DAI利率策略,并將DAI市場貸款價值比(LTV)從74%降至0.01%,DAI清算門檻從76%降至0.01%,WETH市場準備金率從15%降至5%,WETH的variableRateSlope1從3.8%降至3%。[2023/8/7 21:28:45]

在比特幣網絡中,比特幣的形式是UTXO。UTXO是?UnspentTransaction(TX)Output的縮寫,即,比特幣交易執行后形成的面額不定的單元。例如,你的比特幣錢包里有10BTC,你想要轉5BTC給朋友。比特幣區塊鏈的處理方式與眾不同。它會把10BTC都花掉,將5BTC轉入你朋友的錢包,剩下5BTC轉入你自己的錢包。這下,你和你的朋友各持有未花費的5BTC。

知情人士:Moon Pay在2021年底向名人贈送BAYC以提高其知名度:6月9日消息,據The Block援引知情人士報道,加密支付平臺Moon Pay在2021年底向一些名人贈送BAYC NFT作為禮物,并未期待付款,而是希望提升其知名度。不過,Moon Pay發言人否認免費向名人提供BAYC,而是向名人客戶全額收取NFT價格,顧客需要為服務付款。

另一位發言人拒絕回應發票何時發送以及所有的Moon Pay客戶是否都已支付賬單。此外,Moon Pay為收到其BAYC NFT的高凈值人士創建了VIP禮賓服務。[2023/6/9 21:26:33]

比特幣使用腳本來規定花費BTC/UTXO的條件。腳本被用作一種鎖定機制。

BTC鎖定在腳本中。當腳本返回成功時,BTC就會解鎖。

任何人都可以向任意比特幣地址發送BTC。只有當腳本中定義的某些條件得到滿足時,鎖定的BTC才可以被花費出去。腳本決定了接收方可以如何花費收到的BTC。發起交易時,發送方會在交易中放入一個叫作“PubKeyScript”的腳本。接收方需要生成一個“簽名腳本”,是滿足PubKey腳本的數據參數的集合。簽名腳本在代碼中又被叫作“scriptSig”。

在上述例子中,你在向朋友發送5BTC時,鎖定腳本也會包含在這個交易內。如果你的朋友想要花費這些BTC,必須生成滿足鎖定腳本中規定條件的解鎖腳本。

0x8afa開頭地址通過1inch買入5522枚以太坊:5月20日消息,據推特用戶余燼監測,0x8afa 開頭地址在過去半小時內花費了約 1003 萬枚 DAI,通過 1inch 買入約 5522 枚以太坊。[2023/5/20 15:15:57]

Pay-to-PubKeyHash(P2PKH)

Pay-to-PubKeyHash是一種傳統的比特幣地址格式。其地址以數字1開頭。

只有P2PKH地址的所有者才能通過提供公鑰哈希值和私鑰簽名來解鎖PubKey腳本并花費收到的BTC。私鑰是用來證明公鑰哈希值的所有權的。

正如我們上文討論過的那樣,腳本定義了特定地址上的BTC在什么條件下可以花費。當規定條件得到滿足且通過網絡驗證時,該地址上的BTC就會被解鎖以供花費。

這一流程是如何運作的?——接收方首先生成PubKey腳本并將其分享給發送方。發送方在發送BTC時將該PubKey腳本添加到交易中。收到BTC時,如果接收方想要解鎖這些BTCUTXO,就要提供公鑰哈希和私鑰簽名,并滿足PubKey腳本中提到的條件。

例如,這些條件可以是:

解鎖BTC至少需要兩個簽名。

提供口令才能解鎖。

BTC需要等待一段時間才能解鎖。

Super League收購元宇宙體驗開發工作室Melon:5月9日消息,元宇宙公司Super League收購元宇宙體驗開發工作室Melon,將為希望在游戲元宇宙平臺上建立社區的品牌提供服務。

Melon專注于在Roblox中構建體驗,與Chipotle、Mattel和PacSun等品牌建立了合作關系。Super League Gaming在開放世界游戲平臺上構建和運營游戲網絡、貨幣化工具和內容渠道,為開發者、玩家和粉絲提供支持。[2023/5/9 14:52:38]

上述這類情況可以作為解鎖BTC的條件。

發送比特幣時,發送方需要在交易中包含?PubKey腳本。因此,這會增加交易的體積,產生的交易費比普通交易高出5倍左右。

這里,發送方必須承擔額外的成本。Pay-to-ScriptHash可以幫助發送方免去這一額外成本。

Pay-to-ScriptHash(P2SH)

PayToScriptHash(P2SH)可以幫助發送方免去額外的成本,并將這一責任轉移到真正需要使用鎖定腳本中規定條件的接收方身上。Pay-to-ScriptHash比特幣地址是以數字3開頭的。

在這個交易標準下,發送方不需要將很長的PubKey腳本放到他們的交易中。這里,鎖定腳本被替換成了贖回腳本哈希值。贖回腳本哈希值由贖回腳本計算而來。贖回腳本與PubKey腳本類似,包含接收方在花費未花費輸出之前必須滿足的條件。發送方只需在交易中注明贖回腳本的哈希值。贖回腳本哈希可以翻譯成標準比特幣地址,發送方無需進行任何特殊操作或支付額外費用即可將BTC發送到這些地址。

歐易OKX已恢復多個幣種充提服務,將于今日15:00恢復所有代幣充提:金色財經報道,據歐易OKX官方公告消息,目前歐易所使用的云服務商機房故障已修復,歐易已于北京時間2022年12月19日12:00恢復BTC(主網)、ETH(主網)、USDT(ERC20)、USDC(ERC20)及其他ERC20代幣、TRX(主網)、USDT(TRC20)、USDC(TRC20)及其他TRC20代幣的充提服務。歐易將于北京時間2022年12月19日15:00恢復所有代幣的充提服務。[2022/12/19 21:53:32]

接收方想要解鎖這個P2SH地址上的BTC時,需要生成具有相同哈希值的贖回腳本并將其包含到交易內。因此,接收方用來解鎖UTXO的交易大小會增加,執行交易的成本也會增加。

例如,Alice想要發送10BTC給Bob。Alice必須將贖回腳本哈希包含到交易內。首先,Bob先生成一個贖回腳本,然后將贖回腳本的哈希值發送給Alice,以便Alice將該哈希添加到交易內并發起交易。如果Bob想要花費該UTXO,必須生成相同哈希值的解鎖腳本,并滿足腳本中提到的條件。

別忘了,Alice只需將贖回腳本的哈希值而非整個腳本添加到交易內。因此,Alice無需承擔額外的費用。

使用哈希值取代冗長的腳本。

發送方可以在不知道腳本中規定的花費條件的情況下,在交易中放入任意數量的贖回腳本哈希值。

減輕了發送方的交易費負擔。

MAST

MAST是?MerklizedAbstractSyntaxTree的縮寫。

為什么要使用MAST?如果你想花費P2SH地址里的BTC,你必須生成具有相同哈希值的贖回腳本并將其包含到交易中。如果腳本中規定的花費條件太多,交易體積會變得格外龐大。MAST可以很好的解決這一問題。

默克爾抽象語法樹是默克爾樹和抽象語法樹的結合體。

就像PayToScriptHash(P2SH)是給哈希值為某某的腳本付款那樣,MAST是給哈希值為某某的默克爾根付款。MAST是把一個大的條件集合中的各個條件組裝成一棵哈希樹,而默克爾樹的根值是一個哈希值,由所有條件哈希而成。

默克爾根和哈希樹是如何生成的?

首先分別對所有腳本做哈希計算;然后將計算得到的哈希值與相鄰哈希值組合起來進行哈希計算,生成一組新的哈希值。不斷重復這個兩兩哈希計算的過程,直到計算出最后一個哈希值為止。這個哈希值就是默克爾根。

假設共有四組條件。首先,分別計算出這四組條件的哈希值;再將這四個哈希值兩兩配對,計算出兩個哈希值;最后,把這兩個哈希值組合起來做哈希計算,生成最終的哈希值。最后這個哈希值就是默克爾根。

這個默克爾根可以翻譯成一個能夠接收付款的有效比特幣地址,即,默克爾比特幣地址。默克爾比特幣地址有很多優點,最主要的優點是無需知曉所有腳本單元就能驗證某個腳本是否位于這棵默克爾樹上。這個技術叫作默克爾證明,可以用來輕松驗證一個比特幣UTXO是否包含某些解鎖條件。

在MAST中,BTC與一棵默克爾樹綁定。這棵默克爾樹指定了可以解鎖未花費BTC的所有復雜條件。每個葉節點都代表著一個條件。為了解鎖BTC,你必須生成一個滿足默克爾樹上某個分支所代表的條件的腳本。僅使用默克爾根即可驗證這個條件是否屬于原始條件集合。一旦比特幣區塊鏈網絡發現某個腳本屬于這個默克爾根,網絡就會知道這個腳本是這些比特幣的鎖定條件并開始驗證解鎖腳本。因此,我們無需生成完整的腳本并將其包含到交易內,即可花費以MAST鎖定的BTC。這有助于減少BTC交易的體積。

Schnorr簽名

在密碼學中,Schnorr簽名是由?ClausSchnorr?提出的Schnorr簽名算法生成的數字簽名。Schnorr簽名算法是一種以簡單聞名的數字簽名方案,通過將多個簽名聚合成單個簽名以優化驗證和認證過程。該方案適用于多簽交易。

若想執行交易,你需要使用私鑰簽名該交易,以證明你是某個公鑰背后的BTC的所有者。但是,若想執行多簽交易,你必須提供多個簽名。這些簽名會占據額外的空間。

以12/20多簽交易為例。12/20指的是執行該交易至少需要提供20個簽名中的任意12個。簽署交易時,簽名也會存儲在區塊內。假設1個簽名的大小是5字節,12個簽名需要占用區塊60字節的內存,100個簽名需要占用500字節的內存。這會增加內存用量。Schnorr簽名恰好可以解決這一問題。

為了理解Schnorr簽名,我們來看兩個例子:

另一種情況是多簽交易。假設你需要100個簽名且每個簽名的大小是5字節,Schnorr簽名方案可以將這100個簽名合并成一個大小為64字節的Schnorr簽名。省下436字節的內存可以用來存儲更多交易。

比特幣升級?——Taproot計劃將上述概念引入比特幣區塊鏈,增強其可擴展性、隱私性和靈活性。

Taproot是BitcoinCore貢獻者GregoryMaxwell在2018年提出的比特幣升級提案。

Taproot讓復雜的交易如多簽名交易、時間鎖交易看起來如同普通的比特幣交易,增強了比特幣的隱私性。

Taproot升級主要包含3個技術概念——P2SH、MAST和Schnorr簽名。

比特幣使用腳本注明花費BTC/UTXO的條件。

PayToScriptHash(P2SH)可以幫助發送方免去額外的交易費,并將這一責任轉移到真正需要使用鎖定腳本中規定條件的接收方身上。

使用MAST,比特幣可用默克爾樹抽象語法樹來鎖定。默克爾樹決定了可以解鎖未花費BTC的所有復雜條件。默克爾抽象語法樹被提議引入比特幣區塊鏈,以減少BTC交易的體積,使得接收方無需在交易中附加冗長的腳本。僅使用默克爾根即可驗證接收方生成的腳本是否屬于原始條件集合。

Schnorr簽名可以將多個簽名合并成單個簽名。

原文鏈接:

https://b10c.me/blog/004-the-incomplete-history-of-bitcoin-development/

作者:?0xB10C

Tags:BTC比特幣PAYPRObtc期貨交易平臺bcd比特幣鉆石長期持有BITPAY幣Folder Protocol

比特幣交易所
DeFi 巨鯨 0xb1 地址背后團隊將推出新 DeFi 應用 Fodl Finance_EFI

鏈聞消息,DeFi巨鯨0xb1地址背后團隊「0xb1.484|四八四」宣布將在接下來幾周推出一個新的DeFi應用FodlFinance.

1900/1/1 0:00:00
關于移除部分交易對的公告(0927)_EOS

尊敬的用戶: BiKi平臺將定期審核上線的數字資產,基于項目的流動性、交易量、用戶市場反饋等方面進行評估.

1900/1/1 0:00:00
AOFEX平臺幣OT(Option Token)第15期回購銷毀明細公示_FEX

尊敬的用戶: AOFEX?交易所每月使用手續費盈利的20%,從二級市場中回購OT並銷毀。現將OT第15期回購銷毀明細公示如下:本期回購銷毀執行時間為:2021年9月30日17:00回購銷毀數量:.

1900/1/1 0:00:00
【重要通知】關于BitMart合約系統升級的公告_ART

親愛的BitMart用戶:為了提升服務質量,進一步優化交易體驗,BitMart平臺計劃將于2021年9月29日15:00(香港時間)進行預計為期2小時的合約系統升級維護.

1900/1/1 0:00:00
【活動】BAAS充值&交易 瓜分$20,000美金獎勵!_BAA

尊敬的BitGlobal用戶:為慶祝BAAS正式上線BitGlobal,我們將舉行“BAAS充值&交易瓜分$20,000美金獎勵!”福利活動.

1900/1/1 0:00:00
BKEX Global 關于上線 BNX(BinaryX)并開放充值功能的公告_USD

尊敬的用戶:?????????????BKEXGlobal即將上線BNX,詳情如下:上線交易對:BNX/USDT幣種類型:BEP20?充值功能開放時間:已開放交易功能開放時間:2021年10月4.

1900/1/1 0:00:00
ads