Go-Ethereum
為什麼 geth 使用 scrypt 進行密鑰派生?
據我了解
scrypt
,設計為計算密集型,因此計算需要相對較長的時間。geth
需要這個乾什麼?以及為什麼它不使用,例如,SHA-256
?
使用 scrypt 的全部意義在於使暴力攻擊變得昂貴。
對於普通使用者打開加密錢包來說,scrypt 和 sha2 之間沒有太大區別,兩者都低於 1 秒。
但是如果你想破解一個加密的錢包,那就大不相同了。例如,假設每次嘗試使用 scrypt 錢包將花費 100 毫秒,而對於 sha2 將花費不到 1 毫秒。這要容易兩個數量級。
按照這個例子,使用 scrypt 攻擊需要 100 年才能成功,但對 sha2 的攻擊只需 1 年就可以成功。