BTC.com手机客户端

手把手教你拥有个性化的BTC地址

吃猫的鱼 发布在 其它文章,技术指南 15 17638

文/米乐.net 首发 巴比特

btckey

比特币地址都是以1开头的一串“乱码”,为了挑个比较顺眼的地址,你是否新建过一排地址然后在里面挑挑选选?

其实有一个软件可以帮助你更方便地拥有个性化的BTC地址,例如以“123456”开头的地址 “123456jWebYP9tanj2taQfNvRVMNGjCYAd”

这个软件就是本文的主角:vanitygen!

1.简介:
这是一个批量生成地址并挑出符合要求地址的软件,一个普通的CPU可以每秒随机产生几十K到几百K的私钥和对应的地址,直到产生一个符合我们要求的地址为止。

2.软件下载:

这个软件作者的发布页面,里面一楼有下载链接和使用教程。https://bitcointalk.org/index.php?topic=25804.0

这个软件有各种操作系统的版本,windows版本的可以从这里下载(目前最新版本是0.22,想要更新版本还是去作者发布页去找找。)https://github.com/downloads/samr7/vanitygen/vanitygen-0.22-win.zip

如果感觉这样产生的地址不安全,这是个开源软件,可以下载源代码自己研究、修改、编绎。

3. 使用方法:

以windows版本为例,其它版本用法相通。
下载了一个压缩包“vanitygen-0.22-win.zip”解压之后里面会有五个可执行(.exe)文件,其中分别是用CPU和GPU来运算碰地 址的,且分别有32位系统的和64位系统的。同样的CPU,64位运算效率比32位的高;GPU运算比CPU效率高,假如你的显卡支持opencl,还是 用GPU来运算,这速率提高是以数量级来算的,具体根据你的实际情况选择一个合适的。下面以32位CPU运算程序“vanitygen.exe”为例:

这个软件是没有可视化操作界面的,全是在命令行下运行。所以第一步就是打开命令行窗口,“开始”-“运行”输入“cmd”。然后可以用“cd”命令进入到vanitygen程序所在的目录。也可以直接把“vanitygen.exe”拖曳到命令行窗口。

例如我的拖曳之后就显示:

C:\Documents and Settings\Administrator>C:\tmp\vanitygen-0.22-win\vanitygen.exe

3.1 普通用法

我在后面加上参数 “1234”,表示我要筛选一个1234开头的地址,

C:\Documents and Settings\Administrator>C:\tmp\vanitygen-0.22-win\vanitygen.exe 1234

回车后几乎一瞬间就碰到一个以1234开头的地址了:

Difficulty: 78508
Pattern: 1234
Address: 12346rxjzNAuhwoEwUwSPrLqQj2BnJYHBV
Privkey: 5JwRjNKhJcnyoLJXXWyXYkAgbADaWwV7ZKTRDmFFzxuXvvMQGYv

第一行是难度,第二行是我们限定筛选条件,第三行是碰到的地址,第四行就是私钥。如果你要起用这个地址,就要备份、保存好私钥再启用这个地址,千万别泄漏私钥。

随着指定字串的加长,难度是呈指数增长的,如果我指定的是字母,那么忽略大小写可以降低难度,忽略大小写用参数 -i

vanitygen 18p2p

Difficulty: 4476342
Pattern: 18p2p
Address: 18p2pcpBZebWDyF5fzi8zSXpXCZg4LeNRo
Privkey: 5Jp8x99TvF2A87hZfqWcqjTa1k1n7QWSJkcjoUavCXNrHG2wY2z

vanitygen -i 18p2p

Difficulty: 1119085
Pattern: 18p2p
Address: 18P2PQgNZdHbnMb7Ys6ysNb7BBC1gzUoTG
Privkey: 5JGHpt2Ye5tXBRXn8vQ1xnvtdQXp22i4tTjwKqWRGzyo4wPoxj1

PS1:软件运算起来之后CPU都占满了,卡得其它事几乎干不了,这时可以调出“任务管理器”找到vanitygen.exe进程,右键-“设置优先级”调到“低”,这样就不会那么卡了。也可以用 -t 参数来指定线程,例如你是4核心的CPU,用 vanitygen -t 3 18p2p 即是用3线程进行工作,CPU就不会全占用,但速率会降为原来的75%左右。
PS2:随时可以在命令行界面按 Ctrl+C 组合键退出运算。
PS3:要把命令窗口里面的文字复制下来,可以点击右键选“标志”,然后左键圈选所要的文字,在圈选块里点右键,就复制到了,在其它地方可以粘贴出来。

  3.2 文艺用法

