您好、欢迎来到现金彩票网!
当前位置:秒速时时彩 > 私钥文本 >

科普以太坊私钥存储文件

发布时间:2019-05-20 11:49 来源:未知 编辑:admin

  我们都知道,在区块链的世界中,私钥是你有用某一地址的唯一标识。丢失了私钥就等于丢失了此地址的所有权。

  以太坊的私钥文件存储于数据目录(datadir指向或默认目录)下,对应的目录为keystore。所有的私钥文件都经过加密之后存储于此目录下。

  以太坊的客户端或图形界面帮助我们因此了底层复杂的密码实现,唯一需要我们做的就是保存好(多出备份)keystore下面的加密私钥文件和加密的密码。否则,有可能失去辛苦挖来的以太币或花钱购买来的以太币。

  以太坊创建账户的操作非常简单,但有不同的展现形式。以geth客户端为例。

  以上操作是直接执行geth客户端的命令(command)来创建账户和展示账户私钥文件信息。创建过程中需要两次输入对私钥加密的密码。此种方式的好处是不需要单独启动geth节点即可创建完成账户。

  此种方式需先启动geth节点,并进入console命令行交互界面。然后执行以下命令:

  keystore文件是你独有的,用于签名交易的以太坊私钥的加密文件。一旦丢失文件或加密密码就意味着你失去了此地址发起交易、签名交易的特权,账户里面的资金将永远被锁。

  keystore文件存在的价值就是以加密的方式存储密钥,同时在使用的时候只需要提供keystore文件和对应的密码即可发起交易。安全性与可用性达到了完美的平衡。

  但是,我们需要注意的是一旦用密码对加密文件进行解锁之后,在有效时间内通一个客户端下,你可以发起交易,如果别人可以访问你的客户端,同样也可以发起交易。在网络安全不足的情况下,这是被盗币的场景之一。

  通过文件中的内容,我们能看到的是一个json字符串,里面包含了此秘钥对应的地址和加密相关的一些信息。

  一个以太坊账户是由一对公私钥对构成,并使用强对称算法(cipher)进行加密。

  客户端读取密钥文件和加密密码,对私钥进行解密,然后使用私钥对发送的交易进行签名。

  以太坊使用基于密码保护的机制来解密密钥。这样用户就不需要记住一串非用户友好的密码。为了达到此效果,以太坊使用密钥生成函数,根据输入的密码和一系列参数就能计算解密密钥。

  kdf是一个密钥生成函数,根据密码计算(或者取回)解密密钥。kdf用的是scrypt算法。

  用kdfparams参数对scrypt函数进行调整,反馈密码中,得到解密密钥,也就是密钥生成函数的输出。

  当输入错误密码时,密码派生和解密等操作都会成功,但最终计算所得的以太坊私钥不是正确的,因此无法进行解锁账户的操作。

  keystore文件中mac值起作用的地方。在密钥生成函数执行之后,它的输出(解密密钥)和ciphertext密文就被处理,并且和mac(类似于数据签名)作比较。如果结果和mac相同,那么密码就是正确的,可以开始解密操作。

  在和mac进行比较之前,需要解密密钥(左起第二字节开始的16字节)要和ciphertext*密文连接在一起,并进行哈希散列(用SHA3-256的方法)。

  输入密码,密码作为kdf密钥生成函数的输入,计算解密密钥。用解密密钥和ciphertext密文连接并进行处理,和mac比较确保密码正确。最后,通过cipher对称函数用解密密钥对ciphertext 密文解密。

  **获取更多资讯,请关注微信公众号:程序新视界。或加入QQ技术交流群:659809063。

  本人诚接以太坊相关研发及技术支持(以太坊接口封装&代币开发等),如有需要请联系。非诚勿扰。**

  本站部分内容来自互联网,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢!

http://christianiaart.com/siyuewenben/67.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有