如果你观察过很多的btc地址, 隐隐会发现有些规律:
长度很多是34
位,好多是1
3
开头的, 字母排列杂乱无章.
如下都是合法的btc 地址, 这些地址都有币的,而且数量都不少, 就已当前的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
输出脚本是啥呢?
我们经常说, 谁有btc地址的私钥谁就能花费这些币,
私钥相当于钥匙, 输出脚本相当于锁, 你把私钥放入输出脚本中,
组成一个完整的脚本, 执行这个完整的脚本, 如果最后输出的是 True
, 那么恭喜你, 你可以花费这些币.
我们把0000000000000000000000000000000000000000
叫做hash160, 1111111111111111111114oLvT2
就是addr, hash160可以转换为addr.
你可以认为: addr就是hash160的简化, addr是对人更友好的一种表现方式, 就像语法糖一样.
执行输出脚本, 是私钥转化为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/12ZEw5Hcv1hTb6YUQJ69y1V7uhcoDz92PH
有没有可能找到私钥
存在这种可能, 不过需要巨大的算力来完成这个工作,这个可能太微小了. 如果有人找到了私钥, 燃烧地址就变成普通地址了.
如何手动生成btc地址
请看 https://www.jianshu.com/p/954e143e97d2, step3是得到hash160_val
, 如果你想通过 hash160_val
得到地址, 从step4开始计算就可以.
安全提示
虽然这些步骤经过了验证并没有发现问题, 但也仅供参考.
强烈建议不要自己生成btc addres
强烈建议不要自己生成btc addres
强烈建议不要自己生成btc addres
请用信赖的工具来干这事
如果地址计算错误, 这个私钥并不能解开你的地址, 相当于你的btc丢了.
mastering bitcoin已经给了我们教训. 同理ethereum 也有burn address哦.