主页 > imtoken百科 > 安全生成以太坊ETH钱包地址教程

安全生成以太坊ETH钱包地址教程

imtoken百科 2023-07-03 05:08:21

近期,区块链领域黑客攻击事件频发。 其中让Cocoa感兴趣的是Wintermute钱包因美丽号地址问题损失了约1.6亿美元。 说来话长,可以参考慢雾的这篇分析。

0.背景介绍

下面简单介绍一下什么是好号码地址。 以太坊钱包的地址是以 0x 开头的 40 个随机字符的十六进制字符串。 比如V神的钱包地址是0xAb5801a7D398351b8bE11C439e05C5B3259aeC9B,很难记,没有个性。

因此,有些人别出心裁,想办法通过暴力枚举来寻找好看的地址,比如以0x888888开头,或者为了节省合约部署成本而使用0x00000开头的地址。

Profanity就是这样一个虚荣地址生成工具(还有一个谐音梗,虚荣地址英文叫做vanity address,vanity是“虚荣”的意思,Profanity的本义是“脏话”,只是把后缀antiy当作谐音) . Profanity 的特点是它使用 GPU,因此它可以比其他工具更快地找到虚荣号的地址。

总之,由于原项目存在漏洞,目前仓库已关闭,不推荐使用,但发现漏洞的1inch帮人走到最后,送佛上天,提供新版Profanity2没有漏洞,继续满足大家的虚荣心。

但是个人觉得1inch很安全,文档水平太差了。 可可是期末考试满分的密码学小王子。 了解如何使用它花了 5 分钟。 话不多说,下面是教程。

黑客以太坊私钥_以太坊和以太经典是什么关系_sitejianshu.com 以太坊以太经典

1.编译代码

考虑到私钥的安全性,建议从官方源码编译使用此类项目黑客以太坊私钥,但Profanity2有一个创新性的改进,下面会提到。

此次1inch提供了在Linux下编译的代码。 在Windows下编译,需要改动一个地方,主要是修改Dispatcher.cpp中的如下代码。

#include 到 #include

另外,还涉及到OpenCL的SDK以及编译环境的搭建。 总之,这里假设你已经获得了可执行程序。

sitejianshu.com 以太坊以太经典_黑客以太坊私钥_以太坊和以太经典是什么关系

2.在本地生成密钥对

Profanity2的一大改进是将原来直接生成私钥然后计算公钥的步骤改为:

这个私钥C对应的公钥C就是你想要的漂亮数字。

Cocoa的数学原理没有深入研究。 粗略的猜测是使用安全可靠的工具(比如openssl)生成一对密钥,然后通过程序暴力试出一个偏差,这样私钥加上这个偏差就可以导出了。 没有。公钥。

这样做的一个好处是Profanity2可以由第三方或云端运行,因为最终的私钥C是通过私钥A和私钥B相​​加得到的(私钥A是自己在本地生成的,只要Protect私钥A,其他人无法猜到私钥C,所以是安全的)。

以太坊和以太经典是什么关系_sitejianshu.com 以太坊以太经典_黑客以太坊私钥

所以首先要生成私钥A和公钥A,官方提供了命令,在linux下可以直接执行:

$ openssl ecparam -genkey -name secp256k1 -text -noout -outform DER | xxd -p -c 1000 | sed 's/41534e31204f49443a20736563703235366b310a30740201010420/私钥:/' | sed 's/a00706052b8104000aa144034200/'$'/n公钥:/'

以上命令执行后,屏幕上会显示Private Key和Public Key,分别是私钥A和公钥A。 请注意,私钥 A 必须妥善保管。

3.用公钥A转义私钥B

把上面步骤得到的Public Key即公钥A去掉开头的04,放到Profanity2中运行。 命令如下:

以太坊和以太经典是什么关系_sitejianshu.com 以太坊以太经典_黑客以太坊私钥

profanity2 –matching c0c0aXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -z 公钥A(记得去掉前面的04)

一段时间后,会出来一个私钥B,过程和原来的Profanity类似。

4.最后计算出漂亮号地址对应的私钥C

得到私钥B后(公钥无所谓),我们只需要加上私钥A(这个应该是保护的),就可以得到最终地址对应的私钥C了漂亮的数字。

官方给了两个命令,shell和python,因为我的kali好像没有bc,所以就用了python的。 其中,记得在私钥A前面加上0x。(可可吐槽:妈的,PRIVATE_KEY_A + PRIVATE_KEY_B 看懂1分钟才知道是数学加法)

sitejianshu.com 以太坊以太经典_黑客以太坊私钥_以太坊和以太经典是什么关系

(echo 'ibase=16;obase=10' && (echo '(PRIVATE_KEY_A + PRIVATE_KEY_B) % FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2F' | tr '[:lower:]' '[:upper:]')) | 公元前

$ 蟒蛇3

十六进制((PRIVATE_KEY_A + PRIVATE_KEY_B)%0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2F)

最后得到一个0x开头的私钥C,导入到metamask等钱包中,就可以看到我们的账户地址了。

安全生成以太坊ETH靓号钱包地址教程

奖励章节:漏洞原理简介

以太坊的私钥是32字节(也就是256位),但是原来的Profanity在生成这个256位的私钥时黑客以太坊私钥,只用了4字节(也就是32位)的随机数作为伪随机数的种子。装置。

这是我的第一篇区块链安全文章,欢迎大家提出意见和建议。 我的推特:@featherye