當前位置:
首頁 > 最新 > 比特幣地址、公鑰、私鑰都是什麼?有什麼用?

比特幣地址、公鑰、私鑰都是什麼?有什麼用?

在通俗易懂第一課 簡單了解比特幣交易過程文章第三段,我們提到了錢包為用戶自動生成了地址、公鑰、私鑰,並且在這篇文章中,我們講解了什麼是地址、地址用來做什麼:地址就是用戶的銀行賬號,用戶通過地址來交易比特幣。

既然用戶用地址就能交易,那公鑰和私鑰還有什麼用?

我們需要知道的是,從09年至今,全球所有的交易記錄是所有人可見的。交易記錄中包含有交易流水單號、發幣人的發幣地址、收幣人地址、發幣人的找零地址。也就是說,全球所有用戶的地址都是可以被任何人知道的。既然如此,如果中本聰在設立比特幣機制時,僅僅通過告訴錢包地址是多少的方式就能完成交易的話,那麼整個交易機制是不安全的,我可以隨便用別人的地址假裝是自己的地址,來和別人交易。

於是,在整個機制中,有了私鑰和公鑰的概念。

私鑰用來證明這筆交易的發起人確實是比特幣的所有者。私鑰是一串很長的隨機數,比如:4KeZdDEu11z3gPrtuX3phjwGnNP4RFd7yyrCVC1j2WLBB9ZXMCJ,是由錢包替用戶隨機生成的。私鑰一定不能曝光給別人,因為一旦讓別人知道私鑰,別人就可以輕鬆將你的比特幣轉走,並且再也拿不回來。(所以我們用錢包交易的前提,是信任錢包不會盜取我們的私鑰)

公鑰是由私鑰通過演算法生成,通過私鑰可以計算出唯一一個公鑰。但公鑰並不能逆向推導出私鑰。

順便提一下,地址是由公鑰通過演算法生成,通過公鑰可以計算出唯一一個地址。但地址並不能逆向推導出公鑰。

中本聰設計了如下機制:錢包需要先將私鑰通過加密演算法A加密,再將加密之後的字元串(我們把叫做簽名)、公鑰一併發送給礦工。礦工收到信息後,將簽名、公鑰帶入到一個驗證函數F中,如果得出的結果為true,那麼礦工就認為這個交易發起人確實是持幣者發起的:

回到交易流程中:錢包用張三的私鑰通過加密演算法生成了一段加密過的私鑰,然後與公鑰一併寫到了交易信息里,再發給全球礦工。此時,礦工收到了這筆交易信息,信息里包含:交易流水單號、發幣人地址、收幣人地址、發幣人提供的加密過的私鑰、發幣人的公鑰。礦工將加密過的私鑰、公鑰帶入上面提到的公式中,等待程序驗證。如果程序反饋給礦工「true」,那麼即可表明,這筆交易確實是持幣者發起的了。如果程序反饋給礦工「false」,那麼說明這筆交易存在問題,不能被驗證通過。

這樣的話,張三不需要將自己的私鑰發給礦工,既能讓礦工簡單地驗證這筆交易是否由持幣者發起,又能保證自己的私鑰不外泄了。

本篇文章簡單講述了什麼是公鑰和私鑰。相信有很多讀者對以下內容理解得不是很透徹:

·公鑰、私鑰、地址是通過什麼加密演算法生成的?

·f(加密過的私鑰,公鑰)這個公式是什麼?為什麼可以驗證?

等等。這些內容,會在以後的文章中一一說明。

如果當你看完這篇文章,仍有不懂的地方,請在下方留言,我會盡量解答你的困惑。

關注【通俗易懂區塊鏈】,學懂區塊鏈

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 全球大搜羅 的精彩文章:

Armani 阿瑪尼小細管唇膏合集,12支全新紅管口紅全系列試色!

TAG:全球大搜羅 |