Contract-Development

儲存 keccak 散列或儲存成熟(keccak)散列是否更便宜?

  • March 30, 2020

如題。我正在學習建構一個 DApp,我想知道是否值得在 keccak 上添加額外的 RIPEMD 層以縮短雜湊以降低儲存成本。

從純粹的成本角度來看,重要的是使用的插槽數(32 字節)。乙太坊的儲存成本是按字節計算的。

乙太坊的 Keccack-256,顧名思義,是 256 位,即32 字節

RIPEMD 散列的字節數取決於所選擇的算法。如果您使用 RIPEMD-128 或 RIPEMD-160,您將分別使用16 bytes 和 20 bytes。如果使用 RIPEMD-256,散列的大小將為32 字節,與 Keccack-256 相同。如果您使用 RIPEMD-320,則大小將是40 字節,這將更昂貴。

(根據 Ismael 的評論更新)上述散列算法的實際成本各不相同。但是,插槽大小為 32 字節,因此任何更小的內容仍將佔用 32 字節。正因為如此,Keccack-256、RIPEMD-128/160/256的成本都相同,並且都佔用一個插槽。RIPEMD-320 將佔用兩個插槽並且成本更高。

需要注意的0是,散列中 s 的數量可能會比預期的便宜。

免責聲明:答案僅涉及散列算法的成本。無需擔心所列算法的安全性。請勿出於安全目的使用此答案。

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