譯者注:以太坊網絡是一臺富狀態(stateful)的世界計算機,其狀態包括狀態余額、交易流水號(nonce)、合約代碼及合約存儲內容等。在技術上,這些狀態數據是靠一種叫做 “默克爾樹” 的結構來組織的,因此,以太坊世界狀態及其訪問、更新,便可表達為一棵默克爾樹及其訪問、更新。同樣地,所有跟默克爾樹相關的數據證明及驗證操作,都可以在以太坊協議的語境下被理解為狀態的證明及驗證操作。實際上,默克爾樹是我們理解、利用、改進以太坊協議不可或缺的一環。本文介紹了一種可以證明多個值存在于同一棵默克爾樹上的方法,因此也可以說,這就是在介紹如何證明多個以太坊狀態隸屬于同一時刻的世界狀態的方法。
稀疏默克爾樹多值證明(Sparse Merkle multiproofs)是對默克爾樹截頂(Merkle pollard)的一種替代方案,可在為證明一棵默克爾樹上存在多個值時提供空間上較為節約的證明。什么是默克爾證明、默克爾樹截頂,我已在前一篇··文章中解釋過了;推薦您先閱讀并理解這些概念再來閱讀本文。接下來,文本將用下圖的默克爾樹來解釋多值證明:
國務院:推進科普與區塊鏈技術深度融合:為貫徹落實黨中央、國務院關于科普和科學素質建設的重要部署,依據《中華人民共和國科學技術進步法》、《中華人民共和國科學技術普及法》制定《全民科學素質行動規劃綱要(2021-2035年)》,其中要求實施智慧科普建設工程。推進科普與區塊鏈等技術深度融合,強化需求感知、用戶分層、情景應用理念,推動傳播方式、組織動員、運營服務等創新升級,加強“科普中國”建設,強化科普信息落地應用,與智慧教育、智慧城市、智慧社區等深度融合。(新華社)[2021/7/10 0:40:52]
-圖 1:一棵默克爾樹-
稀疏多值證明最早由 Vitalik Buterin 提出。
多值證明
多值證明(multiproof)就是把一棵默克爾樹中的一組證明打包在一起,從而節省存儲空間。例如,下面是上圖所示默克爾樹的 3 條默克爾證明:
歐易OKEx將于3月18日推出DeFi系列科普視頻:據歐易OKEx官方消息顯示,歐易OKEx將正式推出DeFi系列科普視頻《歐易DeFi20講》,本系列節目由歐易OKEx亞太區CEO馬克金主講。該視頻首期將于3月18日11:00(HKT)推出,用戶可以在歐易OKEx官方學院、金色財經觀看。
《歐易DeFi20講》主要包含DeFi入門指南、全景解讀DeFi生態及如何參與DeFi三個篇章,可以輕松使用戶了解DeFi原理,洞察DeFi價值,掌握DeFi熱點,更多詳情請關注歐易OKEx官方學院。[2021/3/18 18:55:59]
IMF今日發布的加密貨幣科普視頻實為兩年前舊聞,且存在諸多疏漏:國際貨幣基金組織IMF今日在推特上發布了一條關于加密貨幣的科普視頻,這段時長兩分鐘的視頻最初發布于2018年6月。該視頻稱加密貨幣是“貨幣進化的下一步”,但沒有特別提到DLT、區塊鏈,甚至是代幣名稱等術語。BTC、XRP和ETH只出現在說明加密交易的圖形中。盡管這段視頻到目前為止已經獲得了超過13.7萬的點擊量和2900個贊,但來自加密社區的許多反應都是批評的,他們指出了信息中的漏洞和似乎具有誤導性的措辭。
Reddit用戶nanooverbtc稱:“他們犯了很多錯誤,比如把私鑰稱為密碼。”該視頻也沒有討論挖礦或加密貨幣供應。Kraken策略師Pierre Rochard等知名人士表示:“可證明的稀缺性是比特幣有趣的原因,你忘了提這一點。”(Cointelegraph)[2020/8/24]
-圖 2、3、4:分別對應 Banana、Peach 和Kumquat 的默克爾證明-
從上圖可以看出,3 個證明總共包含 9 個中間分支的哈希值(即由綠色標出的部分):每條證明有 3 個哈希值。將這 3 個證明組合成如下圖所示的結構,即成多值證明:
聲音 | CNBC主持人:加密貨幣最大的缺點之一就是難以向外行快速科普:CNBC主持人Ran NeuNer近期發推稱,加密貨幣最大的缺點之一就是很難向外行快速解釋。當人們要求我向他們解釋比特幣時,我知道他們至少需要一個小時才能真正理解。[2019/9/10]
-圖 5:對應 Banana、Peach 和Kumquat 的默克爾多值證明-
相比于單條證明時總共需要的 9 個中間分支哈希值,默克爾多值證明只需要 7 個哈希值,這就節省了存儲空間。
稀疏的多值證明
雖然默克爾樹的多值證明確實節省了一些存儲空間,但其中一些數據可以用其他方式得到,所以移除這些數據可以進一步節省存儲空間。(譯者注:可通過其他方式得到的數據,就不需要存儲在證明中,只要在需要時能夠得到即可)
金色財經獨家分析 監管機構、媒體、業界提示詐騙風險 區塊鏈科普道阻且長:新華社今日發文表示,近來“區塊鏈”類詐騙案件頻發,不法分子以“投資虛擬貨幣周期短、收益高、風險低”為借口,騙取用戶信任并誘使其轉賬進行投資。無獨有偶,同日消息,騰訊手機管家安全專家也提醒此類風險,并從技術上提出防騙建議。在美國,監管機構警示加密貨幣欺詐現象普遍承諾高收益而不披露潛在風險。金色財經獨家分析,不法分子假借新技術之名進行詐騙,一方面是抓住民眾趨利的心理,一方面反映出區塊鏈科普的欠缺。區塊鏈是新興科技和底層技術并有改變社會生產關系的潛力,應該進行系統性的科普教育,當前,部分大學已經開始設置了區塊鏈課程,但對于普通民眾仍然有科普的需求,人們應該了解到系統和正確的知識,不僅要了解區塊鏈的好,也要明確局限和弊端,以在高收益的誘惑下,保持清醒客觀。[2018/4/11]
以上圖的默克爾樹多值證明為例,許多中間分支的哈希值都可以被計算出來。比如驗證者將已知的值 Banana 和 Peach 通過哈希函數計算后,可以得到哈希值 bc4F…8d3f 和 59a0…421d。對于與根節點相連的兩個節點的哈希值 c0b7…da30 和 6ff9…8e3d,可以通過其孩子節點(與兩個節點直接相連的,并處于上方的節點)的哈希值計算出來。因為孩子節點的哈希值要么是證明中包含的,要么可以通過再上一層的哈希值計算出來。下圖中黃色的節點標記了這 4 個可由計算得到的哈希值:
-圖 6:默克爾樹多值證明中可以被移除的哈希值(見黃色標記)-
移除這些哈希值后,可以得到 默克爾樹中稀疏的多值證明,如下圖所示:
-圖 7:稀疏的默克爾樹多值證明-
稀疏的默克爾樹多值證明將需要包含的哈希值數量從 9 個減少到了 3 個。證明效果相同時,稀疏的多值證明也比默克爾截頂更有效,因為后者需要 6 個哈希值。
驗證者得到稀疏的多值證明后,為了驗證那些值是默克爾樹的一部分,需要執行以下的步驟(在默克爾樹中,依照從左到右,從上到下的順序):
(譯者注:“將某個值哈希”指:將值作為哈希函數的輸入,得到隨機的一串輸出)
將 Banana 哈希得到 bc4f…8d3f
將Peach 哈希得到 59a0…421d
將 Kumquat 哈希得到 2aab…6f791
將bc4f…8d3f 和 59a0…421d哈希得到 9c15…5dec
將 2aab…6f79 和 45cf…14d9哈希得到 a6e4…87df
將d596…66ef 和 9c15…5dec 哈希得到 c0b7…da30
將e336…ed14 和 a6e4…87df 哈希得到 6ff9…8e3d
將c0b7…da30 和 6ff9…8e3d 哈希得到 d576…ffd9
至此可以把最終得到的哈希值與默克爾樹的根哈希值做比較,如果二者一致,則認定所有的值都在該默克爾樹中。
下圖對比了默克爾樹中值和證明的數量變化時,默克爾樹截頂和默克爾樹中稀疏的多值證明在存儲默克爾證明時可以節約的空間存儲量:
值得注意的是,多值證明的節省量是近似值,因為能節省多少取決于被證明的值在默克爾樹中的位置以及可以被移除的中間分支哈希值個數。
對比稀疏多值證明與默克爾截頂
從上表中可以看出,稀疏的多值證明比默克爾樹截頂節省更多的存儲空間,那么為什么還要使用默克爾樹截頂呢?因為稀疏的多值證明相對于默克爾樹截頂,擁有一些不同的特性,主要有以下幾點:
在多值證明方法中,所有值的證明都是一起生成、一起得到驗證的;而在截頂方法中,各個值的證明是分別生成、分別驗證的(譯者注:生成及驗證時,對截頂來說,具體是哪個值,只需要這個值和相關的證明即可,對于多值證明,則需要把要驗證的多個值,以及多個值對應的證明都拿出來)
稀疏的多值證明在生成及驗證證明時,需要更多的內存和 CPU 周期
稀疏的多值證明很難并行地生成和驗證
稀疏的多值證明的大小是可變的,而默克爾樹截頂在給定默克爾樹和總證明數時,其證明大小是固定的
一些情況下,因為用于傳輸信息的編碼系統不同,可能會導致稀疏的多值證明比默克爾樹截頂需要更多的空間;因此建議使用之前做一下測試
總的來說,還要看單個應用的需求來決定哪個更合適。但是這兩種方法都比單獨的默克爾證明節省更多的存儲空間,因此當需要對同一棵默克爾樹提供多個證明時,可以考慮使用這兩種方法。
實現樣例
https://github.com/wealdtech/go-merkletree/ 提供了稀疏的默克爾樹多值證明的 Go 語言實現 。
不久前,白話區塊鏈發文稱全球有 2% 的人真正了解區塊鏈。按照全球 70 億人口計算,那么,全球真的有 1.4 億人參與數字貨幣和區塊鏈嗎?今天,我們不妨用一些數據粗略地估算下,區塊鏈行業到底有.
1900/1/1 0:00:00對于加密貨幣新手來說,我們知道眼見著加密貨幣價格暴跌到低位并不容易。即使對已經經歷了第二輪周期的老手來說,看著可能改變自己一生的錢變得越來越少也絕非易事.
1900/1/1 0:00:00文/David Hoffman Bankless聯合創始人 合并太讓人困惑! 讓我們從頭開始,一點點講述將要到來的加密貨幣歷史上最重要的事件之一.
1900/1/1 0:00:00本文介紹uniswap里的恒定乘積算法中的K值是怎么設計的。我們拿uniswap里的一個交易對,ETH/USDT來舉例說明K值是怎么設計的。 恒定乘積算法.
1900/1/1 0:00:00資產安全一直是區塊鏈投資中最重要的問題,而錢包,則是用來存儲資產,如果錢包出了問題,所有資產都將丟失,今天,我們來介紹錢包的種類.
1900/1/1 0:00:00什么是預言機? 區塊鏈系統中,除了能夠在鏈上記載數據,還能夠通過智能合約完成一些操作。例如,去中心化金融(DeFi)依賴區塊鏈系統進行加密貨幣的交易和借貸,而預言機作為從外部獲取數據的重要機制,
1900/1/1 0:00:00