Для тех, кто хочет знать все о мировом финансовом рынке, рынке ценных бумаг, криптовалютах, участниках финансового рынка и его структуре.

Подписи Шнорра и неизбежность конфиденциальности в Биткойне

7

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

Когда Сатоши Накамото начинал работать над Биткойном, один из ключевых моментов, которые необходимо было учесть, заключался в том, какую из схем подписи следует выбрать для открытой и общедоступной финансовой системы. Требования были ясны: нужно было создать алгоритм, который был бы широко используем, понятен, достаточно безопасен, лёгок и, самое главное, с открытым исходным кодом. Из всех доступных на тот момент опций он выбрал ту, что отвечает этим критериям лучше всего: Elliptic Curve Digital Signature Algorithm (алгоритм цифровой подписи, основанный на эллиптических кривых), или ECDSA.

В то время нативная поддержка ECDSA была предусмотрена в OpenSSL, открытом наборе инструментов шифрования, разработанных шифропанками со стажем с целью повышения конфиденциальности онлайн-коммуникаций. По сравнению с другими популярными схемами, ECDSA обладает такими преимуществами, как меньшая требовательность к вычислительным ресурсам и меньшая длина ключей – это полезные свойства для цифровых денег. В то же время он обеспечивает пропорциональный уровень безопасности для таких схем, как RSA: к примеру, 256-битный ECDSA-ключ обладает равноценным в сравнении с 3072-битным RSA-ключом уровнем безопасности при значительно меньшем размере ключа.

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

В этой статье я расскажу в общих чертах о многочисленных имплементациях подписей Шнорра и о преимуществах этих подписей. Затем мы поговорим о MuSig, новом стандарте мультиподписи, который может служить основой для внедрения новых биткойн-технологий, таких как Taproot. Наконец, я расскажу вам, как полная реализация подписей Шнорра может нарушить используемую в блокчейн-аналитике эвристику и в то же время способствовать развитию сильного рынка комиссий на основном слое Биткойна.

История появления подписей Шнорра

Притом, что схема цифровых подписей Шнорра обладает множеством преимуществ по сравнению с ECDSA, она определённо не нова. Она была изобретена ещё в 1980 гг. Клаусом-Петером Шнорром, немецким криптографом и академиком, на тот момент профессором и исследователем Франкфуртского университета. В основание предложенной им схемы подписи легли исследования и работы Дэвида Чаума, Тахера Эль-Гамаля, Амоса Фьята и Ади Шамира. Тем не менее, прежде чем опубликовать новую схему, Клаус Шнорр заполнил множество патентов, которые в течение многих лет препятствовали её прямому использованию.

Интересно, что предшественник ECDSA, алгоритм DSA, представлял собой гибрид схем Эль-Гамаля и Шнорра, созданный исключительно для обхода патентов Клауса Шнорра. На самом деле, всего через два месяца после выдачи американского патента Клаусу Шнорру прародитель DSA, Национальный институт стандартов и технологий США (NIST), также оформил патент для своего решения. После этого Клаус Шнорр стал ещё активнее защищать свои патенты и прямо ответил своим критикам в рассылке Coderpunks (ответвлении оригинальной email-рассылки Cypherpunks). Его ответы можно прочитать здесь и здесь (англ.). А здесь можно найти внутреннюю записку NIST с описанием патентных проблем.

В 2008 году, спустя почти два десятилетия после представления схемы подписи Шнорра, срок действия патента Клауса Шнорра истёк. По совпадению, 2008 стал также годом, когда Сатоши Накамото, представил миру Биткойн. Несмотря на то что подписи Шнорра на тот момент уже можно было использовать, они ещё не были стандартизированными или широко используемыми. Вероятно, поэтому Сатоши и остановил свой выбор на ECDSA. И, хотя криптографы и математики часто характеризуют этот алгоритм как «ужасный», ECDSA до сих пор довольно широко используется, а на тот момент он был более безопасной опцией для Биткойна.

Подписи Шнорра в Биткойне

