#比特币#比特币迎来新技术更新,Core开发者教你如何验证客户端( 二 )


获取密钥或指纹验证密钥最安全的方法 , 就是亲自见面 , 并确认密钥“指纹” 。 几乎没有人记得他们的密钥指纹 , 所以我们可能不得不在自己的笔记本电脑或手机上查找 , 偶尔(通常是在会议上)可能会有“密钥签署方” , 一群人在会议上确认其他人的指纹 , 每个参与者要么亲自朗读自己的指纹 , 要么手动确认每个人看到的或听到的都是正确的 。 如果你机会参与这样的会议 , 这是一个好的方法来一次性验证很多密钥 。 如果你不感兴趣或没有机会亲自见面 , 理想情况下应该从多个来源验证密钥 。 有时 , 会议会发布演示视频 , 其中的密钥指纹可能会显示在幻灯片中 。 当然 , 由于“deep fake”这些新技术的存在 , 要注意视频中的幻灯片是容易被操纵的 。
开发人员通常会在他们的网站上发布他们的密钥或指纹 , 也许还有其他一些途径(例如 , 我的密钥或指纹 , 会放在个人网站、bitcoinknots.org、bitcoin.org以及GitHub上) 。
如果你已经安装你了你信任的软件副本 , 有时它会包含验证更新所需的密钥(目前Bitcoin Core只包含源代码) 。
检查密钥文件的指纹要查看密钥文件的指纹 , 你可以使用以下命令:gpg --import-options show-only --import --with-fingerprint luke-jr.asc这将输出有关密钥文件的许多信息 , 而相关信息位于最上面:
pub rsa8192 2012-03-23 [SC] [expires: 2020-06-09]E463 A93F 5F31 17EE DE6C 7316 BD02 9424 21F4 889F在本示例中 , E463 A93F 5F31 17EE DE6C 7316 BD02 9424 21F4 889F就是我的密钥指纹 。
注意:如果GPG提示密钥过期了 , 那可能也没有关系!在步骤2中 , 你将更新到同一密钥的最新版本 , 这通常会延长到期日期 。
导入已验证的密钥无论你如何验证密钥 , 都应该确保记住你使用的是哪个密钥 , 以便将来更新时可验证使用的是同一个密钥 。 即使你跳过了验证密钥步骤(这是不安全的) , 至少这将确保你的更新有相同的签名者 。 当你确信自己拥有的密钥是正确的时候 , 你可以这样导入它(将luke-jr.asc替换为包含所需密钥的文件名):
gpg --import < luke-jr.asc或者如果你只有指纹 , 像这样(把你想用的密钥指纹放进去!):
gpg --keyserver hkp://keyserver.ubuntu.com --recv-key E463A93F5F3117EEDE6C7316BD02942421F4889F
步骤2 :验证签名现在你知道要用什么密钥进行验证了 , 下一步就是检查签名是否有效 。
在继续此步骤之前 , 必须确保签名者密钥的副本是最新的 。 如果你不这样做 , 你可能会收到一条关于密钥已过期的消息 。 运行(使用你所需的指纹):
gpg --keyserver hkp://keyserver.ubuntu.com --refresh-key E463A93F5F3117EEDE6C7316BD02942421F4889F接下来 , (除了你正在检查的程序文件之外)你将需要两个文件:包含文件指纹列表的“.assert”文件和包含该列表签名的“.assert.sig”文件 。 这是因为我们所做的不是对程序文件本身进行签名 , 而是对所有文件进行指纹识别 , 然后对该列表进行签名 。 因此 , 这两个文件你都是需要的 。

  1. Bitcoin Core的“assert”文件对发布在这里:https://github.com/Bitcoin-Core/gitian.sigs/find/master;
  2. Bitcoin Knots的“assert”文件对发布在这里:https://github.com/bitconinkots/gitian.sigs/find/Knots
注意 , 每个签名者都有一个单独的文件对 。 如果你正在验证是否有多个人签名了你的文件(你应该这样做) , 则需要检查每个文件对 。 此外 , 你还需要确保自己正在获取要验证的版本的文件!
在列表中找到所需文件后 , 单击链接在浏览器中打开该文件 , 然后右键单击“Raw”或“Download”按钮并选择“链接另存为” 。