以太坊的钱包地址有哪些?怎么用?
现在我们都很关心以太坊的问题,所以我想你会想了解一些以太坊的情况。以太坊的钱包地址有哪些?怎么用?这里就做一个小编来介绍很多关于以太坊的钱包地址吧。怎么用?希望能帮到大家。
以太坊的客户端或者图形界面帮助我们实现底层复杂的密码。我们唯一需要做的就是在keystore下保存(备份更多)加密的私钥文件和加密的密码。否则就有可能失去辛辛苦苦赚来的以太坊或者花钱购买的以太坊。
记住,千万不要出错:丢失密钥库文件或忘记密码!
以太坊创建一个账户
以太坊创建账号的操作非常简单,但是有不同的呈现形式。以geth客户端为例。
命令模式
波哥大:geth zzs美元。/geth account new您的新帐户已被密码锁定。请输入密码。不要忘记这个密码。
密码短语:重复密码短语:
地址:{ 0 f 7 b 73 f 3034d 0d 17 a 165 E4 cf 50 BD 77051235 b4e 6 }博根:geth zzs$。/geth帐户列表
账号# 0:{ 0 f 7 b 73 f 3034d 0d 17 a 165 E4 cf 50 BD 77051235 b4e 6 } keystore:///Users/zzs/Library/ether eum/keystore/UTC-2018-02-21t 02-56-46.285140000 z-0 f 7 b 73 f 3034d 0d 17 a 165 E4 cf 50 BD 77051235 b4e 6 bogon:geth zzs $ 12340
上面的操作是直接执行geth client的命令来创建一个账户,并显示该账户的私钥文件的信息。在创建过程中,需要输入两次用于加密私钥的密码。这种方法的优点是不需要单独启动geth节点就可以创建完整的帐户。
控制台命令模式
这样你需要先启动geth节点,进入控制台命令行交互界面。然后执行以下命令:
> personal . new account(" 123456 ")" 0x 00 Fe 1 b 8 a 035 b5 C5 e 42249627 ea 62 f 75 e5a 071 CB 3 "//或者
> personal.newAccount()密码短语:重复密码短语:“0x6a 787 F16 c 2037826 FBC 112 c 337d 7 b 571 bb 19 c 022”12345678910
通过个人角色管理和创建新帐户,并设置密码。
密钥库文件
Keystore文件是您唯一的加密文件,用于签署以太坊的私钥。一旦丢失文件或加密密码,就失去了在该地址发起和签署交易的特权,账户内的资金将被永久锁定。
keystore文件的价值在于以加密的方式存储密钥。同时,在使用时,只需要提供keystore文件和相应的密码就可以发起交易。在安全性和可用性之间有一个完美的平衡。
但是我们需要注意的是,加密文件一旦用密码解锁,就可以在有效时间内通过客户端发起交易。如果别人可以访问你的客户端,你也可以发起交易。在网络安全不足的情况下,这是硬币被盗的场景之一。
密钥文件内容
密钥文件是一个文本文件,可以用任何文本编辑器或浏览器打开。
bogon:keystore zzs $ cat UTC-2018-02-21t 03-01-27.38349000 z-6a 787 F16 c 2037826 FBC 112 c 337 d7b 571 bb 19 c 022
{ " address ":" 6a 787 F16 c 2037826 FBC 112 c 337d 7 b 571 bb 19 c 022 "," crypto": { "cipher": "aes-128-ctr ","密文":" 8 ed39 b 22 ab 67 a 787 baa 4 ebb 545382255 f 747328 e2a 3 e 74970 a 0 f 66 b 422d 169 "," cipher params ":{ " iv ":" 8e0e 099
}," kdf": "scrypt "," kdfparams": { "dklen": 32," n": 262144," p": 1," r": 8," salt ":" a2a 84d 4843 DBC 7b 7 c 0 aefa 933 f 37 EAD 073 AEF 8503 AC 8497 b 77828 e 85467 c 6822 "
}、" MAC ":" 1 fc 4a 5d 260 FDD 70 e 772 FDC 9 a 28614 e 82d 5 ff 0 ADC 6 c 98332 f 8455 C5 aa 0a 3352 ad "
}、" id ":" 7 bce1a 69-79 a2-429 a-836 c-cc 2 BF 72 c 80 de "、"版本":3 } 1234567891011121314151617181920212223
通过文件的内容,我们可以看到一个json字符串,里面包含了这个密钥对应的地址,以及一些与加密相关的信息。
密码:加密算法,对称加密,AES算法,用于加密以太坊私钥;
Cipherparams:密码算法所需的密码参数,参数iv,是aes-128-ctr加密算法所需的初始化向量;
密文:加密密文,aes-128-ctr函数的加密输入密文;
Kdf:密钥生成函数,用密码加密keystore文件;
KDF参数:KDF算法所需的参数;
Mac:验证密码的代码;
原理分析
密钥
以太坊帐户由一对公钥和私钥组成,并使用强对称算法(密码)进行加密。
我们来看看具体的流程图“ciphertex密文的对称解密”:
1.png
客户端读取密钥文件和加密密码,解密私钥,然后使用私钥对发送的事务进行签名。
口令保护
以太坊使用一种基于密码保护的机制来解密密钥。这样,用户就不需要记住一串不友好的密码。为了达到这种效果,以太坊使用密钥生成函数,根据输入的密码和一系列参数计算出解密密钥。
这涉及到kdf和kdfparams的使用:
Kdf是一个密钥生成函数,它根据密码计算(或检索)解密密钥。Kdf使用scrypt算法。
Kdfparams是scrypt函数的必需参数。
用kdfparams参数调整scrypt函数,反馈密码得到解密密钥,这是密钥生成函数的输出。
2.png
密码错误
当密码输入错误时,密码推导和解密会成功,但最终计算出的以太坊私钥不正确,无法解锁账户。
其中mac值在密钥库文件中发挥作用。执行密钥生成函数后,其输出(解密密钥)和密文被处理并与mac进行比较(类似于数据签名)。如果结果与mac相同,则密码正确,可以开始解密操作。
在与mac比较之前,解密密钥(左起第二个字节的16个字节)要与密文*连接,并进行哈希处理(使用SHA3-256方法)。
3.png
过程评审
输入密码,作为kdf密钥生成函数的输入,计算解密密钥。使用解密密钥和密文进行连接和处理,并与mac进行比对,确保密码正确。最后,用解密密钥通过密码对称函数解密密文。