Пропустим на быстрой перемотке ещё одно десятилетие и перенесёмся в сегодняшний день. Схема подписей Шнорра теперь выглядит намного менее эзотерично и её стандартизированные реализации – такие как ed25519 – становятся популярной опцией для некоторых альткойнов. Неформальные разговоры о потенциальной реализации подписей Шнорра в сети Биткойна восходят к этой ветке форума BitcoinTalk, датируемой 2014 годом, но предложение было формализовано только после нескольких лет исследований и экспериментов, когда Питер Вуйле написал Schnorr BIP (Bitcoin Improvement Proposal, «предложение по улучшению Биткойна»). В этом черновике предложения описывается спецификации и технические аспекты потенциальной реализации подписей Шнорра, которые будут обладать следующими преимуществами по сравнению с ECDSA:

  • Доказательство безопасности: Безопасность подписей Шнорра легко доказывается при использовании в достаточной мере случайной хеш-функции (модель случайных оракулов) и достаточной сложности задачи дискретного логарифмирования в группе точек эллиптической кривой (elliptic curve discrete logarithm problem, ECDLP). Для ECDSA такого доказательства не существует.
  • Негибкость: ECDSA-подписи по своей природе являются гибкими, что может позволить третьей стороне, не имеющей доступа к секретному ключу, изменить существующую действительную подпись и расходовать средства дважды. Официально эта проблема обсуждалась в BIP62. Для сравнения, подписи Шнорра являются доказуемо негибкими.
  • Линейность: Подписи Шнорра обладают замечательным свойством: несколько сторон могут совместно создать подпись, действительную для суммы их открытых ключей. Это может служить конструкционным блоком для различных конструкций более высокого уровня, повышающих эффективность и приватность – таких как мультиподписи и прочие смарт-контракты.

Доказательства безопасности подписей Шнорра, а также гарантия их негибкости, дают им явные преимущества над ECDSA. Уже эти два преимущества могут служить достаточным основанием для софт-форка. Но особенно впечатляющим свойством подписей Шнорра является их линейность. В частности, это позволяет нескольким подписантам транзакции с мультиподписью объединять свои открытые ключи в один агрегированный ключ, представляющий всю группу – это свойство называется агрегированием ключей.

Хотя возможность объединения ключей в один может прозвучать несколько тривиально, преимуществ этого не следует недооценивать. Поскольку в ECDSA нет нативной поддержки мультиподписей, в Биткойне их пришлось реализовывать через стандартизированный смарт-контракт (да-да, в Биткойне тоже есть смарт-контракты), называемый Pay-to-ScriptHash (P2SH). Он позволяет пользователям добавлять условия расходования, называемые обременениями, чтобы указать, как могут быть потрачены средства – например, «разблокировать баланс только если сообщение подпишут Боб и Алиса».

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

Вторая проблема с P2SH заключается в том, что он предлагает очень небольшие гарантии конфиденциальности. Как указывалось в BIP13, для P2SH-транзакций необходимо, чтобы адреса начинались с цифры 3. Это позволяет блокчейн-аналитикам не только распознавать все P2SH-транзакции в сети, но и точно определять адреса, участвующие в мультиподписи:

Блокчейн-аналитик: «Определённо, мультиподпись». – Не хорошо.

В примере выше сеть будет знать (1) о существовании транзакции с мультиподписью, (2) о том, сколько адресов участвуют в мультиподписи и (3) о том, кто именно подписал транзакцию. Не здорово для операционной безопасности, особенно для таких вариантов использования, как 2FA. Это плохо с точки зрения конфиденциальности.

Агрегирование ключей, с другой стороны, сохраняет анонимность участников мультиподписи и не компрометирует операционную безопасность через раскрытие ключей, необходимых для разблокирования баланса. Самое главное, агрегирование ключей позволяет сделать транзакции с мультиподписью неотличимыми от обычных транзакций:

Блокчейн-аналитик: «Это может быть мультиподписью… Невозможно сказать наверняка…» – Теперь хорошо.

Первая итерация подписей Шнорра в Биткойне упразднит семейство опкодов OP_CHECKSIG и OP_CHECKMULTISIG, используемых в настоящее время с ECDSA, в пользу нового класса опкодов, называемого OP_CHECKDLS. Если не слишком вдаваться в подробности, DLS означает Discrete Log Signature (подпись с дискретным логарифмированием), и это позволяет верифицировать подписи эффективнее и с меньшим количеством опкодов.

