При банковском переводе всё держится на логине, пароле и проверке банком; в блокчейне нет никакой организации, которая подтверждает личность, сеть признаёт только одну вещь: цифровую подпись. Разобравшись с ней, вы поймёте, почему приватный ключ так важен.

При выводе $BTC кошелёк подписывает транзакцию приватным ключом, а узлы всей сети сверяют подпись с публичным ключом. Текущая цена 83,801.74 (24h +0.9%).

■ Пара ключей

Цифровая подпись создаётся парой ключей: приватный ключ используется для создания подписи, а публичный — для её проверки. Приватный ключ — это случайно сгенерированное большое число, а публичный ключ вычисляется из приватного с помощью операций эллиптической кривой; и Bitcoin, и Ethereum используют кривую secp256k1.

Эта операция односторонняя: получить публичный ключ из приватного легко, а восстановить приватный ключ по публичному вычислительно невозможно. Поэтому публичный ключ и адрес, полученный из него, можно раскрывать, а приватный ключ нужно хранить только у себя.

■ Что доказывает подпись

При отправке транзакции кошелёк подписывает её содержимое приватным ключом, а узлы всей сети проверяют подпись с помощью публичного ключа. Если проверка проходит, это одновременно доказывает две вещи: транзакция действительно от владельца приватного ключа, и после подписания содержимое не было изменено. Стоит изменить хотя бы один байт в сумме или адресе получателя — исходная подпись уже не пройдёт проверку.

Важно понимать: подпись не шифрует содержимое транзакции. Суммы и адреса on-chain транзакций по-прежнему открыты для всех. Подпись решает вопрос «кто отправил и не было ли изменений», а не «можно ли это увидеть другим».

■ Как предотвратить двойное использование одной транзакции

Каждая транзакция в Ethereum содержит увеличивающийся nonce, и один и тот же nonce может быть включён в блок только один раз; кроме того, транзакция включает ID цепочки (EIP-155), поэтому подписанную транзакцию нельзя воспроизвести в другой сети. Bitcoin же опирается на правило «каждый неизрасходованный выход можно потратить только один раз», чтобы предотвратить повторную трату одних и тех же монет.

■ Подпись — это не только перевод

Запрос на подпись, который всплывает в кошельке, не обязательно связан с переводом: это может быть одобрение токена или сообщение для подписи вне цепочки. Некоторые такие офчейн-подписи, однажды поставленные, по эффекту равны прямому разрешению, и другая сторона может использовать их, чтобы вывести ваши токены.

Поэтому перед подписью внимательно смотрите на тип операции, адрес взаимодействия и сумму; если что-то непонятно — лучше не подписывать. Любая просьба предоставить приватный ключ или seed-фразу для «проверки подписи» — это однозначно мошенничество.

■ И напоследок

В блокчейне подпись — это ваша «собственноручная подпись», а приватный ключ — единственная ручка, которой можно её написать. Потеряете ручку или её у вас заберут — никакая организация не сможет помочь вам всё отменить. Осторожность не помешает: выжить важнее, чем один раз заработать больше.

Если было полезно, сохраните и вернитесь к этому позже, чтобы перечитать.

Это не торговый сигнал.