Merkle-Patricia-Tries
為什麼在 Merkle Patricia Trie 中對密鑰進行雜湊處理?
帳戶地址在記錄在 Patricia Merkle Trie 以及儲存槽索引之前會進行雜湊處理。這使得通過掃描 Patricia Merkle Trie 來列舉所有帳戶和儲存槽變得很困難。
為什麼不清晰地儲存地址和索引?
它是為 DoS 保護完成的,如Design Rationale wiki 中所述:
使用 sha3(k) 作為“安全樹”中的密鑰(在狀態和帳戶儲存嘗試中使用):這使得通過設置 64 層深度和重複呼叫的最大不利鏈的分歧節點來 DoS 嘗試變得更加困難對它們進行 SLOAD 和 SSTORE。請注意,這使得列舉樹變得更加困難;如果您想在客戶端中具有列舉功能,最簡單的方法是維護一個數據庫映射 sha3(k) -> k。