来自简书

btc address: 1FmWXNJT3jVKaHBQs2gAs6PLGVWx1zPPHf

如果你观察过很多的btc地址, 隐隐会发现有些规律:
长度很多是34位,好多是1 3 开头的, 字母排列杂乱无章.

如下都是合法的btc 地址, 这些地址都有币的,而且数量都不少, 就已当前的(2018/08/21)btc价格计算, 绝对是富得流油了.

3MWqbpfzxgojEAah6PMZoZPdUPUTuyTpan
1EdBvVAVP98zUsz2n8Pereop29y9fUFk2i
3Cbq7aT1tY8kMxWLbitaG7yT6bPbKChq64
3Nxwenay9Z8Lc9JBiywExpnEFiLp6Afp8v
18tTLso5jaa4XqyTQzo9S6mqhfCsgcufdh
1FeexV6bAHb8ybZjqQMjJrcCrHGW9sb6uF
1HQ3Go3ggs8pFnXuHVHRytPCq5fGG8Hbhx
1PnMfRF2enSZnR6JSexxBHuQnxG8Vo5FVK
3Kzh9qAqVWQhEsfQz7zEQL1EuSx5tyNLNS
1EBHA1ckUWzNKN7BMfDwGTx6GKEbADUozX
1LdRcdxfbSnmCYYNdeYpUnztiYzVfBEQeC
...

34位的长度是绝对的么,有特例么?
还真找到一个地址 1111111111111111111114oLvT2,长度只有27位, 而且这么多的111..., 感觉很优美. 一般btc 地址的长度是34位, 也有33位, 最短的应该是26位.

燃烧地址

1111111111111111111114oLvT2 还有特殊的地方.
如果看ta的交易, 只有输入, 没有输出,什么意思呢?
只有别人给ta发币, ta一分钱没花,只进不出,咋这抠门呢, 这是个貔貅啊.

我们看看ta的第一笔交易id
2c637592a4b4a95cf4b19260730c66de540d7d3b14d8d352de591c5ee6eac0fc, 交易时间是 2010年8月10号,
输出脚本是
OP_DUP OP_HASH160 0000000000000000000000000000000000000000 OP_EQUALVERIFY OP_CHECKSIG

![输出脚本
](https://user-gold-cdn.xitu.io...

输出脚本是个啥呢?
我们经常说, 谁有btc地址的私钥谁就能花费这些币,
私钥相当于钥匙, 输出脚本相当于锁, 你把私钥放入输出脚本中,
组成一个完整的脚本, 执行这个完整的脚本, 如果最后输出的是 True, 那么恭喜你, 你可以花费这些币.

我们把0000000000000000000000000000000000000000 叫做hash160, 1111111111111111111114oLvT2就是addr, hash160可以转换为addr.

你可以认为: addr就是hash160的简化, addr是对人更友好的一种表现方式, 就像语法糖一样.

image

执行输出脚本, 是私钥转化为Hash160的过程.
你提供的私钥转化成Hash160_me, 如果与脚本里提前写好的Hash160一致, 你就可以动用这个地址的币了.

btc地址的正常推导过程是: 私钥 ==>公钥 ==> Hash160 <==> 地址.

Hash160就是没有规则的字符串,我们可以随便提供个Hash160值, 从半截腰上推导地址: Hash160 <==> 地址.

1111111111111111111114oLvT2很明显就是这种情况, 从半截腰上推导出来的地址, ta的hash160是 000...000, 都是0,这是特意拼凑的,既然是从半截腰推导出来的,自然没人知道私钥.
由于hash运算的不可逆性, 此刻还无法推算出这个地址的私钥,
既然不知道私钥,就无法动用币,只能进不能出,成了一个"废地址",这样的地址叫燃烧地址, 即 burn address, 像燃料一样烧没了, 非常形象.

为什么还要往这种地址发送交易呢

1 减少币的流通量
2 土豪的心思不要猜

我们生成个 burn address

设定 hash160 = 1111111111111111111111111111111111111111, 最终得到地址12ZEw5Hcv1hTb6YUQJ69y1V7uhcoDz92PH.
这个地址好没个性啊,但是也有人打过币了, https://btc.com/12ZEw5Hcv1hTb...

有没有可能找到私钥

存在这种可能, 不过需要巨大的算力来完成这个工作,这个可能太微小了. 如果有人找到了私钥, 燃烧地址就变成普通地址了.

如何手动生成btc地址

请看 https://www.jianshu.com/p/954... step3是得到hash160_val, 如果你想通过 hash160_val 得到地址, 从step4开始计算就可以.

安全提示

虽然这些步骤经过了验证并没有发现问题, 但也仅供参考.

强烈建议不要自己生成btc addres
强烈建议不要自己生成btc addres
强烈建议不要自己生成btc addres

请用信赖的工具来干这事
如果地址计算错误, 这个私钥并不能解开你的地址, 相当于你的btc丢了.

mastering bitcoin已经给了我们教训. 同理ethereum 也有burn address哦.


shooter
82 声望1 粉丝