如何检查地址是否是以太坊区块链上的现有地址?

How to check if an address is an existing address on the ethereum blockchain?

如果我的以太坊区块链上存在地址,我想检查 Solidity 怎么办?

当查看 solidity.readthedocs 时,有一个函数 balance 可以用来/误用来检查地址是否有效/是否有余额:

address x = 0x4e5d039c5516b69a4b6b1f006cbf4e10accb5cfa; // this is an example address which does not have valid checksum....
if (x.balance > 0) // Return true when valid ??

这可能吗?

我还在 上找到了一些参考资料,但我不确定这是否有帮助。

没有保证的方法。您最接近的是验证地址格式是否正确(20 字节十六进制)并且不是合约地址(您链接到的地址)。从那里,该地址被认为是一个有效的 EOA 帐户。当然,你仍然可以将以太币发送到有人输入错误的有效地址,所以即使检查该地址的余额也不会产生你正在寻找的结果(另外,地址正确并且没有里面有乙醚)。大多数钱包支持 checksums,这会给你更多的保护,但仍然不能保证地址正在使用中。

如果您正在使用私有区块链并完全控制账户创建,您可以假设将在映射中创建的每个账户存储在 AccountManager 合约中,并在合约中使用修饰符来检查该列表。