如果我不喜欢“1234”开头的,我想要“333”结尾的,那要怎么办?vanitygen支持正则表达式筛选(用-r参数),所以这些要求都不在话下。 但是用正则筛选的话,效率会降到三分之一左右。正则表达式的具体用法可以搜索一下,下面举几个例子来简单说明一下。

以333结尾的地址:vanitygen -r 333$
包含”xxx”的地址:vanitygen -r xxx
以11开头且以11结尾的地址: vanitygen -r \b11(\w*)11$
以4个数字开头的地址: vanitygen -r \b\d{4}
以3个数字结尾的地址: vanitygen-r \d{3}$
以3个数字再接”22″结尾的地址: -r \d{3}22$

特别注意BTC地址有些字符是不能用的:字母大 写”O”、”I”和小写”l”和数字”0″是不会出现的,以普通用法进行运算碰撞的话,会提示这些字符不能用,而且会提示大概多久可以撞到一个符合条件的 地址,但如果以-r参数进行正则筛选的话,不会有这些提示的,例如你用“vanitygen -r 0$”想选一个以数字0结尾的地址,那么它会兢兢业业地碰运气,但不会有结果。同样的,指定开头的话,一定要以数字1开头。

3.3 进阶用法

一般来说,上面的用法足够我们选一个不错的地址来用,但是如果我要选一个1234567为前缀的地址,按照提示,大概要七八个小时会有50%的概率碰上一 个,我当然不会守着电脑等,但我怕离开之后它找到一个符合要求的地址,然后在我回来前电脑掉电了,那不可惜?这时候用 -o 参数可以把碰到的地址保存到文件里。

vanitygen -o c:\add.txt 1234

这样找到1234前缀的地址就会保存到C盘下的add.txt文件的结尾,这是追加的,不会覆盖,运行多次就会保存多个地址。

当然也可以配合 -r 参数

vanitygen -o c:\add.txt -r 222$

但是如果我想算出一批以18p2p开头的地址呢?能不能自动完成,不用一个个输入?用 -k 参数可以持续地运算。

vanitygen -k -o c:\add.txt 18p2p

这样可以不停地运算,把碰到的地址全保存到指定文件里。

3.4 专家用法
凯撒的事归凯撒,电脑的事归电脑。
别以为上面就用法的到头了,后面还可以有其它玩法。比如说我算一个1234567前缀的地址

vanitygen -o c:\add.txt 1234567
Difficulty: 15318045009
[349.68 Kkey/s][total 2963712][Prob 0.0%][50% in 8.4h]

根据提示,运算8个小时大概会有50%的概率碰上,国庆长假期间我外出游玩,打算让电脑帮我碰出一套以五个1到五个9结尾的地址,剩下的时间运算一个1234567前缀的地址后电脑自动关机。

这还是有办法的,要配合 BAT批处理文件。新建一个文本文件,“文件”-“另存为”,保存类型选“所有文件”,然后文件名以“.bat”结尾保存到vanitygen的目录下之后,再对 bat文件进行编辑。

在bat文件里输入

vanitygen -o c:\add.txt -r 11111$
vanitygen -o c:\add.txt -r 22222$
……中间的内容省略……
vanitygen -o c:\add.txt -r 99999$
vanitygen -o c:\add.txt 1234567
shutdown -s -t 200

这样运行批处理文件就会依次运算碰出并保存一套五个同数字结尾的地址和一个1234567前缀的地址之后关闭电脑。最后一句命令是倒数200秒关机。

当然,上面这种用法并不科学,因为在碰11111$的过程中如果碰到22222结尾的地址,会被丢掉,有个 -f 参数可以解决这个问题。在运行目录下建立一个 patten.txt ,在里面输入条件内容,前缀格式与正则格式不能存在同一个文件里,假如我们要一批前缀为 12345、13579 、1LoveU的地址,那就就在 patten.txt 文件里分三行依次输入这三个前缀,保存。

vanitygen  -f patten.txt -o addr.txt

用上面的命令,在碰到三种前缀中的任一种都会保存下来。

如果是用正则表达式筛选,我们最好用另一个文件如patten1.txt ,内容每行输入一个正则条件如:
11111$
22222$
33333$

然后运行带 -r 参数的命令 vanitygen  -f patten1.txt -o addr.txt -r
碰三种符合条件之一结尾的地址就会保存下来,配合 -k 参数可以持续运算碰地址。

