時間:2023-06-18|瀏覽:344
比特幣涉及兩個必須解決的問題:如何控制賬戶的資金以及如何驗證交易的真實性。這涉及到公鑰密碼學(xué),也就是如何證明我是賬戶的所有者以及如何證明小強收到的比特幣是我發(fā)出的。
在非對稱密碼學(xué)中,密鑰是成對出現(xiàn)的,分為私鑰和公鑰。私鑰用于數(shù)字簽名,確認(rèn)資金的所有權(quán),類似于銀行交易中的“簽名”,有了私鑰就有了控制資金的權(quán)利。公鑰用于交易中的收款確認(rèn),類似于銀行交易中的“收款方”。
私鑰用于控制比特幣交易時的簽名,只有你擁有私鑰才能控制賬戶的資金,相當(dāng)于銀行賬戶的交易密碼。私鑰也用來解密用公鑰加密的信息。一個私鑰經(jīng)過橢圓曲線變換之后能夠得到公鑰,公鑰是一個65個byte數(shù)組。
公鑰用來驗證交易的簽名,一個私鑰簽名的數(shù)據(jù),只有對應(yīng)的公鑰才能對其進(jìn)行驗證,而地址也是從公鑰生成的,這樣就可以驗證花費的交易是不是屬于這個地址。
為了方便使用,公鑰又被壓縮成更短的地址,可以看作是公鑰的數(shù)值指紋。
私鑰生成公鑰,公鑰生成地址,這都是單向哈希函數(shù),也就是說有私鑰很容易推導(dǎo)出公鑰和地址,反過來幾乎不可能,即使用最先進(jìn)的電腦計算也需要數(shù)千年才能完成。這保證了比特幣系統(tǒng)的安全性。私鑰用來簽名交易,公鑰用來驗證私鑰簽名的交易,地址用來收款。而這種公鑰密碼學(xué)也解決了互聯(lián)網(wǎng)使用中的安全問題。
在比特幣系統(tǒng)中,一筆交易的發(fā)生過程為:我用私鑰簽名一筆交易并同時用小明的公鑰加密這筆交易,小明用自己的私鑰驗證這筆交易是發(fā)給他的,并用我的公鑰驗證這筆交易是由我的私鑰簽名的。公鑰在比特幣系統(tǒng)中是公開的。