比特币新技术更新怎么去验证客户端

发布时间:2022-10-22 2:52:57 小编:晚风 浏览:1,150

比特币如何更新新技术验证客户端?比特币更新了新技术,很多人不知道怎么去验证客户端。下面让我们一起来看看边肖。希望这篇文章对你有帮助。

比特币新技术更新怎么去验证客户端

比特币新技术更新怎么去验证客户端

有三个重要步骤可以确保您安装的比特币客户端是安全的:

验证OpenPGP密钥;

验证签名;

验证文件本身;

请注意,比如我会在比特币Knots v 0 . 19 . 0 . 1 . Knots 2020 01 04 client for PPC 64 le Linux上验证自己的签名,而要验证别人的签名或其他文件,则需要更改命令行使用那个指纹或文件名。

步骤0:安装加密软件GNU隐私卫士(GPG)

在开始之前,您需要确保您已经安装了GNU隐私保护(GPG)工具,这是文件加密验证所必需的。

如果你运行的是基于Linux的系统,一般可以通过操作系统厂商安装(最近这通常是默认安装),可以通过运行gpg -version来检查。如果没有,请尝试使用以下命令之一安装它(如果失败,请转到下一个命令):

apt-get安装gnupg

dnf安装gnupg2

yum安装gnupg2

emerge app-crypt/gnupg

pacman -S gnupg

apk添加gnupg

如果你不幸使用的是Windows或macOS操作系统,你可以从官网下载GnuPG,但我不知道有什么安全的方法来验证这个下载。当然,他们确实提供了签名,但是先有鸡还是先有蛋的问题来了:除非安装一个副本,否则无法验证这些签名!

步骤1:验证OpenPGP密钥

可以说,这一步是验证过程中最困难的部分:你需要确认你实际使用的密钥是你信任的人颁发的正确密钥。如果你不小心,你可能会得到一个假的“卢克Dashjr”钥匙!

每个OpenPGP密钥都有一个“指纹”,即40个十六进制字符(数字0-9和a-F),有时会显示空格以便于阅读。如果您确保所使用的密钥指纹与可信签名者的指纹相匹配,那么您就知道您拥有正确的密钥。

获取钥匙或指纹

验证钥匙最安全的方法是亲自见面,确认钥匙“指纹”。几乎没有人记得他们的关键指纹,所以我们可能要在自己的笔记本电脑或手机上查找。偶尔(通常在会议中)可能会有“关键签名者”,一群人确认其他人的指纹,每个参与者要么亲自读取自己的指纹,要么手动确认每个人看到或听到的都是正确的。如果有机会参加这样的会议,一下子验证很多关键是个好办法。

如果你不感兴趣或者没有机会亲自见面,理想情况下,你应该从多个来源验证密钥。有时,大会将发布演示视频,其中可能会在幻灯片中显示关键指纹。当然,由于“深度造假”等新技术的存在,需要注意的是,视频中的幻灯片很容易被操纵。

开发者通常会在他们的网站上公布他们的钥匙或指纹,也可能有其他方式(比如我的钥匙或指纹会放在个人网站上,bitcoinknots.org、bitcoin.org和GitHub)。

如果你已经安装了你信任的软件的副本,有时它会包含验证更新所需的密钥(目前比特币核心只包含源代码)。

检查密钥文件的指纹

要查看密钥文件的指纹,可以使用以下命令:

gpg导入选项仅显示带指纹导入luke-jr.asc

这将输出关于密钥文件的大量信息,相关信息在顶部:

[有效期:2020年6月9日]

e463 A93F 5f 31 17EE DE6C 7316 BD02 9424 21 F4 889 f

在这个例子中,e 463 a 93 f 5f 31 17EE de 6c 7316 BD 02 9424 21 f 4889 f是我的键指纹。

注意:如果GPG提示密钥已经过期,这可能没关系!在步骤2中,您将更新到同一密钥的最新版本,这通常会延长到期日期。

导入经过验证的密钥。

无论您如何验证密钥,都应该确保记住您使用的是哪个密钥,以便您可以验证在将来的更新中使用的是同一个密钥。即使您跳过了密钥验证步骤(这是不安全的),至少它将确保您的更新具有相同的签名者。

