公鑰密碼或簡稱PKI也被稱爲非對稱密碼。它使用兩對密鑰—公共密鑰和私有密鑰。密鑰是一個很長的二進位數。公鑰分布在世界各地,正如它的名字所暗示的那樣,它是真正公開的。私鑰必須嚴格保密,絕不能丟失。
在比特幣的情況下,如果你丟失了比特幣錢包的私鑰,你錢包里的所有東西都會很容易被盜,而且在你知道之前,你所有的錢(錢包里的東西)都不見了,系統里沒有任何機制可以查出是誰偷的——這就是我前面提到的系統中的匿名性。
PKI通過加解密機制實現認證和消息隱私兩大功能。現在我將解釋這兩個函數&負;
Authentication
當雙方交換消息時,在發送者和接收者之間建立信任是很重要的。特別是,接收者必須信任消息的來源。在我們前面的場景(如圖1所示)中,Bob向Lisa發送了一些錢,用於向她購買一些商品,讓我們看看PKI如何在Bob和Lisa之間建立這種信任。看看下面的圖片−
首先,如果Bob想給Lisa寄一些錢,他必須自己創建一個私鑰/公鑰。請注意,這兩個密鑰始終是成對的,並且不能混合不同個人或不同實例的私鑰和公鑰。
現在,鮑勃說他要給麗莎寄10美元。因此,他創建了一條消息(純文本消息),其中包含Bob(發送方)公鑰、Lisa(接收方)公鑰和金額($10)。
這封匯款的目的,如「我想從你這裡買南瓜」也加入了信息中。現在使用Bob的私鑰對整個消息進行簽名。當Lisa收到此消息時,她將使用PKI的簽名驗證算法和Bob的公鑰來確保消息確實來自Bob。PKI的工作方式超出了本教程的範圍。感興趣的讀者可參考本網站,了解有關PKI的詳細討論。這將確定消息發起者的真實性。現在,讓我們來看看信息隱私。
Message Privacy
現在,麗莎已經收到了她的付款,她想把連結發送到她的電子書,鮑勃想買。因此,Lisa會創建一條消息並將其發送給Bob,如圖所示;
Lisa創建了一條消息,例如「這裡是指向我的電子書的連結,你已經請求了」,用Bob的公鑰簽名,她已經在Bob的請求消息中接收到了這個公鑰,並且還使用在HTTPS握手過程中兩人共享的某個密鑰對消息進行加密。
現在,Lisa確信只有Bob可以使用Bob單獨持有的私鑰對消息進行解碼。另外,由於內容是由只有Bob和Alice持有的密鑰加密的,因此攔截消息的人將無法恢復其內容。這向Lisa保證,只有Bob才能訪問她的電子書。
在了解了PKI所隱含的特性、身份驗證和消息隱私之後,讓我們繼續看看比特幣如何利用PKI來保護我在「什麼是比特幣」一章中提到的公共分類帳?」.
就您所知,最流行的PKI算法是RSA和ECDSA,比特幣使用後者。