Схема Шнорра – это алгоритм цифровых подписей. Алгоритм цифровых подписей, среди прочего, определяет отношения между публичными и приватными ключами («адресом» и «паролем») – а значит, его выбор крайне важен для безопасности.
Кроме того, поскольку цифровые подписи составляют значительную часть данных, из которых состоит транзакция, выбор алгоритма цифровых подписей крайне важен для конфиденциальности и эффективности.
В случае принятия подписи Шнорра станут альтернативой текущему алгоритму подписей на основе эллиптических кривых в Биткоине (ECDSA — Elliptic Curve Digital Signature Algorithm).
Прежде всего, подписи Шнорра привлекают тем, что легко вычисляются и считаются чрезвычайно безопасными. Однако главные преимущества подписей Шнорра связаны с их свойством агрегирования.
Если по-простому, то подписи Шнорра способны агрегировать несколько отдельных подписей в единую подпись. Такое свойство агрегирования подписей особенно ценно в свете того, сколько места занимают данные подписей в транзакции Биткоина, – это визуально изображено на рисунках 1 и 2.
Рисунок 1. Стандартная транзакция Биткоина. Заметьте, сколько места занимают данные подписей (выделенные жёлтым). Источник: Материалы семинара Джимми Сонга «Программирование блокчейна».
Что ещё хуже, размер этих данных подписей растёт пропорционально числу подписантов в транзакции с мультиподписью. Например, жёлтая область подписи на рисунке выше почти удваивается при переходе от стандартной транзакции (1 подпись) к транзакции с 2 подписями, как показано на рисунке 2.
Рисунок 2. Транзакция Биткоина с мультиподписью – данные подписей выделены жёлтым.
Агрегирование подписей Шнорра потенциально полезно в нескольких отношениях, дающих преимущества сети Биткоина и её пользователям.
Во-первых, способность агрегировать несколько подписей в единую подпись особенно ценна для «транзакций с мультиподписью» – то есть транзакций Биткоина, требующих несколько подписей, чтобы сеть признала их действительными. При текущей структуре Биткоина эти транзакции с мультиподписью имеют намного больший размер, чем стандартные транзакции с одной подписью, – что несёт отрицательные последствия для эффективности и конфиденциальности (дальше об этом будет сказано больше).
Во-вторых, оказывается, возможно также расширить концепцию агрегирования подписей Шнорра – с помощью схемы, известной как MuSig, – для агрегирования подписей нескольких UTXO (неизрасходованных выходов транзакций) в единую подпись. Теоретически это тот же процесс, что и в вышеприведённом примере, только вместо того, чтобы просто агрегировать несколько подписей, требуемых для расходования одного UTXO, мы расширяем концепцию, включая подписи нескольких UTXO.
В конечном результате, тогда как первый пример позволяет достичь 1 подписи на UTXO (даже если UTXO технически требует нескольких подписей), последний пример позволяет достичь 1 подписи на транзакцию (которая может использовать несколько UTXO в качестве входов). Это означает существенное сокращение количества данных, которые нужно обрабатывать и хранить в сети Биткоина (преимущества подробнее обсуждаются ниже).
Если кратко, данное свойство агрегирования улучшает эффективность и конфиденциальность Биткоина.
Что касается эффективности, главным преимуществом является сокращение размера транзакций – что означает снижение издержек на хранение и вычисления. Транзакции с мультиподписью Шнорра даже ещё более компактны и эффективны, чем нынешние транзакции Биткоина с одной подписью. Это важно, потому что снижаются комиссии транзакций для пользователей и минимизируются ресурсные требования для участников сети (полных узлов, майнеров).
Читайте также: Как установить Биткоин wallet
Кроме того, так как размер и издержки транзакций с мультиподписями Шнорра такие же, как у транзакций с одной подписью, принятие подписей Шнорра должно способствовать увеличению разнообразия – и, возможно, сложности – транзакций с мультиподписью в сети. Это двойной выигрыш: пользователи смогут создавать более сложные схемы транзакций, не перегружая сеть и не неся дополнительных издержек.
Что касается конфиденциальности, подписи Шнорра (или схемы на основе подписей Шнорра, такие как MuSig) имеют два преимущества. Во-первых, транзакции с мультиподписью неотличимы от транзакций с одной подписью. Во-вторых, агрегированная мультиподпись Шнорра не раскрывает индивидуальные публичные ключи входов (участников контракта с мультиподписью).
Другими словами, подписи Шнорра помогают избежать утечки информации о владельцах публичных ключей контракта с мультиподписью и даже помогают скрыть, имеет ли транзакция одну подпись или несколько.
Наконец, схема MuSig на основе подписей Шнорра также может предложить косвенное преимущество для конфиденциальности, улучшив экономику контрактов с мультиподписью: если мы можем агрегировать подписи нескольких UTXO, то MuSig может способствовать использованию функций, улучшающих конфиденциальность, таких как «coinjoin». То есть, с MuSig пользователи могут достичь меньших транзакционных издержек, агрегируя свои транзакции с другими (фактически разделяя издержки на размер транзакции с другими), – что может улучшить конфиденциальность сети в целом.
Итак, потенциал подписей Шнорра в Биткоине воодушевляет, потому что они сокращают размер транзакций (ниже издержки, меньше нагрузка сети), минимизируют сетевые ресурсные требования (проще верифицировать транзакции) и улучшают конфиденциальность.
Будь в курсе! Подписывайся на Криптовалюта.Tech в Telegram
При работе с криптовалютой требуется зашифрованная цифровая подпись кошелька bitcoin, которая подтверждает право на владение. Рассмотрим как это сделать на примере: Bitcoin-QT, Blockchain.info, Multibit , Electrum.
- Нажмите Получить Монеты .
- Щелкните правой кнопкой мыши Bitcoin — адрес, выберите Зарегистрировать сообщение .
- Подписать сообщение, отображаемое на-объявлении знака в форме.
- Скопируйте и вставьте подпись в форму.
- Нажмите Настройки .
- Нажмите Адреса .
- Управление Адресами .
4. Нажмите More Options .
5. Нажмите Sign Message .
6. Скопируйте сообщение на том ресурсе, где требуется.
7. Вставьте сообщение в форму на сайте Blockchain.
8. Подпишите сообщение кнопкой Send .
9.Нажмите Готово .
10. Вставьте скопированную подпись в нужный документ.
- Выберите Инструменты ->Вход Сообщение из верхнего меню.
- Укажите свой адрес Bitcoin, подписать сообщение, отображаемое на- объявлении знака в форме.
- Скопируйте и вставьте подпись в форму.
- Открыть Присылать вкладку.
- Щелкните правой кнопкой мыши Bitcoin — адрес, выберите Зарегистрировать сообщение .
- Подписать сообщение биткоин, отображаемое на-объявлении знака в форме.
- Скопируйте и вставьте подпись в форму.
Читайте также: Как пользоваться Биткоинами в россии
Прекрасный траф и монетизацию своего ресурса в биткоинах дает сайт
В этой статье объясним технологию, по которой работают подписи Шнорра, а также расскажем, что это дает для экосистемы биткоина и как решает проблему масштабирования.
Названная в честь своего изобретателя, Клауса-Петера Шнорра, схема Шнорра, или подпись, — это метод улучшения пропускной способности сети посредством агрегирования подписей, необходимых для транзакции BTC (применительно к биткоину). Подписи — это метод доказательства того, что пользователь действительно является владельцем приватных ключей, связанных с адресом BTC, и, таким образом, может легитимно тратить свои балансы.
Подпись требуется для каждого входа (ввода, инпута). Вход — это просто ссылка на вывод из предыдущей транзакции биткоина, и поскольку транзакция может иметь несколько входов, это означает, что каждая из них потребует свою собственную подпись.
Давайте на примере. Я хочу отправить 1 BTC Ване С. Моя транзакция может состоять как бы из суммы моих балансов, которые собраны из вводов на счет (подробнее в этой статье). Такая транзакция может представлять собой:
Ввод 1 — 0,25 BTC,
Ввод 2 — 0,25 BTC,
Ввод 3 — 0,25 BTC,
Ввод 4 — 0,25 BTC.
Все вместе они будут равны 1 BTC, каждый из них должен иметь свою собственную подпись. Поскольку каждый вход требует своей собственной подписи, они увеличивают размер транзакции, следовательно, транзакция раздувается и занимает дополнительное пространство в блоке. И именно подпись Schnorr работает на объединение всех этих подписей, поэтому для транзакции требуется только одна, общая.
Без использования подписи Шнорра: каждая транзакция подписывается отдельно
По оценкам, внедрение схемы Шнорра в каждой транзакции Bitcoin может увеличить пропускную способность сети Bitcoin не менее чем на 25%.
С использованием подписи Шнорра: множественные транзакции объединяются одной подписью
Экономия данных еще больше, когда подписи Schnorr применяются к мультисиг- транзакциям, где требуется больше одной подписи для подтверждения права собственности на фонды.
Например, вы занимаетесь общим делом с двумя друзьями. Вы очень честные и дальновидные, поэтому при трате денег вашего совместного предприятия через биктоин-транзакции требуется подпись вашей троицы, пусть это будет по схеме 2-из-3 (три открытых ключа и две подписи). Если вы хотите с общего кошелька купить пиццу за биткоины, чтобы отметить годовщину вашей компании, для осуществления перевода нужно попросить хотя бы еще одного друга подписаться в транзакции.
Таким образом, вместо одной получаем две подписи. Это, опять же, занимает место в блоке. А если входов было, например, 200, то подписей уже требуется 400, что представляет
Шнорр в этом сценарии объединяет эти множественные подписи в одну. Но эта настройка требует авторизации всех исходных подписей, чтобы транзакция была действительной.
- Улучшенная масштабируемость.
Благодаря экономии данных через агрегирование нескольких подписей размер транзакции становится меньше. Это оставляет больше места в блоке для добавления дополнительных транзакций, тем самым увеличивая емкость сети. Кроме того, это экономия для тех, кто проводит транзакцию, потому что комиссия высчитывается за байт.
- Повышенная конфиденциальность.
Читайте также: Сколько Биткоинов добыто на сегодняшний день
В отношении транзакций с мультиподписью агрегированная подпись повышает безопасность лиц, участвующих в транзакции, поскольку их собственная подпись не требуется. Кроме того, в сочетании с CoinJoin, методом сжатия транзакций Bitcoin, также может быть улучшена конфиденциальность отдельного участника.
Мемпул биткоина спамят, и часто это акции, связанные со взглядами на развитие сети. Например, чтобы указать на недостаточную масштабируемость.
Один из методов заспамить сеть — включить в транзакции десятки подписей, постоянно отправляя транзакции из многих источников. Пример можно увидеть своими глазами в обозревателе блоков по ссылке: https://www.blockchain.com/ru/btc/block/00000000000000000182aabc399d2daec86b50d510701a5fd098793a4eadead4
Подписи Schnorr борятся с подобным спамом. Если есть только одна подпись на транзакцию, больше транзакций будет попадать в блоки, и спамеру нужно будет отправлять гораздо больше транзакций и, следовательно, тратить больше денег.
Биткоин-подписи создаются с использованием алгоритма с открытым ключом для создания цифровой подписи в группе точек с эллиптической кривой (ECDSA).
Подписи Schnorr — это еще одна форма цифровых подписей. Подписи основаны на тех же предположениях безопасности, что и ECDSA, и совместимы с эллиптической кривой, которую уже использует биткоин. Ее название SECP256k1. Это означает, что схемы Schnorr могут создаваться с теми же приватными ключами и совместимыми с используемыми в настоящее время схемами деривации (формирования) ключей.
Подписи ECDSA немного отличаются по размеру, но большинство из них около 71-73 байта, максимум 75 байт, а теоретический минимум 8 байт.
Подписи Schnorr более компактны: максимальная длина каждой подписи составляет 64 байта.
Блоки BTC включают в себя тысячи подписей, они составляют более трети данных блокчейна. Значит, будучи просто более компактным, подписи Schnorr уменьшат количество блоков данных на несколько процентов.
Касательно объединения мультиподписей, подписи Schnorr имеют математическое свойство, которое позволяет объединять несколько объектов в один, получая размер одной подписи и не теряя авторизацию оригинальных отдельных подписей.
Например, транзакционный вход 3 из 15 и 10 из 15 теперь может иметь одинаковый вес.
Также есть новые работы, которые предлагают передовые идеи. Например, с агрегацией Шнорра компактно кодировать смарт-контракты. Условия контракта будут скрыты от других пользователей и прозрачны для его участников, но будут применяться всей сетью Bitcoin.
Благодаря этому же свойству, атомарные свопы с перекрестными цепями тоже можно выражать в одной подписи Шнорра.
Внедрение Schnorr в биткоин требует нового OP_CODE для проверки подписи. После принятия Segwit поддержка новых подписей может быть активирована с помощью софтфорка.