Это смысловой перевод статьи
https://bitcoinmagazine.com/articles/the-power-of-schnorr-the-signature-algorithm-to-increase-bitcoin-s-scale-and-privacy-1460642496/Автор: Aaron van Wirdum
14 апреля 2016 г
Schnorr: алгоритм подписи для увеличения масштабируемости и конфиденциальности биткойновSegregated Witness вступили в завершающую стадию тестирования перед развертыванием в сети Биткойн. Это хорошая новость , и самое главное, потому что нововведение увеличивает пропускную способности для транзакций в сети, а также решает проблему гибкости транзакций. Кроме того, он вводит версионность сценариев - расширение протокола Биткойн, которое допускает совершенно новую категорию инноваций. Одно из этих неизбежных нововведений уже какое-то время входит в список пожеланий нескольких разработчиков Биткойн: подписи Шнорра. С готовящимся выпуском Segregated Witness вскоре может последовать реализация алгоритма криптографической подписи Schnorr, потенциально повышающего масштабируемость, эффективность и конфиденциальность Биткойна, и все за один раз.
ПодписиВо-первых, краткое резюме: что такое подписи?
В основе Биткойна лежит математическая трюк, называемая «криптография с открытым ключом», криптографическая система, которая использует два вида «ключей» (на самом деле цепочки цифр): закрытые ключи и открытые ключи.Закрытый ключ и открытый ключ математически связаны. Но хотя очень просто создать открытый ключ из закрытого ключа, практически невозможно создать закрытый ключ из открытого ключа. Это улица с односторонним движением.Чтобы потратить биткойны с определенного адреса биткойна, необходимо подтвердить «владение» (или: знание) закрытого ключа, который относится к открытому ключу, связанному с этим адресом. И чтобы подтвердить владение закрытым ключом, не раскрывая его, используется криптографическая подпись .Подпись создается путем выполнения расчета с использованием данных транзакции и закрытого ключа. И вот тут-то и возникает магия криптографии с открытым ключом: зная открытый ключ , любой может увидеть, использовался ли правильный закрытый ключ для создания подписи . Без необходимости знать сам секретный ключ.Следовательно, «владелец» частного ключа может подписать транзакцию и потратить биткойны, не беспокоясь о том, что кто-то другой может взять этот закрытый ключ и украсть биткойны; закрытый ключ никогда не раскрывается, и подпись действительна только для этой конкретной транзакции.
(Более подробное объяснение криптографии с открытым ключом в биткойнах см. В этой статье . Или просто продолжайте читать. Хотя базовая концепция подписи имеет значение, подробности для данной статьи не имеют решающего значения.)
https://bitcoinmagazine.com/articles/segregated-witness-part-how-a-clever-hack-could-significantly-increase-bitcoin-s-potential-1450553618/Подписи ШнорраТак что же тогда подписи Шнорра?
Schnorr, названный в честь своего изобретателя Claus-Peter Schnorr, представляет собой схему подписи: ряд математических правил, которые связывают закрытый ключ, открытый ключ и подпись. Многие криптографы считают сигнатуры Шнорра лучшими в данной области, поскольку они обеспечивают высокий уровень корректности, не страдают податливостью, относительно быстро проверяются и, что важно, поддерживают мультисигнатуру: несколько сигнатур могут быть объединены в одну новую сигнатуру.Однако до сих пор не было возможности использовать Schnorr в биткойнах. Другой тип схемы подписи, Алгоритм цифровой подписи эллиптических кривых (ECDSA), внедряется в протокол Биткойн, и для его изменения потребуется хард-форк.
Вот где приходит Segregated Witness.
С Segregated Witness все данные подписи перемещаются в отдельную часть транзакции: свидетель, который не встроен в «старый» протокол Биткойн. Благодаря версионности сценариев практически любое правило, применяемое в свидетеле, можно изменить с помощью программного форка. Включая тип используемой схемы подписи.
Это открывает возможность для Шнорра.
ВместимостьСвойство Schnorr, которое приносит наибольшую выгоду Биткойну, - это многозначная агрегация.
Многие операции Bitcoin включают несколько входов, ссылаясь на адреса посылаемых BTC . (Это можно сравнить с тем, как наличные платежи часто состоят из нескольких небольших банкнот и монет, чтобы заплатить большую сумму денег.) Сейчас все эти входные данные требуют своей собственной подписи, что означает, что все эти подписи должны быть включены в транзакцию, все должны передаваться по сети, и все они должны быть включены в блок.
Однако в Schnorr для всех входных данных потребуется только одна объединенная подпись для представления всех этих разных подписей. Это дает очевидное преимущество в отношении данных, поскольку в транзакцию должна быть включена только одна подпись, по сети должна передаваться только одна, а в блок должна быть включена только одна. Это означает, что есть больше места для транзакций.
Например:
Segregated Witness, предложенный Bitcoin Core, предлагает (примерно) 75-процентную скидку на все данные, включенные в "свидетеля", а не в исходный блок. Поэтому один мегабайт данных-свидетелей «взвешивается» как 0,25 мегабайта, что оставляет место для данных транзакции в 0,75 мегабайта в исходном блоке, что в сумме составляет 1 мегабайт.
Если агрегированные подписи Шнорра уменьшат общий объем данных-свидетелей, скажем, с 1 мегабайта до 0,5 мегабайта, то эти 0,5 мегабайта будут затем дисконтированы до 0,125 мегабайта, в результате чего в исходном блоке останется место до 0,875 мегабайта. (Увеличение примерно на 17 процентов.)
Точное количество добавленного места зависит от типов транзакций, включенных в блоки. Но приблизительные оценки разработчика Bitcoin Core Эрика Ломброзо позволяют предположить, что сигнатуры Schnorr могут в конечном итоге увеличить общую емкость на 40 и более процентов - это вдобавок к дополнительным 60–100 процентам, уже предложенным Segregated Witness.
MultisigУвеличение емкости, как описано выше, справедливо для обычных транзакций, так как многие транзакции включают более одного входа. Но преимущество может быть даже больше в случае многозначных транзакций - транзакций, где для одного входа требуется несколько подписей (обычно от разных людей).
Как и в случае с обычными транзакциями, в любую многозначную транзакцию необходимо включать не более одной подписи. Независимо от того, сколько подписей требуется, независимо от того, сколько людей вовлечено.
Это открывает двери для гораздо более сложных интеллектуальных контрактных конструкций для части данных, которые обычно требуются. Будь то два типа из трех, трех из пятнадцати или сотни сотен типов многосигнальных транзакций, все они будут содержать тот же объем данных подписи, что и типичная транзакция с единственной подписью.
КонфиденциальностьИ в-третьих, подписи Schnorr могут предложить еще одно интересное преимущество: стимулирование конфиденциальности.
Как уже упоминалось, одна транзакция может включать в себя несколько входов. Чаще всего эти входы относятся к адресам, которые все контролируются одним и тем же человеком. (Согласно примеру с несколькими купюрами и монетами.)
Но способ повышения конфиденциальности, изобретенный разработчиком Bitcoin Core Грегори Максвеллом, CoinJoin , позволяет различным пользователям объединять все свои транзакции в одну транзакцию. Эта одна транзакция будет включать в себя несколько входов, поступающих от разных плательщиков, что отправляет деньги на несколько выходов, принадлежащих различным получателям.
(Это можно сравнить с группой людей, которые складывают свои купюры и монеты в корзину, которую они используют, чтобы ходить по магазинам в разных магазинах, чтобы купить продукты, которые им всем нужны. Каждый человек получит товары, за которые он заплатил, но маловероятно, что «собственный» счет любого человека будет потрачен нза продукт, который он купил.)
Если все сделано правильно, CoinJoin является отличным способом улучшить конфиденциальность протокола Биткойн, так как становится неясно, какие именно вклады были оплачены, какие именно не были, не говоря уже о том, кто и кому заплатил.
CoinJoin - это не новая концепция. Но до сих пор CoinJoin обычно был немного хлопотным. Таким образом, большинство людей не беспокоятся об этом. И поскольку большинство людей не беспокоятся, те, кто беспокоится, могут автоматически быть помечены как подозрительные; потенциально пользователи CoinJoin в первую очередь.
Но подписи Шнорра могут добавить новое преимущество для CoinJoin. Это позволяет всем участникам транзакции CoinJoin не только объединять свои транзакции, но и объединять свои подписи. И это означает, что размер транзакции будет фактически меньше, чем все отдельные транзакции вместе взятые. Что, в свою очередь, означает, что майнеры, как правило, будут взимать меньшую плату за обработку транзакции.
Таким образом, с Schnorr CoinJoin не только повысит конфиденциальность, но и, что немаловажно, снизит затраты для всех участников. Действительно, было бы выгодно использовать самый приватный вариант, который мог бы просто сделать его доступным для всех - значительно повысить конфиденциальность Биткойн для всех.
Примечание. Процесс внедрения подписей Schnorr в биткойнах все еще находится в стадии разработки. Хотя большинство разработчиков Bitcoin Core считают, что сигнатуры Schnorr могут быть безопасно развернуты в Биткойне, об этом еще рано говорить с уверенностью.
Благодарим разработчика Bitcoin Core и соучредителя Blockstream доктора Питера Уилла за предоставление информации, а также разработчика Bitcoin Core и генерального директора Ciphrex Эрика Ломброзо за корректуру и дальнейшие предложения.