在區塊鏈中密鑰、地址、錢包都是用來幹啥的

虛擬貨幣的所有權是通過數字密鑰、貨幣地址和數字簽名來確立的。

數字密鑰實際上並不是存儲在網絡中,而是由用戶生成並存儲在一個文件或簡單的數據庫中,這個數據庫以及運行此數據庫的硬件被稱為錢包。存儲在用戶錢包中的數字密鑰完全獨立於虛擬貨幣協議,可由用戶的錢包軟件生成並管理,而無需區塊鏈或網絡連接。密鑰實現了虛擬貨幣的許多有趣特性,包括去中心化信任和控制、所有權認證和基於密碼學證明的安全模型。

公鑰加密和加密貨幣

公鑰加密發明於20世紀70年代。它是計算機和信息安全的數學基礎。

自從公鑰加密被髮明之後,一些合適的數學函數被提出,譬如:素數冪和橢圓曲線乘法。這些數學函數都是不可逆的,就是說很容易向一個方向計算,但不可以向相反方向倒推。基於這些數學函數的密碼學,使得生成數字密鑰和不可偽造的數字簽名成為可能。比特幣正是使用橢圓曲線乘法作為其公鑰加密的基礎算法。

在區塊鏈中密鑰、地址、錢包都是用來幹啥的

在比特幣系統中,我們用公鑰加密創建一個密鑰對,用於控制比特幣的獲取。密鑰對包括一個私鑰,和由其衍生出的唯一的公鑰。公鑰用於接收比特幣,而私鑰用於比特幣支付時的交易簽名。

公鑰和私鑰之間的數學關係,使得私鑰可用於生成特定消息的簽名。此簽名可以在不洩露私鑰的同時對公鑰進行驗證。

支付比特幣時,比特幣的當前所有者需要在交易中提交其公鑰和簽名(每次交易的簽名都不同,但均從同一個私鑰生成)。比特幣網絡中的所有人都可以通過所提交的公鑰和簽名進行驗證,並確認該交易是否有效,即確認支付者在該時刻對所交易的比特幣擁有所有權。

每筆虛擬貨幣交易都需要一個有效的簽名才會被存儲在區塊鏈。

只有有效的數字密鑰才能產生有效的數字簽名,因此擁有虛擬貨幣的密鑰副本就擁有了該帳戶的虛擬貨幣控制權。

密鑰是成對出現的,由一個私鑰和一個公鑰所組成。

公鑰就像銀行的帳號,而私鑰就像控制賬戶的PIN碼或支票的簽名。

虛擬貨幣的用戶很少會直接看到數字密鑰。

一般情況下,它們被存儲在錢包文件內,由比特幣錢包軟件進行管理。

與之對應的助記詞則會被用戶自行記錄下來。

在虛擬貨幣交易的支付環節,收件人的公鑰是通過其數字指紋表示的,稱為虛擬貨幣地址,就像支票上的支付對象的名字(即“收款方”)。一般情況下,虛擬貨幣地址由一個公鑰生成並對應於這個公鑰。然而,並非所有虛擬貨幣地址都是公鑰;他們也可以代表其他支付對象,譬如腳本,這樣一來,虛擬貨幣地址把收款方抽象起來了,使得交易的目的地更靈活,就像支票一樣:這個支付工具可支付到個人賬戶、公司賬戶,進行賬單支付或現金支付。虛擬貨幣地址是用戶經常看到的密鑰的唯一代表,他們只需要把地址告訴其他人即可。

私鑰和公鑰

一個比特幣錢包中包含一系列的密鑰對,每個密鑰對包括一個私鑰和一個公鑰。私鑰(k)是一個數字,通常是隨機選出的。有了私鑰,我們就可以使用橢圓曲線乘法這個單向加密函數產生一個公鑰(K)。有了公鑰(K),我們就可以使用一個單向加密哈希函數生成比特幣地址(A)。私鑰、公鑰和比特幣地址之間的關係如下圖所示。

在區塊鏈中密鑰、地址、錢包都是用來幹啥的

私鑰

私鑰就是一個隨機選出的數字而已。一個比特幣地址中的所有資金的控制取決於相應私鑰的所有權和控制權。在比特幣交易中,私鑰用於生成支付比特幣所必需的簽名以證明資金的所有權。私鑰必須始終保持機密,因為一旦被洩露給第三方,相當於該私鑰保護之下的比特幣也拱手相讓了。私鑰還必須進行備份,以防意外丟失,因為私鑰一旦丟失就難以復原,其所保護的比特幣也將永遠丟失。


分享到:


相關文章: