關於比特幣錢包

    比特幣錢包本質上是是一個小型數據庫,其最重要的功能爲存儲數字密鑰。
    比特幣所有權由數字密鑰、比特幣地址和數字簽名來確立。有效的數字簽名需要有效的數字密鑰來產生。密鑰包括私鑰和公鑰,比特幣地址是由公鑰產生的。因此,在最簡情形下,比特幣錢包內    比特幣錢包本質上是是一個小型數據庫,其最重要的功能爲存儲數字密鑰。
    比特幣所有權由數字密鑰、比特幣地址和數字簽名來確立。有效的數字簽名需要有效的數字密鑰來產生。密鑰包括私鑰和公鑰,比特幣地址是由公鑰產生的。因此,在最簡情形下,比特幣錢包內只須存儲私鑰即可證明比特幣的所有權。在比特幣交易中,收款人的比特幣地址即如同其“銀行帳號”,付款人只須知道該地址即可進行支付。具體而言,收款人的比特幣地址是由收款人的公鑰通過數字指紋產生的。

    私鑰
    私鑰是隨機產生的一個256位的二進制數字(1~1.158*10^77-1,略小於2^256)。具體做法是對一長串隨機字符進行SHA256哈希算法進行運算,從而產生256位的二進制數字,如果該數字小於1.158*10^77,則可作爲一個合適的私鑰,否則重新產生。

    公鑰
    通過橢圓曲線算法從私鑰計算得到公鑰,K=k*G。其中k爲私鑰,K爲公鑰,G是橢圓曲線上的常數點,被稱爲“生成點”,它是secp256k1標準的一部分,是一個固定的點。橢圓加密算法是一種基於離散對數問題的非對稱加密算法。大多數的比特幣程序在此採用openssl加密庫,調用EC_POINT_mul( ) 函數進行公鑰的計算。

    比特幣地址
    比特幣地址是以數字和字母組成的字符串,以數字“1”開頭。它代表着收款方,具體地,它可以表示一對密鑰的所有者,也可以表示付款腳本。它是由公鑰產生,具體的公式爲:
A=BASE58CHECK(RIPEMD160(SHA256(K)))。

    比特幣錢包
    比特幣錢包所存儲的內容是密鑰而不是比特幣。比特幣是以交易的輸出的形式存在於區塊鏈中。每個錢包中含有一個或多個密鑰,用戶用私鑰來簽名交易,從而證明擁有交易的輸出。
    零型非確定性錢包:隨機生成的私鑰集合,最開始就生成足夠多的私鑰,並且每把私鑰只使用一次。這種類型的錢包已經逐漸貝淘汰。
    確定性(種子)錢包:這種錢包包括通過單項離散方程從公共的種子生成的私鑰。種子是隨機生成的數字,一個錢包中,種子足夠回收所有私鑰,備份只須備份種子。

    (未完待續)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章