【私鑰|地址|公鑰】你知道私鑰為什么那么重要嗎?

文章簡介:
可能很多人接觸了區(qū)塊鏈很久,至今還未搞清楚比特幣私鑰、公鑰、錢包地址之間的關系。為什么有私鑰就有了地址的控制權?交易驗證這個過程是如何執(zhí)行的呢?

雖然這些底層處理并不一定得搞清楚,但如果明白,可以讓你更深刻的理解私鑰的重要性。

知其然,知其所以然……


知識點掃盲

非對稱加密算法:有公鑰私鑰,用公鑰加密的數(shù)據(jù)只有對應的私鑰才能解密,反之亦然;


錢包地址的生成

地址生成.png
  1. 首先使用隨機數(shù)發(fā)生器生成一個【私鑰】,一般來說是一個256位的數(shù)。

  2. 【私鑰】經(jīng)過SECP256K1算法處理生成了【公鑰】。SECP256K1是一種橢圓曲線算法,通過一個已知【私鑰】時可以算得【公鑰】,而【公鑰】已知時卻無法反向計算出【私鑰】。這是保障比特幣安全的算法基礎。

  3. 同SHA256一樣,RIPEMD160也是一種Hash算法,由【公鑰】可以計算得到【公鑰哈?!?,而反過來是行不通的。

  4. 將一個字節(jié)的地址版本號連接到【公鑰哈?!款^部(對于比特幣網(wǎng)絡的pubkey地址,這一字節(jié)為“0”),然后對其進行兩次SHA256運算,將結果的前4字節(jié)作為【公鑰哈?!康男r炛担B接在其尾部。

  5. 將上一步結果使用BASE58進行編碼(比特幣定制版本),就得到了【錢包地址】。

上述可能包含了比較多的專業(yè)術語,我們簡單點來講,私鑰,公鑰以及錢包地址之間的關系可以用下圖來表示:

三者關系.png

看到這里,相信大家已經(jīng)明白了這三者的生成關系,那在交易驗證中,三者又是又是起怎樣的作用呢?


交易驗證過程

首先我們看下生成交易的過程(交易驗證的過程就運用了非對稱加密):

用私鑰對交易簽名
私鑰簽名.png
  1. 用【私鑰】對交易原始數(shù)據(jù)進行簽名,得到轉(zhuǎn)出簽名。

  2. 用【私鑰】推出【公鑰】。

  3. 將【轉(zhuǎn)出簽名】和【公鑰】添加知道原始數(shù)據(jù)中。

用公鑰對簽名進行驗證
公鑰驗證.png
  1. 交易數(shù)據(jù)廣播到比特幣節(jié)點對交易數(shù)據(jù)進行驗證。

  2. 使用 【轉(zhuǎn)出公鑰】對【轉(zhuǎn)出簽名】進行解密,得到的交易數(shù)據(jù)與原始數(shù)據(jù)比較,若一致,則驗證成功,反之亦然。


本文由幣乎社區(qū)(bihu.com)內(nèi)容支持計劃贊助。

早贊聲明:為方便早贊、避免亂贊,“BH好文好報群”為點贊者、寫作者牽線搭橋,實行“先審后贊、定時發(fā)表”的規(guī)則,也讓作品脫穎而出、速登熱門!本文授權BH好文好報群摘編推廣,加群微信:we01230123(天平)。

本文參考鏈接:http://www.bitcoin86.com/teach/6494.html

如有侵權,請聯(lián)系譯者

版權所有,轉(zhuǎn)載需完整注明以上內(nèi)容。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容