Криптографические ключи, адреса, кошельки.
Выбери формат для чтения
Загружаем конспект в формате pptx
Это займет всего пару минут! А пока ты можешь прочитать работу в формате Word 👇
КРИПТОГРАФИЧЕСКИЕ
КЛЮЧИ, АДРЕСА,
КОШЕЛЬКИ
Криптографические ключи
Право владения токенами,
в том числе,
биткоинами устанавливается через криптографические
(цифровые) ключи, Биткоин-адреса и цифровые
подписи.
Закрытые криптографические ключи не
перемещаются по сети. Они генерируются и хранятся
пользователями в специализированном клиенте
(кошельке).
Цифровые ключи в кошельке пользователя являются
абсолютно независимыми от протокола Биткоин,
генерируются и управляются с помощью программного
обеспечения кошелька пользователя без обращений к
блокчейну или к сети Интернет.
Криптография с открытым ключом
Криптография с открытым ключом была изобретена в 70-х годах прошлого века. Именно
ассиметричные криптоалгоритмы традиционно стали использоваться в качестве
математической основы при построении систем компьютерной и информационной
безопасности. В процессе становления криптографии с открытым ключом было найдено
несколько классов математических функций, получивших название односторонние.
В
сети
Биткоин
для
создания
криптопары,
контролирующей доступ к счету, используется
умножение на эллиптических кривых. Так же, как и в
других ассиметричных криптосистемах пара ключей
состоит из закрытого ключа и производного от него,
уникального открытого ключа. Публичный и приватный
ключи
однозначно
связаны
математическим
соотношением. Такая связь обеспечивает возможность
подписи сообщения приватным ключом с одной
стороны, и последующую проверку правильности
подписи при помощи публичного ключа, с другой. При
этом приватный ключ не раскрывается.
Управление ключами в сети Биткоин
При
создании
биткоин-кошелька
на
компьютере
создается
специальный
файл,
содержащий в себе две записи: private key
(закрытый ключ) и public key (открытый ключ).
Обычно это что-то типа wallet.dat. И если
закрытый ключ генерируется случайным образом,
то
открытый
ключ
создается
путем
криптографического преобразования закрытого
ключа. Если быть точным в Биткойн-сети
используется
алгоритм
эллиптической
криптографии
secp256k1
–
вариация
широкоизвестного Алгоритма Цифровой Подписи
Закрытый ключ - случайное число длиной в 256 бит,
с Эллиптическими Кривыми (ECDSA).
генерируемое для каждого счета пользователя. Чтобы доказать
окружающим, что приватный ключ у пользователя имеется, и не
раскрыть его при этом, вычисляется второе число —публичный ключ.
Для этих целей как раз и используется криптосистема ECDSA.
Преобразование это одностороннее, т.е. выполнение обратной
операции - вычисление закрытого ключа по открытому – является
практически невыполнимой задачей.
Связь между криптопарой и биткоинадресом
Закрытый ключ
Закрытый ключ
Открытый ключ
Открытый ключ
Умножение на эллиптических
кривых базовой точки на
значение секретного ключа
Биткоин-адрес
Биткоин-адрес
Криптографическое хеширование:
алгоритмы SHA и RIPEMD
применяются последовательно
Биткоин-адреса
Решение использовать в качестве адреса хеш-функцию, а не открытый ключ
основывалось на двух соображениях:
Криптосистемы на эллиптических кривых уязвимы для модифицированного
алгоритма Шора при решении задачи дискретного логарифма на эллиптических кривых.
Это означает, что появившиеся в будущем квантовые компьютеры смогут получить
закрытый ключ из открытого ключа. Публикуя открытый ключ только тогда, когда
монеты были потрачены (и при условии, что адреса не используются повторно), такая
атака потеряет смысл.
Биткоин-адрес представляет собой
строку из цифр и символов латинского
алфавита. Адреса, полученные на основе
открытых ключей, начинаются с цифры 1
(так называемые pay-to-public-key hash
адреса).
Ниже приводится пример подобного
биткоин-адреса:
1J7mdg5rbQyUHENYdx39WVWK7fs
LpEoXZy.
Алгоритм формирование биткоинадреса
Кодировка Base58Check
Для записи биткоин-адреса почти всегда
используется кодировка Base58Check, мощность
алфавита которой составляет 58 символов.
Назначение ее очень простое – представить
последовательность
байт
в
простом
и
удобочитаемом формате и максимально снизить
при этом вероятность возможных опечаток или
ошибок. Понятно, почему это важно.
С
биткоин-адресами
работают
люди,
которым вообще свойственно ошибаться. При
работе
с
большими,
не
имеющими
традиционного смысла наборами символов
вероятность ошибок резко возрастает.
Процесс кодирования данных в формат
Base58Check
Большинство данных в сети
Биткоин, с которыми работает
пользователь, представлены в
кодировке Base58Check. Такая
форма записи удовлетворяет
сразу
трем
немаловажным
требованиям:
компактность,
удобство для восприятия и
дополнительная
защита
от
ошибок.
Сжатые открытые ключи
Оказывается, даже педантичным компьютерам и телекоммуникационным сетям, не
путающимся в цифрах, не очень удобно работать с открытыми ключами в оригинальном
виде. Правда, претензии у них несколько иного рода. Публичные ключи фигурируют в
составе большинства транзакций. Это необходимо для проверки учетных данных владельца
при совершении платежа. Каждый открытый ключ требует 520 битов памяти для хранения.
Каждый день в сети Биткоин регистрируются десятки тысяч транзакций в день,
существенно раздувая размеры
Размерблокчейна.
блокчейна платформы Биткоин
Pay-to-Script Hash (P2SH) адреса и мультиподписи
Ранее рассматривалась стандартная процедура формирования адреса по схеме закрытый
ключ -> открытый ключ -> биткоин-адрес. Такие адреса начинаются с цифры "1". Каждый
участник сети Биткоин может оправить средства на такой адрес. А вот для того чтобы их
потратить, необходимо обладать соответствующим закрытым ключом. Тут, как говорится, без
вариантов. Способ P2PKH (Pay-to-Public-Key-Hash) являются основной формой реализации
транзакций в сети Биткоин. Такие транзакции "блокируют биткоины" на своих выходах.
Впоследствии средства могут быть разблокированы и тут же снова заблокированы
последующими транзакциями. Подобным образом биткоины легко мигрируют с одного адреса
на другой.
Мульти-подписи
В настоящее время наиболее распространенной
реализация функции P2SH — это сценарий мультиподписного адреса. Как следует из названия, основной
сценарий
требует
более
одной
подписи
для
доказательства права собственности и, следовательно,
возможности распоряжения средствами.
Спасибо за
внимание!