Address-Generation
版本1比特幣地址中版本字節和地址校驗和有什麼意義
支付到公鑰雜湊用於版本 1 比特幣地址。比特幣地址是通過對公鑰進行 sha-256 運算,然後對結果進行成熟 160 運算來計算的。然後可以在<https://en.bitcoin.it/wiki/Technical_background_of_version_1_Bitcoin_addresses>中所示的 3 個以上步驟後以 base 58 編碼結果 版本字節和地址校驗和被添加到沒有它們的情況下產生相同結果的成熟 -
這個:010966776006953D5567439E5E39F86A0D273BEE
而這個:00010966776006953D5567439E5E39F86A0D273BEED61967F6
編碼時產生相同的結果,那麼為什麼要這樣做?
他們怎麼能給出同樣的結果?你做 RIPEMD160(SHA256(pubkey))。然後將零字節 0x0 添加到此並執行雙 SHA256。您獲取前四個字節並將它們用作 s 校驗和,這意味著它們是控制數字,可幫助錢包確定您沒有輸錯地址。
現在你把這整個東西零字節+RIPEMD160(SHA256(pubkey))+校驗和轉換成base58check。注意:零字節將使地址始終以“1”開頭。
當發送者獲得比特幣地址時,他們的錢包將其從 base58check 轉換為十六進制,檢查校驗和並刪除零字節和校驗和以獲得 RIPEMD160(SHA256(pubkey))。然後繼續進行 scriptPubKey 驗證。
這就是為什麼它被稱為 Pay-to-public-key-hash 的原因。比特幣地址只是一種對公鑰雜湊進行編碼的方式。