以太坊錢包地址是什麼?eth錢包地址如何獲得?

買賣虛擬貨幣

 現在我們大家都很關注以太坊方面的問題,那麼我想大家應該會很想了解一些很多關於以太坊的錢包地址都是什麼?該怎麼用?希望下面就讓我們小編在這裡為大家好好的介紹一下很多關於以太坊的錢包地址都是什麼?該怎麼用?希望能夠幫到大家。

以太坊的客戶端或圖形介面幫助我們因此了底層複雜的密碼實現,唯一需要我們做的就是儲存好(多出備份)keystore下面的加密私鑰檔案和加密的密碼。否則,有可能失去辛苦挖來的以太幣或花錢購買來的以太幣。

記住,永遠不要犯的錯誤:丟失keystore檔案或忘記密碼!

以太坊建立賬戶

以太坊建立賬戶的操作非常簡單,但有不同的展現形式。以geth客戶端為例。

command命令方式

bogon:geth zzs$ ./geth account newYour new account is locked with a password. Please give a password. Do not forget this password.

Passphrase:Repeat passphrase:

Address: {0f7b73f3034d0d17a165e4cf50bd77051235b4e6}bogon:geth zzs$ ./geth account list

Account #0: {0f7b73f3034d0d17a165e4cf50bd77051235b4e6} keystore:///Users/zzs/Library/Ethereum/keystore/UTC--2018-02-21T02-56-46.285140000Z--0f7b73f3034d0d17a165e4cf50bd77051235b4e6bogon:geth zzs$123456789

以上操作是直接執行geth客戶端的命令(command)來建立賬戶和展示賬戶私鑰檔案資訊。建立過程中需要兩次輸入對私鑰加密的密碼。此種方式的好處是不需要單獨啟動geth節點即可建立完成賬戶。

console命令方式

此種方式需先啟動geth節點,並進入console命令列互動介面。然後執行以下命令:

> personal.newAccount("123456")"0x00fe1b8a035b5c5e42249627ea62f75e5a071cb3"// 或

> personal.newAccount()Passphrase:Repeat passphrase:"0x6a787f16c2037826fbc112c337d7b571bb19c022"12345678910

透過personal角色來管理和建立新賬號,並設定密碼。

keystore檔案

keystore檔案是你獨有的,用於簽名交易的以太坊私鑰的加密檔案。一旦丟失檔案或加密密碼就意味著你失去了此地址發起交易、簽名交易的特權,賬戶裡面的資金將永遠被鎖。

keystore檔案存在的價值就是以加密的方式儲存金鑰,同時在使用的時候只需要提供keystore檔案和對應的密碼即可發起交易。安全性與可用性達到了完美的平衡。

但是,我們需要注意的是一旦用密碼對加密檔案進行解鎖之後,在有效時間內通一個客戶端下,你可以發起交易,如果別人可以訪問你的客戶端,同樣也可以發起交易。在網路安全不足的情況下,這是被盜幣的場景之一。

秘鑰檔案內容

秘鑰檔案為文字檔案,可以使用任何文字編輯器或瀏覽器開啟。

bogon:keystore zzs$ cat UTC--2018-02-21T03-01-27.385349000Z--6a787f16c2037826fbc112c337d7b571bb19c022

{ "address": "6a787f16c2037826fbc112c337d7b571bb19c022", "crypto": { "cipher": "aes-128-ctr", "ciphertext": "8ed39b22ab67a787baa4ebb545382255f747328e2a3e2e74970a0f66b422d169", "cipherparams": { "iv": "8e0e0905919d6d1669957fdf65f114ce"

}, "kdf": "scrypt", "kdfparams": { "dklen": 32, "n": 262144, "p": 1, "r": 8, "salt": "a2a84d4843dbcb7c0aefa933f37ead073aefe8503ac8497b77828e85467c6822"

}, "mac": "1fc4a5d260fdd70e772fdc9a28614e82d5ff0adc6c98332f8455c5aa0a3352ad"

}, "id": "7bce1a69-79a2-429a-836c-cc2bf72c80de", "version": 3}1234567891011121314151617181920212223

透過檔案中的內容,我們能看到的是一個json字串,裡面包含了此秘鑰對應的地址和加密相關的一些資訊。

cipher:加密演算法,對稱加密,AES演算法,用於加密以太坊私鑰;

cipherparams:cipher演算法需要的引數,引數iv,是aes-128-ctr加密演算法需要的初始化向量;

ciphertext:加密後的密文,aes-128-ctr函式的加密輸入密文;

kdf:秘鑰生成函式,用於使用密碼加密keystore檔案;

kdfparams:kdf演算法所需要的引數;

mac:驗證密碼的編碼;

原理解析

加密秘鑰

一個以太坊賬戶是由一對公私鑰對構成,並使用強對稱演算法(cipher)進行加密。

我們看一下具體的流程圖《ciphertex密文的對稱解密》:

客戶端讀取金鑰檔案和加密密碼,對私鑰進行解密,然後使用私鑰對傳送的交易進行簽名。

密碼保護

以太坊使用基於密碼保護的機制來解密金鑰。這樣使用者就不需要記住一串非使用者友好的密碼。為了達到此效果,以太坊使用金鑰生成函式,根據輸入的密碼和一系列引數就能計算解密金鑰。

這就涉及到kdf和kdfparams的用途:

kdf是一個金鑰生成函式,根據密碼計算(或者取回)解密金鑰。kdf用的是scrypt演算法。

kdfparams是scrypt函式需要的引數。

用kdfparams引數對scrypt函式進行調整,反饋密碼中,得到解密金鑰,也就是金鑰生成函式的輸出。

錯誤密碼

當輸入錯誤密碼時,密碼派生和解密等操作都會成功,但最終計算所得的以太坊私鑰不是正確的,因此無法進行解鎖賬戶的操作。

keystore檔案中mac值起作用的地方。在金鑰生成函式執行之後,它的輸出(解密金鑰)和ciphertext密文就被處理,並且和mac(類似於資料簽名)作比較。如果結果和mac相同,那麼密碼就是正確的,可以開始解密操作。

在和mac進行比較之前,需要解密金鑰(左起第二位元組開始的16位元組)要和ciphertext*密文連線在一起,並進行雜湊雜湊(用SHA3-256的方法)。

流程回顧

輸入密碼,密碼作為kdf金鑰生成函式的輸入,計算解密金鑰。用解密金鑰和ciphertext密文連線並進行處理,和mac比較確保密碼正確。最後,透過cipher對稱函式用解密金鑰對ciphertext 密文解密。

上面就是關於以太坊錢包地址的相關分析,相信看到這裡大家對以太坊錢包已經有了一個大概的瞭解。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;