以太幣交易所 以太幣交易所
Ctrl+D 以太幣交易所
ads
首頁 > FIL幣 > Info

干貨 | 什么是比特幣默克爾化抽象語法樹?_AST

Author:

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

默克爾化抽象語法樹是一項為比特幣提議的升級,可以實現更小的交易體積、更好的隱私性,以及更大的智能合約。在本文中,我們會解釋MAST的基本原理,講解其潛在好處,并總結目前一些包含這項技術的提案。

問題:沒用到的腳本數據

中本聰給了比特幣一個有趣的特性,是他沒有寫在比特幣白皮書里的。除了可以通過公鑰來接收比特幣、用私鑰數字簽名來花費比特幣,用戶還可以編寫程序,當成動態的公鑰和簽名來用。

當你指定一個腳本后——這在每一種比特幣錢包里都是基本操作——由比特幣網絡強制執行的比特幣協議就不會讓任何人花費這個腳本所控制的比特幣,除非腳本返回True。這讓你可以指定資金的花費條件,稱為“encumbrances”,比如要求花費的交易一定要得到你的私鑰簽名。

更加復雜的財產條件也是有可能實現的,比如下面這個例子,我們會用它貫穿整篇文章:Alice希望能夠隨時花費她的比特幣,但如果她連續三個月沒有花費自己的比特幣,她希望自己的兄弟姐妹Bob和Charlie擁有自己的比特幣,在任何兩人能達成一致的地方使用這些財產。

下面這個條件腳本就實現了上文所說的目標,它不僅納入了Alice的公鑰,但也加入了以下條件性邏輯:一個超時條件,以及Bob和Charlie的公鑰。

在當前的比特幣協議中,上述所有的數據都必須添加到區塊鏈中,在Alice的比特幣花費的時候,也包括在特定的花費行為中完全無關的腳本部分,也要曝光。就比如在Alice花費自己的比特幣時Bob和Charlie的公鑰也要曝光。

Ronin Network:委托人總量超1萬,首批RON質押獎勵申領已啟動:金色財經報道,據Ronin Network官推發布最新數據顯示,RON質押總量已超過1億枚,截至目前達到1.14億枚,委托人超過1萬(當前為10237個),首批RON質押獎勵申領已啟動。

此前消息,Ronin Network于4月12日上線代幣質押獎勵,委托人每24小時可以領取一次獎勵。[2023/4/13 14:00:49]

未使用的條件數據增大了交易的體積,也使用戶在必要之外曝光了更多的隱私,同時,也使體積而非驗證代價成為智能合約大小的主要限制因素。MAST旨在改善這些情況,辦法就是移除在區塊鏈上直接包含未使用的腳本部分的需要。

MAST初始構想

MAST?1?背后的觀念來自于兩種久已存在的概念,?抽象語義樹和默克爾樹。抽象語義樹是一種通過將一個程序分割成獨立的小塊來描述程序的方法,這樣會讓程序變得更容易分析和優化。為了生成一個AST,你需要把所有的方程與其前提用箭頭連接起來,直至所有的前提都被找出。下圖即是上文示例腳本的AST。

另一方面,默克爾樹則可用來驗證某個元素是否是屬于某個集合,且無需知曉整個集合的全貌。舉個例子,比特幣的簡易支付驗證錢包就使用默克爾樹來驗證某筆交易是否存在于某個區塊中,這樣無需下載完整的區塊,可以節省帶寬。

美聯儲副主席:加密貨幣不太可能取代傳統貨幣:10月13日消息,美聯儲負責監管的副主席Michael Barr周三在為DC Fintech Week活動準備的講稿中表示,“加密貨幣不太可能取代傳統貨幣”。此外,還表示銀行在嘗試這個資產類別時應謹慎行事,他擔心銀行參與加密貨幣帶來的“新風險”,他認為所謂的穩定幣最終可能會對金融穩定構成風險,監管機構需要在它們更普及之前設置安全護欄。(彭博社)[2022/10/13 14:26:30]

要生成一棵默克爾樹,先要把每個元素都各自哈希一次,生成各自唯一的標識符;然后這些標識符配對之后再次哈希,生成這一對標識符的標識符;如此不斷重復,直至只剩下一個標識符,稱為“默克爾根”,它就是一個短小精悍、但是標記了整個集合的標識符了。

在驗證某個元素屬不屬于某個集合時,擁有整個集合的人可以向你提供從那個元素到默克爾根路徑上的所有標識符。這樣就能證明,這個元素確實在這個集合內。

