LoginSignup
0
1

bitcoin: 何为燃烧地址

Last updated at Posted at 2019-02-20

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

以下都是合法的地址:

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

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

燃烧地址

1111111111111111111114oLvT2 还有特殊的地方,看 ta 的交易,只有输入,没有输出,只进不出。咋这抠门呢,这是个貔貅啊。

看下第一笔交易2c637592a4b4a95cf4b19260730c66de540d7d3b14d8d352de591c5ee6eac0fc
输出脚本是 OP_DUP OP_HASH160 0000000000000000000000000000000000000000 OP_EQUALVERIFY OP_CHECKSIG

我们把 0000000000000000000000000000000000000000 叫做 hash160,hash160 可以转换为比特币地址。
你可以认为:比特币地址就是对 hash160 的简化,比特币地址是对人更友好的一种表现方式,就像语法糖一样。


比特币地址的正常推导过程是:私钥 ==> 公钥 ==> Hash160 <==> 地址

输出脚本是啥?我们经常说,谁有比特币地址的私钥谁就能花费这些币,私钥相当于钥匙,输出脚本相当于锁,你把私钥放入输出脚本中,组成一个完整的脚本
执行输出脚本,是私钥转化为 Hash160 的过程。如果与脚本里提前写好的 Hash160 一致,最后的输出结果就是 True,你可以花费这些币了。

Hash160 就是没有规则的字符串,我们可以提供个任意的值,从半截腰上推导地址:Hash160 <==> 地址。1111111111111111111114oLvT2 很明显就是这种情况,ta 的 hash160 全是0,这显然是特意拼凑的,既然从半截腰推导出来的,自然没人知道私钥。
由于整体运算过程的不可逆性,我们无法推算出这个地址的私钥,既然不知道私钥,就无法动用币,只能进不能出,成了一个“废地址”,也叫燃烧地址,即 burn address,像燃料一样烧没了。具体请看 https://qiita.com/shooter/items/1383ff1bcc8f1c97c53b

为什么还要向燃烧地址发送交易呢

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

生成个燃烧地址

设定 hash160 = 1111111111111111111111111111111111111111,最终得到地址12ZEw5Hcv1hTb6YUQJ69y1V7uhcoDz92PH
也有人打过币了,具体请看 https://qiita.com/shooter/items/1383ff1bcc8f1c97c53b

安全提示

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

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

《Mastering Bitcoin》已经给了我们一个大教训

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1