以太坊導入keystore
㈠ 什麼是Keystore
Keystore 文件是以太坊錢包存儲私鑰的一種文件格式 (JSON)。它使用用戶自定義密碼加密,以起到一定程度上的保護作用,而保護的程度取決於用戶加密該錢包的密碼強度,如果類似於 123456 這樣的密碼,是極為不安全的。
在使用 Keystore 時有兩點需要注意:
1. 使用不常用,並且盡可能復雜的密碼加密 Keystore 文件;
2. 一定要記住加密 Keystore 的密碼,一旦忘記密碼,那麼你就失去了 Keystore 的使用權,並且 imToken 無法幫你找回密碼,所以一定要妥善保管好 Keystore 以及密碼。
Keystore 的樣式
PS:Keystore 的密碼是唯一、不可更改的,如果想更改錢包密碼需要使用助記詞或明文私鑰重新導入錢包,並使用新密碼加密,生成新的 Keystore。
㈡ 【ETH錢包開發03】web3j轉賬ETH
在之前的文章中,講解了創建、導出、導入錢包。
【ETH錢包開發01】創建、導出錢包
【ETH錢包開發02】導入錢包
本文主要講解以太坊轉賬相關的一些知識。交易分為ETH轉賬和ERC-20 Token轉賬,本篇先講一下ETH轉賬。
1、解鎖賬戶發起交易。錢包keyStore文件保存在geth節點上,用戶發起交易需要解鎖賬戶,適用於中心化的交易所。
2、錢包文件離線簽名發起交易。錢包keyStore文件保存在本地,用戶使用密碼+keystore的方式做離線交易簽名來發起交易,適用於dapp,比如錢包。
本文主要講一下第二種方式,也就是錢包離線簽名轉賬的方式。
交易流程
1、通過keystore載入轉賬所需的憑證Credentials
2、創建一筆交易RawTransaction
3、使用Credentials對象對交易簽名
4、發起交易
注意以下幾點:
1、Credentials
這里,我是通過獲取私鑰的方式來載入 Credentials
還有另外一種方式,通過密碼+錢包文件keystore方式來載入 Credentials
2、nonce
nonce是指發起交易的賬戶下的交易筆數,每一個賬戶nonce都是從0開始,當nonce為0的交易處理完之後,才會處理nonce為1的交易,並依次加1的交易才會被處理。
可以通過 eth_gettransactioncount 獲取nonce
3、gasPrice和gasLimit
交易手續費由gasPrice 和gasLimit來決定,實際花費的交易手續費是 gasUsed * gasPrice 。所有這兩個值你可以自定義,也可以使用系統參數獲取當前兩個值
關於 gas ,你可以參考我之前的一篇文章。
以太坊(ETH)GAS詳解
gasPrice和gasLimit影響的是轉賬的速度,如果gas過低,礦工會最後才打包你的交易。在app中,通常給定一個默認值,並且允許用戶自己選擇手續費。
如果不需要自定義的話,還有一種方式來獲取。獲取以太坊網路最新一筆交易的 gasPrice ,轉賬的話, gasLimit 一般設置為21000就可以了。
Web3j還提供另外一種簡單的方式來轉賬以太幣,這種方式的好處是不需要管理nonce,不需要設置gasPrice和gasLimit,會自動獲取最新一筆交易的gasPrice,gasLimit 為21000(轉賬一般設置成這個值就夠用了)。
這個問題,我想是很多朋友所關心的吧。但是到目前為止,我還沒有看到有講解這方面的博客。
之前問過一些朋友,他們說可以通過區塊號、區塊哈希來判斷,也可以通過Receipt日誌來判斷。但是經過我的一番嘗試,只有 BlockHash 是可行的,在web3j中根據 blocknumber 和 transactionReceipt 都會報空指針異常。
原因大致是這樣的:在發起一筆交易之後,會返回 txHash ,然後我們可以根據這個 txHash 去查詢這筆交易相關的信息。但是剛發起交易的時候,由於手續費問題或者乙太網絡擁堵問題,會導致你的這筆交易還沒有被礦工打包進區塊,因此一開始是查不到的,通常需要幾十秒甚至更長的時間才能獲取到結果。我目前的解決方案是輪詢的去刷 BlockHash ,一開始的時候 BlockHash 的值為0x00000000000,等到打包成功的時候就不再是0了。
這里我使用的是rxjava的方式去輪詢刷的,5s刷新一次。
正常情況下,幾十秒內就可以獲取到區塊信息了。
區塊確認數=當前區塊高度-交易被打包時的區塊高度。
㈢ imtoken錢包怎麼導出以太坊錢包keystore
imtoken錢包怎麼導出以太坊錢包keystore,不少使用imtoken錢包的小夥伴都知道軟體中有很多的功能,不少人不知道怎麼知旅輪導出以太坊錢包keystore,下面跟著小編一起來看看吧,希望此文章能幫到你。
imtoken錢包怎麼導出以太坊錢包keystore
1.打開imToken軟體進入首頁後,點擊頁面上方的「ETH」按鈕,進入錢包管理界面,點擊搭信ETH-Wallet後面的「...」按鈕
2.進入ETH-Wallet的錢包管理界面,點擊「導出Keystore」,輸入錢包密碼;進入導出界面,根據提示進行操作。
3.進入ETH-Wallet的錢包管理界面,點擊「導出Keystore」,輸入錢鎮枯包密碼;進入導出界面,根據提示進行操作。
㈣ 區塊鏈錢包的重要性
現在越來越多的人開始參與到區塊鏈項目中,了解並參與到其中的人相信都會使用區塊鏈錢包,這里的「錢包」指的是一個虛擬的,用來儲存和使用虛擬貨幣的工具。
錢包主要分為冷錢包和熱錢包,這其中包含私鑰,公鑰和助劑詞,接下來為大家詳細一一講解一下他們的區別與作用。
冷錢包: 冷錢包指的是不聯網的錢包,將數字貨幣進行離線儲存的錢包。使用者在一台離線的錢包上面生成數字貨幣地址和私鑰,再將其保存起來。 冷錢包集 數字貨幣 存儲、多重交易密碼設置、發布最新行情與資訊、提供硬分叉解決方案等功能於一身,能有效防止黑客竊取。
熱錢包: 熱錢包指的是需要聯網上線使用的錢包,在使用上更加方便,但現在網路比較復雜,釣魚網站較多,有風險,因此在使用錢包或者交易所時,最好在設置不同密碼,且開啟二次認證,以確保自己的資產安全。
綜上相比之下冷錢包比熱錢包更加安全。
私鑰: 私鑰是一串由隨機演算法生成的數據,它可以通過非對稱加密演算法算出公鑰,公鑰可以再算出幣的地址。私鑰是非常重要的,作為密碼,除了地址的所有者之外,都被隱藏。區塊鏈資產實際在區塊鏈上,所有者實際只擁有私鑰,並通過私鑰對區塊鏈的資產擁有絕對控制權,因此,區塊鏈資產安全的核心問題在於私鑰的存儲,擁有者需做好安全保管。和傳統的用戶名、密碼形式相比,使用公鑰和私鑰交易最大的優點在於提高了數據傳遞的安全性和完整性,因為兩者——對應的關系,用戶基本不用擔心數據在傳遞過程中被黑客中途截取或修改的可能性。同時,也因為私鑰加密必須由它生成的公鑰解密,發送者也不用擔心數據被他人偽造。
公鑰: 公鑰是和私鑰成對出現的,和私鑰一起組成一個密鑰對,保存在錢包中。公鑰由私鑰生成,但是無法通過公鑰倒推得到私鑰。公鑰能夠通過一系列演算法運算得到錢包的地址,因此可以作為擁有這個錢包地址的憑證。
助記詞: 助記詞是利用固定演算法,將私鑰轉換成十多個常見的英文單詞。助記詞和私鑰是互通的,可以相互轉換,它只是作為區塊鏈數字錢包私鑰的友好格式。
Keystore :主要在以太坊錢包 App 中比較常見(比特幣類似以太坊 Keystore 機制的是:BIP38),是把私鑰通過錢包密碼再加密得來的,與助記詞不同,一般可保存為文本或 JSON 格式存儲。換句話說,Keystore 需要用錢包密碼解密後才等同於私鑰。因此,Keystore 需要配合錢包密碼來使用,才能導入錢包。當黑客盜取 Keystore 後,在沒有密碼的情況下, 有可能通過暴力破解 Keystore 密碼解開 Keystore,所以建議使用者在設置密碼時稍微復雜些,比如帶上特殊字元,至少 8 位以上,並安全存儲。
綜上:錢包的作用就是保護我們我私鑰,私鑰就是控制資產的全部許可權,只有擁有私鑰的人才可以使用這個賬戶里的虛擬貨幣。在使用錢包的過程中切記不要將自己錢包的私鑰、助記詞、Keystore等信息透露給其他人,這些信息都是可以直接竊取你數字資產的重要信息。
使用錢包注意事項:
1、私鑰和助記詞做好備份,除了在手機上最好手寫一份保存。
2、不要輕易點擊未知網站。
3、不要截屏或者拍照保存。
總之重中之重保存好自己的私鑰。
㈤ iOS開發ETH錢包
框架:web3swift => https://github.com/matter-labs/web3swift
1、創建錢包
2、導入錢包
3、獲取余額
4、轉賬
5、調用智能合約
注意:
1、網路的切換
測試網 let web3 = Web3.InfuraRinkebyWeb3()
主網 let web3 = Web3.InfuraMainnetWeb3()
2、轉賬相關的,必須配置
KeystoreManager
TransactionOptions
3、調用智能合約,參數不對,會直接返回nil
㈥ imtoken錢包私鑰導入格式64進16什麼意思
私鑰=銀行卡+銀行卡密碼。
私鑰是一個長度為64位的字元串,一個錢包只能擁有一個私鑰並且不能修改。為什麼說私鑰=銀行卡+銀行卡密碼呢?因為在imToken中直接導入私鑰可以生成新的密碼,將所有的區塊鏈資產全部轉移走。私鑰作為最高保密級別,應該妥善保管在物理設備上,例如抄在紙上,備份多份並且存放在安全的地方,萬萬不可將私鑰在聯網設備上進行傳輸,避免被黑客截取。
助記詞=私鑰。
助記詞又是什麼東西呢?助記詞既然等於私鑰,那麼其應該是私鑰的另外一種表現形式,並且具有私鑰同等的功能。在imToken中創建錢包,會出來一個助記詞,助記詞的個數一般為12、15、18、21個單詞構成。這些詞都取自一個固定詞庫,其生成順序也是按照一定的演算法得到,且助記詞不能修改。助記詞的主要作用是幫助用戶記憶繁瑣的私鑰。同樣助記詞也要妥善保管好,切勿在聯網設備中傳輸,任何人得到了你的助記詞都可以輕松的轉移你的區塊鏈資產。
keystore+密碼=私鑰。
keyStore文件是以太坊錢包存儲私鑰的一種文件格式(JSON格式)。它使用用戶自定義密碼對私鑰進行加密,在一定程度上keystore=加密後的私鑰,拿到keystore和密碼後照樣可以轉移走所有的區塊鏈資產。keystore密碼是唯一不可修改的,那麼錢包密碼修改之後,keystore也會相應修改。一定要記住加密keystore的密碼,一旦忘記密碼,就相當於遺失了該錢包所有的區塊鏈資產。
————————————————
版權聲明:本文為CSDN博主「懶區塊」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/lanqukuai/article/details/81035995
㈦ 以太坊怎麼根據地址獲取私鑰
安裝metamask metamask是可以安裝在瀏覽器上的擴展程序,可以在進行安裝。建議在安裝在虛擬機中
以太坊的私鑰生成是通過secp256k1橢圓曲線演算法生成的,secp256k1是一個橢圓曲線演算法,同比特幣。公鑰推導地址和比特幣相比,在私鑰生成公鑰這一步其實是一樣的,區別在公鑰推導地
以太坊錢包地址就是你的銀行卡號,倘若你把地址忘了,可以用私鑰、助記詞、keystore+密碼,導入錢包找回。首先注冊登錄bitz,找到資產下面的以太坊,點擊充值,這時候就能獲取充值地址了。然後把錢包里的以太坊直接充到這個地址就行了。
㈧ 【概念】私鑰、助記詞和keystore到底是什麼關系
使用了很久的錢包,用得有點誠惶誠恐,錢包除了用於轉賬外,都不怎麼敢動它,怕誤操作搞不好就空了,所以大部分都在交易所,不敢提。這也間接印證了李笑來老師的一句話:
在申請錢包時,當然看過不少資料,老老實實地記下了私鑰、助記詞,備份了keystore,還放在兩個U盤里備份。但對私鑰、助記詞和keystore是一知半解的,也不知道他們到底什麼關系。如果不是要了解EOS映射,我可能一直不會動錢包,也不會去了解它們。
下面就一個個來好好學習一下這些概念。
私鑰是由64位十六進制的字元組成,每個私鑰是隨機生成的,隨機生成這樣的字元串有2的256次方種可能,這個數字已經超過了宇宙中原子的個數,用「暴力破解」的方式逐一遍歷可能的私鑰,幻想能碰到一個有效的且有幣的私鑰,可以說是不可能,就算是量子計算機也沒用。
一個錢包只有一個私鑰且不能修改。
在導入錢包中,輸入私鑰並設置一個密碼(不用輸入原密碼),就能進入錢包並擁有這個錢包的掌控權,就可以把錢包中的代幣轉移走。
由於私鑰64位,長得太難看,沒有可讀性,而私鑰的備份在電腦上復制起來容易,手抄下來就比較麻煩,但私鑰保存在聯網的電腦上不安全,有被其他人看到的風險,於是有了助記詞工具。
助記詞是明文私鑰的另一種表現形式,最早是由BIP39提案提出,其目的是為了幫助用戶記憶復雜的私鑰 (64位的哈希值)。助記詞一般由12、15、18、21個單詞構成,這些單詞都取自一個固定詞庫, 其生成順序也是按照一定演算法而來,所以用戶沒必要擔心隨便輸入12個單詞就會生成一個地址。助記詞是未經加密的私鑰, 沒有任何安全性可言,任何人得到了你的助記詞,可以不費吹灰之力的奪走你的資產。所以在用戶在備份助記詞之後,一定要注意三點:
助記詞一般會在你創建新錢包的時候出現一次,後面就再也不會出現了,所以創建新錢包時一定要把助記詞抄下來,想辦法備份。最好不要用屏幕截圖或保存在電腦里,因為只要泄露,獲取了你的助記詞就等於獲取了私鑰,你的錢包就成了別人的錢包。
簡而言之:助記詞等於私鑰,絕對不能泄露。
keystore常見於以太坊錢包,是你獨有的、用於簽署交易的以太坊私鑰的加密文件。keystore是一串Json格式的字元串,可以用任何以太坊錢包打開它。keystore必須配合你的錢包密碼來使用,備份了keystore同時別忘了備份錢包的密碼。
用戶可以使用備份的助記詞,重新導入imToken之類的錢包工具,用新的密碼生成一個新的Keystore,可以用這種方法來修改錢包密碼。
助記詞=密鑰=keystore+密碼 !保管好私鑰或者助記詞不被泄露,或是保存好keystore+記住密碼,你才真正擁有了虛擬資產。
再來一個比較形象的比喻。
概念清楚之後,瞬間感覺輕松多了。再也不用擔心因為不明白而擔心操作失誤的問題。最重要的是將私鑰、助記詞和keystore備份好,盡量離線備份多份,這樣才能保證賬號的安全。
1、 科普 | 什麼是以太坊私鑰儲存(Keystore)文件?
2、 如何妥善備份你的以太坊錢包?
3、 幣圈名詞:地址、密碼、私鑰、助記詞,你真的分清楚了嗎
4、 「地址、密碼、私鑰、助記詞、Keystore 」那些事
㈨ 一步一步教你使用以太坊錢包
下面開始介紹myetherwallet
記住,這個錢包只支持如下幾種
ETH、ETC、和符合ERC20協議的token,
其他 不支持的幣不要轉進來(轉進來會丟失)
瀏覽器打開網站:
https://www.myetherwallet.com
在頁面右上角選擇你喜歡的語言,如下圖所示
第一步 創建錢包
輸入密碼(至少9位)
下載keystore文件(這里保存你的公鑰和私鑰)
保存你的私鑰
初次解鎖錢包(建議一定要多試下第二步,不要立馬就轉幣進去,否則有可能你沒記住密碼或者keystore沒放好,多試幾次可以讓你更加熟悉)
一般初次點擊解鎖之後,頁面可能不刷新,直接滑鼠往下滾下來就看到你的錢包信息了
第二步 查看錢包信息
當你完成了第一步,錢包就已經建好了。
這一步只是教你平時怎麼打開錢包看看裡面的余額之類的
你的ETH的余額和交易歷史
你的所有代幣token的余額和交易歷史
第三步 接收和發送ETH及其他token代幣
接收ETH和其他的代幣token(這個錢包所支持的,點擊show all tokens看所有支持的代幣)
都用同一個地址即可,不需要任何額外的標記或操作
點擊左上角 發送以太幣/發送代幣,選擇keystoreFile,
上傳keystore文件,填寫密碼,解鎖賬號
3.發送給別人ETH或代幣的時候,你就要輸入對方對應的ETH地址或代幣地址,不要填錯,
比如你要發送到你的交易平台,如果發送EOS,這里就要放你交易平台的EOS的充值地址,
而不是放ETH充值地址,當然你還需要在下面這個下拉菜單這里選擇一下相應的代幣類型,
比如EOS
㈩ 【ETH錢包開發02】導入錢包
本文主要講解通過助記詞、keystore、私鑰 3種方式來導入錢包。導入錢包就是說根據輸入的這3者中的一個去重新生成一個新的錢包。導入錢包的過程和創建的過程其實是差不多的。
根據助記詞導入錢包不需要原始密碼,密碼可以重新設置。根據用戶輸入的助記詞,先驗證助記詞的合規性(格式、個數等),驗證正確後,配合用戶輸入的密碼重新生成一個新的錢包。
驗證助記詞的合規性(格式、個數等)
助記詞導入錢包
通過私鑰導入錢包其實和創建錢包的過程基本一致。因為私鑰在導出的時候轉換成了16進制,所以在導入私鑰的時候,要把16進制轉換為byte數組。
keystore就是錢包文件,實際上就是錢包信息的json字元串。導入keystore是需要輸入密碼的,這個密碼是你最後導出keystore時的密碼。將keystore字元串變成walletFile實例再通過 Wallet.decrypt(password, walletFile); 解密,成功則可以導入,否則不能導入。
這是Web3j的API,程序走到這里經常OOM!
具體原因的話,我就不多說了,細節大家可以看這里
https://www.jianshu.com/p/41d4a38754a3
解決辦法
根據源碼修改 decrypt 方法,這里我用一個已經修改好的第三方庫
修改後的解密方法
導入Kestore
1、導入助記詞和私鑰是不需要以前的密碼的,而是重新輸入新的密碼;導入Keystore則需要以前的密碼,如果密碼不正確,會提示地址和私鑰不匹配。
2、關於備份助記詞
用過imtoken的同學可以看到imtoken是可以導出(備份)助記詞的。這個一開始我也很困惑,後來了解到其實它實在創建錢包的時候,在app本地保存了助記詞,導出只是講數據讀取出來而已。還有一點,imtoken一旦備份了助記詞之後,之後就沒有備份那個功能了,也就是說助記詞在本地存儲中刪除了;而且導入錢包的時候也是沒有備份助記詞這個功能的。