資源描述:
《比特幣私匙公匙和錢包地址之間的關(guān)系》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、火幣網(wǎng)-專業(yè)的比特幣交易平臺:www.huobi.com比特幣私匙公匙和錢包地址之間的關(guān)系想要深入了解比特幣的交易部分,需要掌握到很多密碼學(xué)知識:公鑰、私鑰、哈希、對稱加密、非對稱加密、簽名等等。那么普通用戶最關(guān)心的莫過于哪些東西是需要用戶認(rèn)真保管不能對外泄露的,而哪些是可以對外公開的呢?接下來我們先從錢包的地址生成說起。錢包地址生成1.首先使用隨機(jī)數(shù)生成器來生成一個(gè)“私鑰”。一般來說這是一個(gè)256bits的字符串,擁有了這串字符就可以對相應(yīng)“錢包地址”中的比特幣進(jìn)行操作(比如:花費(fèi)掉它),所以它必須是被妥善保管的。火幣網(wǎng)-專業(yè)的比特幣交易平臺:www.huobi.c
2、om2.“私鑰”再經(jīng)過SECP256K1的算法處理,然后生成了“公鑰”。SECP256K1是一種橢圓曲線算法,通過一個(gè)已知的“私鑰”,可以算得對應(yīng)的“公鑰”。但是,知道某一“公鑰”,卻無法反向計(jì)算出“私鑰”。這個(gè)也是保障比特幣安全的算法基礎(chǔ)。3.同SHA256一樣,RIPEMD160也是一種Hash算法,由“公鑰”可以計(jì)算得到”公鑰哈?!?,同樣地,反過來是行不通的。4.將一個(gè)字節(jié)的地址版本號連接到“公鑰哈希”的頭部,然后對其進(jìn)行兩次SHA256運(yùn)算,將結(jié)果的前4個(gè)字節(jié)作為“公鑰哈?!钡男r?yàn)值,連接放在其尾部。5.將上一步的結(jié)果使用BASE58進(jìn)行編碼,就得到了“錢包地
3、址”。比特幣錢包地址設(shè)定為以數(shù)字1開頭,實(shí)例:1GpxB9kKC3k91jgqbgUDRPiPRNcfuEvjqm“私鑰”“公鑰”“錢包地址”之間的關(guān)系在上述的五個(gè)步驟里,唯有“BASE58編碼”有相應(yīng)的可逆算法(即“BASE58解碼”),其他的算法都是不可逆的,所以它們之間的關(guān)系可以表示為:火幣網(wǎng)-專業(yè)的比特幣交易平臺:www.huobi.com通過圖表所示,很顯然我們通過“私鑰”可以得到上面整個(gè)計(jì)算過程中的所有的值。而“公鑰哈?!焙汀板X包地址”之間可以通過互逆運(yùn)算進(jìn)行轉(zhuǎn)換,所以它們是等價(jià)的。使用“私鑰”對交易進(jìn)行簽名比特幣錢包地址之間的轉(zhuǎn)賬是通過交易(Transa
4、ction)來實(shí)現(xiàn)的。交易數(shù)據(jù)是由被轉(zhuǎn)出幣的錢包的“私鑰”所有者發(fā)起的,也就是說,只有掌管了“私鑰”你才可以花費(fèi)這個(gè)私鑰對應(yīng)的錢包地址上的比特幣。交易的整個(gè)過程如下圖所示:火幣網(wǎng)-專業(yè)的比特幣交易平臺:www.huobi.com1.大家可以看到,交易的數(shù)據(jù)里包含了“轉(zhuǎn)賬數(shù)額”和“轉(zhuǎn)入錢包地址”,但是僅有這些數(shù)據(jù)肯定是不夠的,因?yàn)榘l(fā)起交易的一方無法證明“轉(zhuǎn)出錢包地址”里的幣是自己的。所以需要用“私鑰”對這筆交易進(jìn)行簽名,以此證明自己是這筆幣的主人。2.生成“轉(zhuǎn)出錢包公鑰”,這一過程與生成“錢包地址”中的第2步是一樣的。3.我們必須把“轉(zhuǎn)出簽名”和“轉(zhuǎn)出公鑰”全部添加到原
5、始交易數(shù)據(jù)中,才能生成一筆合法的交易,這樣它才可以被廣播到比特幣網(wǎng)絡(luò),從而順利完成轉(zhuǎn)賬。使用“公鑰”對簽名進(jìn)行驗(yàn)證火幣網(wǎng)-專業(yè)的比特幣交易平臺:www.huobi.com在這筆交易數(shù)據(jù)被廣播到比特幣網(wǎng)絡(luò)后,比特幣的網(wǎng)絡(luò)上各個(gè)節(jié)點(diǎn)會對這個(gè)交易數(shù)據(jù)進(jìn)行核對,這其中最重要的環(huán)節(jié)就是對簽名的校驗(yàn)。如果校驗(yàn)的結(jié)果是正確無誤的,那么這筆比特幣就將被成功地從“轉(zhuǎn)出錢包地址”轉(zhuǎn)移到“轉(zhuǎn)入錢包地址”了。概要內(nèi)容:一、如果某一“錢包地址”沒有發(fā)送過任何幣給其它“錢包地址”,那么它的“公鑰”是不會暴露的?;饚啪W(wǎng)-專業(yè)的比特幣交易平臺:www.huobi.com二、由私鑰到公鑰的生成算法(S
6、ECP256K1)是不可逆的,所以,即便“公鑰”暴露,也不能破解對應(yīng)的“私鑰”,破解的難易程度往往取決于生成算法的特點(diǎn),僅就目前的計(jì)算機(jī)計(jì)算能力而言,是遠(yuǎn)遠(yuǎn)無法完成的。三、“私鑰”是用來生成“公鑰”和“錢包地址”的,也是用來對交易進(jìn)行簽名的。所以,擁有了某個(gè)錢包地址對應(yīng)的“私鑰”就是擁有了對這個(gè)錢包地址上的所有比特幣的一切操作權(quán)力。四、私鑰的備份方式可以是多種多樣的,比如在QT錢包客戶端里,一般是通過錢包文件菜單里選擇備份wallet.dat文件的方式將錢包上所有私鑰保管在一個(gè)文件中。通過這種方式需要注意的細(xì)節(jié)是,錢包對外轉(zhuǎn)賬超過100次以后,再新發(fā)起轉(zhuǎn)賬的話,需要重
7、新備份,這是由于QT錢包里的找零機(jī)制的作用。而如果是SPV輕錢包,往往就不存在這類問題,只需備份一次私鑰即可。五、給錢包設(shè)置的密碼和錢包的私鑰不是同一個(gè)概念,錢包的密碼相當(dāng)于給你錢包上的所有私鑰進(jìn)行二次加密,如果沒有密碼,即便你拿到保管私鑰的那個(gè)wallet.dat文件,也無法窺探到里面包含的眾多個(gè)私鑰長的什么樣,不過,人工設(shè)置的密碼往往不具備較強(qiáng)的安全性,除非是非常復(fù)雜的密碼,否則往往是可以暴力破解的。再次強(qiáng)調(diào),“私鑰”乃是比特幣錢包中最基本也是最重要的一個(gè)東西,千萬不能隨便泄露哦?;饚啪W(wǎng)-專業(yè)的比特幣交易平臺:www.huobi.com本文僅討論