自定义地址

自定义地址是有效的比特币地址,其中包含可读的人类可读信息。例如,1LoveBPzzD72PUXLzCkYAtGFYmK5vYNR33是一个有效的地址,其中的前四个base58字母形成了单词“Love”。自定义地址需要生成和测试数十亿个候选私钥,直到找到一个具有所需模式的比特币地址。虽然自定义地址生成算法中有一些优化,但该过程基本上涉及随机选择一个私钥,派生出公钥,派生出比特币地址,并检查它是否与所需的自定义模式匹配,重复数十亿次直到找到匹配项。

一旦找到与所需模式匹配的自定义地址,就可以使用派生自该地址的私钥来花费比特币,方式与任何其他地址完全相同。自定义地址与任何其他地址一样安全。它们依赖于与任何其他地址相同的椭圆曲线密码学(ECC)和安全哈希算法(SHA)。您无法更轻松地找到具有自定义模式起始的地址的私钥,就像您无法更轻松地找到任何其他地址的私钥一样。

Eugenia是一位在菲律宾从事儿童慈善工作的主任。假设Eugenia正在组织一场筹款活动,并希望使用一个自定义的比特币地址来宣传筹款活动。Eugenia将创建一个以“1Kids”开头的自定义地址,以促进儿童慈善筹款活动。让我们看看这个自定义地址将如何创建,以及对Eugenia的慈善机构安全性意味着什么。

生成自定义地址

重要的是要意识到,比特币地址只是用base58字母表中的符号表示的数字。像“1Kids”这样的模式搜索可以看作是在范围从1Kids11111111111111111111111111111到1Kidszzzzzzzzzzzzzzzzzzzzzzzzzzzzz之间搜索地址。在这个范围内有大约5829个(大约1.4 × 1051)地址,所有地址都以“1Kids”开头。

表4-7显示了以“1Kids”开头的自定义地址范围。

From 1Kids11111111111111111111111111111

1Kids11111111111111111111111111112

1Kids11111111111111111111111111113

To 1Kidszzzzzzzzzzzzzzzzzzzzzzzzzzzzz

让我们将模式“1Kids”视为一个数字,并看看在比特币地址中可能找到这个模式的频率(见表4-8)。一台普通的桌面电脑,没有任何专门的硬件,可以每秒搜索大约100,000个密钥。

表4-8显示了一个自定义模式(1KidsCharity)的频率和在桌面PC上的平均搜索时间。

长度模式频率平均搜索时间

1

1K

58次

< 1毫秒

2

1Ki

3364次

50 毫秒

3

1Kid

195,000 次

< 2 秒

4

1Kids

1100万次

1分钟

5

1KidsC

6.56亿

1小时

6

1KidsCh

380亿

2天

7

1KidsCha

2.2兆(一兆=10^12)

3-4个月

8

1KidsChar

128兆

13-18年

9

1KidsChari

7千兆

800年

10

1KidsCharit

400千兆

46000年

11

1KidsCharity

23京(一京=10^16)

250万年

如您所见,即使是有几千台计算机,Eugenia 也不可能很快就创建出 "1KidsCharity" 这个自定义地址。每增加一个字符,搜索的难度就增加了58倍。通常情况下,具有超过七个字符的模式通常是由专用硬件完成的,例如具有多个图形处理单元(GPU)的定制台式机。在 GPU 系统上进行的自定义搜索比在通用 CPU 上快得多。

另一种找到自定义地址的方法是将工作外包给一组自定义矿工。自定义矿工池是一种服务,允许那些拥有快速硬件的人通过为他人搜索自定义地址而赚取比特币。以一定费用,Eugenia 可以将对七个字符模式自定义地址的搜索外包,并在几小时内获得结果,而不必花费数月时间在 CPU 上进行搜索。

生成自定义地址是一种蛮力练习:尝试一个随机密钥,检查生成的地址是否与所需模式匹配,重复直至成功。

自定义地址安全和隐私

自定义地址在比特币早期很受欢迎,但截至2023年几乎完全从使用中消失。这种趋势有两个可能的原因:

确定性钱包

正如我们在“恢复码”中看到的那样,大多数现代钱包可以通过简单地写下几个单词或字符来备份每个密钥。这是通过使用确定性算法从这些单词或字符派生钱包中的每个密钥来实现的。除非用户为创建的每个自定义地址备份了额外的数据,否则无法在确定性钱包中使用自定义地址。更实际的是,大多数使用确定性密钥生成的钱包根本不允许从自定义地址生成器导入私钥或密钥扭曲。

避免地址重用

使用自定义地址接收多笔支付到同一个地址会在所有这些支付之间创建一个联系。如果Eugenia的非营利组织需要向税务机构报告其收入和支出,那么这可能是可以接受的。然而,这也会降低那些支付给Eugenia或从她那里接收支付的人的隐私。例如,Alice可能想匿名捐赠,Bob可能不希望他的其他客户知道他给Eugenia提供折扣价格。

我们不指望在未来会看到很多自定义地址,除非上述问题得到解决。

Last updated