在密碼學貨幣領域,默克爾樹是一種很高效的方法,用于證明一大組數值中存在一個特定的數值,而且將數據存儲量降到了最低。本文介紹了默克爾樹,并且展示了如何通過存儲多個層級的默克爾樹分支而非根節點的方式來大量減少重復證明”)。哈希函數
哈希函數可以把一段任意長度的數據變成一個固定長度的值。例如,下圖中“Apple”和“Orange”的哈希值如下所示:
-哈希值-哈希函數有很多特征,其中最顯著的兩點是:即使輸入值僅有毫厘之差,得到的哈希值也會迥然不同;從數學上來說很難根據哈希值倒推出輸入值。默克爾樹
默克爾樹指的是將多個輸入值和它們的哈希值結合起來壓縮成某個固定長度的值。默克爾樹的頂端是各種輸入值,被稱為“葉節點”。每個葉節點經過哈希得到上一層分支,相鄰兩個分支拼接在一起之后哈希得到中間支。一層一層哈希之后,最后得到一個哈希值,即默克爾根節點。默克爾樹的示例圖如下:
蘋果CEO庫克:我還不確定普通人能說清楚元宇宙到底是什么:金色財經報道,最近蘋果首席執行官蒂姆 · 庫克(Tim Cook)在接受采訪時表示,我還不確定普通人能說清楚元宇宙到底是什么。在談到 Facebook 的 \"元宇宙 \" 時,庫克表示,人們對產品的理解非常重要。我真的不確定普通人能告訴你到底什么是元宇宙,他補充道。元宇宙這個詞出現在 Facebook 創立之前,最早出現在 1992 年的科幻小說《雪崩》 ( Snow Crash ) 中,但 Facebook 顯然已經全盤接納了這個詞,甚至把公司更名為 Meta。[2022/10/2 18:37:39]
-默克爾樹-上圖所示的默克爾樹有8個輸入值,分為4層。根節點就是位于最末端的0xd576...ffd9。正如上文所述,即使輸入值極為近似,得到的哈希值也是迥然不同的。如果輸入值發生了變化,會影響到默克爾樹的各個層次,最后得出完全不同的根節點。例如,將輸入值中的“Peach”改為“Pear”之后,這個默克爾樹都會發生變化,如下圖所示:
V神:沒有什么能阻止PoS系統在無線電上運行:剛剛,有網友發推詢問V神稱,或許51%攻擊對比特幣來說是個問題,但比特幣最后會恢復。如果在電磁脈沖關閉了世界互聯網后,比特幣靠無線電生存,但PoS該如何生存?對此,V神回應稱,沒有什么能阻止PoS系統在無線電上運行生存。[2020/10/26]
-一處改動對整個默克爾樹的影響-默克爾樹是可再生的:如果把完全相同的輸入值按照同樣的順序排列,默克爾樹的分支和根節點始終會得出同樣的哈希值。默克爾路徑
默克爾路徑指的是某個輸入值到默克爾根節點之間所有哈希值的集合。下圖顯示了輸入值“Peach”的默克爾路徑:
-"Peach"的默克爾路徑-默克爾證明
聲音 | Weiss Ratings:比特幣的使用與傳統金融相比“微不足道”并不能代表什么:加密貨幣評級機構Weiss Ratings發推表示:國會報告稱,比特幣的使用與傳統金融相比“微不足道”。與20世紀90年代初的紙質報紙相比,互聯網的普及程度微乎其微。這并不意味著任何事情,加密正向你而來。 此前報道,國會研究處(CRS)5月發布報告稱,與傳統金融系統相比,其交易數量“微不足道”。[2019/5/30]
默克爾證明指的是不需要知道一個數據集合中的其他值就能證明某個值屬于這個集合。
-默克爾證明-默克爾證明需要三樣東西:輸入值、中間支哈希值和默克爾根節點。每個輸入值對應的中間支哈希值集合各不相同。區塊鏈系統經常會用到默克爾證明,證明某個數據集合內存在某個輸入值,這樣就不需要將整個數據集合都存儲在區塊鏈上了。假設一個以太幣合約內有一個白名單列表,只允許列表內的賬戶購買以太幣。如果將白名單內每個賬戶信息都存儲在區塊鏈上,勢必要付出很高的成本。在這種情況下,只需要創建一個默克爾樹,再將根節點存儲在區塊鏈上即可。例如,如果將根節點存儲在一個智能合約上,這個智能合約很容易就能證明某個賬戶包含在白名單內:這個賬戶需提供中間支哈希值,智能合約將這個賬戶的哈希值依次與中間支哈希值進行哈希計算。如果最后得出的結果與默克爾根節點一致的話,就證明這個賬戶確實在白名單里。請注意最后兩張圖中默克爾路徑和默克爾證明的哈希值之間的關系。在同一棵樹的同一個層級中,默克爾證明的哈希值與默克爾路徑的哈希值是相互關聯的。由此可見,默克爾證明能夠重塑輸入值的默克爾路徑,這就是為什么最終結果是默克爾根節點的原因。至此,可以看出默克爾證明具有以下特征:在鏈上存儲默克爾證明所需的空間遠遠小于直接存儲輸入值所需的空間在鏈上公開存儲默克爾證明也不會暴露整個輸入值集合要證明某個輸入值集合內是否存在某個值,驗證默克爾證明的成本低于核對整個輸入值集合的成本重復證明
動態 | 央行研究論文:區塊鏈能做什么不能做什么?:中國人民銀行發布工作論文稱:目前真正落地并產生社會效益的區塊鏈項目很少,除了區塊鏈物理性能不高以外,區塊鏈經濟功能的短板也是重要原因。應在持續研究和試驗的基礎上,理性客觀評估區塊鏈能做什么、不能做什么。不要夸大或迷信區塊鏈的功能。區塊鏈應用要立足實際情況。目前區塊鏈投融資領域泡沫明顯。[2018/11/6]
在上文的例子中,每個賬戶只需要發送一個默克爾證明,就能夠驗證自己是否在白名單上。此外,默克爾樹還可以用作概率性知識證明,每一次知識證明都能使我們更加確信:默克爾樹的創建者知道所有的構成值。在這種情況下,證明者通常會根據包含幾十個乃至成百上千個輸入值的默克爾樹生成上百個證明。這些證明會連同默克爾根節點一起發送給驗證者,來驗證它們的有效性。讓我們緊接著上面的例子來探究重復證明,下面三幅圖分別是由同一個默克爾樹生成的三個不同的證明:
-同一個默克爾根的重復證明-可以看出總共發送了一個默克爾根節點和三個證明,加起來共有10個哈希值:根節點有1個,其余三個證明各有3個。有沒有效率更高的做法?可以看出默克爾樹的第一個層次只有兩個值c0b7...da30和6ff9...8e3d,但三個證明總共發送了3個哈希值。那么,如果一開始提供的部分不僅包括最低層次的哈希值,還提供更上一層次的哈希值,效率會不會更高?
-擴展式默克爾根節點的重復證明-默克爾樹截頂
擴展默克爾根也可以說是給默克爾樹截頂,也就是只保留默克爾根節點和少數幾層中間支。默克爾樹截頂的順序是按照根節點上方的中間支層數決定的。1階默克爾截頂包含一層中間支,如下圖所示:
-1階默克爾截頂-2階默克爾截頂包含兩層中間支,如下圖所示:
-2階默克爾截頂-如果同一個默克爾樹存在多個重復證明,采用默克爾樹截頂會減少證明的大小以及驗證證明所需的時間。要求得默克爾截頂的最佳階數,只需對證明數量取2的對數,再向下取整。下圖是一個低階默克爾樹截頂表,顯示了包含4096個輸入值的默克爾樹可節省的空間和時間,如下所示:
-不同階數的默克爾樹截頂所帶來的優勢-使用默克爾樹截頂能夠節省大量存儲空間。例如,一個STARK測試證明如果使用的是默克爾根節點,需要564KB的存儲空間,如果使用的是默克爾樹截頂,只需要346KB的存儲空間,減少了40%。傳輸并驗證證明所需的時間也會減少。實現樣例
https://github.com/wealdtech/go-merkletree/提供了采用Go語言實現的默克爾樹截頂。
作者|秦曉峰編輯|梁辰3月30日,國家互聯網信息辦公室公開發布第一批共197個區塊鏈信息服務名稱及備案編號.
1900/1/1 0:00:00區塊鏈大潮潮漲潮落,漲時各類百花齊放,落時泡沫褪去。熊市之下,也許我們才能更加清楚的看到區塊鏈行業的“真”需求:只有錢包、交易所、礦等始終存在;公鏈在奮力研發、大公司在布局投入.
1900/1/1 0:00:00周報摘要上周全球數字貨幣資產日均市值上漲3.96%,日均交易量下跌14.72%。30家代表交易所,新上交易對15個全球截止公募的項目共12個,項目軟頂總和超5700萬美元.
1900/1/1 0:00:00周三中午開始的比特幣暴漲,把整個市場整懵了。沒有人預估到喜悅竟然來的如此之快。最重要的是,根本沒有人想明白到底是什么原因。其中大部分人都理解它跟一篇愚人節文章有關系.
1900/1/1 0:00:004月15日,Binance發布公告宣布下架BSV,讓加密貨幣社區的這次“口水戰”變成了真金白銀的“戰爭”。BSV社區代表CraigSWright一直自稱中本聰,江湖人稱“澳本聰”.
1900/1/1 0:00:00海外重磅播報 美國國會議員重新提交代幣分類法美國國會議員WarrenDavidson4月9日重新提交“代幣分類法”,旨在將代幣排除在美國證券法之外.
1900/1/1 0:00:00