大家好,我是三七,今天我們依舊接著上期繼續共讀《精通比特幣》,今天的內容主要分為兩部分:比特幣客戶端和密鑰、地址、錢包。

第一,比特幣客戶端

第二,密鑰、地址、錢包是什麼?

一、比特幣客戶端

比特幣客戶端通常由一個錢包和多個比特幣地址組成,比特幣地址是可以公開的,任何人都可以通過這些地址轉把幣轉到你的錢包。

大概長成這樣:Acdid9KFAaatwczBwBttQcwXYCpvK8h7FK,或者是一個二維碼。發送比特幣的人只需要輸入地址和金額,收到的人就會用私鑰(以下會介紹)簽名這筆交易,這也相當於公告了全網:比特幣從一個地址轉移到了另外一個地址。

從交易完成到"確認"大概需要10分鐘,因為交易須由曠工開採打包成區塊,這樣才會被全網接受為"已確認"。

接下來我們詳細看下整個過程:

—1.完整客戶端 —

自己維護一個全節點客戶端的成本比較高,但是可以保證你的錢包是安全的。如果你有幾千個甚至幾萬個比特幣,可以考慮用這種方式來實現安全存儲。如果數量不多,可以依賴於其他的伺服器和第三方服務,就是普通用戶常用的"輕量級客戶端", 不保存完整歷史,而通過信賴的第三方伺服器來獲取交易信息。大家通過OkCoin、雲幣網購買BTC就是這種形式。

我們主要來看維護一個全節點客戶端。

bitcoin.org下載的客戶端包含了比特幣系統的所有方面,是一個獨立的完整節點。但是正因為包含了所有歷史數據,下載整個區塊鏈可能就需要好幾天,請確保你有足夠的容量的硬碟、帶寬和時間。

—2. 編譯比特幣源碼

對於開發者,可以從GitHub上的比特幣頁面 github.com/bitcoin/bitc 下載代碼自行編譯,從終端運行bitcoind,也需要下載所有區塊。在書裡面一步步教授了比特幣核心的JSON_RPC API介面的使用,包括以下技能點:

(1) 獲取比特幣核心客戶端狀態信息

(2) 錢包設置及加密

(3) 錢包備份、純文本導出和恢復

(4) 錢包地址及接收交易

(5) 查看區塊信息

(6) 基於UTXO(未花費的交易輸出)的建立、簽名與提交

二、密鑰、地址、錢包

比特幣的所有權是通過數字密鑰、比特幣地址和數字簽名來確立的。數字密鑰實際上並不是存儲在網路中,而是由用戶生成並存儲在一個文件或者簡單的資料庫當中,我們把它稱為錢包。

存儲在用戶錢包中的數字密鑰完全獨立於比特幣協議,通過用戶的錢包軟體生成管理,並不需要區塊鏈或網路。在這當中,密鑰實現了比特幣的許多有趣特性,比如說去中心化信任和控制、所有權認證和基於密碼學證明的安全模型。

每一次比特幣交易都要一個有效的簽名才會被存儲在區塊鏈,而數字簽名是由數字密鑰產生,有了比特幣的密鑰就有了賬戶里比特幣的控制權,所以大家一定要注意安全哦!

—1. 密鑰是什麼?

密鑰是成對出現的,由一個「私鑰」和一個「公鑰」所組成。公鑰就像銀行的帳號,而私鑰就像控制賬戶的PIN碼或支票的簽名。公鑰用來接收比特幣,私鑰用來對收到的比特幣進行簽名。公鑰由私鑰產生,但知道公鑰是不能反向推導出私鑰,這就保證了比特幣的安全性,這種加密方式稱為非對稱加密。

注意的是,區塊鏈裡面的私鑰都是由錢包來生成的,不是人設定的,由於私鑰的原始格式非常長,直接讓用戶設定是非常麻煩的,所以這個工作由錢包來完成了。但為了保證私鑰的安全性,錢包會「非常隨機」的來生成私鑰。

因此大家在創建錢包的時候,是不需要設定私鑰的,而是設定「轉賬密碼」或者「開啟APP的PIN碼」之類的密碼,但他們並不是私鑰!

具體詳細的解釋大家可點擊下方鏈接來了解:

【非對稱加密】我的人,怎能容別人偷窺?

比特村的財富守護大戰......

私鑰和公鑰|確認過眼神,遇上對的人!

—2. 地址是什麼?

錢包地址由公鑰 (公鑰是私鑰通過非對稱加密演算法生成) ,相當於銀行卡號 。我們創建錢包後會生成一個以 0x 開頭的 42 位字元串,這個字元串就是錢包地址,一個錢包對應一個錢包地址,地址唯一且不能修改,也就是說一個錢包中所有代幣的轉賬收款地址都是一樣的。

例如,一個錢包中 ETH 的轉賬收款地址和 EOS 的轉賬收款地址是一樣。這一點和交易平台上的不一樣,平台上不同代幣的轉賬收款地址一般都不同,因此,轉幣到交易平台前一定要確認好地址。

有了這個地址,我們只需要把比特幣地址告訴其他人,別人就可以給你轉賬,你也是用這個地址來接收別人給你的幣,地址也可以作為轉幣的憑證。

—3. 私鑰、公鑰、地址的關係

因為非對稱加密演算法,私鑰可以唯一生成公鑰,公鑰可以生成錢包地址。但反向是解不出來,私鑰必須始終保持機密,丟了私鑰就相當於丟了比特幣。

具體詳細的解釋大家可點擊下方鏈接來了解:

區塊鏈防篡改的「哈希演算法」!

誰要的數字錢包秘籍,來門口取一下

劃重點:你若把錢包信息忘了,會有什麼後果呢?分這麼幾種情況:

(1)地址忘了,可以用私鑰、助記詞,導入錢包找回。

(2)密碼忘了,可以用私鑰、助記詞,導入錢包重置密碼。

(3)密碼忘了,私鑰、助記詞又沒有備份,就無法重置密碼,就不能對代幣進行轉賬,等於失去了對錢包的控制權。

(4)密碼忘了,keystore 就失去了作用。(5)私鑰忘了,只要你錢包沒有刪除,並且密碼沒忘,可以導出私鑰。(6)私鑰忘了,還可以用助記詞、keystore+密碼,導入錢包找回。(7)助記詞忘了,可以通過私鑰、keystore+密碼,導入錢包重新備份助記詞。(8)keystore 忘了,只要你錢包沒有刪除,密碼沒忘,可以重新備份keystore。(9)keystore 忘了,可以通過私鑰、助記詞,導入錢包重新備份 keystore。

可以看出,只要「私鑰、助記詞、Keystore+密碼」有一個信息在,錢包就在。因此,備份好「私鑰、助記詞、Keystore+密碼」最關鍵。


推薦閱讀:
相关文章