假设我必须将Monero地址或任何基于隐孢子虫的硬币地址存储在智能契约中,那么会有什么问题吗?
假设这些地址与这个随机的monero地址一样长:
43ZmqBKrvcL7nRYfTTrpngJ8M9bB6HyuvVnQzqJJW5Gai1ScVVDeSy5jDkKtt7qgB1Ld4Fx3MHEw1HkwZNPVkpmN7rhk9YT
以下智能合同存储上述地址,但是否存在任何缺陷,如潜在的网络安全问题?另外,通过将monero地址存储为字节而不是字符串,可以改进智能契约以提高效率吗?
pragma solidity ^0.5.1;
contract Addresses
{
string public moneroAddress;
function setAddress(string address_)public returns(bool)
{
moneroAddress = address_;
}
}发布于 2019-09-14 05:49:18
您提供的地址长达95个字符。这意味着190个字节。这将不适合于任何字节数组的稳健性支持。存储它的唯一选项是string或bytes (动态大小的数组,有关更多细节,请参见https://solidity.readthedocs.io/en/v0.5.3/types.html#arrays )。但这两种选择之间并没有效率上的改善--它们本质上是一回事。
您的合同存储的地址,它是真实的-没有额外的填充字符或类似的东西。这样存储它没有安全问题。当然,当然,如果你想保密地址,因为一切都是公开的在以太姆。
https://ethereum.stackexchange.com/questions/75926
复制相似问题