MoneroSwapper MoneroSwapper

Monero RingCT: как XMR скрывает все суммы

MoneroSwapper · · · 2 min read · 8 views

Monero RingCT: как XMR скрывает все суммы

Если вы хоть раз отправляли биткоин и смотрели, как блок-эксплорер услужливо показывает точную сумму перевода — до последнего сатоши — любому случайному пользователю интернета, вы уже встречались с тем самым архитектурным изъяном, ради устранения которого был создан RingCT. Каждая транзакция Monero, начиная с блока 1 220 516 (активация 10 января 2017 года), использует Ring Confidential Transactions — криптографическую схему, которая скрывает сумму перевода, но при этом позволяет каждой ноде в сети убедиться, что монеты не возникли из воздуха. Спустя почти десять лет RingCT остаётся одним из самых тщательно изученных и обкатанных механизмов приватности в криптовалютной индустрии, а в 2025–2026 годах он оказался в центре нового крупного цикла обновлений Monero — рядом с FCMP++ и долгожданным переходом на Seraphis.

Эта статья разбирает, что именно делает RingCT, почему он был вынужден заменить исходный формат транзакций Monero, как обязательства Педерсена и доказательства диапазона работают в связке, делая скрытые суммы проверяемыми, и что предстоящие изменения означают для тех, кто пользуется Monero в 2026 году — независимо от того, держите ли вы приватную полную ноду дома, обмениваете монеты через MoneroSwapper или просто пытаетесь понять, почему выходы XMR-транзакций выглядят как криптографические блобы, а не как числа.

Зачем вообще понадобился RingCT

До появления RingCT Monero уже скрывал две из трёх частей информации, которые раскрывает любой платёж: отправителя (через кольцевые подписи) и получателя (через stealth-адреса). Но сама сумма по-прежнему отображалась открыто — ровно так же, как в биткоине. Транзакция на 17,3 XMR в эксплорере выглядела именно как транзакция на 17,3 XMR, и аналитики цепочек быстро сообразили, что эта видимая величина — мощный сигнал для деанонимизации. Если только один адрес из вашего кольца ложных входов мог отправить выход на 13,7777 XMR, anonymity set по факту схлопывался до одного кандидата, какой бы изящной ни была математика кольцевой подписи.

Опасения были не теоретическими. В 2015–2016 годах исследователи — Эндрю Миллер, Мальте Мёзер, Кевин Ли и другие — опубликовали несколько работ по pre-RingCT-Monero, показывающих, что заметную долю транзакций можно деанонимизировать просто по нестандартным суммам. Monero Research Lab уже готовила ответ: конструкцию Шена Нётера, адаптировавшую работу Грега Максвелла по Confidential Transactions и сплавившую её с существующей схемой кольцевых подписей Monero.

  • Суммы выдавали отправителя: даже если кольцевые подписи скрывали, какой вход был настоящим, уникальная сумма в кольце сжимала anonymity set до единственного варианта.
  • Хрупкая система деноминаций: в Monero до RingCT транзакции приходилось разбивать на «номиналы» (0,1; 0,01; 0,001 и т. д.), чтобы микшировать их с выходами того же размера. Из-за этого транзакции становились огромными и легко анализируемыми.
  • Без скрытых значений нет взаимозаменяемости: если разные единицы XMR можно помечать прошлыми суммами, они перестают быть взаимозаменяемыми — а это ровно то свойство, которое делает деньги деньгами.

RingCT закрыл все три проблемы одновременно. Он скрывает сумму, позволяет транзакции использовать единственный выход произвольного размера и полностью убирает неуклюжую систему деноминаций. Цена была существенной — и размер транзакции, и время верификации заметно выросли, — но прирост приватности и удобства посчитали того стоящим. Последующие апгрейды Bulletproofs (2018) и Bulletproofs+ (2022) отыграли почти всю потерю по размеру обратно.

Как RingCT на самом деле устроен

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

Обязательства Педерсена: прячем сумму

Базовая идея обязательства Педерсена в том, что вы публикуете криптографический блоб, фиксирующий конкретное число, не раскрывая само число, — и при этом можете выполнять арифметику над такими блобами. Сумма выхода Monero a фиксируется как C = aH + xG, где G и H — две фиксированные точки на эллиптической кривой ed25519, а x — секретный ослепляющий множитель, известный только отправителю и (позже) получателю.

Поскольку x каждый раз выбирается случайно, само по себе обязательство C ничего не говорит о значении a: два выхода по 1 XMR выглядят в цепочке совершенно по-разному. Но обязательства Педерсена аддитивно гомоморфны — сумма двух обязательств равна обязательству суммы их значений. Это и есть та самая «магия», которая позволяет сети проверить уравнение входы − выходы − комиссия = 0, не видя отдельных сумм. Отправитель подбирает ослепляющие множители так, чтобы все x взаимоуничтожились, и арифметика обязательств сошлась только при условии, что сошлась арифметика сумм.

