在区块链领域中,私钥是拥有某一地址的唯一标识,这一特性很重要。以太坊的私钥文件在很多方面以及细节上都有其自身的特点,接下来会带领大家深入地去知晓这些方面和细节。
私钥文件存储位置
以太坊的私钥文件存放在数据目录里。这个数据目录通常是被指定的或者是默认的。所有的私钥文件都经过加密后存放在这里,这样能保障私钥有一定的安全性。对于很多以太坊用户来说,只要清楚地知道数据目录的位置,就可以很容易地找到自己的私钥文件,不需要到处胡乱地寻找。
bogon:geth zzs$ ./geth account new
Your 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--0f7b73f3034d0d17a165e4cf50bd77051235b4e6
bogon:geth zzs$
如果数据目录记错了,或者忘记对其进行备份,那么就有可能丢失私钥文件。这种情况会引发很大的麻烦。因此,大家一开始就必须清楚地记录存储目录,并且要定期进行备份操作。
创建账户操作方式
以太坊创建账户较为简单,形式多样。能够直接执行 geth 客户端命令,在创建账户时,需两次输入用私钥加密的密码。其好处在于,无需单独启动 geth 节点,就可以完成账户创建,从而节省了诸多操作步骤。
首先要启动 geth 节点,然后进入命令行交互界面。利用角色管理来创建新账号并设置密码。不同的创建方式是为满足不同需求的用户而设计的,若只是进行简单的创建,那么前面提到的那种方式较为便捷;倘若有复杂的账户管理需求,后面这种方式则更为合适。
> personal.newAccount("123456")
"0x00fe1b8a035b5c5e42249627ea62f75e5a071cb3"
// 或
> personal.newAccount()
Passphrase:
Repeat passphrase:
"0x6a787f16c2037826fbc112c337d7b571bb19c022"
私钥文件重要价值
文件是具有独特性的加密私钥文件,其作用在于用于签名交易。倘若丢失了该文件或者加密密码,那么就会丧失发起和签名交易的特权,账户资金将会被永久锁定。例如有用户不慎将私钥文件删除,那么其中的资金就无法被取出,从而遭受了重大的损失。
它的价值在于能够将密钥进行加密存储。在使用的时候,只要提供文件以及对应的密码,就可以发起交易。这种方式给用户的交易带来了便捷之处,只要能够妥善保管好文件和密码,交易就能够顺利地进行下去。
交易解锁的风险
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
}
密码解锁加密文件后,在有效时间内于同一客户端能够发起交易。然而,如果他人可以访问你的客户端,那么他就能够发起交易。之前有用户的电脑被他人访问了,这导致其账户里的资金被转走了。
大家解锁文件之后,需特别留意客户端的安全状况。首先要立刻退出登录,其次要限制他人对自己设备的访问,通过这些措施来确保交易的安全。
秘钥文件内容查看
秘钥文件属于文本文件,能够用文本编辑器来打开,同时也可以借助浏览器进行打开。在打开之后,可以看到其中存在着 json 字符串,这个字符串涵盖了秘钥所对应的地址以及加密方面的相关信息。用户查看这些内容,就能够知晓自己账户的基本状况。
这给部分开发者带来了便利。他们能够对这些信息展开分析,随后便可开发出更符合用户需求的以太坊工具。
密码解密的机制
以太坊账户由公私钥对所构成。它是借助强对称算法来进行加密的。客户端会去读取密钥文件以及密码。然后会对私钥进行解密操作。之后利用私钥来为交易进行签名。在使用密钥生成函数的时候,会依据密码以及相关参数计算出解密密钥。
当密码输入有误时,最终计算出的以太坊私钥就不正确,也就无法解锁账户。只有当结果和 mac 相同时,密码才是正确的,此时才可以开始进行解密操作。并且在进行比较之前,有一系列复杂的处理步骤,目的是确保解密过程的严谨性。
大家在存储以太坊私钥文件的时候,要思考哪种备份方式最为安全。快去评论区把你们的想法分享出来,同时也别忘记给本文点赞以及进行分享!
暂无评论
发表评论