摘要:在過濾器的實現是由一個可變長度的二進制數組和數量可變的一組哈希函數組成。數組的長度越長,哈希函數的個數越多,準確性越高。為測試某一關鍵詞是否被記錄在某個過濾器中,我們將該關鍵詞逐一代入各哈希函數中運算,并將所得的結果與原數組進行對比。
Bloom過濾器
由于SPV節點需要從區塊鏈其他節點獲取感興趣的交易信息從而選擇性的驗證交易,與全節點收取每一個區塊內的全部交易不同的是,SPV節點對特點數據的請求可能無意中透露了錢包里的地址信息,這樣就產生了隱私風險。例如監控網絡的第三方可以跟蹤某個SPV節點上的錢包所請求的全部交易信息,并且利用這些信息把交易地址和錢包的用戶關聯起來,從而損害了用戶的隱私。而Bloom過濾器可以解決SPV節點的隱私風險問題。Bloom過濾器是一個允許用戶描述特定的關鍵詞組合而不必精確表述的基于概率的過濾方法,在SPV節點里,這一方法被用來向其他區塊鏈節點發送交易信息查詢請求,同時交易地址不會被暴露。
Bloom原理</>復制代碼
假設你來到一個陌生的城市旅游,而你的手里又沒有地圖,這個時候你可能會向路人打聽你要去的目的地。如果你向陌生人直接表述:“您好,請問去頤和園怎么走?”,無意間你就暴露了目的地。而如果使用Bloom過濾器,你就會想陌生人表述“您好,請問最近有帶園字的旅游景點嗎?”,雖然這樣的表述方式沒有之前的清晰,并且獲得了很多的無用信息,但是你可以根據詢問到的信息自己進行篩選。你的目的地暴露的概率就會小很多。
Bloom過濾器可以讓SPV節點指定交易的搜索模式,該搜索模式可以根據私密性和準確性被調節。更高的準確性則會暴露更多的隱私,而更高的私密性也意味著更低的準確性。在Bloom過濾器的實現是由一個可變長度的二進制數組(N)和數量可變的一組哈希函數(M)組成。這些函數的輸出值在1~N之間與數組的長度對應,并且該函數為確定性函數,任何一個節點,相同的輸入都會產生相同的輸出。數組的長度越長,哈希函數的個數越多,準確性越高。反之準確性越低,隱私性越好。我們來詳細看一下這個過程,以一個長度為16的數組和數量為3個的哈希函數組成的Bloom過濾器為例
Bloom過濾器中的二進制數組的初始值為0,關鍵詞通過哈希函數的計算被添加到二進制數組中,例如關鍵詞“A”,經過第一個哈希函數計算得出的數值是3,那么二進制數組中下標為1的位置就會被替換成1,經過第二個函數得出的數字是1,那么下標1的位置就會被替換成1,以此類推。當全部M個哈希函數都運算過之后,一共有M個位的值從0變成了1,這個關鍵詞也被“記錄”在了Bloom過濾器里
如果某個關鍵詞經過哈希函數的計算得出的數字為3,那么此時3的位置已經是1了,此時3位置的1不會改變。該過濾器之所以是基于概率的數據結構,就是因為關鍵字的增加導致準確性降低。
節點把Bloom發送到其他的區塊鏈節點的,其他節點使用該過濾器篩選出的符合二進制數組的結果記錄在Bloom過濾器中。為測試某一關鍵詞是否被記錄在某個Bloom過濾器中,我們將該關鍵詞逐一代入各哈希函數中運算,并將所得的結果與原數組進行對比。如果所有的結果對應的位都變為了1,則表示這個關鍵詞有可能已被該過濾器記錄。之所以這一結論并不確定,是因為這些字節1也有可能是其他關鍵詞運算的重疊結果。簡單來說,Bloom過濾器正匹配代表著“可能是”。
如圖,“X”符合請求節點的要求,但是這個“X”并不一定就是請求節點想要的。因為現在發送過來的二進制數組中數值是經過“A”和“B”計算后重疊的結果。如果我們代入關鍵詞計算后的結果某位為0,說明該關鍵詞并沒有被記錄在過濾器里。負匹配的結果不是可能,而是一定。也就是說,負匹配代表著“一定不是”
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/24120.html
摘要:是一個用于連接以太坊區塊鏈的庫。網絡執行以太坊協議,該協議定義節點彼此之間的交互規則及網絡上的智能合約。數據庫設計下一步是設計數據庫。 關于區塊鏈介紹性的研討會通常以易于理解的點對點網絡和銀行分類賬這類故事開頭,然后直接跳到編寫智能合約,這顯得非常突兀。因此,想象自己走進叢林,想象以太坊區塊鏈是一個你即將研究的奇怪生物。今天我們將觀察該生物,并與其進行交互然后將有關它的所有數據收集到一...
摘要:是一個用于連接以太坊區塊鏈的庫。網絡執行以太坊協議,該協議定義節點彼此之間的交互規則及網絡上的智能合約。數據庫設計下一步是設計數據庫。 關于區塊鏈介紹性的研討會通常以易于理解的點對點網絡和銀行分類賬這類故事開頭,然后直接跳到編寫智能合約,這顯得非常突兀。因此,想象自己走進叢林,想象以太坊區塊鏈是一個你即將研究的奇怪生物。今天我們將觀察該生物,并與其進行交互然后將有關它的所有數據收集到一...
閱讀 1770·2021-10-11 10:59
閱讀 2412·2021-09-30 09:53
閱讀 1772·2021-09-22 15:28
閱讀 2802·2019-08-29 15:29
閱讀 1563·2019-08-29 13:53
閱讀 3212·2019-08-29 12:34
閱讀 2862·2019-08-26 10:16
閱讀 2668·2019-08-23 15:16