Доказательства диапазона: защита от атаки отрицательных сумм

Скрытые суммы порождают новую атаку: что, если отправитель солжёт и подставит отрицательное число? В конечном поле «отрицательное» оборачивается в гигантское положительное, и злонамеренная транзакция могла бы напечатать миллиарды XMR, формально удовлетворяя балансу обязательств. Range-доказательства предотвращают это, криптографически подтверждая, что каждое обязательство выхода кодирует число в диапазоне [0, 2⁶⁴ − 1], не раскрывая самого числа.

Первые range-доказательства в RingCT строились на боровских кольцевых подписях по каждому биту суммы — прозрачно, надёжно, но невероятно громоздко. Типовая транзакция с двумя выходами в 2017 году весила около 13 КБ. Bulletproofs, развёрнутые в октябре 2018-го, использовали аргумент о внутреннем произведении Бюнца, Бутла и соавторов, чтобы ужать размер примерно до 2 КБ и заодно сильно ускорить пакетную верификацию. Bulletproofs+ в 2022-м срезали ещё 5–7 % и упростили прувер.

CLSAG: прячем, какой вход настоящий

Третий кирпич — сама кольцевая подпись. Выходы RingCT тратятся при помощи linkable ring signature, которая доказывает «один из этих N выходов мой, и я уполномочен его потратить», не раскрывая, какой именно. С 2017 по 2020 год Monero использовал MLSAG (Multilayered Linkable Spontaneous Anonymous Group); после хардфорка августа 2020-го перешёл на CLSAG — он примерно на 25 % меньше и на 10 % быстрее верифицируется без потери уровня безопасности.

Каждый вход также публикует key image — детерминированный криптографический хеш, выведенный из приватного ключа настоящего выхода, и сеть отклоняет любую транзакцию, повторно использующую уже виденный key image. Именно это значение и предотвращает двойную трату, не выдавая, какой именно выход был потрачен. Текущий размер кольца жёстко зафиксирован на 16 (15 декоев + 1 реальный) — параметр сознательно унифицирован для всех транзакций с хардфорка сентября 2022 года, чтобы убрать фингерпринтинг по размеру anonymity set.

RingCT в сравнении с другими подходами к приватности

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

ПодходКак скрывает суммыМодель доверияСтатус в 2026
Monero RingCTОбязательства Педерсена + range-доказательства Bulletproofs+Без доверия, без церемонии настройкиАктивен; по умолчанию с 2017
Zcash shielded (Sapling/Orchard)zk-SNARK поверх зашифрованных нотTrusted setup (Powers of Tau и др.)Активен, но используется в <15 % транзакций
Bitcoin Confidential TransactionsОбязательства Педерсена (без колец)Без доверияТолько Liquid sidechain; не L1
Mimblewimble (Grin, Beam)Обязательства Педерсена + cut-throughБез доверияАктивен, но экосистема крошечная
Firo Lelantus SparkДоказательства one-out-of-many + ПедерсенБез доверияАктивен

Определяющее свойство RingCT в этом списке — отсутствие необходимости в доверии: никакая многосторонняя церемония никогда не требовалась для его запуска, и нет токсичного остатка, способного скомпрометировать цепочку, если бы он утёк. Цена этого — anonymity set каждой транзакции ограничен размером кольца, тогда как zk-SNARK-схемы в принципе могут спрятать транзакцию во всём шилдед-пуле. Именно эту развилку и предназначен переломить FCMP++.

«Самая трудная часть в Monero — не криптография, а удержание всех пользователей на одинаковых дефолтах, чтобы никто не выделялся». — Джастин Эренхофер, бывший лидер сообщества MoneroSpace, о том, почему единый размер кольца важнее максимального.

Что происходит шаг за шагом, когда вы отправляете RingCT-транзакцию

