Селма загружает программу, файл с именем bitcoin-0.17.0-x86_64-linux-gnu.tar.gz, и файл подписи SHA256SUMS.asc. Чтобы убедиться, что программа действительно подписана закрытым ключом Bitcoin Core, ей необходимо получить соответствующий открытый ключ. Но где его взять?
Это сложная проблема. Помните, как раньше Лиза подписывала блоки своим закрытым ключом? Как в ту пору полные узлы могли проверить, что блоки действительно были подписаны Лизой? Они могли получить открытый ключ Лизы из нескольких источников — например, с доски объявлений у входа в офис, из внутренней сети компании и у коллег. То же самое и здесь; не доверяйте одному источнику и постарайтесь получить ключ как минимум из двух разных источников. Ключ, который в настоящее время используется для подписания версий Bitcoin Core, называется
Wladimir J. van der Laan (Bitcoin Core binary release signing key)
и имеет следующий 160-битный хеш SHA1, который называется отпечатком:
01EA 5486 DE18 A882 D4C2 6845 90C8 019E 36C2 E964
Этот блок может служить одним из источников для Селмы. Она решает:
1. Взять отпечаток ключа на сайте https://bitcoincore.org.
2. Взять отпечаток из книги «Грокаем технологию Биткоин».
3. Взять отпечаток у друзей.
Отпечатки из всех трех источников совпадают, поэтому Селма загружает открытый ключ с сервера ключей. Сервер ключей — это компьютер в Интернете, который выполняет функцию хранилища ключей. Серверы ключей обычно используются для загрузки ключей, идентифицируемых по отпечаткам. Селма не доверяет серверу ключей, поэтому она проверяет соответствие отпечатка загруженного ключа отпечатку, полученному из нескольких источников, и убеждается в его действительности.