ethereum - 我们可以从以太坊公共地址生成公钥吗?
问题描述
我知道如何从公钥或私钥生成以太坊公共地址。但我想知道我们是否可以从以太坊公共地址生成公钥?
解决方案
从以太坊地址创建公钥是不可能的。
如您所知,从公钥中,您可以通过 keccak 过程散列的数组的 40% 获得地址,这是一条单向路径。
那么,让我们看看这个算法:
1- 拥有公钥(128 个字符,十六进制格式表示 0-F)
2- keccak 散列它以接收 64 个字符,再次是十六进制格式
3- 删除前 24 个字符,留给我们 40 个字符作为地址
4-您现在可以将“0x”添加到该数组的开头。
keccak 散列是不可逆的,如果你想暴力破解它需要 16^64 次猜测,如果你可以访问每秒可以猜测 3.6*10^67 个数组的量子计算机,则需要一个世纪。除了您删除的 24 个十六进制字符之外,因此在其上添加 40% 的负载。还没有发明量子处理器!!!
推荐阅读
- python - 如何通过广播计算两个numpy数组的欧几里得距离
- reactjs - 我如何禁用或删除警报组件
- python - 仅多边形中的 Pygame alpha
- java - 为什么StringBuilder的delete将字符串向左移动,不删除最后一个字符?
- flutter - 如何在颤动中将资产类型图像列表添加到轮播中
- php - 为 WooCommerce 传递消息使用 date_i18n 格式化日期
- python-3.x - Python3 input() 不是交互式的
- firebase - Flutter 无法导航到谷歌登录的另一个屏幕?
- postgresql - raster2pgsql - free():无效指针中止(核心转储)
- php - 使用 GET 或 POST 检索 ninja 表单值