Ещё в начале 2018 года Грегори Максвелл, Эндрю Поэлстра, Янник Сеурин и Питер Вуйле опубликовали уайтпэйпер новой, основанной на подписи Шнорра схемы мультиподписи, под названием MuSig. После этой публикации они много работали над переводом предлагаемой схемы мультиподписи в пригодный для использования код.

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

В декабре 2018 года Энтони Таунс стал первым разработчиком Bitcoin Core, подготовившим полуформализованное предложение по активации подписей Шнорра, которое было представлено в рассылке для разработчиков Биткойна. Я ожидаю, что в ближайшие месяцы количество разговоров о потенциальном софт-форке возрастёт.

Подводя итог сказанному, первая итерация MuSig в Биткойне будет обладать поддержкой агрегирования ключей, что может немедленно (1) улучшить конфиденциальность мультиподписей, (2) повысить эффективность проверки транзакций, (3) повысить безопасность за счёт устранения проблем, присущих ECDSA, и (4) обеспечить возможность для интеграции таких смарт-контрактов, как Taproot, о котором мы поговорим в следующем разделе.

И это только начало.

Кросс-агрегирование входов транзакций: следующий шаг для повышения конфиденциальности Биткойна

Как мы уже знаем из предыдущего раздела, агрегирование ключей представляет собой чрезвычайно полезную функцию для мультиподписей на расходование одного входа. Поскольку биткойн-транзакции обычно имеют более одного входа, будущие итерации подписей Шнорра могут быть использованы также для создания схемы интерактивной агрегированной подписи (interactive aggregate signature, IAS), в которой все входы транзакции тратятся одновременно и с одной общей подписью.

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

Грег Максвелл, Питер Вуйле, Энтони Таунс и другие работали над эволюцией схемы смарт-контракта Taproot, чтобы облегчить доступ к этой функциональности. Они назвали эту схему Generalized (обобщённый) Taproot, или G’root, и в будущем она может значительно облегчить переход от агрегирования ключей к кросс-агрегированию входов транзакций.

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

Один из самых волнующих аспектов кросс-агрегирования входов заключается в том, как это может улучшить CoinJoin-транзакции в сети Биткойна. В контексте CoinJoin – это метод сохранения конфиденциальности, где несколько отправителей и получателей объединяются в рамках одной транзакции. Цель заключается в том, чтобы затруднить блокчейн-аналитикам установление связи между определёнными отправителями и получателями средств, тем самым создавая для участников CoinJoin-транзакций возможность обоснованного отрицания причастности к определённой транзакции.

Эта методика изначально была предложена Грегом Максвеллом на BitcoinTalk в 2013 г. и с тех пор входила в список услуг, предоставляемых такими сервисами, как JoinMarket, SharedCoin, ShufflePuff, DarkWallet и CoinShuffle. В вариациях CoinJoin, таких как Chaumian CoinJoin (схема, используемая в Wasabi Wallet), оригинальная модель была значительно усовершенствована. Однако, поскольку анонимность любит компанию, они тоже нуждаются в достаточном количестве пользователей, чтобы эффективно перемешивать балансы каждого отдельного участника транзакции.

Ещё одна проблема с CoinJoin на сегодняшний день заключается в идентифицируемости (и потенциальной подверженности цензуре) всего этого типа транзакций. Стоит учесть, что чаще всего используемое в блокчейн-аналитике эвристическое правило заключается в отслеживании входов транзакций с тем, чтобы определить, принадлежат ли два или более адресов одному актору. Например, если Алиса отправила Бобу 1,982723 BTC, программа анализа блокчейна может отслеживать десятичные части этого определённого входа, чтобы разметить граф транзакций, либо историю разбиений на части и переходы прав на управление UTXO.

Для предотвращения этого, различные входы внутри CoinJoin-транзакции деноминируются, в результате чего для внешнего наблюдателя все участники такой транзакции отправляют одну и ту же сумму. Пользователи Wasabi wallet, например, номинально отправляют 0,1 BTC в составе CoinJoin-транзакций из 100 участников. Хотя это затрудняет установление связей между конкретными отправителями и получателями, блокчейн-аналитик может распознавать транзакции с номинально равными входами и рекомендовать своим клиентам цензурировать все участвующие в ней адреса.

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

