为什么在使用 decl_storage 时在 StorageMap 中使用 blake2_256 以外的哈希算法
Why use a hashing algorithm other than blake2_256 in a StorageMap when using decl_storage
它说 decl_storage!
是一个 "procedural macro" 用于存储数据以使其在后续块中可用。
它说如果用户能够设置密钥对,那么我们就不能信任密钥对,所以我们必须使用密码哈希器,例如blake2_256来防止"other values in storage being compromised"。
为什么要在 StorageMap
(i.e. why would anyone use twox
中使用默认 blake2_256
以外的哈希算法 ($hash
) 而不是默认 blake2_256
)?
还有,为什么说只是为了防止"other values in storage being compromised"? blake2_256
不也是用来防止密钥对本身被泄露的吗?
blake2_256
哈希器是一种不透明的加密哈希器,它有两个 costs/has 两个缺点:
- 计算量大
- 不允许遍历存储
因此,在您关心它们的情况下,有替代的哈希器可以改进它们:
twox
哈希计算成本低,因此如果区块链控制 StorageMap
的输入,您可以使用它,例如当使用计数器对其进行索引时。
blake2_128_concat
哈希器将哈希器的输入连接到哈希的末尾,以允许迭代映射的键(和值)。
中查找更多信息
它说 decl_storage!
是一个 "procedural macro" 用于存储数据以使其在后续块中可用。
它说如果用户能够设置密钥对,那么我们就不能信任密钥对,所以我们必须使用密码哈希器,例如blake2_256来防止"other values in storage being compromised"。
为什么要在 StorageMap
(i.e. why would anyone use twox
中使用默认 blake2_256
以外的哈希算法 ($hash
) 而不是默认 blake2_256
)?
还有,为什么说只是为了防止"other values in storage being compromised"? blake2_256
不也是用来防止密钥对本身被泄露的吗?
blake2_256
哈希器是一种不透明的加密哈希器,它有两个 costs/has 两个缺点:
- 计算量大
- 不允许遍历存储
因此,在您关心它们的情况下,有替代的哈希器可以改进它们:
twox
哈希计算成本低,因此如果区块链控制StorageMap
的输入,您可以使用它,例如当使用计数器对其进行索引时。blake2_128_concat
哈希器将哈希器的输入连接到哈希的末尾,以允许迭代映射的键(和值)。