簡而言之,AST背后的技術讓你可以把一個程序分成多個小塊,而默克爾樹讓我們可以驗證這些小塊確實是一個完整程序的一部分,且不必暴露整個程序。這就是MAST的基本原理,可以讓花費者用一個默克爾證明來替換在單次交易中沒有用到的條件——減少交易體積、提高隱私性,并支持更大的合約。

MAST的一個例子

我們以上文的財產條件為例,為我們希望的兩種可能場景分割為兩個子腳本:

Alice可以隨時花費自己的比特幣或者,如果連續三個月使用Alice的簽名來花費,則需要Bob和Charlie的簽名來花費此中的比特幣基于這兩個獨立的子腳本,創建一棵默克爾樹:

元宇宙游戲Roblox:俄羅斯市場活躍玩家用戶量突破200萬:金色財經報道,元宇宙游戲巨頭Roblox利用Electronic ArtsInc.、Ubisoft Entertainment SA(育碧)和Nintendo Co.等公司撤出俄羅斯的契機在當地市場積極拓展,目前其活躍玩家用戶量已經突破200萬,而且還與Gucci、Ralph Lauren和Chipotle等品牌達成了元宇宙廣告合作計劃,包括推出奢侈品中心Gucci Twon和虛擬餐廳Chipotle。(beincrypto)[2022/9/11 13:22:48]

這棵默克爾樹的樹根最終標識了Alice的完整財產條件,而且只有32字節的體積。此后,Alice可以使用一個替代性的條件腳本,聲明:一筆花費交易,只有提供其中一個子腳本連接到默克爾根的證據、并且子程序返回True的時候,才是有效的。

子腳本的默克爾證據,形象地畫出來會像下圖這樣,就看用的是哪個子腳本了:

好處#1——更小的交易

我們先來看看MAST如何能讓復雜財產條件的用戶創建更小的交易。這是MAST給我們帶來的第一個好處。

在上文的例子中,我們使用了一個具備兩個子腳本的財產條:要么Alice自己花自己的錢,要么Bob和Charlie在等待三個月之后一起花她的錢。我們來設想一個無限延伸的版本:其第三個子腳本指明,三個月零一天后,Dan和Edith可以花費此中的資金;第四個子腳本指明,三個月零二天后,Fred和George可以使用這筆資金;等等等等

Synthetix創始人發起提案SIP-276,擬將SNX代幣總供應量上限設為3億枚:8月26日消息,合成資產協議Synthetix創始人Kain Warwick提出了一項新的治理提案SIP- 276,計劃將SNX代幣的總供應量上限設為3億枚,以結束通脹。這一SIP限制了SNX 3億個代幣的供應,并將代幣供應提升到元治理狀態,這意味著任何未來對代幣供應的更改都需要Spartan理事會的一致投票。目前的通貨膨脹已經使總供應提高到2.93億枚SNX。在接下來的十周內,還將鑄造約6748739枚代幣,直到總供應量達到3億枚SNX。

Warwick解釋稱,SNX的獎勵通脹模式最初是為了“引導網絡”,但是,他認為這不再是必要的,因為它們可以從原子交換中產生可持續的費用收益。[2022/8/26 12:50:01]

這個思維實驗可以使我們得到下面的這張圖,它顯示了,子腳本的數量與需要加入區塊的條件數據量,在有和沒有MAST時候的關系。

只有這些信息,你是沒法知道Alice以外是否還有人能花費這里的資金、以及他們花費是需要面對什么約束條件的。你可以從MAST中猜測可能有一些別的條件,但也僅限于猜測而已——Alice可能只是假裝她的默克爾樹還有其它可以花費的部分。

對應地,如果你看到的是另一個分支,你不會知道這筆資金在超時之前是否能花費,也不知道是不是只需一把私鑰就能花費它。你同樣可以猜測存在其它的花費條件,但你沒法在區塊鏈上確證這一點。

保證未使用的財產條件不曝光在某些時候非常有用,比如某些商人可能希望自己的智能合約盡可能保密,不要被潛在的競爭對手看到。這一點與某些標榜自己是專為智能合約設計、但實際上又不能為這些合約提供隱私性的山寨幣恰好相反。

BitPay 與 Cardlytics 合作提供現金返還獎勵:金色財經報道,加密貨幣支付服務提供商 BitPay 今天在其 BitPay 預付卡中增加了一項獎勵計劃。現金返還獎勵平臺 Cardlytics(納斯達克股票代碼:CDLX)正在管理獎勵,BitPay 持卡人每次在參與的零售商處使用卡時自動獲得高達 15% 的購物現金返還。

