来自
btc address: 1FmWXNJT3jVKaHBQs2gAs6PLGVWx1zPPHf
如果你观察过很多的btc地址, 隐隐会发现有些规律:
长度很多是34
位,好多是1
3
开头的, 字母排列杂乱无章. 如下都是合法的btc 地址, 这些地址都有币的,而且数量都不少, 就已当前的(2018/08/21)btc价格计算, 绝对是富得流油了.
3MWqbpfzxgojEAah6PMZoZPdUPUTuyTpan1EdBvVAVP98zUsz2n8Pereop29y9fUFk2i3Cbq7aT1tY8kMxWLbitaG7yT6bPbKChq643Nxwenay9Z8Lc9JBiywExpnEFiLp6Afp8v18tTLso5jaa4XqyTQzo9S6mqhfCsgcufdh1FeexV6bAHb8ybZjqQMjJrcCrHGW9sb6uF1HQ3Go3ggs8pFnXuHVHRytPCq5fGG8Hbhx1PnMfRF2enSZnR6JSexxBHuQnxG8Vo5FVK3Kzh9qAqVWQhEsfQz7zEQL1EuSx5tyNLNS1EBHA1ckUWzNKN7BMfDwGTx6GKEbADUozX1LdRcdxfbSnmCYYNdeYpUnztiYzVfBEQeC...
34
位的长度是绝对的么,有特例么?
27
位, 而且这么多的111...
, 感觉很优美. 一般btc 地址的长度是34
位, 也有33
位, 最短的应该是26
位. 燃烧地址
1111111111111111111114oLvT2 还有特殊的地方.
如果看ta的交易, 只有输入, 没有输出,什么意思呢?只有别人给ta发币, ta一分钱没花,只进不出,咋这抠门呢, 这是个貔貅啊.我们看看ta的第一笔交易id
, 交易时间是 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
,这是特意拼凑的,既然是从半截腰推导出来的,自然没人知道私钥.
burn address
, 像燃料一样烧没了, 非常形象. 为什么还要往这种地址发送交易呢
1 减少币的流通量
2 土豪的心思不要猜我们生成个 burn address
设定 hash160 = 1111111111111111111111111111111111111111
, 最终得到地址12ZEw5Hcv1hTb6YUQJ69y1V7uhcoDz92PH
.
有没有可能找到私钥
存在这种可能, 不过需要巨大的算力来完成这个工作,这个可能太微小了. 如果有人找到了私钥, 燃烧地址就变成普通地址了.
如何手动生成btc地址
请看 step3是得到hash160_val
, 如果你想通过 hash160_val
得到地址, 从step4开始计算就可以.
安全提示
虽然这些步骤经过了验证并没有发现问题, 但也仅供参考.
强烈建议不要自己生成btc addres强烈建议不要自己生成btc addres强烈建议不要自己生成btc addres请用信赖的工具来干这事如果地址计算错误, 这个私钥并不能解开你的地址, 相当于你的btc丢了.
mastering bitcoin已经给了我们. 同理ethereum 也有burn address哦.