金鑰和位址

2022-04-29 12:39:10 字數 2452 閱讀 7536

位元幣的所有權是通過數字金鑰、位元幣位址和數字簽名來確定的。

大多數字元幣交易都需要乙個有效的簽名才會被儲存在區塊鏈。只有有效的金鑰才能產生有效的數字簽名,因此擁有~金鑰副本就擁有了對該帳戶的位元幣的控制權。

一般情況下,位元幣位址由乙個公鑰生成並對應於這個公鑰。然而,並非所有位元幣位址都是公鑰; 他們也可以代表其他支付物件,譬如指令碼

位元幣正是使用橢圓曲線乘法作為其公鑰加密的基礎。

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

支付位元幣時,位元幣的當前所有者需要在交易中提交其公鑰和簽名(每次交易的簽名都不同,但均從同乙個私鑰生成)。

大多數字元幣錢包工具為了方便會將私鑰和公鑰以金鑰對的形式儲存在一起。然而,公鑰可以由私鑰計算得到, 所以只儲存私鑰也是可以的。

私鑰是乙個數字,通常是隨機產生的,有了私鑰後,使用橢圓曲線乘法這個單向加密函式產生乙個公鑰,有了公鑰後,我們就可以使用乙個單向加密雜湊函式生成位元幣位址

在位元幣交易中,私鑰用於生成支付位元幣所必需的簽名以證明對資金的所有權。

生成金鑰的第一步也是最重要的一步,是要找到足夠安全的熵源,即隨機性**。

私鑰可以是 1 和 n-1 之間的任何數字,其中 n 是乙個常數(n=1.158* 10^77,略小於 2^256),並被定義為由位元幣所使用的橢圓曲線的階。從程式設計的角度來看,一般是通過在乙個密碼學安全的隨

機源中取出一長串隨機位元組,對其使用 sha256 雜湊演算法進行運算,這樣就可以方便地產生乙個 256 位的數字。如果運算結果小於 n-1,我們就有了乙個合適的私鑰。

通過橢圓曲線乘法可以從私鑰計算得到公鑰,這是不可逆轉的過程:k = k * g 。g 是被稱為生成點的常數點

位元幣使用了 secp256k1 標準所定義的一種特殊的橢圓曲線和一系列數學常數。

生成點是 secp256k1 標準的一部分,位元幣金鑰的生成點都是相同的

大多數字元幣程式使用 openssl 加密庫進行橢圓曲線計算。例如,呼叫ec_point_mul() 函式,可計算得到公鑰。

位元幣位址可由公鑰經過單向的加密雜湊演算法得到。

由公鑰生成位元幣位址時是 sha256 和 ripemd160使用的演算法是

a = ripemd160(sha256(k))

公式中,k 是公鑰,a 是生成的位元幣位址。通常使用者見到的位元幣位址是經過「base58check」編碼的。

base64

使用了 26 個小寫字母、26 個大寫字母、10 個數字以及兩個符號(例 如「+」和「/」),用於在電子郵件這樣的基於文字的媒介中傳輸二進位制資料。

**base58 **

由不包括(0,o,l,i)的大小寫字母和數字組成。

base58check 是一種常用在位元幣中的base58 編碼格式,檢驗和是新增到正在編碼的資料末端的額外 4 個位元組。

使用 base58check 編碼時,解碼軟體會計算資料的校驗和並和編碼中自帶的校驗和進行對比。

在位元幣中,大多數需要向使用者展示的資料都使用 base58check 編碼,可以實現資料壓縮,易讀而且有錯誤檢驗。

base58check 編碼中的版本字首是用來創造易於辨別的格式,

不同的格式用在不同的場景下。十六進製制和原始的二進位制格式用在軟體的內部,很少展示給使用者看。wif 格式用在錢包之間金鑰的輸入和輸出,也用於代表私鑰的***(條形碼)。

公鑰通常表示為字首 04 緊接著兩個 256 位元的數字。其中乙個 256 位元數字是公鑰的 x 座標,另乙個 256 位元數字是 y 座標。字首04是用來區分非壓縮格式公鑰壓縮格式公鑰是以02或者03開頭。

如果我們知道了x,就可以通過公式求出y的座標,從而將儲存空間減少256位元。02表示y是偶數,03表示y是奇數

"壓縮格式私鑰」是乙個不當用詞!私鑰不是壓縮的。wif 壓縮格式的私鑰只是用來表明他們只能被生成壓縮的公鑰和對應的位元幣位址。相反地,「wif 壓縮」 編碼的私鑰還多出乙個位元組,因為這種私鑰多了字尾「01」。該字尾是用來區分「非壓縮格式」私鑰和「壓縮格式」私鑰。

位元幣的金鑰 位址 錢包

特幣的所有權是通過數字金鑰 特幣位址和數字簽名來確 的。數字金鑰實際上並不是儲存在 絡中,是由 成 並儲存在 個 件或簡單的資料庫中,稱為錢包。儲存在 錢包中的數字金鑰完全獨 於 特幣協議,可由 的錢包軟 件 成並管理,需區塊鏈或 絡連線。金鑰實現了 特幣的許多有趣特性,包括去中 化信任和控制 所有...

公有金鑰和私有金鑰加密

如果你的朋友給你傳送了一封郵件,老朋友多日未見說了些寒暄的話,最後你的朋友又來了一句,今天晚上六點我請你到北京飯店吃飯吧,怎麼樣?你可能對這句話比較懷疑,這小子今天頭腦是不是有問題?在看看這封郵件的位址,還真是他的郵件位址,但認識這小子很多年了,從來沒請我吃過飯。今天?一連串的問號在你的頭腦中。如果...

金鑰和證書

不對稱加密使用公共 專用金鑰對。對於使用專用金鑰加密的資料,只能使用相應的公共金鑰進行解密,反之亦然。顧名思義,公共金鑰可廣泛使用。相反,專用金鑰為特定個人所有。將公共金鑰傳送至使用者的分發機制稱為證書。證書一般由證書頒發機構 ca 簽名,以確認公共金鑰來自於要求傳送公共金鑰的主體。ca 是相互信任...