区块链科学:什么是以太坊密钥库文件?

Bitget下载

注册下载Bitget下载,邀请好友,即有机会赢取 3,000 USDT

APP下载   官网注册

进入keystore管理以太坊的私钥非常困难,主要是因为以太坊客户端在直接命令行或者图形界面下隐藏了大部分密码复杂度。

例如,使用geth:

我只需要输入三个字就可以创建一个新账户。然后输入两次密码,即';这就是全部!我的以太坊密钥库文件已创建。

你需要将那些珍贵的keystore文件备份并存储在一个或多个秘密位置,这样只有你才能拿到这些文件并拿到钱。

根据经验,当我不';我不能完全理解一个新概念的微妙之处,并且过分依赖抽象层和现有工具来使我的生活变得更容易,我很可能会忘记一些东西,走不必要的捷径,把事情搞砸。当我搞砸了,我可能会以我辛辛苦苦挣来的以太坊永远被锁住而告终(幸运的是,它没有';还没发生呢!)。

幸运的是,作为一个以太坊用户,没有太多的方法可以搞砸:

您丢失了您的密钥库文件

您忘记了与文件

相关联的密码或者您把两者都搞砸了。

在本文中,我们将向您展示如何从密钥库文件计算以太坊的私钥。我们将讨论加密函数(对称加密、密钥生成函数、SHA3哈希算法),但我们将尽力简明、直接地解释上述问题。

以太坊的密钥库文件(存储在~/中)。Linux系统的ethereum/keystore或Windows系统的c:\users\appdata/roaming/ethereum/keystore)是你唯一的加密文件,用于签署ethereum的私钥。。如果您丢失了这个文件,您就丢失了私钥,这意味着您失去了签署交易的能力,这意味着您的资金被永久锁定在您的帐户中。

当然,你也可以直接将你的以太坊私钥保存在一个加密文件中。但是,您的私钥容易受到攻击。攻击者只需读取您的文件,用您的私钥签署交易,然后将钱转到他们的账户。在你意识到发生了什么之前,你的钱会在短时间内丢失。

这就是创建以太坊密钥库文件的原因:它允许您以加密的方式存储密钥。。这是安全性(攻击者需要一个密钥库文件和您的密码来窃取您的钱)和可用性(您只需要一个密钥库文件和密码来使用您的钱)之间的完美平衡。

为了让你送一些以太币。大多数以太坊客户端会要求您输入密码(与创建帐户时相同)来解密您的以太坊私钥。一旦解密,客户端程序获得私钥来签署交易,允许您移动资金。如果您打开您帐户的文件。,itlookslikethis(takenfromhere):

ountfile,itshouldlooklikethis(takenfromhere):

一个笨拙的JSON文件,有很多神奇的参数,似乎与复杂的加密操作有关。这一点也不吸引人。

如果您查看这个密钥库文件的结构,您会看到大多数内容都在"加密":

这包括:

cipher:对称AES算法的名称;

cipherparams:上述密码算法所需的参数;

密文:你的以太坊私钥是用上面的密码算法加密的;

kdf:密钥生成函数,用于您用密码加密keystore文件;

kdfparams:上述kdf算法所需的参数;

Mac:用于验证密码的代码。

Let';让我们看看它们是如何协同工作的,以及如何保护您的密码下的密钥库文件。

如前所述,以太坊账户是一种用于加密和签署交易的私钥?—公钥对。为了保证你的私钥不被明文存储在文件中(也就是任何人只要能拿到就能读取文件),用强对称算法(Crypter)加密是非常重要的。这些对称算法使用密钥来加密数据。加密的数据可以用相同的方法和相同的密钥解密,因此该算法被命名为对称算法。在本文中,我们称这个对称密钥为解密密钥,因为它将用于解密我们的以太坊私钥。

以下是cipher、cipherparams和密文的对应概念:

Cipher是一种对称加密算法,用于加密以太坊的私钥。。这里的密码使用aes-128-ctr加密模式。

Cipherparams是aes-128-ctr加密算法所需的参数。这里,唯一使用的参数是iv。,这是aes-128-ctr加密算法所需的初始化向量。

密文是aes-128-ctr函数的加密输入。

原来如此。你有了计算私钥解密以太坊所需的一切…等等。您需要首先检索您的解密密钥。

-密文对称解密-

为了确保轻松解锁您的帐户,您不';不需要记住用于解密密文的每个长的且用户友好的解密密钥。相反的以太坊的开发者选择了基于密码的保护,也就是说你只需要输入密码就可以拿回解密密钥。

为了做到这一点,以太坊使用了密钥生成函数,输入密码和一系列参数就可以计算出解密密钥。

这就是kdf和kdfparams的用途:

kdf是一个密钥生成函数,它根据您的密码计算(或检索)解密密钥。这里,kdf使用scrypt算法。

kdfparams是scrypt函数所需的参数。这里,简而言之,dklen,n,r,p,salt是kdf函数的参数。关于scrypt函数的更多信息可以在这里找到。

这里用kdfparams参数调整scrypt函数,并反馈给我们的密码,就会得到解密密钥,也就是密钥生成函数的输出。

-用密码生成密钥-

我们用密码和密钥库文件描述了生成以太坊私钥所需的一切。但是,如果解锁账号的密码错了会怎么样?

根据目前我们看到的情况,所有操作(密码推导和解密)都会成功。但是以太坊最终计算出来的私钥是不正确的,这首先违背了使用密钥文件的初衷!

我们需要确保为解锁帐户而输入的密码是正确的。,与第一次创建keystore文件时相同(回想一下在geth下创建新帐户时输入的两次密码)。

这就是密钥库文件中的mac值发挥作用的地方。在执行密钥生成功能之后它的输出(解密密钥)和密文被处理并与mac进行比较(就像一个批准的印章)。如果结果与mac相同,则密码正确,可以开始解密。

[注1]这个有点缩写。在与mac进行比较之前,解密密钥(从左起第二个字节开始的16个字节)应与密文连接并进行哈希运算(通过SHA3-256方法)。

把所有的都放到一起考虑

哟!如果你做到了这一点,恭喜你!

Let';让我们回顾一下我们描述的三个功能。

首先,您输入一个密码,该密码用作kdf密钥生成函数的输入来计算解密密钥。然后刚刚计算出的解密密钥与密文连接并处理,与mac比对,确保密码正确。最后用解密密钥通过密码对称函数解密密文。

看。!解密的结果就是你的以太坊私钥。你可以在这里看到整个过程:

就像你从图中可以看到的整个过程可以看作是一个黑盒(然而在图中是一个灰盒),你的密码是唯一的输入,你的以太坊私钥是唯一的输出。您需要的所有其他信息都可以在创建您的以太坊帐户时生成的密钥库文件中获得。

出于这个原因,请确保您的密码足够强(无论如何也要记住!)以确保即使攻击者窃取了您的密钥库文件,您也可以';不要轻易得到你的私钥。

以上是区块链科学:以太坊密钥库文件是什么?详情更多关于以太坊的Keystore文件,请关注dadaqq.coM其他相关文章(www.dadaqq.coM)!

本站提醒投资有风险,入市需谨慎。此内容不作为投资理财建议。

标签:区块链以太坊的私钥密钥库。

区块链科学:什么是以太坊密钥库文件?文档下载: PDF DOC TXT
文章来源: 肖肖
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至2384272385@qq.com举报,一经查实,本站将立刻删除。