当然用-k参数,就不会停下来执行后面的命令,也不会自动关机,也不能刚好弄一套1到9结尾的地址,但我们可以提高运算次数如运行50次,在里面应该很大机会可以得到一整套地址了。

再次提醒,要避开“0”、“O”、”I”、“l”这些字符,不然等你国庆后回来电脑还在拼命碰那个不可能出现的地址。

如果对产生地址的随机种子数不放心,我们还可以用 -s 指定随机数种子。
C盘下建立一个文本文件seed.txt,随便输入一些内容后保存。
vanitygen -s c:\seed.txt -r 11111$
用上面这命令就可以用自己的种子产生随机数来生产地址了。

vanitygen运算地址是用碰的方式,所以能碰到一个你需要的地址,完全是一个概率问题,所以就不存在进度,也就不存在运算了80%没碰到,还剩下20%肯定可以碰到这种说法。

所以你可以建立一个bat文件内容来碰你需要的地址如:
vanitygen -k -o c:\add.txt 1234567

电脑要作其它用途的时候就关掉vanitygen,电脑空闲时就运行bat批处理文件,碰到的话就会自动保存起来。

3.5 其它用法
还有其它用法?是的,这个软件虽然只支持命令行,但确实玩法很多很多。这个程序就是个瑞士军刀,它不但能碰BTC地址,还能碰Namecoin、Litecoin、PPC的地址。

举几个例子:

Namecoin(NMC)的地址:
用 -N 参数可以碰一个Namecoin(NMC)的地址:

vanitygen -N N123

这样可以得到一个 N123开头的地址,根据提示,还可以以M开头,

vanitygen -N MyLove

这样几分钟也可以碰到一个MyLove开头的NMC地址,其它玩法同BTC地址。

Litecoin(LTC)地址:
用 -X 48 参数可以碰一个LTC地址:

vanitygen -X 48 LLL

这样可以得到一个LLL开头的LTC地址,实际在使用时,许多L开头的组合被拒绝,而且提示也是BTC地址不能以1开头,估计是软件bug,想用Love开头就不行。

PPC地址:

用 -X 55 参数可以碰一个PPC地址:

vanitygen -X 55 PPP

可以得到一个PPP开头的PPC地址。

以上这些要注意,不同币地址对一些字母的规定不同,使用正则碰撞之前要摸索一下,免得挑一个不存在的字符碰了半天啥也没捞到。

4.导入私钥
挑选完心仪的地址之后,备份好私钥之后就可以启用地址了。如何导入私钥,下面以bitcoin-qt客户端及Multibti客户端为例。

bitcoin-qt客户端:
客户端的菜单栏“帮助”->“调试窗口”->“控制台”,然后在命令输入框输入

walletpassphrase <交易密码> <秒数>

上面这是临时解锁钱包的命令,如果你的钱包没有设置交易密码,可以忽略上面这条命令,直接输入下面的命令:

importprivkey <私钥> <地址描述> false

命令参数之间用空格隔开,地址描述可以随便填,说明一下最后一个参数“false”,如果是新启用的地址,就用“false”参数。如果是一个有 BTC的地址,可以用“true”参数,这样导入之后客户端会“刷新”一下,把里面的余额算出来,这个过程会比较久,容易被误认为程序死了。

Multibti客户端:
这个导入私钥就更简单了,把你要导入的私钥用文本文件保存起来,一行一个私钥,然后把扩展名改为“key”,例如myadd.key。
然后在Multibit客户端里选中要导入私钥的钱包,在菜单栏上选“工具”-“导入私钥”。在界面里选中myadd.key文件,会自动识别有多少个私钥,点导入之后就完成了。

5.结束语
既然这个软件这么好用,我用它来碰某个地址如何?例如 1933phfhK3ZgFQNLGSDXvqCn32k2buXY8a 这个地址上有超过11万BTC,我把地址输入之后vanitygen提示太长,然后罢工,那我缩短一些好了,逐步减掉后面的字符,减了6个之后 vanitygen 1933phfhK3ZgFQNLGSDXvqCn32k2 终于肯工作了。难度是这样的:

Difficulty: 2794725737275825531787289201741966674434639341
[327.37 Kkey/s][total 481536][Prob 0.0%][50% in 1.876402e+032y]

需要1.8乘以10的32次方年才有50%的机会碰到一个缺少六位一致的地址,地球的年龄大约是4.6乘以10的9次方年,宇宙的年龄大约是1.3乘以10的10次方年,不算了,算多了都是泪啊。

