区块链科普:什么是以太坊私钥储存(Keystore)文件?

欧易(OKX)交易所

新用户永久最高20%手续费减免!

官网注册   APP下载

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

例如,用geth:

我只需要输入3个单词就能创建一个新账户。然后输入两遍密码,就这么简单!我的以太坊keystore文件就创建了。

你需要把那些非常珍贵的keystore文件备份、存储在一个或多个隐秘的位置,这样就只有你能获取这些文件并取到资金。

从经验来看,当我没有完全理解一个新概念的微妙之处,并且过分依赖抽象层和现有工具来让我的生活更轻松时,我很有可能忘记一些事情,采取不必要的捷径并且搞砸它。搞砸的时候,可能就是会以我辛苦挣来的以太币被永久锁定而告终(幸好它还没有发生!)。

幸运的是,作为一个以太坊用户,你能搞砸的方式并不多:

  1. 你丢失了你的keystore文件
  2. 你忘记了和文件关联的密码
  3. 或者以上两者你都搞砸了。

在本文中,我们将为你介绍以太坊私钥是如何从 keystore 文件中算出来的。我们将讨论加密函数(对称加密,密钥生成函数,SHA3 哈希算法),但我们会尽可能的保证简明直接地来解释上述问题。

什么是keystore文件?

以太坊的 keystore 文件(Linux 系统存储在 ~/.ethereum/keystore 或者 Windows 系统存储在 C:\Users<User>\Appdata/Roaming/Ethereum/keystore)是你独有的、用于签署交易的以太坊私钥的加密文件。如果你丢失了这个文件,你就丢失了私钥,意味着你失去了签署交易的能力,意味着你的资金被永久的锁定在了你的账户里。

当然,你可以直接把你的以太坊私钥存储在一个加密文件里,但是这样你的私钥容易受到攻击,攻击者简单的读取你的文件、用你的私钥签署交易,把钱转到他们的账户中。你的币会在你意识到发生什么了之前的短时间内丢失。

这就是以太坊 keystore 文件被创建的原因:它允许你以加密的方式存储密钥。这是安全性(一个攻击者需要 keystore 文件和你的密码才能盗取你的资金)和可用性(你只需要keystore文件和密码就能用你的钱了)两者之间完美的权衡。

为了让你发送一些以太币,大多数的以太坊客户端会让你输入密码(与创建账户时密码相同)以解密你的以太坊私钥。一旦解密,客户端程序就得到私钥签署交易,允许你移动资金。

Keystore文件是什么样子的?

如果你打开一个你的账户文件,它看起来像这样(取自这里):

ount’s file, it would look like this (taken from here):

一个有许多神奇的参数的粗笨的 JSON 文件,似乎与复杂的加密操作相关。这绝不吸引人。

让我们深入理解一下

如果你看这个 keystore 文件的结构,你会看到大部分内容都是在“crypto”中的:

这包括:

cipher:对称 AES 算法的名称;

cipherparams:上述 cipher 算法需要的参数;

ciphertext:你的以太坊私钥使用上述 cipher 算法进行加密;

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

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

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

让我们看看他们是如何协同工作的,如何在你的密码下保护 keystore 文件。

1. 加密你的私钥

就像之前提到的,一个以太坊账户就是用于加密签署交易的一个私钥 —公钥对。为了确保你的私钥没有在文件中明文存储(即任何人只要能得到这个文件就能读),使用强对称算法(cipher)对其加密至关重要。

这些对称算法使用密钥来加密数据。加密后的数据可以使用相同的方法和同样的密钥来解密,因此算法命名为对称算法。在本文中,我们称这个对称密钥为解密密钥,因为它将用于对我们的以太坊私钥进行解密。

永续合约和杠杆交易的区别有哪些?

以下是 cipher,cipherparams 和 ciphertext 对应的概念:

  • Cipher 是用于加密以太坊私钥的对称加密算法。此处cipher用的是 aes-128-ctr 加密模式。
  • Cipherparams 是 aes-128-ctr 加密算法需要的参数。在这里,用到的唯一的参数 iv,是aes-128-ctr加密算法需要的初始化向量。
  • Ciphertext 密文是 aes-128-ctr 函数的加密输入。

所以,在这里,你已经有了进行解密以太坊私钥计算所需要的一切…等等。你需要首先取回你的解密密钥。

区块链科普:什么是以太坊私钥储存(Keystore)文件?

-ciphertex 密文的对称解密-

2. 用你的密码来保护它

要确保解锁你的账户很容易,你不需要记住你的每一个又长又非用户友好型的用于解密 ciphertext 密文解密密钥。相反,以太坊开发者选择了基于密码的保护,也就是说你只需要输入密码就能拿回解密密钥。

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

这就是 kdf 和 kdfparams 的用途:

  • kdf 是一个密钥生成函数,根据你的密码计算(或者取回)解密密钥。在这里,kdf 用的是scrypt算法。
  • kdfparams 是scrypt函数需要的参数。在这里,简单来说,dklen、n、r、p 和 salt 是 kdf 函数的参数。更多关于 scrypt 函数的信息可以在这里找到。

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

区块链科普:什么是以太坊私钥储存(Keystore)文件?

-用密码生成密钥-

3. 确保你的密码是对的

我们描述了用密码和 keystore 文件生成以太坊私钥所需要的所有东西。然而,如果解锁账户的密码错误会发生什么?

根据迄今为止我们所看到的,所有操作(密码派生和解密)都会成功,但是最终计算的以太坊私钥不是正确的,这首先违背了密钥文件的使用初衷!

我们要保证输入解锁账户的密码是正确的,和最初创建 keystore 文件时一样(回想一下 geth 下创建新账户时两次输入的密码)。

