來自簡書安全
btc address: 1FmWXNJT3jVKaHBQs2gAs6PLGVWx1zPPHf
工具
若是你觀察過不少的btc地址, 隱隱會發現有些規律:
長度不少是34
位,好可能是1
3
開頭的, 字母排列雜亂無章.spa
以下都是合法的btc 地址, 這些地址都有幣的,並且數量都很多, 就已當前的(2018/08/21)btc價格計算, 絕對是富得流油了.code
3MWqbpfzxgojEAah6PMZoZPdUPUTuyTpan 1EdBvVAVP98zUsz2n8Pereop29y9fUFk2i 3Cbq7aT1tY8kMxWLbitaG7yT6bPbKChq64 3Nxwenay9Z8Lc9JBiywExpnEFiLp6Afp8v 18tTLso5jaa4XqyTQzo9S6mqhfCsgcufdh 1FeexV6bAHb8ybZjqQMjJrcCrHGW9sb6uF 1HQ3Go3ggs8pFnXuHVHRytPCq5fGG8Hbhx 1PnMfRF2enSZnR6JSexxBHuQnxG8Vo5FVK 3Kzh9qAqVWQhEsfQz7zEQL1EuSx5tyNLNS 1EBHA1ckUWzNKN7BMfDwGTx6GKEbADUozX 1LdRcdxfbSnmCYYNdeYpUnztiYzVfBEQeC ...
34
位的長度是絕對的麼,有特例麼?
還真找到一個地址 1111111111111111111114oLvT2,長度只有27
位, 並且這麼多的111...
, 感受很優美. 通常btc 地址的長度是34
位, 也有33
位, 最短的應該是26
位.cdn
1111111111111111111114oLvT2 還有特殊的地方.
若是看ta的交易, 只有輸入, 沒有輸出,什麼意思呢?
只有別人給ta發幣, ta一分錢沒花,只進不出,咋這摳門呢, 這是個貔貅啊.rem
咱們看看ta的第一筆交易id
2c637592a4b4a95cf4b19260730c66de540d7d3b14d8d352de591c5ee6eac0fc, 交易時間是 2010年8月10號,
輸出腳本是OP_DUP OP_HASH160 0000000000000000000000000000000000000000 OP_EQUALVERIFY OP_CHECKSIG
字符串
![輸出腳本
](https://user-gold-cdn.xitu.io...get
輸出腳本是個啥呢?
咱們常常說, 誰有btc地址的私鑰誰就能花費這些幣,
私鑰至關於鑰匙, 輸出腳本至關於鎖, 你把私鑰放入輸出腳本中,
組成一個完整的腳本, 執行這個完整的腳本, 若是最後輸出的是 True
, 那麼恭喜你, 你能夠花費這些幣. hash
咱們把0000000000000000000000000000000000000000
叫作hash160, 1111111111111111111114oLvT2
就是addr, hash160能夠轉換爲addr.it
你能夠認爲: addr就是hash160的簡化, addr是對人更友好的一種表現方式, 就像語法糖同樣.
執行輸出腳本, 是私鑰轉化爲Hash160的過程.
你提供的私鑰轉化成Hash160_me, 若是與腳本里提早寫好的Hash160一致, 你就能夠動用這個地址的幣了.
btc地址的正常推導過程是: 私鑰 ==>公鑰 ==> Hash160 <==> 地址
.
Hash160就是沒有規則的字符串,咱們能夠隨便提供個Hash160值, 從半截腰上推導地址: Hash160 <==> 地址
.
1111111111111111111114oLvT2
很明顯就是這種狀況, 從半截腰上推導出來的地址, ta的hash160是 000...000
, 都是0
,這是特地拼湊的,既然是從半截腰推導出來的,天然沒人知道私鑰.
因爲hash運算的不可逆性, 此刻還沒法推算出這個地址的私鑰,
既然不知道私鑰,就沒法動用幣,只能進不能出,成了一個"廢地址",這樣的地址叫燃燒地址, 即 burn address
, 像燃料同樣燒沒了, 很是形象.
1 減小幣的流通量
2 土豪的心思不要猜
設定 hash160 = 1111111111111111111111111111111111111111
, 最終獲得地址12ZEw5Hcv1hTb6YUQJ69y1V7uhcoDz92PH
.
這個地址好沒個性啊,可是也有人打過幣了, https://btc.com/12ZEw5Hcv1hTb...
存在這種可能, 不過須要巨大的算力來完成這個工做,這個可能太微小了. 若是有人找到了私鑰, 燃燒地址就變成普通地址了.
請看 https://www.jianshu.com/p/954... step3是獲得hash160_val
, 若是你想經過 hash160_val
獲得地址, 從step4開始計算就能夠.
雖然這些步驟通過了驗證並無發現問題, 但也僅供參考.
強烈建議不要本身生成btc addres 強烈建議不要本身生成btc addres 強烈建議不要本身生成btc addres 請用信賴的工具來幹這事 若是地址計算錯誤, 這個私鑰並不能解開你的地址, 至關於你的btc丟了.
mastering bitcoin已經給了咱們教訓. 同理ethereum 也有burn address哦.