- Публичный ключ блокчейна
- Что такое приватный ключ криптовалютного счета
- Виды публичных ключей биткоина
- Как узнать открытый ключ биткоина
- Роль адреса в отправке транзакций
- Система использования биткоин-адресов
- Как получить (экспортировать) приватный ключ биткоина
- Извлечение (экспорт) приватных ключей из криптокошельков
- Получение приватного ключа из онлайн-кошелька Blockchain
- Как безопасно хранить приватные ключи
Публичный ключ блокчейна
Публичный (открытый) ключ — это и есть адрес в блокчейне, на который пересылаются деньги и который участвует в подписании транзакций.
Если мы вспомним, что такое хэш транзакции и представим себе этот набор цифр, то он для нас будет абракадаброй:
0x64266eD6B6eDAAFE4d1E4613ed5DC152CcEF6635
Но как только мы воспользуемся публичным (открытым) ключем — он как ключик откроет все детали транзакции и мы увидим все подробности — расшифруем её. Публичный ключ тоже является частью хэша транзакции.
В Ethereum (и Binance Smart Chain как хард-форка Ethereum) открытый ключ получается на основе закрытого ключа и состоит из 128 шестнадцатеричных символов. Затем берётся хэш этого по алгоритму “SHA3” (Keccak-256) (он состоит из 64 символов), берутся последние 40 символов и добавляете в начало 0x, что дает вам адрес из 42 символов.
Всё это сложно, но можно попроще — адрес формируется из публичного ключа, но публичный ключ получить из адреса невозможно. Иными словами адрес — это неполная (защищённая) версия публичного ключа
И выглядит адрес в сети BSC вот так (это то же самое что счёт или аккаунт):
0xB8F1dB13B36dD64A7fcCD22222Bd9a4444Be2e66
Тут символы 0x + 40 шестнадцатеричных символов (всего 42 символа).
Иногда используют ENS-домены (Ethereum Name Service) — это платный сервис, который позволяет присвоить данному адресу человекопонятное имя и даже аватар. В этом случае будет работать и 42-значный адрес и адрес типа yourname.eth. Аналогичные доменные имена сегодня есть практически во всех блокчейнах, но работают они пока только в блокчейне эфира
С помощью публичного ключа и адреса можно раскодировать транзакцию.
Если мы применим публичный ключ (адрес) не к отдельной транзакции, а ко всему блокчейну — то мы увидим всё, что связано с этим ключём (адресом) — какие транзакции были с его участием, сколько пришло, сколько ушло и какой сейчас остаток. Всё это записано в блокчейне и это то же самое, что посмотреть выписку по вашему банковскому счёту — там все операции и остатки
Публичный (открытый) ключ и адрес (аккаунт, счет) — это одно и то же. Публичный ключ служит для расшифровки публичной информации и участвует в генерации адреса получателя. Адрес могут увидеть все, кто например, отслеживает определенную монету или транзакцию этой монеты в блокчейне, если она попадала на данный адрес.
Что такое приватный ключ криптовалютного счета
Но чтобы воспользоваться активами (монетами, токенами), которые хранятся на данном адресе — нужен приватный (закрытый) ключ — это свидетельство, подтверждающее право собственности на актив и единственный способ переместить этот актив дальше (чтобы например, продать криптовалюту и получить фиатные рубли или оплатить криптовалютой какой-то товар или услугу). Он выглядит так:
afdfd9c3d5555ef696594f6aaaaaa59e72dcd697e2a7521b1578140422a4f890
Тут 64 знака — цифры от нуля до десяти и латинских букв от A до F. Он создаётся случайным образом при генерации счета и не может быть изменен. Тот кто владеет приватным ключем — может получить доступ к активам на счете из любой точки мира и с любого устройства. Приватный ключ доступен только создателю изначально — поэтому очень важно его безопасно создать и не менее важно безопасно хранить и использовать. Потеря закрытого ключа ведёт к полной потере средств (они просто остаются лежать в блокчейне и никто ими не сможет воспользоваться), потому что восстановить приватный ключ или подобрать его невозможно. Закрытый ключ находится у создателя аккаунта и хранится в блокчейне для проверки и его идентификации и валидации
Итак, что мы имеем:
- пара ключей — публичный и приватный ключ. Они генерируются при создании счета и служат для доступа к нему
- адрес в сети (или открытый профиль владельца счета). Генерируется из публичного ключа
Для доступа к счету нам достаточно одного приватного ключа — с его помощью мы можем восстановить и публичный ключ и соответственно адрес в сети. Но это как улица с односторонним движением — в обратную сторону не работает — то есть по адресу в сети нельзя узнать публичный и тем более приватный ключ.
Это как доступ в личный кабинет брокера или банка, например, для доступа у вас есть логин/профиль, электронная почта и пароль для доступа. Логин в данном ваше имя и оно публично доступно всем. Это как адрес в блокчейне. Электронная почта нужна для создания вашего профиля, но непосредственно для всех не является открытым. Это как публичный ключ. И есть пароль для входа в профиль, без которого не войдёшь даже с почтой. Это закрытый ключ
Можно настроить и более безопасные способы входа в личный кабинет — например, одноразовые пароли или двухфакторная аутентификация. У механизма доступа к блокчейн-счету тоже есть продвинутые способы.
Виды публичных ключей биткоина
Есть два типа публичных ключей биткоина.
Обычный — начинается с 1, и для получения средств на него пользователь должен подтвердить то, что знает закрытый ключ. Он выглядит вот так:
1EhAppLe4FaBiTca1NADr3sSV56sGaMG6hP
Второй вариант — с мульти-подписью. Он начинается с 3, и для получения средств пользователь должен иметь больше одного закрытого ключа. Пример:
3J65t1WtET25CNrQvie543iWadfRhPaLy
Как узнать открытый ключ биткоина
Если вы используете биткоин-кошелек, то публичный ключ можно найти настройках. Если же у вас на руках только закрытый адрес, то самым простым способом будет перенести его в кошелек, а потом уже узнать его в интерфейсе.
Место хранения зависит от используемого кошелька, но обычно есть два варианта:
1. Перейдите по Настройки — Адреса. В некоторых кошельках по умолчанию установлена функция создания нового кода при каждой входящей транзакции. Это сделано с целью повышения анонимности пользователя. Но если вы не нуждаетесь в этой функции, то можно поменять настройки, установив галочку напротив опции «Вечный адрес». Но ничего страшного не произойдет, если вам отправят криптовалюты на любой из уже используемых ранее адресов — они просто перенаправляются на актуальный. Чтобы увидеть все ключи, привязанные к приватному, нужно перейти в раздел «Управление адресами».
2.Перейдите в раздел «Кошелек — Баланс» и нажмите на кнопку пополнения кошелька. На экране появится строка «Адрес кошелька для пополнения вашего баланса» — это актуальный адрес, который можно скопировать и передать отправителю.
Роль адреса в отправке транзакций
Основная роль публичного кода — это указание пути, на который будут отправлены биткоины. Но чтобы получить средства — нужно знать приватный.
Также если вы не уверены в том, что адрес принадлежит конкретному человеку, существует способ проверить это. Пользователь может попросить владельца кода отправить подписанное сообщение. При помощи алгоритма майнеры проверяют, что приватный и публичный адрес из полученного сообщения составляют одну пару, и сообщение было подписано реальным получателем. Таким образом можно убедиться, что адрес действительно верный, и вы не отправите биткоины в «небытие».
Система использования биткоин-адресов
Ключ и кошелек — это не одно и то же. Адрес или приватный ключ — это «путь», который позволяет принимать транзакции. Кошелек — это ПО, которое, по сути, состоит из приватного и одного или множества публичных ключей. Он хранит в себе информацию обо всех ранее использованных кодах, а также входящих и исходящих транзакциях биткоин. Кроме того, в кошелек могут быть встроены дополнительные функции, повышающие анонимность транзакций.
А теперь о том, как технически проходит транзакция.
После того как сгенерирован приватный код, на его основе создается публичный, состоящий из ряда символов (максимум 35) и отображается на экране в виде QR-кода.
При повторном использовании приватного ключа на его основе заново генерируется рандомный публичный. Но, как уже говорилось выше, данную функцию можно отключить и использовать «вечный» адрес. Каждый ключ весит около 500 байт, поэтому даже на мобильных кошельках можно хранить множество адресов.
Процесс генерации публичных ключей — это рандомный подбор символов и решении сложных математических задач. За минуту алгоритм может создавать до 1000 адресов, причем некоторое ПО позволяет генерировать публичные ключи без выхода в интернет. Есть очень маленькая вероятность, что к двум разным приватным ключам будет привязан один и тот же публичный, однако она составляет всего лишь 1:43 млрд.
Когда вы вводите код, нужно быть предельно внимательным и осторожным, потому что ошибка даже в одном символе приведет к тому, что биткоины просто не дойдут к получателю, а транзакции в блокчейне являются необратимыми. Именно поэтому рекомендуется копировать адрес или отправлять криптовалюту через сканирование QR-кода приватного кода.
Тем, кто только знакомится с миром криптовалют, очень важно понимать роль и значение публичных ключей, так как правильное обращение с ними гарантирует то, что транзакция дойдет до своего получателя. Также зная принцип генерации и работы биткоин-адресов, можно сделать транзакции более анонимными. В любом случае, прежде чем нажать на кнопку «Отправить», лучше еще раз перепроверить правильность введенного адреса, или для большей уверенности пользоваться QR-кодами.
Как получить (экспортировать) приватный ключ биткоина
Иногда необходимо получить свой приватный адрес из кошелька для тех или иных целей. Разберем, как это сделать.
Извлечение (экспорт) приватных ключей из криптокошельков
В качестве примера используется «тонкий» десктопный кошелек Exodus. В нем нужно произвести операцию экспорта приватного биткоин-адреса. Изначально она надежно скрыта, поскольку разработчики справедливо считают, что неопытному пользователю лучше не пытаться ее произвести. Неверные действия чреваты потерей средств из кошелька.
Инструкция по экспорту:
1. Активировать «Developer Menu». В Windows и Linux это действие производится нажатием сочетания клавиш Ctrl+Shift+D.
2. Выбрать ту криптовалюту, частный ключ которой интересует в текущий момент. Перейти по пунктам: «Developer» – «Assets» – «Bitcoin» или иная выбранная валюта – «Export Private Keys».
3. В появившемся окне подтвердить свое желание нажатием кнопки «I’m sure».
4. На рабочем столе появится папка под названием «Exodus-export», внутри – файл формата CSV. Это файл скопировать в надежное место, папку сразу удалить.
Открыть файл можно через текстовый редактор Libre Office, Wordpad, Exel, стандартный Блокнот и т. д. В графе «PRIVKEY» будет буквенно-цифровое сочетание – это и есть приватный (закрытый) ключ биткоина:
Получение приватного ключа из онлайн-кошелька Blockchain
Рассмотрим, как получить приватный адрес в популярном онлайн-кошельке Блокчейн. В настройках функции экспорта ключей нет. Нужно воспользоваться seed-фразой, которая находится по адресу «Настройки» — «Безопасность» — «Фраза для восстановления кошелька». Скопировать все слова и перейти в генератор iancoleman.io. Указать количество слов (12) и вставить их в форму «BIP39 Mnemonic».
Опуститься вниз страницы в раздел «Derived Addresses». В нем будет адрес, публичный и приватный ключ.
Как безопасно хранить приватные ключи
Используя интернет-кошельки, следует понимать, что адреса хранятся на серверах компании-разработчика. Пользователь лично владеет private key лишь в случае использования десктопных, аппаратных или бумажных кошельков.
Варианты хранения кода:
- На бумаге.
- На флешке в виде скриншота или фотографии, pdf-файла.
- На жестком диске, в том числе съемном.
- На физической монете, металлической пластине (своеобразный аналог аппаратного «холодного» кошелька в форме криптовалютной монеты).
- В памяти.
Ни один из перечисленных способов не дает 100%-ную гарантию сохранности адреса, в каждом случае есть вероятность физического повреждения, взлома или кражи. Так что выбор каждый делает, исходя из своих соображений.
В Сети сейчас много злоумышленников, которые мечтают украсть приватный ключ биткоина. Они могут соблазнять бесплатными токенами, предлагать получить новые монеты, а взамен просят загрузить в сеть или созданную ими программу частный ключ. Делать этого ни в коем случае нельзя.
Источники: