Основы

RingCT и FCMP++ простыми словами

Что есть сейчас, что поменяется и почему это самое большое обновление Monero

Коротко

RingCT (сейчас): ваш настоящий вход спрятан среди 15 случайных чужих. Суммы и получатели скрыты полностью, а вот отправитель — «один из 16».

FCMP++ (скоро): ваш настоящий вход спрятан среди всех выходов, когда-либо созданных в Monero. Приманки больше не нужны, и большинство атак на них исчезает.

Что именно прячет RingCT

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

ВопросЧем прячетсяНасколько хорошо
Сколько?Обязательства Педерсена + Bulletproofs+Полностью. Суммы не видны никому, кроме участников.
Кто получил?Одноразовые адресаПолностью. Ваш адрес никогда не попадает в блокчейн.
Кто отправил?Кольцевые подписи (16 участников)Частично. «Один из 16» — это вероятность, и её можно сужать.

Слабое звено — третья строка. Именно её и заменяет FCMP++.

Как работает кольцо — на пальцах

Чтобы потратить монету, нужно доказать, что она ваша. Monero говорит: «не показывай, какая именно монета твоя. Возьми ещё 15 чужих монет из блокчейна и докажи, что одна из этих 16 — твоя».

RingCT 1 настоящий + 15 приманок FCMP++ 1 настоящий + ~все выходы в блокчейне
Оранжевая точка — настоящий тратимый выход. Справа точек на самом деле больше сотни миллионов.

Приманки выбирает ваш кошелёк, случайно, но не равномерно: свежие выходы берутся чаще, потому что люди чаще тратят свежие деньги. Если бы приманки были равномерно «старыми», настоящий вход выделялся бы молодостью.

Плюсы и минусы RingCT

+ Сильные стороны

  • Суммы и получатели скрыты полностью и надёжно.
  • Приватность обязательна для всех транзакций — толпа большая.
  • Проверенная годами криптография (CLSAG, Bulletproofs+), есть аудиты.
  • Транзакции относительно компактные (~1.5–2 КБ для типичной 2-в-2) и быстро проверяются.
  • Каждая транзакция в отдельности даёт правдоподобное отрицание: «это мог быть не я».

− Слабые стороны

  • Анонимное множество — всего 16. Это мало, если противник может исключать варианты.
  • Атаки исключения: если противник знает, что какая-то приманка на самом деле потрачена в другом месте (или его собственная), круг сужается.
  • EAE-атака: биржа, через которую деньги прошли «туда и обратно», может с высокой вероятностью связать вход и выход.
  • Флуд-атака: кто-то массово создаёт свои выходы, и они становятся вашими приманками — для него «пустыми».
  • Ошибки в алгоритме выбора приманок (такие уже были) делают настоящий вход статистически заметным.
  • Много входов в одной транзакции (объединение монет) — видимая связь между кольцами.

Подробно каждая слабость разобрана на странице «Слабые места RingCT».

Что меняет FCMP++

FCMP++ расшифровывается как Full-Chain Membership Proofs — «доказательства членства во всей цепочке». Плюсы-плюсы — потому что к доказательству членства добавлено ещё кое-что (о нём ниже).

Идея: вместо «мой выход — один из этих 16» транзакция доказывает «мой выход — один из всех выходов в блокчейне», при этом не перечисляя их. Как это возможно, если выходов больше сотни миллионов? Все выходы собраны в особое дерево (похожее на дерево Меркла — Curve Tree), у которого есть один корень. Транзакция доказывает с нулевым разглашением: «я знаю путь от некоторого листа до этого корня, и у меня есть ключ от этого листа».

Аналогия

RingCT: «Деньги дал один из этих 16 человек в комнате». Следователь может опросить их по одному и вычеркнуть тех, у кого алиби.

FCMP++: «Деньги дал кто-то из жителей страны». Вычёркивать бессмысленно.

Что ещё приходит вместе с FCMP++

  • Нет приманок — нет проблем с их выбором. Флуд-атаки, EAE-атаки, статистика возраста входов практически теряют смысл.
  • Forward secrecy. Если в будущем появится квантовый компьютер, способный ломать эллиптические кривые, он сможет подделывать новые транзакции, но не сможет задним числом раскрыть, какие выходы тратились в старых FCMP++-транзакциях (при условии, что адрес получателя не был публичным). Это касается выходов, созданных уже после перехода; старые RingCT-выходы такой защиты не получат.
  • Новая система адресов Carrot: старые адреса продолжают работать, но появляются новые типы ключей — например, ключ, который видит и входящие, и исходящие (честный view-only кошелёк), без права тратить.
  • Задел на будущее: более простые мультиподписи, транзакции, которые можно подписать заранее.

Плюсы и минусы FCMP++

+ Плюсы

  • Анонимное множество — весь блокчейн (на порядки больше 16).
  • Исчезают атаки, основанные на приманках.
  • Квантовая forward secrecy для истории трат.
  • Лучшие view-only кошельки и разграничение прав (Carrot).
  • Существующие адреса и сид-фразы продолжают работать.

− Минусы и цена

  • Транзакции больше и дольше проверяются, чем в RingCT (особенно с ростом числа входов).
  • Новая и сложная криптография: новые кривые (Helios/Selene), новые доказательства. Нужны аудиты, ошибки дороже.
  • Создание транзакции тяжелее для слабых устройств и аппаратных кошельков.
  • Узлам нужно поддерживать дерево всех выходов.
  • Не решает проблемы вне блокчейна: IP-адреса, метаданные, поведение пользователя.

Что поменяется для обычного пользователя?

Почти ничего видимого. После хардфорка кошельки начнут создавать транзакции нового типа. Ваша сид-фраза и адреса продолжат работать. Комиссии могут немного вырасти из-за размера транзакций. Старые монеты можно будет тратить — и они тоже получат анонимное множество «весь блокчейн».

Когда?

FCMP++ требует хардфорка. На ноябрь 2026 года он ещё не активирован на mainnet: идёт публичное тестирование, а по необязывающему черновику плана активация ожидается в начале 2027 года. Подробнее — переход на FCMP++. Смотрите актуальный статус на getmonero.org и в репозитории monero-project — этот сайт описывает устройство, а не расписание.

Куда дальше