Merkle-Patricia-Tries

為什麼在 Merkle Patricia Trie 中對密鑰進行雜湊處理?

  • February 25, 2018

帳戶地址在記錄在 Patricia Merkle Trie 以及儲存槽索引之前會進行雜湊處理。這使得通過掃描 Patricia Merkle Trie 來列舉所有帳戶和儲存槽變得很困難。

為什麼不清晰地儲存地址和索引?

它是為 DoS 保護完成的,如Design Rationale wiki 中所述:

使用 sha3(k) 作為“安全樹”中的密鑰(在狀態和帳戶儲存嘗試中使用):這使得通過設置 64 層深度和重複呼叫的最大不利鏈的分歧節點來 DoS 嘗試變得更加困難對它們進行 SLOAD 和 SSTORE。請注意,這使得列舉樹變得更加困難;如果您想在客戶端中具有列舉功能,最簡單的方法是維護一個數據庫映射 sha3(k) -> k。

引用自:https://ethereum.stackexchange.com/questions/40886