Значение подписей Шнорра для биткоина
Главная
Статьи
Значение подписей Шнорра для биткоина

Значение подписей Шнорра для биткоина

Профессионал
Опубликовано Jul 8, 2020Обновлено Dec 28, 2022
6m

Содержание

Введение

Как вы, вероятно, знаете, биткоин реализует защиту права собственности посредством алгоритма электронной цифровой подписи на основе эллиптических кривых (ECDSA). Алгоритм позволяет вам взять одно число (т. е. закрытый ключ) и получить на его основе открытый ключ.
Магия заключается в том, что получить публичный ключ из приватного легко, а наоборот – невозможно. Приватный ключ – ваш паспорт в сети биткоина. На его основе генерируется адрес для перевода монет, и, зная приватный ключ, вы можете тратить средства. 

В этой статье мы рассмотрим алгоритм подписи Шнорра – альтернативу ECDSA, благодаря которой биткоин может претерпеть интереснейшие изменения.


Краткий обзор цифровых подписей

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

Существует несколько вариантов использования цифровых подписей. Наиболее популярный – доказать, что именно вы написали то или иное сообщение. Как мы уже говорили, вы можете создать публичный ключ на основе приватного (это очень большое число, которое необходимо хранить в тайне). Публичный ключ генерируется в результате выполнения некоторых сложных вычислений над кривой secp256k1. Аналогичным образом вы можете сгенерировать публичный адрес из открытого ключа.

Обратите внимание: что раскрывать публичный ключ совершенно безопасно. Вы можете разместить его на своем сайте или в описании Twitter, чтобы другие могли верифицировать вашу личность. Точно так же вы можете поделиться своими публичными адресами с окружаюшими, чтобы они могли отправлять вам криптовалюту.

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

Как это связано с биткоином? Каждый раз, когда вы совершаете транзакцию биткоина, вы создаете подписанное сообщение, в котором говорится «Я отправляю эти монеты, которые ранее были отправлены мне». Когда это сообщение отправляется на ноды сети, они могут проверить, соответствует ли сообщению подпись ECDSA. Если нет, они его отклоняют.


Что такое схема Шнорра?

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

Одно из возможных объяснений заключается в том, что Клаус П. Шнорр, создатель схемы, их запатентовал. Срок действия патентов истек в начале 2008 года, за несколько месяцев до выпуска whitepaper биткоина, но схема все еще не была полностью стандартизирована. Поэтому Сатоши Накамото выбрал намного более распространенный (и обладающий открытым исходным кодом) алгоритм ECDSA.


В чем достоинства подписей Шнорра?

Подписи Шнорра довольно просты по сравнению с другими схемами. В результате их безопасность доказывается проще, чем безопасность других вариантов. Кроме того, они обладают еще одним незначительным на первый взгляд свойством – линейностью
Простыми словами, это свойство делает схему особенно привлекательной для определенных видов деятельности, в первую очередь – для мультисигнатурных транзакций. Возможно, вы знаете, что биткоин уже поддерживает мультиподпись, но не самым лучшим образом.

Когда вы создаете мультисигнатурный адрес, тот, кто отправляет на него средства, не должен знать, какие ограничения вы устанавливаете на трату переведенных средств. Они могут даже не знать, что отправляют средства на адрес с мультиподписью – единственная особенность адреса заключается в том, что он начинается с «3». 

Однако вы раскрываете его особенность, когда выводите средства. Скажем, вы вместе с Алисой и Бобом создали адрес со скриптом «3 из 3». Чтобы потратить, например, 5 BTC, трое участников должны предоставить открытые ключи и действительные подписи. Когда вы переводите средства с адреса, вся сеть может узнать о транзакции, просматривая блокчейн

С точки зрения конфиденциальности это не очень хорошо. Кроме того, если создать мультиподпись с большим количеством участников (например, 8 из 10), их подписи займут достаточно много места в блокчейне. Это может быть дорого, так как транзакция получится длинной – помните, что, чем больше байтов в вашей транзакции, тем больше нужно заплатить.

Подписи Шнорра рекламировались как решение проблем конфиденциальности и масштабируемости. Они реализовывают такие функции, как агрегация подписей, которая на основе подписей нескольких участников создает одну. Полученная «мастер-подпись» – такой же длины, что и обычная однопользовательская подпись, что ведет к значительной экономии места. 
Кроме того, комбинированные подписи значительно усложняют определение сущностей, подписавших (или не подписавших) транзакцию. В схемах m из m (чтобы потратить средства, транзакцию должны подписать все участники) вы даже не сможете отличить индивидуальные транзакции от мультисигнатурных.
Важно отметить, что подписи Шнорра являются ступенью для дальнейшего развития. После внедрения их можно использовать для улучшения криптографических технологий, таких как атомарные свопы и Lightning Network.



Когда подписи Шнорра будут реализованы в сети биткоина?

Мы не знаем. Как и в случае с большинством обновлений протокола биткоина, для того, чтобы договориться о включении подписи Шнорра, сообществу может потребоваться время на согласование изменений. Разработчики Bitcoin Core Питер Вулль, Джонас Ник и Тим Раффинг представили проект предложения по улучшению биткоина (BIP), но он нуждается в доработке.
Blockstream уже выпустил свою реализацию – MuSig. Поддерживая агрегацию подписей и ключей, он может служить основой для схемы подписи Шнорра биткоина.
Подписи Шнорра могут быть включены в код в виде софтфорка, а это означает, что изменение не приведет к разделению сети. Это будет бесшовное обновление. Тем не менее, было бы оптимистично предположить их интеграцию в ближайшем будущем – достижение консенсуса может занять пару лет.


Резюме

Подписи Шнорра – одна из наиболее ожидаемых вех на текущей дорожной карте биткоина. Всего лишь за одно обновление они обеспечат значительное улучшение конфиденциальности и масштабируемости. Кроме того, они подготовили почву для дальнейшего развития смарт-контрактов в сети биткоина и более продвинутых концепций, таких как Taproot.