引入壓縮格式公鑰是為了減少比特幣交易的字節(jié)數(shù),從而可以節(jié)省那些運(yùn)行區(qū)塊鏈數(shù)據(jù)庫的節(jié)點(diǎn)磁盤空間。壓縮格式公鑰漸漸成為了各種不同的比特幣客戶端的默認(rèn)格式,它可以大大減少交易所需的字節(jié)數(shù),同時(shí)也讓存儲(chǔ)區(qū)塊鏈所需的磁盤空間變小。也許2018全是壓縮格式的了。
由同樣的私鑰所生成但是壓縮格式公鑰和非壓縮格式公鑰差別很大。更重要的是,如果我們使用雙哈希函數(shù)(RIPEMD160(SHA256(K)))將壓縮格式公鑰轉(zhuǎn)化成比特幣地址,得到的地址將會(huì)不同于由非壓縮格式公鑰產(chǎn)生的地址。這種結(jié)果會(huì)讓人迷惑,因?yàn)橐粋€(gè)私鑰可以生成兩種不同格式的公鑰——壓縮格式和非壓縮格式,而這兩種格式的公鑰可以生成兩個(gè)不同的比特幣地址。但是,這兩個(gè)不同的比特幣地址的私鑰是一樣的。不論是通過壓縮的公鑰產(chǎn)生的比特幣地址,還是通過非壓縮的公鑰產(chǎn)生的地址,兩個(gè)都是合法的比特幣地址,都可以被私鑰正確簽名,但是他們是完全不同的比特幣地址。
避免地址重復(fù)使用的原則——每個(gè)比特幣地址只能用一次交易,地址通過關(guān)聯(lián)多重交易和對(duì)方的地址重復(fù)使用會(huì)減少隱私
可擴(kuò)展鑰匙看到了很多對(duì)應(yīng)的代碼,這塊先了解一點(diǎn),暫無必要學(xué)透

image.png
比特幣系統(tǒng)中包含三種類型的地址:
- P2PKH 該種地址以數(shù)字1開頭,用于常見的個(gè)人到個(gè)人的支付。如:
1BvBMSEYstWetqTFn5Au4m4GFg7xJaNVN2 - P2SH 該種地址以數(shù)字3開頭,用于智能合約支付。如:
3J98t1WpEZ73CNmQviecrnyiWrnqRhWNLy - Bech32 該種地址以字母bc1開頭,用于隔離見證支付。如:
bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf5mdq
傳統(tǒng)的比特幣地址從數(shù)字1開頭,以數(shù)字3開頭的比特幣地址是P2SH(Pay-to-Script Hash)地址,有時(shí)被錯(cuò)誤的稱謂多重簽名或多重簽名地址。他們指定比特幣交易中受益人作為哈希的腳本,而不是公鑰的所有者。資金被發(fā)送到3開頭的地址時(shí),需要的不僅僅是一個(gè)公鑰的哈希值,同時(shí)也需要一個(gè)私鑰簽名作為所有者證明。在創(chuàng)建地址的時(shí)候,這些要求會(huì)被定義在腳本中,所有對(duì)地址的輸入都會(huì)被這些要求阻隔。