当您确定您拥有的密钥是正确的时,您可以像这样导入它(用包含所需密钥的文件名替换luke-jr.asc):

gpg导入luke-jr.asc

或者如果你只有指纹,像这样(把你要用的钥匙的指纹放进去!):

gpgkey server hkp://key server . Ubuntu . comrecv-key e 463 a 93 f 5f 3117 eede 6 c 7316 BD 02942421 f 4889 f

第二步:验证签名。

现在您知道了使用什么密钥进行验证,下一步是检查签名是否有效。

在继续此步骤之前,您必须确保签名者密钥的副本是最新的。如果不这样做,您可能会收到密钥已过期的消息。运行(使用您需要的指纹):

gpgkey server hkp://key server . Ubuntu . comrefresh-key e 463 a 93 f 5f 3117 eede 6 c 7316 BD 02942421 f 4889 f

接下来,(除了你正在检查的程序文件)你需要两个文件。assert "包含文件指纹列表的文件和" . assert.sig "包含该列表签名的文件。这是因为我们做的不是对程序文件本身进行签名,而是对所有文件进行指纹识别,然后对列表进行签名。因此,您需要这两个文档。

比特币核心的“断言”文件对发布于此:https://github.com/Bitcoin-Core/gitian.sigs/find/master;

比特币结的“断言”文件对在这里发布:https://github.com/bitconinkots/gitian.sigs/find/Knots

请注意,每个签名者都有一个单独的文件对。如果您正在验证是否有不止一个人签署了您的文件(您应该这样做),您需要检查每个文件对。此外,您需要确保您得到的是要验证的文件版本!

在列表中找到所需文件后,单击链接在浏览器中打开它,然后右键单击“Raw”或“Download”按钮并选择“将链接另存为”。

一旦有了这两个“assert”文件,就可以通过运行它们来检查签名(将文件名调整为特定的assert.sig)

gpg验证比特币-core-Linux-0.19-build . assert . SIG

如果这一步成功,您将获得以下结果:

gpg:签名日期:世界协调时2020年1月19日上午03:47:15

gpg:使用RSA密钥e 463 a 93 f5f 3117 eede 6 c 7316 BD 02942421 f 4889 f

gpg:来自“Luke Dashjr”的好签名[终极]

请注意,键的指纹以粗体显示。指纹必须与您在步骤1中验证的密钥相匹配,否则它可能被其他人签名!关于“好签名”的部分也很重要,但是名字和邮箱地址不重要。如果指纹不对,两人都有可能是伪造的。

假设一切顺利,你现在知道了”。断言“文件是由密钥的控制器保证的,并且你可以继续验证你的实际程序文件是否被列在”。断言”文件。

步骤3:验证文件本身

要验证程序文件,首先必须对其进行加密和哈希处理(基本上就是提取其指纹)。

这是通过一个简单的命令完成的(注意替换您正在验证的实际文件名!):

Linux:bitcoin-0.19.0.1.knots20200104-powerpc64le-linux-gnu.tar.gz

Windows: certUtil -hashfile比特币-0 . 19 . 0 . 1 . knots 20200104-win 64 . zip sha 256

macOS: shasum -a 256比特币-0 . 19 . 0 . 1 . knots 2020 01 04-OS x-unsigned . dmg

这将输出以下内容:

d 370692590 c 4546 AC 0 de 250 da 91 c 6 c 288d 9 ee 5252 f1 a4b 857 a5b 80 C4 E3 d 81149 bitcoin-0.19.0.1.knots20200104-powerpc64le-linux-gnu.tar.gz

这是文件内容的指纹,后跟指定的文件名。

现在,打开”。断言”文件,并寻找指纹。它应该在顶部的“out_manifest”部分。如果你到达了“in_manifest”或者“base _ manifests”,那么你已经走得太远了。

如果你在“中找到它。断言”文件,那么您已经验证了您拥有的文件与签名者保证的文件相同(您将在。断言“文件在指纹右侧,可能和你的一样)。

但是,如果这个文件在。断言“文件,它可能表明你用错了”。assert”文件,或者您的文件不匹配(在这种情况下,您将在预期的文件名旁边看到另一个指纹)。如果文件已列出但具有不同的指纹,请不要打开它,而是保存它(我们可能会要求您提供一份副本)并联系受影响项目的安全团队。