bitcoin: 何為燃燒地址
來自 簡書
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是對人更友好的一種表現方式 , 就像語法糖一樣.
執行輸出指令碼, 是私鑰轉化為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哦.