來自 簡書
如果你觀察過很多的btc地址, 隱隱會發現有些規律:
長度是34
位,好多是1
3
開頭的, 字母排列雜亂無章.
如下都是合法的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/12ZEw5Hcv1hTb6YUQJ69y1V7uh...
有沒有可能找到私鑰
存在這種可能, 不過需要巨大的算力來完成這個工作,這個可能太微小了. 如果有人找到了私鑰, 燃燒地址就變成普通地址了.
如何手動生成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哦.
本作品採用《CC 協議》,轉載必須註明作者和本文連結