Подписи CLSAG в Monero: как они работают
Подписи CLSAG в Monero: как они работают
17 октября 2020 года, на блоке 2 210 720, Monero без лишнего шума заменил криптографический движок, на котором держится каждая транзакция в сети. Хардфорк «Oxygen Orion» отправил на пенсию старую кольцевую подпись MLSAG и поставил на её место CLSAG — и буквально за одну ночь транзакции стали примерно на 25% компактнее, а их проверка ускорилась на 10–20%. Если вы когда-нибудь отправляли XMR или переводили биткоин в Monero через сервис вроде MoneroSwapper, вашу транзакцию защищала подпись CLSAG, а вы об этом даже не догадывались.
Большинство пользователей воспринимает приватность Monero как чёрный ящик: на входе — обычные монеты, на выходе — неотслеживаемые. Но у магии, которая прячет, кто и кому отправил средства, есть конкретное имя и понятная структура. CLSAG — это та самая деталь, которая позволяет доказать «я владею одним из этих выходов и трачу его ровно один раз», не раскрывая, какой именно выход ваш. В этой статье мы разберём, что такое CLSAG, как она устроена, почему сменила предшественницу и какое место занимает в дорожной карте Monero на фоне новых доказательств вроде FCMP++.
Что на самом деле означает аббревиатура CLSAG
CLSAG — это аббревиатура, и каждая её буква описывает реальное свойство схемы. Полностью это расшифровывается как Concise Linkable Spontaneous Anonymous Group signatures — «лаконичные связываемые спонтанные анонимные групповые подписи». Схему предложили в исследовательской работе 2019 года Брэндон Гуделл, Саранг Нётер и контрибьютор, известный под ником RandomRun. Прежде чем попасть в основную сеть, она прошла рецензирование и независимый аудит.
- Concise (лаконичная): подпись получается компактной. CLSAG генерирует заметно меньше скаляров на каждого участника кольца, чем предыдущая схема, — отсюда и экономия по размеру.
- Linkable (связываемая): если один и тот же выход попытаются потратить дважды, сеть это обнаружит. Работает это через key image — детерминированный «отпечаток», который не даёт совершить двойную трату, но при этом не выдаёт отправителя.
- Spontaneous (спонтанная): никакой церемонии настройки и никакого сговора между людьми, чьи выходы попали в ваше кольцо. Вы подтягиваете чужие выходы-приманки прямо из блокчейна — без их ведома и согласия.
- Anonymous (анонимная): проверяющий может убедиться, что подпись действительна, но не способен определить, кто из участников кольца её на самом деле создал.
- Group (групповая): подпись ставится от имени группы — кольца, — а не от имени одного опознаваемого ключа.
Сложите эти свойства вместе — и получите суть приватности отправителя в Monero: действительная подпись, которая доказывает авторизацию кем-то из набора правдоподобных кандидатов, оставляя настоящего подписанта в тени и делая двойную трату невозможной.
Как CLSAG устроена изнутри
Чтобы понять CLSAG, сначала нужно разобраться, чего вообще пытается добиться кольцевая подпись, а уже потом — как CLSAG ужимает доказательство. Транзакции Monero используют RingCT, который объединяет две вещи, обе из которых обязаны оставаться приватными: кто тратит (неоднозначность отправителя) и сколько (конфиденциальность суммы). За первую половину отвечает CLSAG. За вторую — Bulletproofs+.
В чём задача кольцевой подписи
Когда вы тратите выход Monero, кошелёк собирает кольцо: ваш настоящий выход плюс несколько выходов-приманок, взятых из цепочки. После обновления «Fluorine Fermi» в августе 2022 года размер кольца зафиксирован на 16 — то есть каждая трата прячется среди 15 приманок. Сторонний наблюдатель видит 16 равнозначных кандидатов и не может сказать, какой из них тратится по-настоящему.
Сложность в том, чтобы подписать транзакцию так, чтобы доказать «я контролирую приватный ключ одного из этих 16 выходов», не выдав, какого именно. Кольцевая подпись делает ровно это. Фокус в том, что строится замкнутая цепочка криптографических вызовов, которая «сходится» только если подписант знает один настоящий приватный ключ, — при этом снаружи все звенья выглядят одинаково.
Key image и защита от двойной траты
Главная опасность скрытого отправителя — двойная трата: если никто не видит, какой выход вы потратили, что мешает потратить его ещё раз? Ответ — key image (образ ключа). У каждого выхода есть ровно один действительный key image, который вычисляется как приватный ключ, умноженный на хеш-в-точку от публичного ключа. Математически он жёстко привязан к выходу, но при этом ничего не говорит о том, кто из участников кольца его сформировал.
Каждый когда-либо использованный key image записывается в блокчейн. Когда приходит новая транзакция, узлы проверяют, не встречался ли её key image раньше. Если встречался — транзакция отклоняется как двойная трата. Именно это делает модель скрытого отправителя в Monero безопасной — то самое свойство связываемости, буква «L» в названии CLSAG.
Как агрегация сжимает подпись
Вот сердце того, почему CLSAG «лаконична». В транзакции RingCT каждый участник кольца связан с двумя публичными ключами: одноразовым ключом выхода (он доказывает владение) и обязательством суммы (оно доказывает, что входы и выходы балансируются). Предыдущая схема, MLSAG, подписывала оба ключа по отдельности, выдавая по два скаляра-ответа на каждого участника кольца.
CLSAG сворачивает это в одно кольцо. Она использует коэффициенты агрегации — выводимые детерминированно через хеширование кольца и его обязательств, — чтобы сложить два ключа в одно объединённое уравнение проверки. В результате на каждого участника кольца приходится один скаляр-ответ вместо двух, плюс один начальный вызов и key image.
Для кольца из 11 участников MLSAG требовала около 22 скаляров-ответов на вход; CLSAG обходится примерно 12. Именно это одно изменение урезало типичную транзакцию с двумя входами почти на четверть.
Что принципиально важно — доказательство безопасности показывает, что такая агрегация ничего не ослабляет. CLSAG остаётся неподделываемой и анонимной при тех же предположениях, что и раньше, даже против противника, способного выбрать часть ключей в кольце. Вы получаете более компактную и быструю подпись без компромиссов по приватности или безопасности — редкая «чистая победа» в криптографии.
CLSAG против MLSAG: что изменилось
MLSAG (Multilayered Linkable Spontaneous Anonymous Group signatures) питала RingCT с запуска в январе 2017 года и до форка 2020-го. CLSAG — это прямая замена «один в один», которая сохраняет ту же модель доверия, но срезает всё лишнее. В таблице ниже собраны практические различия.
| Свойство | MLSAG (2017–2020) | CLSAG (2020 — наши дни) |
|---|---|---|
| Скаляров на участника кольца | 2 (по одному на слой ключа) | 1 (агрегированный) |
| Размер подписи типичной транзакции на 2 входа | Базовый уровень | ~на 25% меньше |
| Скорость проверки | Базовый уровень | ~на 10–20% быстрее |
| Гарантия приватности | Неоднозначность отправителя + связываемость | Идентична |
| Стойкость к враждебным ключам | Доказана | Доказана (формально переаудирована) |
| Активация | Запуск RingCT, янв. 2017 | Форк Oxygen Orion, окт. 2020 |
Компактные подписи важны не только ради эстетики. Меньший «вес» транзакции означает более низкую комиссию, меньшее разрастание блокчейна и более быструю синхронизацию для узлов. А поскольку все транзакции Monero структурно выглядят одинаково, эта экономия суммируется по всей сети и улучшает взаимозаменяемость (fungibility) — ни одна транзакция не выделяется как «дешёвая» или «дорогая» из-за своей истории.
Как CLSAG встроена в транзакцию Monero
CLSAG никогда не работает в одиночку. Это один из компонентов транзакции RingCT, наряду со скрытыми (stealth) адресами, обязательствами сумм и доказательствами диапазона. Ниже — упрощённый жизненный цикл траты: от момента, когда кошелёк решает отправить средства, до момента, когда узел принимает транзакцию.
- Выбор приманок: кошелёк подбирает 15 выходов-приманок из цепочки по гамма-распределению, которое имитирует реальные паттерны трат, а затем добавляет ваш настоящий выход, образуя кольцо из 16.
- Построение обязательств: входящие и исходящие суммы прячутся за обязательствами Педерсена, а псевдо-обязательство выхода генерируется так, чтобы проверяющий мог убедиться в равенстве входов и выходов, не видя самих значений.
- Вычисление key image: кошелёк выводит key image для тратящегося выхода, который сеть позже сверит со своим набором уже использованных key image.
- Подпись через CLSAG: кошелёк создаёт единую агрегированную кольцевую подпись над кольцом одноразовых ключей и ключей обязательств, замыкая криптографический контур — это получается только потому, что у него есть один настоящий приватный ключ.
- Прикрепление доказательств диапазона: Bulletproofs+ доказывает, что каждая сумма выхода лежит в допустимом диапазоне, так что никто не сможет «создать монеты из воздуха» с помощью отрицательного выхода.
- Рассылка и проверка: транзакция распространяется через Dandelion++, чтобы скрыть IP-адрес источника, а узлы проверяют подпись CLSAG, обязательства, доказательства диапазона и уникальность key image, прежде чем ретранслировать её дальше.
Совет: вам не нужно настраивать ничего из этого вручную. Размер кольца, выбор приманок и сама схема подписи задаются консенсусом, поэтому два кошелька на одной и той же версии сети создают неотличимые друг от друга транзакции.
Пример из жизни
Представьте, что вы обмениваете 0,5 BTC на XMR через MoneroSwapper, а позже отправляете часть этого Monero на аппаратный кошелёк. В тот момент, когда вы нажимаете «Отправить», кошелёк собирает кольцо из 16 выходов. Ваш настоящий выход среди них, но рядом — 15 посторонних выходов других пользователей, которые никогда не соглашались участвовать и никогда не узнают, что поучаствовали.
Подпись CLSAG, которую генерирует ваш кошелёк, доказывает каждому узлу на планете, что вы законно контролируете один из этих 16 выходов, — но не говорит, какой именно. Биржа, следящая за цепочкой, блокчейн-аналитическая фирма или просто любопытный наблюдатель видят действительную транзакцию с 16 равновероятными источниками. Нет ни одной эвристики, которая надёжно вычисляла бы настоящий, — и в этом весь смысл.
Сравните это с прозрачной цепочкой вроде Bitcoin, где конкретный тратящийся вход публичен. В Bitcoin те же 0,5 BTC тащат за собой постоянную, отслеживаемую историю — её при желании может размотать кто угодно, от аналитической фирмы до регулятора уровня ЦБ РФ. В Monero же CLSAG обрывает связь на каждом «прыжке» — именно поэтому пользователи, заботящиеся о приватности, в принципе пропускают ценность через Monero.
Что впереди: FCMP++ и Seraphis
CLSAG превосходна, но у неё есть структурный потолок: набор анонимности ограничен размером кольца. При 16 участниках ваша реальная трата прячется среди 15 приманок — это сильно, но конечно. Исследовательское сообщество Monero годами строит кое-что куда более масштабное.
FCMP++ (Full-Chain Membership Proofs, «доказательства принадлежности ко всей цепочке») — запланированный преемник. Вместо того чтобы прятаться среди 16 выходов, FCMP++ доказывает принадлежность к каждому выходу, когда-либо существовавшему в цепочке, — это набор анонимности в десятки миллионов, а не 16. На протяжении 2025 года разработка и аудит уверенно продвигались, а само обновление нацелено на один из будущих хардфорков. Когда оно состоится, кольцевые подписи в привычном нам виде, включая CLSAG, будут выведены из обращения.
Рядом с FCMP++ стоят протокол транзакций Seraphis и схема адресации Jamtis, которые вместе модернизируют то, как формируются и адресуются выходы Monero. Вывод не в том, что CLSAG устарела — она защищает сеть прямо сейчас и будет защищать ещё какое-то время, — а в том, что Monero не прекращает улучшать свои гарантии приватности. Сама CLSAG когда-то стала преемницей MLSAG, и цикл продолжается.
Частые вопросы
Как расшифровывается CLSAG?
CLSAG расшифровывается как Concise Linkable Spontaneous Anonymous Group signatures — «лаконичные связываемые спонтанные анонимные групповые подписи». Каждое слово описывает свойство: подпись компактна, двойные траты обнаруживаются, координация между участниками кольца не нужна, настоящий подписант скрыт, а доказательство ставится от имени группы, а не одного опознаваемого ключа.
Когда Monero начал использовать CLSAG?
CLSAG активировалась в основной сети Monero во время хардфорка «Oxygen Orion» 17 октября 2020 года, на высоте блока 2 210 720. Она заменила MLSAG, которая защищала транзакции RingCT с января 2017 года.
Насколько CLSAG уменьшила размер транзакций Monero?
Типичная транзакция с двумя входами стала примерно на 25% компактнее, а проверка ускорилась примерно на 10–20%. Экономия достигается за счёт агрегации двух скаляров-ответов на каждого участника кольца в один, что уменьшает и объём данных в блокчейне, и работу, которую узлы делают при проверке.
Ослабляет ли CLSAG приватность или безопасность Monero?
Нет. CLSAG обеспечивает ту же неоднозначность отправителя и ту же защиту от двойной траты, что и MLSAG. Её безопасность была формально доказана и независимо проаудирована, включая стойкость к атакам, где противник контролирует часть ключей в кольце. Это строго более эффективная версия тех же самых гарантий.
Заменят ли CLSAG?
В конце концов — да. Обновление FCMP++ (Full-Chain Membership Proofs) задумано так, чтобы полностью заменить кольцевые подписи, расширив набор анонимности с 16 участников кольца до всего блокчейна. На протяжении 2025 года оно находилось в активной разработке и на аудите и нацелено на один из будущих хардфорков, но до тех пор сеть защищает именно CLSAG.
Заключение
CLSAG — одно из тех обновлений, которые доказывают: хорошая криптография может быть одновременно незаметной и значимой. Она сделала каждую транзакцию Monero компактнее, дешевле и быстрее в проверке, сохранив при этом приватность отправителя и защиту от двойной траты — то, что определяет саму монету, — и пользователям не пришлось ради этого и пальцем пошевелить. Понимание того, как она работает, развеивает туман вокруг слова «неотслеживаемый»: это не магия, а аккуратно сконструированная кольцевая подпись с прикрученным к ней key image.
Если вы хотите задействовать эту приватность на практике, самый простой путь — приобрести Monero, не раскрывая своей личности с самого начала. Вы можете купить Monero анонимно через MoneroSwapper без аккаунта и без KYC, и каждый полученный вами выход будет защищён теми же подписями CLSAG, что описаны здесь, ровно в тот момент, когда вы его потратите.
🌍 Читать на