Проследить одну транзакцию от начала до конца — лучший способ сделать RingCT конкретным. Шаги ниже описывают, что ваш кошелёк Monero — Feather, Cake Wallet, Monero GUI или аппаратно подписанный сценарий через Trezor Safe 3 — делает «под капотом» в 2026 году, когда вы жмёте «Отправить».

  1. Выбор входов. Кошелёк подбирает один или несколько ваших собственных выходов так, чтобы вместе они покрывали сумму + комиссию. У каждого известна сумма (видна только вам) и ослепляющий множитель, хранящийся в кэше кошелька.
  2. Сборка колец декоев. Для каждого входа кошелёк выбирает 15 других выходов из блокчейна по гамма-распределению, смещённому в сторону свежих блоков — потому что эмпирически большинство трат недавние. Эти 15 декоев плюс ваш реальный выход образуют кольцо из 16.
  3. Конструирование выходов. Stealth-адрес получателя выводится из его публичного view key и spend key, поэтому on-chain-адрес выхода уникален именно для этой транзакции и не привязывается к основному адресу. Сумма шифруется получателю через общий секрет, затем фиксируется обязательством Педерсена со свежим ослепляющим множителем.
  4. Генерация range-доказательств. Доказательство Bulletproofs+ вычисляется сразу по всем обязательствам выходов и подтверждает, что каждая сумма укладывается в допустимый 64-битный диапазон.
  5. Генерация подписи CLSAG. По одной кольцевой подписи на каждый вход — доказывает право потратить, не выдавая, какой член кольца настоящий, и публикует соответствующий key image.
  6. Распространение через Dandelion++. Транзакция отправляется одному случайному пиру в фазе «stem» и проходит по приватизирующему пути перед широковещательной рассылкой по сети — это защита от деанонимизации на IP-уровне в мемпуле.
  7. Проверка и включение. Каждая нода проверяет range-доказательства, подписи CLSAG и сходимость сумм обязательств. Если всё валидно, транзакция попадает в мемпул и в среднем через две минуты включается в блок.

Каждый из этих шагов происходит автоматически. С точки зрения пользователя отправка Monero выглядит так же, как любая криптоплатёжка: вставил адрес, ввёл сумму, подтвердил. Вся сложность остаётся на стороне протокола — ровно там, где ей и положено быть.

Картина 2026 года: FCMP++ и что приходит после RingCT

RingCT оказался поразительно живучим, но Monero Research Lab годами готовит ему преемника. Главное изменение предстоящего цикла хардфорков — FCMP++ (Full Chain Membership Proofs), разработка под руководством Люка «kayabaNerve» Паркера, Аарона Файкерта и других исследователей. Вместо кольца из 16 элементов вход FCMP++ доказывает членство во множестве всех когда-либо созданных тратящихся выходов цепочки Monero — anonymity set измеряется десятками миллионов.

FCMP++ построен на Curve Trees — рекурсивной коммитментной структуре, позволяющей пруверу убедить верификатора в членстве в гигантском подобии дерева Меркла доказательствами длиной всего в несколько килобайт. Главное — он не требует trusted setup, сохраняя свойство «без токсичного остатка», отличающее Monero от zk-SNARK-цепочек. После активации он по сути снимает давнюю претензию о том, что anonymity set Monero ограничен размером кольца.

Параллельно с FCMP++ протокол транзакций Seraphis (разработан koe и MRL) и формат адресов Jamtis заменят текущий стек MLSAG/CLSAG/субадресов на что-то более чистое, эффективное и гибкое. В совокупности это крупнейший переход, через который Monero проходит со времён выхода самого RingCT в 2017-м.

Что это значит для пользователей? На практике — почти ничего в повседневном опыте. Кошельки обновятся, комиссии могут снизиться, транзакции — стать меньше. Гарантии приватности усилятся, а пользовательский путь — вставил адрес, подтвердил сумму, дождался подтверждения — останется тем же. То же касается всех, кто пользуется обменниками без KYC вроде MoneroSwapper: лежащий в основе криптографический переход с интерфейса свопа невидим, но монеты, получаемые на выходе, попадают в кошелёк уже с заметно более сильными свойствами приватности, чем у RingCT-выходов образца 2017 года.

Реальный кейс: где проходят границы RingCT

Чтобы абстракция стала конкретной, рассмотрим академический анализ 2024 года, опубликованный в трудах конференции Financial Cryptography. Исследователи пытались деанонимизировать выборку пост-2022-х транзакций Monero сочетанием тайминг-анализа, мониторинга мемпула и статистических предположений по распределению возраста членов кольца. После разбора более 200 000 транзакций «угадывания» реального входа оказались правильными примерно с той же частотой, что и при случайном выборе из кольца размера 16 — около 6,25 %. Иными словами, криптография устояла, а единые дефолты протокола не оставили статистических зацепок.

Это важно, потому что системы приватности обычно ломаются не на уровне математики, а на уровне метаданных. Единый размер кольца в 16, обязательный RingCT, жёстко прописанный Bulletproofs+ с 2022 года и распространение через Dandelion++ — это осознанные решения, минимизирующие метаданную поверхность. Урок для пользователя прямолинеен: не отступайте от дефолтов, по возможности держите свою ноду и относитесь к биржам и централизованным сервисам как к слабейшему звену, а не к протоколу. Особенно актуально это в российском контексте, где централизованные площадки часто оказываются под санкционным или регуляторным давлением и могут потребовать KYC, выдать данные или просто отключить вывод. Модель MoneroSwapper без аккаунтов и без идентификации построена именно вокруг этого принципа — нет лога вашей личности, который мог бы утечь, даже если внешняя аналитика цепочек со временем улучшится.