这就是 keystore 文件中 mac 值起作用的地方。在密钥生成函数执行之后,它的输出(解密密钥)和 ciphertext 密文就被处理【注1】,并且和 mac(就像一种认可的印章)作比较。如果结果和 mac 相同,那么密码就是正确的,并且解密就可以开始了。

【注1】这里有点简略了。在和 mac 进行比较之前,解密密钥(左起第二字节开始的16字节)要和 ciphertext 密文连接在一起,并进行哈希散列(用SHA3-256的方法)。

区块链科普:什么是以太坊私钥储存(Keystore)文件?

把所有的都放到一起考虑

唷!如果你已经做到了这一点,那么恭喜你!

让我们回顾一下我们描述的3个函数。

首先,你输入了密码,这个密码作为 kdf 密钥生成函数的输入,来计算解密密钥。然后,刚刚计算出的解密密钥和 ciphertext 密文连接并进行处理,和 mac 比较来确保密码是正确的。最后,通过 cipher 对称函数用解密密钥对 ciphertext 密文解密。

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

区块链科普:什么是以太坊私钥储存(Keystore)文件?

就像你从图中可以看到的,整个过程可以看做一个黑盒(不过,图中是个灰盒),你的密码是惟一的输入,你的以太坊私钥是惟一的输出。所需的其他信息都可以在你的以太坊账户创建时生成的keystore文件中获得。

由于这个原因,请确保你的密码足够强(并且无论如何你要记住它!)才能保证即使攻击者偷到了你的keystore文件也不能轻易得到你的私钥。

以上就是区块链科普:什么是以太坊私钥储存(Keystore)文件?的详细内容,更多关于以太坊私钥储存(Keystore)文件的资料请关注掘金网其它相关文章!

永续合约最好的交易所是哪个?永续合约交易所排名

原创文章,作者:菜鸡,如若转载,请注明出处:https://www.20on.com/214977.html

(0)
菜鸡菜鸡
上一篇 4 12 月, 2022 7:22 下午
下一篇 4 12 月, 2022 8:22 下午

欧易(OKX)交易所

新用户永久最高20%手续费减免!

官网注册   APP下载

相关推荐

  • 比特币之父[比特币之父是谁]

    摘要:本文将介绍比特币之父中的中本聪,并对其身份、贡献、思想以及他的离奇失踪进行详细的阐述。 一、身份 中本聪,是比特币的创始人,也是区块链技术的发明者。在比特币创始人中本聪的白皮…

    25 6 月, 2023
  • b9数字资产交易平台(数字资产服务平台)

    摘要:本文将详细介绍b9数字资产交易平台(数字资产服务平台),该平台为数字资产交易提供了全方位的服务,为用户带来了便利,使得数字资产交易更加高效和安全。 一、数字资产服务平台的介绍…

    29 5 月, 2023
  • SPX是什么币?SPX币官网总量和项目详情介绍

    摘要: SPX币是通过分布式技术构建的数字货币,其总量为1000亿枚。在SPX币官网上,用户可以查看关于SPX币历史和技术方面的详细信息,并且可以更好地了解这种数字货币的特点和应用…

    29 4 月, 2023
  • POC共识机制是什么意思?通俗解释POC共识机制

    全文导读 提到POC共识机制,很多投资者可以说都不太了解,其实在区块链技术中最常见的共识类型分别是POW共识和POC共识,虽说也有新的共识机制出现,但始终没有激起浪花,而本文提到的POC共识机制,早在2014年便被提出,但一直未受到重视

    31 3 月, 2022
  • 莱特币是什么?2021年莱特币能涨到多少钱

    全文导读 现如今,数字货币市场是最受欢迎的投资项目之一,而在数字货币市场上,比特币、以太坊和莱特币可以说是低头不见抬头见的老对手了,在数字货币还没有赶上风口时,它们的创始人就不约而同的嗅到了财富的味道,抓住了时代的机遇,迅速占据了自己的一席

    10 4 月, 2022
  • 比特币交易所注册及交易详细流程指南!

    全文导读 随着比特币的兴起,市面上的比特币交易所也日渐增加,当然这些比特币交易所有的存活下来,有些却关门倒闭,尤其是在关门倒闭的交易所中,有一部分是用来圈钱的工具,因此,投资者选择比特币交易所是一件非常重要的事情

    2 4 月, 2022
  • 币圈交易平台app排名[币圈交易APP]

    摘要: 随着加密货币的逐渐普及,越来越多人开始加入币圈交易。然而,在不同的交易平台上进行交易需要了解各种功能和特性。因此,读者需要了解币圈交易平台app排名[币圈交易APP],本文…

    25 6 月, 2023
  • 以太坊质押是什么意思?以太坊质押是怎么运作的?

    摘要:质押是工作证明的主要替代方法。但就算以太坊转向了权益证明,仍会有大量志愿者验证区块链上的交易。以太坊质押不是使用高性能计算机来解决数学难题,而是锁定区块链上的以太坊,可以说是用质押赢得验证交易的机会,并获得更多以太坊作为奖励。

    20 1 月, 2023
  • 什么是交易所(交易所详解与使用指南)

    摘要:随着数字货币市场的兴起,交易所成为数字货币市场上最热门的场所之一。本文将为大家详细介绍交易所的使用指南,从零开始帮助读者了解交易所的操作步骤、交易策略、风险管理以及常见问题,…

    9 4 月, 2023
  • XCS币的简单介绍

    摘要:本文将介绍XCS币的简单介绍,包括其背景信息和为读者引起兴趣的内容。 一、什么是XCS币? XCS币是一种加密货币,由X-Change Chain基于区块链技术发行。 201…

    23 6 月, 2023