不知道矿机能不能用来碰地址,随着算力的疯涨,前期的矿机慢慢会没有挖矿价值,如果能用来碰地址那倒是个不错的运用,冷天开矿机来供暖同时碰地址,一举两得。

人总喜欢一些独特个性的东西,拥有一个比较特别的地址也是一件不错的事情,你喜欢什么样的地址,碰到什么样的地址不妨拿出来秀一秀,提醒:千万别秀出私钥啊。

感谢 walker 对本文的指点。

如果觉得本文对你有帮忙,可以捐助 BTC:1N9shXD3V4DrAjBt9oqvZXPYf81DVvoooo 或 LTC:LLLLLLLWSdYMzJNtRvgp5N4m2crDHoqwCA ,非常感谢!

版权声明: by nc" sa 作者保留权利。文章为作者独立观点,不代表巴比特立场。

评论:15

您需要登录后才可以回复 登录|注册
    等一轮残月
    等一轮残月 411 天前

    //@巴比特资讯: vanitygen教程在此[酷] http://t.cn/8kqjoU2

    +1
    +1
    我要点评
    巴比特资讯
    巴比特资讯 411 天前

    vanitygen教程在此[酷]http://t.cn/8kqjoU2

    +1
    +1
    我要点评

    …..『手把手教你拥有个性化的BTC地址 | 巴比特』http://t.cn/8kqjoU2

    +1
    +1
    我要点评
    Author Image
    8btc9 851 天前

    这个文章能获赠0.2BTC?

    +1
    +1
    我要点评
      Author Image
      癫痫小蒙牛 850 天前

      文章一年前的了,那个时候价格便宜很多

      +1
      +1
      我要点评
      Author Image
      changjia 850 天前

      现在是0.02B左右,也许一年后再看今天的资助,也会有嘘唏之感,欢迎热心币友加入我们原创翻译的队伍

      +1
      +1
      我要点评
    cobra0098
    cobra0098 1093 天前

    求帮忙解决一个问题:我用了你上面的方法生成了一个ppc的地址,后来汇了几百个进去,现在想把私钥导入但是一直失败 求ppc导入私钥的详细方法。求帮忙啊! 感激不尽!

    +1
    +1
    我要点评
    cobra0098
    cobra0098 1101 天前

    请问ppc的私钥如何导入? 搞了半天还是不会= =。 求教

    +1
    +1
    我要点评
    Author Image
    coolspeed 1147 天前

    正在碰iLoveU,区分大小写。电脑太慢了。。

    +1
    +1
    我要点评
      Author Image
      吃猫的鱼 1147 天前

      呵呵,太容易得到的,会觉得不够vanity。

      +1
      +1
      我要点评
    Author Image
    coolspeed 1147 天前

    我碰了个1314,一瞬间就找到。

    +1
    +1
    我要点评
    Author Image
    丨弑君者丶枫 1167 天前

    很有意思,很实用!!

    +1
    +1
    我要点评
    Author Image
    陈波Nimrod 1172 天前

    写得很及时,正打算国庆7天来碰一个难度高一点的地址。

    “vanitygen运算地址是用碰的方式,所以能碰到一个你需要的地址,完全是一个概率问题,所以就不存在进度,也就不存在运算了80%没碰到,还剩下20%肯定可以碰到这种说法。”

    我这里有个疑问,因为我在玩这个的时候也想过这个问题,然后我试验过很多次,没有一次是超过100%的,所以我怀疑不是碰出来的,而是穷举出来的,但是比特币的非对称算法又不可能穷举得出来。搞不明白什么原理了。

    +1
    +1
    我要点评
      Author Image
      吃猫的鱼 1171 天前

      我没去研究源码,不清楚具体是怎么样的,但我们可以讨论一下,它应该是用一个随机种子结合某种随机条件产生一个固定种子,然后按固定种子依次按顺序来产生地址,这样种子是穷举,但产生的地址却表现出很大的离散性,所以用“碰”还是比较贴切的。

      从概率来讲,如果是均匀分布,打个比方,有一百个盒子,其中一个装着100元。你一个个打开,你要打开到最后一个才碰上100元的概率是1%,所以你碰的时候,要达到或超过进程100%的概率不超过1%,如果你有办法把每次进程记录下来,应该可以验证这种猜测。

      +1
      +1
      我要点评
    Author Image
    changjia 1172 天前

    本篇资助0.2BTC
    交易ID fe40c3edb6a36f51cf94450cb05bacddde20c1c3ebcacc21b7ada6129bfe52de

    +1
    +1
    我要点评