在密碼學貨幣領域,默克爾樹是一種很高效的方法,用于證明一大組數值中存在一個特定的數值,而且將數據存儲量降到了最低。本文介紹了默克爾樹,并且展示了如何通過存儲多個層級的默克爾樹分支而非根節點的方式來大量減少重復證明”)。哈希函數
哈希函數可以把一段任意長度的數據變成一個固定長度的值。例如,下圖中“Apple”和“Orange”的哈希值如下所示:
-哈希值-哈希函數有很多特征,其中最顯著的兩點是:即使輸入值僅有毫厘之差,得到的哈希值也會迥然不同;從數學上來說很難根據哈希值倒推出輸入值。默克爾樹
默克爾樹指的是將多個輸入值和它們的哈希值結合起來壓縮成某個固定長度的值。默克爾樹的頂端是各種輸入值,被稱為“葉節點”。每個葉節點經過哈希得到上一層分支,相鄰兩個分支拼接在一起之后哈希得到中間支。一層一層哈希之后,最后得到一個哈希值,即默克爾根節點。默克爾樹的示例圖如下:
直播 | 六六 - 幣安 > 我為什么選擇幣安:金色財經 · 直播主辦的《 幣圈 “后浪” 仙女直播周》第3期今晚20:00準時開始,本期“后浪”仙女幣安新媒體營銷經理六六 將在直播間聊聊“我為什么選擇幣安”,感興趣的朋友掃碼移步收聽![2020/6/3]
-默克爾樹-上圖所示的默克爾樹有8個輸入值,分為4層。根節點就是位于最末端的0xd576...ffd9。正如上文所述,即使輸入值極為近似,得到的哈希值也是迥然不同的。如果輸入值發生了變化,會影響到默克爾樹的各個層次,最后得出完全不同的根節點。例如,將輸入值中的“Peach”改為“Pear”之后,這個默克爾樹都會發生變化,如下圖所示:
-一處改動對整個默克爾樹的影響-默克爾樹是可再生的:如果把完全相同的輸入值按照同樣的順序排列,默克爾樹的分支和根節點始終會得出同樣的哈希值。默克爾路徑
聲音 | 比特幣安全專家:代碼提交等KPI可信度取決于區塊鏈項目既定目標是什么:據AMBcrypto消息,比特幣安全專家Andreas Antonopoulos近期在會議現場提出:“我們是否應該將代碼提交、區塊鏈活動、DApp數量或節點數量作為衡量區塊鏈項目成功與否的KPI(關鍵績效指標)?這取決于你想達到的目標是什么。”Antonopoulos指出,KPI的可信度在很大程度上取決于選擇適合其特定需求的度量標準。然而,他承認在許多情況下很難準確地衡量這些標準。Antonopoulos還提醒與會者,要避免將KPI視為一種投資零和游戲。[2019/5/7]
默克爾路徑指的是某個輸入值到默克爾根節點之間所有哈希值的集合。下圖顯示了輸入值“Peach”的默克爾路徑:
IT記者劉韌:區塊鏈和互聯網一樣是創業公司機會,沒BAT什么事:知名IT記者劉韌今日發表朋友圈說:“1996年到2004年,我對互聯網的錯誤認識。1.1998年完成《知識英雄》,可以去做門戶,但我選擇寫作《企業方法》,我當時的想法和現在很多人對區塊鏈的認識相同,互聯網還處在早期,我先將中國IT史寫完,互聯網機會有的是,等技術成熟了,我再介入不遲。結果到2000年我只有做Donews的機會了。2.《中國.com》很多篇幅寫聯想怎樣轉型互聯網。我提問《楊元慶會不會掉隊?》但依然看好楊元慶。區塊鏈和互聯網一樣是創業公司機會,沒BAT什么事,更不必去看京東的白皮書。3.以傳統企業為本,傳統企業崇拜,但傳統企業使用互聯網或互聯網化,和互聯網公司是兩碼事。今天傳統企業Tokenize,肯定也不是區塊鏈公司,別跟。”[2018/3/22]
-"Peach"的默克爾路徑-默克爾證明
高西慶:為什么有人恐懼區塊鏈?因為他們的權威沒了:清華大學法學院教授高西慶在“瑞·達利歐(Ray Dalio)中國行”系列活動發表演講稱,政府、大的機構反對區塊鏈“就是因為區塊鏈改變了連接方式之后,使得習慣原來這個運作形式的這些人的權威沒有了,他們所賴以生存的這些基本的東西沒有了,這一點正是人類進步的最大的推動力。”[2018/2/26]
默克爾證明指的是不需要知道一個數據集合中的其他值就能證明某個值屬于這個集合。
-默克爾證明-默克爾證明需要三樣東西:輸入值、中間支哈希值和默克爾根節點。每個輸入值對應的中間支哈希值集合各不相同。區塊鏈系統經常會用到默克爾證明,證明某個數據集合內存在某個輸入值,這樣就不需要將整個數據集合都存儲在區塊鏈上了。假設一個以太幣合約內有一個白名單列表,只允許列表內的賬戶購買以太幣。如果將白名單內每個賬戶信息都存儲在區塊鏈上,勢必要付出很高的成本。在這種情況下,只需要創建一個默克爾樹,再將根節點存儲在區塊鏈上即可。例如,如果將根節點存儲在一個智能合約上,這個智能合約很容易就能證明某個賬戶包含在白名單內:這個賬戶需提供中間支哈希值,智能合約將這個賬戶的哈希值依次與中間支哈希值進行哈希計算。如果最后得出的結果與默克爾根節點一致的話,就證明這個賬戶確實在白名單里。請注意最后兩張圖中默克爾路徑和默克爾證明的哈希值之間的關系。在同一棵樹的同一個層級中,默克爾證明的哈希值與默克爾路徑的哈希值是相互關聯的。由此可見,默克爾證明能夠重塑輸入值的默克爾路徑,這就是為什么最終結果是默克爾根節點的原因。至此,可以看出默克爾證明具有以下特征:在鏈上存儲默克爾證明所需的空間遠遠小于直接存儲輸入值所需的空間在鏈上公開存儲默克爾證明也不會暴露整個輸入值集合要證明某個輸入值集合內是否存在某個值,驗證默克爾證明的成本低于核對整個輸入值集合的成本重復證明
在上文的例子中,每個賬戶只需要發送一個默克爾證明,就能夠驗證自己是否在白名單上。此外,默克爾樹還可以用作概率性知識證明,每一次知識證明都能使我們更加確信:默克爾樹的創建者知道所有的構成值。在這種情況下,證明者通常會根據包含幾十個乃至成百上千個輸入值的默克爾樹生成上百個證明。這些證明會連同默克爾根節點一起發送給驗證者,來驗證它們的有效性。讓我們緊接著上面的例子來探究重復證明,下面三幅圖分別是由同一個默克爾樹生成的三個不同的證明:
-同一個默克爾根的重復證明-可以看出總共發送了一個默克爾根節點和三個證明,加起來共有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語言實現的默克爾樹截頂。
編者按:本文來自HashQuark社區,星球日報經授權發布。由HashKeyGroup和萬向區塊鏈實驗室聯合主辦的HashKey2019數字資產全球峰會于3月21日在香港四季酒店舉行.
1900/1/1 0:00:00編者按:本文來自財經網鏈上財經,作者:奚習習,Odaily星球日報經授權轉載。根據CoinDesk的近期報道,Bakkt推出比特幣期貨交易的計劃再被推遲.
1900/1/1 0:00:00導讀 ETF是近年來備受矚目的金融創新,歷經二十余年的發展,目前已經擁有四千余只、資金管理規模近4.8萬億美元.
1900/1/1 0:00:00文:陳海寧編輯:王巧提起5G,普通人的第一反應就是上網可以更快了,這是一種典型的舊思維邏輯,單純從人與人之間的互聯來看待5G。可是,就算全球都用5G上網,也不過74億人而已.
1900/1/1 0:00:00“有沒有好的數字貨幣借貸平臺推薦?”近期,在業內人士聚會上,一個每月發了工資便定投比特幣的小哥卻這樣發問。“最近借貸很火啊,怎么,你也想拿現金跑路進入股市啦?”身邊人立馬看穿了他的心思.
1900/1/1 0:00:003月30日,首批197個區塊鏈信息服務名稱及備案編號發布,Odaily星球日報發現其中北京升譜科技推出“職場通行證”平臺,意欲用區塊鏈解決招聘問題.
1900/1/1 0:00:00