ECDSA
Алгоритм цифровой подписи на эллиптических кривых (ECDSA) — схема подписи с открытым ключом. Закрытый ключ создаёт подпись хеша сообщения, а открытый позволяет её проверить. ECDSA обеспечивает подлинность и целостность, но не шифрование: подписанное сообщение не скрывается.[1]
Bitcoin применяет ECDSA с secp256k1 для многих выходов до Taproot и SegWit. Taproot использует подписи Шнорра BIP 340 на той же кривой.[2]
Принцип работы
Параметры кривой задают базовую точку G порядка n. Закрытый ключ — число d, открытый — точка Q = dG. Для хеша z подписант выбирает уникальный секретный nonce k, вычисляет R = kG, получает r из координаты x и s = k⁻¹(z + rd) mod n. Подпись — пара (r,s).
Проверка контролирует диапазоны и вычисляет из z, s и Q точку с ожидаемой координатой. Она подтверждает связь подписи, сообщения и ключа, но не раскрывает закрытый ключ и не устанавливает личность владельца.[1] Закрытый ключ 256-битной кривой обычно занимает 32 байта; открытый secp256k1 — 33 байта в сжатом или 65 в несжатом виде.
Безопасность nonce
Значение k нельзя повторять для разных сообщений одного ключа или делать предсказуемым. Повтор или смещение позволяют восстановить закрытый ключ. Так были раскрыты подписывающий ключ PlayStation 3 и ключи некоторых Android-кошельков Bitcoin после ошибки генератора в 2013 году.
RFC 6979 определяет детерминированный ECDSA: k выводится из ключа и хеша без изменения обычной проверки.[3] Это не защищает от раскрытого ключа, побочных каналов, ошибок арифметики или заражённого устройства. Нужны constant-time операции, проверка ключей и испытанные библиотеки.
Использование в Bitcoin
Bitcoin использует Secp256k1. Традиционные подписи кодируют два числа в DER и добавляют тип sighash. BIP 66 сделал строгий DER правилом консенсуса. Форма low-S уменьшает изменяемость, поскольку (r,n-s) также могло бы пройти проверку.[4]
Подписывается зависящий от транзакции хеш; режим sighash определяет охваченные входы и выходы. Taproot не отменил ECDSA: старые типы выходов продолжают его применять, а Taproot проверяет 64-байтовые подписи Шнорра BIP 340.[5]
Исследования квантовых вычислений
Достаточно большой отказоустойчивый квантовый компьютер теоретически способен получить закрытый ключ из открытого алгоритмом Шора. Современные устройства этого не умеют.
В препринте сентября 2026 года оптимизированы обратимые схемы сложения точек secp256k1. На заявленную дату лучший вариант использовал 1 151 логический кубит и около 1,30 млн исполняемых вентилей Тоффоли на сложение, более чем вдвое снизив метрику ширина-на-число-вентилей относительно опубликованного сравнения. Авторы отмечают различия в учёте и то, что это не полная оценка успешности атаки Шора. Физическая коррекция ошибок, множество вызовов, время и аппаратура остаются дополнительными затратами.[6][7]
Работа уточняет оценку, а не демонстрирует действующую атаку. Уже раскрытые открытые ключи стали бы прямыми целями при появлении подходящей техники. Этот долгосрочный риск следует отличать от сегодняшних краж ключей и фишинга.
См. также
Примечания
- ↑ 1,0 1,1 SECG, “SEC 1: Elliptic Curve Cryptography”, версия 2.0, 2009 год.
- ↑ BIP 340, развёрнут.
- ↑ RFC 6979, 2013 год.
- ↑ Библиотека secp256k1 Bitcoin Core, проверено 16 сентября 2026 года.
- ↑ BIP 341, развёрнут.
- ↑ Long et al., “ECDSA.Fail”, 9 сентября 2026 года.
- ↑ CoinDesk, материал об оценке, 10 сентября 2026 года.
