布隆過濾器的核心思想是使用多個(gè)哈希函數(shù)將元素映射到一個(gè)位數(shù)組中的某一位查牌。
在比特幣網(wǎng)絡(luò)中望忆,輕客戶端查找自己賬戶地址相關(guān)的UTXO時(shí)肯适,由于輕客戶端沒有完整的區(qū)塊數(shù)據(jù),無(wú)法直接查找壳嚎,需要向全節(jié)點(diǎn)發(fā)送相關(guān)請(qǐng)求,全節(jié)點(diǎn)返回結(jié)果末早。如果輕客戶端向全節(jié)點(diǎn)直接發(fā)送自己的地址獲取UTXO烟馅,則其他全節(jié)點(diǎn)都知道該輕客戶端綁定的賬戶地址,泄露了隱私然磷。輕客戶端通過以Bloom filter 的形式告訴全節(jié)點(diǎn)自己的地址信息郑趁,全節(jié)點(diǎn)返回結(jié)果可能相關(guān)的UTXO,通過bloom filter過濾不屬于改地址的UTXO样屠,既保護(hù)了隱私穿撮,又節(jié)省了帶寬。
在以太坊中痪欲,發(fā)送一個(gè)交易來(lái)調(diào)用智能合約時(shí)悦穿,調(diào)用的返回值只有交易的哈希,當(dāng)一個(gè)交易被打包业踢,智能合約通過事件產(chǎn)生日志發(fā)送到區(qū)塊鏈上以便用戶界面處理栗柒。以太坊中的事件有三個(gè)功能:返回智能合約執(zhí)行過程的值到用戶界面;觸發(fā)前端用戶界面事件知举,異步通信瞬沦;便宜的存儲(chǔ)。
以太坊中用特殊的可索引的數(shù)據(jù)結(jié)構(gòu)來(lái)存儲(chǔ)日志雇锡,這種數(shù)據(jù)結(jié)構(gòu)為bloom filter, 合約創(chuàng)建之后無(wú)法訪問日志數(shù)據(jù) 逛钻,以太坊的每個(gè)區(qū)塊頭包含當(dāng)前前區(qū)塊中所有的收據(jù)的日志的布隆過濾器,可以從鏈外高效訪問日志數(shù)據(jù)锰提,高效安全下載和搜搜日志曙痘,減少了私盤隨機(jī)訪問量芳悲,用戶可以通過調(diào)用對(duì)交易或者區(qū)塊進(jìn)行過濾,然后持續(xù)的獲取結(jié)果边坤。