比特币地址本质上是经过 Base58 编码的公钥哈希值。更多详情请点击此处。
这些地址本质上是从 Base58 字母表中随机选择的字符:大写和小写拉丁字母和数字,删除 0、I、O 和 l。
你可以通过生成私钥/公钥对,并对后者进行哈希运算,直到得到所需的初始字符串,从而创建一个以选定字符开头的地址 [1]。有人已经这样做了。vanitygen软件给出了一个搜索以“Love”(在强制首字母 1 之后)开头的地址的示例。
$ ./vanitygen 1Love ... 图案:1Love 地址:1LoveRg5t2NCDLUZh6Q8ixv74M5YGVxXaN 密钥:5JLUmjZiirgziDmWmNprPsNx8DYwfecUNk1FQXmDPaoKB36fX1o
搜索时间
无法指定长前缀。查找具有n 个指定首字符的地址的难度会呈指数增长,例如 58 n 。
假设查找包含所需前四个字符的地址平均需要一分钟。每增加一个字符,搜索时间就会增加 58 倍,因此指定 5 个字符大约需要一小时。如果您想查找以1AcmeCorp
开头的地址,则需要58分钟,即超过 21 年。
缺点
您可能不想使用虚荣地址的原因有几个。
首先,现在习惯于为每笔交易生成新的地址。这赋予了比特币一定程度的隐私,尽管程度不大。想必如果你费力创建了一个自定义地址,你希望保留它。例如,你可能想用它作为别人给你捐款的地址,而且你可以重复使用这个地址。
其次,如果您使用其他人编写的软件来生成自定义地址,该网站可能会保留您的私钥或将其发送到某个地方。
第三,您无法在 HD 钱包中使用地址。与第一点相关,HD 钱包会根据某种确定性算法生成一系列密钥对,从而生成地址,因此它无法保存非自身生成的地址。但有些钱包会保存此类地址。
工作量证明
顺便说一句,比特币的工作量证明任务与寻找靓号地址非常相似。你取出一个区块,然后尽可能地调整,直到其哈希值达到目标值,且前导零比特数达到目标值。更多信息请点击此处。
虚荣地址一文最先出现在John D. Cook身上。
原文: https://www.johndcook.com/blog/2025/09/01/vanity-addresses/