Проблема деноминирования до частей равного размера может быть решена также с помощью дополнительных методик, таких как Pay-to-EndPoint (P2EP), сочетающей в себе ранние наработки Сатоши в области конфиденциальности (см. P2EP) с CoinJoin, в которой входы транзакций предоставляются и отправителями, и получателями.

Технология P2EP обратно совместима и, при использовании в сочетании с подписями Шнорра, может существенно и на базовом уровне улучшить конфиденциальность Биткойна.

Одним выстрелом двух зайцев

Разумно предположить, что массовое принятие и распространение Биткойна зависит от прочности его гарантий конфиденциальности. В то же время популярность Lightning Network и её собственный потенциал в области приватных платежей породил в том числе неуверенность в отношении будущего спроса на ончейн-расчёты после того, как будет добыт последний биткойн. Таким образом, необходимость гарантий конфиденциальности и долгосрочная устойчивость Биткойна при отсутствии награды за блок являются, пожалуй, двумя самыми тревожными проблемами, связанными с Биткойном. К счастью, механизмы обеспечения конфиденциальности, обеспечиваемые подписями Шнорра, потенциально могут решить эти две проблемы одновременно.

Я потратил тысячи часов на изучение сложных технологий обеспечения конфиденциальности, включая различные реализации кольцевых подписей, Confidential Transactions, Bulletproof-подписей, zk-SNARK, zk-STARK и MimbleWimble. И хотя некоторые из этих технологий уже стали достаточно зрелыми для включения в базовый слой Биткойна, они всё ещё связаны с уникальными рисками и компромиссами. К тому же, как вы, вероятно, уже слышали, Биткойн чрезвычайно не предрасположен к хард-форкам, что вообще ставит под сомнение возможность введения в Биткойне поддержки каких-либо из перечисленных технологий.

Озабоченность, периодически высказываемая в отношении использования гомоморфного шифрования или неинтерактивных систем доказательств с нулевым разглашением заключается в том, что они препятствуют сохранению полной прозрачности и аудитопригодности базы денежной массы Биткойна. Другими словами, когда суммы транзакций скрыты шифрованием, становится трудно проверить, соблюдается ли в действительности ограничение объёма эмиссии Биткойна на уровне 21 млн BTC. Аналогичным образом, становится трудно различить ошибки инфляции и двойные траты. Это очень существенный недостаток, и реализация такого компромисса на базовом слое Биткойна может разделить сообщество.

Но что, если достаточной конфиденциальности можно достичь и без внедрения этих технологий на базовом слое Биткойна?

Введение поддержки подписей Шнорра определённо могло бы этому способствовать. Если бы в большей части биткойн-транзакций использовалась функция кросс-агрегирования входов в сочетании с P2EP, вычислить конкретных отправителей и получателей методами блокчейн-аналитики было бы невозможно. Объём эмиссии Биткойна оставался бы проверяемым, но при значительно более серьёзных гарантиях конфиденциальности.

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

Со временем принятие этих технологий приведёт к тому, что блокчейн-аналитика устареет и будет практически устранена из списка необходимых AML/KYC-процедур блокчейн-компаний – примерно как с наличными. Когда вы вносите наличные на свой банковский счёт, банк не проверяет банкноты на следы наркотиков и не препятствует зачислению денег, найдя такие следы. Нет никаких объективных причин, почему это должно происходить с биткойнами, за исключением распространённости блокчейн-аналитики в сочетании с недостатками таких методов, как CoinJoin-транзакции без подписей Шнорра.

Когда выполнение AML/KYC-процедур в отношении конкретных адресов и UTXO станет неактуальным, и фокус сместится с балансов счетов на самих пользователей, биткойн-компании примут этот новый уровень конфиденциальности. На самом деле, я подозреваю, что, когда это произойдёт, конфиденциальность и взаимозаменяемость монет станут неотъемлемой частью ценностного предложения будущих биткойн-компаний.

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

Подписывайтесь на BitNovosti в Telegram!
Делитесь вашим мнением об этой статье в комментариях ниже.

Источник: bitnovosti.com