FAQ

Обязателен ли RingCT для каждой транзакции Monero в 2026 году?

Да. С хардфорка сентября 2017 года все транзакции Monero обязаны использовать RingCT. Никакого «прозрачного» legacy-режима с открытыми суммами не существует. Именно эта единообразность и даёт RingCT большую часть его силы — все транзакции структурно идентичны, и никто не выделяется тем, что включил или выключил приватность.

Видят ли разработчики Monero суммы моих переводов?

Нет. Суммы шифруются на общем секрете между отправителем и получателем, а on-chain-обязательство скрывает их ото всех остальных, включая ядро разработчиков, майнеров и операторов нод. Прочитать реальные значения могут только отправитель, получатель и любой, с кем они явно поделились своим view key.

Замедляет ли RingCT Monero по сравнению с биткоином?

Транзакции Monero крупнее и дольше верифицируются, чем биткоиновые, но время блока (2 минуты) короче, а пакетная верификация Bulletproofs+ почти полностью закрыла разрыв в скорости на одну транзакцию. Современная нода синхронизирует цепочку Monero примерно за сутки на потребительском железе.

В чём разница между RingCT и кольцевыми подписями?

Кольцевые подписи скрывают, какой именно вход тратится среди множества кандидатов. RingCT скрывает сумму. Современные транзакции Monero используют и то и другое: подпись CLSAG — для анонимности входов, обязательства Педерсена и доказательства диапазона Bulletproofs+ — для конфиденциальности сумм. Вместе они и составляют полную схему RingCT.

Полностью ли FCMP++ заменит RingCT?

FCMP++ заменяет именно компонент кольцевой подписи на доказательство членства по всей цепочке, радикально расширяя anonymity set. Компоненты сокрытия суммы — обязательства Педерсена и range-доказательства — продолжат использоваться в новой схеме. Так что FCMP++ правильнее понимать как следующее поколение RingCT, а не как полную замену.

Если я обменяю биткоин на Monero, получают ли мои монеты защиту RingCT?

Да. Как только XMR приходит в кошелёк Monero, любая последующая отправка по умолчанию использует RingCT. Сам обмен происходит off-chain — на сервисе вроде MoneroSwapper, где атомарные свопы или книжные ордера переносят стоимость между двумя цепочками. С момента, когда сторона Monero в свопе закрывается, стандартные защиты RingCT начинают действовать для каждой исходящей транзакции.

А что насчёт российских регуляторов и приватности Monero?

В рамках российского законодательства о ЦФА и обороте криптовалют Monero и другие приватные монеты находятся в серой зоне: ЦБ РФ исторически относится к ним настороженно, а ФНС интересуется источниками средств при крупных конверсиях. Сама по себе технология RingCT не криминализирована, но российский пользователь должен трезво оценивать, что слабым звеном почти всегда оказывается централизованный обменник или биржа, а не криптография протокола. Использование сервисов без аккаунтов и собственная нода — это не «обход закона», а нормальная цифровая гигиена в условиях, когда централизованные посредники могут быть принуждены к раскрытию данных.

Заключение

RingCT — это та часть Monero, которая превращает «приватную криптовалюту» из лозунга в проверяемое криптографическое свойство. Связка обязательств Педерсена, range-доказательств Bulletproofs+ и кольцевых подписей CLSAG позволяет каждой ноде убедиться, что баланс сошёлся, не увидев ни одной суммы. Почти через десять лет после запуска в 2017 году RingCT остаётся эталоном, с которым сравнивают любые другие схемы сокрытия сумм, и предстоящий апгрейд FCMP++ только усилит этот отрыв, закрыв историческую критику об ограниченности кольца.

Если вы не просто читаете о RingCT, а реально им пользуетесь, практические приоритеты выглядят так: держите кошелёк на дефолтных настройках, по возможности запускайте собственную ноду, отдавайте предпочтение сервисам, которые не собирают идентифицирующих данных, и помните, что слабейшим звеном вашей приватности почти никогда не оказывается математика. Для входа в XMR и выхода из него без KYC-следа MoneroSwapper предлагает свопы без аккаунтов, доставляющие монеты прямо в защищённый RingCT кошелёк — описанная в статье криптография включается в работу ровно в тот момент, когда вы нажимаете «Отправить».

Поделиться статьей

Похожие статьи

Анонимный Обмен Monero

Без KYC • Без регистрации • Мгновенный обмен

Обменять сейчас