Важнейшим обновлением Биткоина последних лет был протокол Taproot, который ввел несколько радикальных инноваций. Среди них – подписи Шнорра, имеющие ряд преимуществ по сравнению с предыдущим механизмом (ECDSA), который использовался для генерации и верификации ключей. Но начнём сначала.
Цифровые подписи – это математические схемы, используемые для проверки подлинности и целостности цифровых сообщений. Они позволяют доказать, что сообщение было отправлено конкретным отправителем (подлинность) и не было изменено во время передачи (целостность). Другими словами, цифровая подпись является аналогом физической подписи, посредством которой отправитель удостоверяет себя с помощью своего уникального почерка.
В сети Биткоина цифровая подпись используется для подтверждения владельца частного ключа, связанного с адресом. Но главное, что это происходит без необходимости открывать частный ключ. Когда транзакция подается для включения в блок, ноды сети Биткоина проверяют, соответствует ли подпись сообщению. Если да, то они одобряют транзакцию, а если нет – отклоняют.
Что такое подписи Шнорра? Это тип схемы цифровой подписи, которая позволяет эффективно и безопасно подписывать транзакции и сообщения. Впервые он был описан немецким криптографом Клаусом Шнорром в статье 1991 года. Алгоритм Шнорра, использующий криптографию эллиптических кривых, известен своей простотой и эффективностью.
Долгое время использование алгоритма было ограничено авторским правом, но патент завершился в конце 2008 года. Теоретически Сатоши Накамото мог сразу включить этот функционал в протокол Биткоина, но подписи Шнорра еще не были стандартизированы и их популярность была ограничена. Поэтому Сатоши выбрал другой алгоритм с открытым кодом – ECDSA, который также является надежным и обеспечивает необходимую степень защиты данных.
Однако впоследствии подписи Шнорра были предложены разработчиками Биткоина для включения в технологическую дорожную карту Биткоина как обновление алгоритма цифровой подписи эллиптических кривых. После длительных дискуссий был достигнут консенсус относительно его полезности для сети, и этот алгоритм добавили в 2021 году вместе с обновлением Taproot. Однако следует отметить, что подписи Шнорра не вытесняют полностью предыдущий алгоритм ECDSA, они используются параллельно.
Подписи Шнорра имеют несколько преимуществ, включая высокую эффективность и повышенную конфиденциальность, сохраняя при этом все функции и требования безопасности ECDSA. Новый алгоритм позволяет уменьшить размер подписи, ускорить время проверки и повысить устойчивость к определенным типам атак.
Важнейшим преимуществом подписей Шнорра является агрегация ключей, то есть возможность объединить несколько подписей в одну, которая действительна для суммы его ключей. Это позволяет нескольким сотрудничающим сторонам создать подпись, которая действительна для суммы их открытых ключей.
Агрегация ключей может снизить комиссию за транзакции и улучшить масштабируемость базового уровня, поскольку мультиподпись занимает столько же места в блоке, сколько и обычные подписи. Например, если в ECDSA необходимо четыре подписи (за каждую из которых необходимо уплатить комиссию), то новый алгоритм использует одну агрегированную подпись. Эта особенность может использоваться для уменьшения размера платежей с мультиподписью и других транзакций, таких как транзакции Lightning Network.
Еще одним важным свойством подписей Шнорра является защита от подмены. В контексте цифровых подписей подмена означает способность злоумышленника изменить действительную подпись таким образом, что модифицированная подпись остается действительной и аутентифицирует другое сообщение. Это может привести к серьезным проблемам, поскольку злоумышленник может изменить подпись транзакции, чтобы увеличить сумму перевода или сменить получателя средств.
Подписи Шнорра также создают значительные преимущества в сфере конфиденциальности. Позволяя схеме мультиподписи быть скрытой и не отличаться от обычного открытого ключа, алгоритм значительно усложняет возможность отличить транзакции с мультиподписью от обычных. Кроме того, в системах с n-из-m мультиподписями алгоритм усложняет определение того, кто из участников подписал, а кто не подписал транзакцию. Это может быть полезно для многих биткоинеров, особенно учитывая развитие сервисов вроде Chainalysis.
Подписи Шнорра делают цифровые подписи Биткоина более быстрыми, безопасными и простыми в обработке. К тому же они обратно совместимы с криптографическим алгоритмом Биткоина, что позволяет внедрять их через софтфорк.
Как отмечалось, подписи Шнорра имеют ряд преимуществ над ECDSA, в том числе меньший размер, более быстрое время проверки и повышенную устойчивость к определенным типам атак. Подписи Шнорра также позволяют объединять подписи, что может уменьшить комиссию за транзакции и улучшить масштабируемость.
Но хотя подписи Шнорра могут считаться более пригодными для Биткоина, ECDSA все еще широко используется и считается безопасной схемой подписи. Выбор между этими альтернативами зависит от конкретного случая использования и требований к безопасности.