BitPay 卡使客戶能夠立即將加密貨幣轉換為美元,然后將其加載到卡上,并且可以在世界各地接受萬事達卡的任何地方使用。客戶還可以使用這些卡在線購物和從自動柜員機提取現金。虛擬卡可用于移動設備上的 Apple Pay 和 Google Pay。(finextra)[2022/8/11 12:17:11]

隱私性也可以為所有的比特幣用戶提供額外的好處,即使某些用戶根本不在乎財產條件的隱私性。假設從本文一開始,Alice就是唯一一個使用非MAST條件模板的人。因為所有條件都是公開的,那么任何人都可以跟蹤Alice的花費行為,只需在區塊鏈上觀察這個模板被使用的情形即可,這樣Alice的隱私就蕩然無存。

任何讓識別特定用戶更容易的設計,也會讓人們可以更容易地區別對待他們的比特幣和別人的比特幣,這叫做“同質性的缺失”。如果某些人知道了Alice的財產條件長什么樣,他們就可以賄賂或者強迫礦工不要打包這些人的交易,以此阻止Alice使用自己的比特幣。

MAST不能完全解決這個問題,因為Alice仍然需要揭示部分的產權負擔,但是許多別的復雜財產條件可以解析成少量的簡單MAST類型條件。

舉個例子,Alice的默認花費行為看起來就像其它只需提供單簽名的普通支付行為,所以Alice的基于MAST的交易跟其它基于MAST的單簽名交易就沒有任何分別。這反過來提高了Alice的隱私性,也提高了她的資金的同質性,以及所有使用基于MAST的單簽名條件的用戶的貨幣同質性。

MAST的這一好處還很有可能與其他提高比特幣隱私性和同質性的提議結合在一起。有些提議是讓某些復雜的財產條件可以用單簽名來使用,比如PieterWuille和GregoryMaxwell的“通用門限樹”、AndrewPoelstra的?“無腳本式腳本”,還用ThaddeusDryja的?“離散對數合約”;MAST就可以和這些方案相結合。

但即使這些方案都不能在比特幣上實現,MAST自身也能為復雜財產條件的用戶提供更多的隱私性和可互換性,不論是與當前相比,還是與支持用戶自定義智能合約的山寨幣相比。

好處#3——更大的智能合約

比特幣現在為單個腳本設置了三種不同的體積限制:裸露腳本大小不能超過1萬字節,在2010年7月引入;P2SH腳本不能超過520字節;segwit腳本不能超過1萬字節。我們把這幾個大小在上面的圖中展示出來:

可以看出來,即使是極端的無限延長的例子,MAST也比當前所有的機制支持更多的條件分支。實際上,MAST的擴展性非常之好,以至于即使你擁有現在可觀測的宇宙中所有的能量,若是只用來創建一棵標準的默克爾樹,其默克爾證據也只有8448字節。即使是這么大的默克爾證據,任何現在的筆記本電腦,都能在1毫秒之內完成驗證。

因為免去了全節點處理未使用的子腳本的任務,MAST還能幫比特幣腳本繞過別的一些硬性限制。在這一方面,MAST很好地保存和延伸了比特幣智能合約長期的設計目標,也就是合約的負擔應盡可能由合約的參與者承擔,而節點付出了帶寬、內存和處理能力,卻無法得到補償,因此應盡可能少承擔。

所以,MAST的真正成就不是讓比特幣用戶可以創建更加高級的合約,而是它打開了這種可能性,還不會給比特幣的節點增加新的負擔。

實現MAST:現有的多種提議

迄今為止,bitcoin-dev郵件組里提出了兩種方法在比特幣協議中啟用MAST,兩種方法都仍在草案階段,可能會有所變更。

第一種提議是JohnsonLau提出的?BIP114,使用了一個基于隔離見證的延伸特性,使得原生的隔離見證地址可以成為對MAST財產條件的默克爾根的承諾。花費交易因此可以從樹上選擇一個子腳本。

第二種提議是MarkFriedenbach提出的兩個未命名的BIP,它提高了腳本語言的靈活性,使得編程者可以編寫腳本來驗證基于MAST的財產條件。如果用Friedenbach更喜歡的方式來實現,那會讓比特幣現在支持的三種腳本類型都可以使用默克爾證據。

這幾種提議互有短長,但都提供了上文所說的MAST的好處。每一個都可以用軟分叉來激活。

結論:我們什么時候才能用上MAST?

上文我們講解了MAST的好處,也簡要提及了兩種在比特幣上實現MAST的提案,你可能也好奇,什么時候我們能用上MAST。遺憾的是,我也不知道。

從理念,到提案,到完整的實現,到提議軟分叉,到激活軟分叉,道阻且長。圍繞隔離見證升級,為期兩年的大戲已經很清楚地展現了這一點。

但從我的角度看,MAST背后的基本理念已經在比特幣技術社區中獲得了廣泛的支持,而對MAST最感興趣的開發者也會繼續開發,除非有人能證明這種技術完全不靠譜。有朝一日這些開發者成功提出可供同行審議的軟分叉代碼,就輪到讀者你們和其他比特幣用戶,來決定MAST是否能成為比特幣協議的一部分了。

延伸閱讀

BIP114:MerklizedAbstractSyntaxTree?byJohnsonLauTailCallSematics?byMarkFriedenbachMerkleBranchVerifyopcode?byMarkFriedenbachDiscussionatcore.techmeetup?byMarkFriedenbach(transcribedbyBryanBishop)MerklizedAbstractSyntaxTrees?byJeremyRubin,ManaliNaik,NityaSubramanianAnexplanationandjustificationofthetail-callandMBVapproachtoMAST?byMarkFriedenbachMakingMASTMeaningful?byBrianDeeryThenextsteptoimproveBitcoin?byAaronvanWirdum

致謝

感謝MarkFriedenbach、JimmySong和JohnNewbery對本文草稿的評論。當然,文中出現的所有謬誤,都屬于我的責任。

腳注

RussellO’Connor被公認為是第一個描述了MAST雛形的人,有些來源則還會加上PieterWuille。來源:PeterTodd、GregoryMaxwell和MarkFriedenbach。感謝JohnNewbery。

根據自由創作-分享協議4.0,保留署名權,且在后續分享和改編中應維持同樣的要求。

原文鏈接:

https://bitcointechtalk.com/what-is-a-bitcoin-merklized-abstract-syntax-tree-mast-33fdf2da5e2f

作者:DavidA.Harding

翻譯:?阿劍

Tags:ASTMASTMAS比特幣PASTA幣master幣種MASQ比特幣鉆石2000元

FIL幣
美國投資公司US Global Investors通過灰度比特幣信托獲得加密貨幣風險敞口_比特幣

據Cointelegraph消息,根據周一向美國證券交易委員會提交的文件顯示,截至6月30日,總部位于德克薩斯州的投資管理公司U.S.GlobalInvestors將價值超過566.

1900/1/1 0:00:00
區塊鏈周報丨成都:已確定隱私計算、區塊鏈等未來產業發展新賽道_區塊鏈

?本期更新周期:8月14日9:00-8月20日17:00??8月14日?Sat. 香港在數字人民幣的跨境支付結算等方面具有重要地位「迅鰩」消息,近日.

1900/1/1 0:00:00
Visa為NFT市場“添把火”,CryptoPunks 24小時交易額漲逾10倍,總交易額破8億美元續刷歷史新高_NFT

支付巨頭Visa是最新加入NFT熱潮的大公司,周一宣布于8月19日以近15萬美元的價格購買了CryptoPunk7610,這是NFT收藏品項目CryptoPunks3,840名“女性”朋克之一.

1900/1/1 0:00:00
有人愿意以8.8ETH購入一個辭職NFT,個人經濟靠譜嗎?_TER

一名叫做Hunter@hunterorrell的推特網友今天展示了其將辭職信制作成NFT,并上傳到FoundationApp上進行24小時競拍.

1900/1/1 0:00:00
開啟7億美元新融資的Reddit,會是下一個加密貨幣巨頭嗎?_RED

擁有如此巨量用戶和資金的Reddit正在逐步擁抱加密貨幣,一個加密巨頭或許正在誕生。來源:財聯社|區塊鏈日報 文|李紅暉 當地時間8月12日,美國社交網站Reddit宣布正在籌集由富達投資領投的.

1900/1/1 0:00:00
Poly Network黑客公開解答攻擊緣由:做黑客是因為好玩,轉移Poly的資產是為了資產的安全_POL

巴比特訊,北京時間8月11日11點57分,PolyNetwork通過以太坊網絡轉賬留言來回答一些關于發動這次攻擊的動機和緣由.

1900/1/1 0:00:00
ads