Monero: ring signatures, stealth addresses, RingCT и приватность транзакций

Radar Expert разбирает XMR без магической формулы «всё скрыто»: stealth addresses скрывают связь с публичным адресом получателя, CLSAG ring signatures смешивают real spend с decoys, key images защищают от double-spend, RingCT скрывает amounts, view keys дают selective disclosure, а RandomX отделяет privacy layer от PoW security.

Monero: ring signatures, stealth addresses, RingCT и приватность транзакций
Приватность Monero не создаётся одной функцией. Разные cryptographic primitives скрывают разные связи transaction graph. **Stealth addresses** не дают observer связать onchain output с опубликованным адресом получателя. **Ring signatures** делают неоднозначным, какой из нескольких исторических outputs реально тратится. **Key image** позволяет сети обнаружить double-spend, не раскрывая real ring member. **RingCT** скрывает amounts через commitments и range proofs. View keys дают ограниченную selective disclosure, а RandomX вообще относится не к privacy, а к Proof-of-Work security. Если смешать эти роли в одно слово «анонимность», легко неправильно понять и сильные стороны XMR, и его реальные leakage surfaces.

Приватность Monero состоит из нескольких независимых слоёв

Обычный прозрачный UTXO explorer позволяет увидеть три базовые связи: **кто тратит**, **кому платит** и **сколько переводит**. Monero проектировался так, чтобы закрывать эти три направления разными механизмами.

Sender ambiguity скрывается ring signature

Input указывает не на один очевидный spent output, а на ring из нескольких потенциальных members. Consensus проверяет, что signer владеет **одним** из них, но observer не узнаёт каким именно.

Recipient unlinkability создаётся one-time output key

Публичный Monero address не записывается в каждый входящий output. Sender выводит новый stealth destination key, уникальный для конкретного платежа.

Amount confidentiality обеспечивается RingCT

Value не публикуется как clear integer. Pedersen-style commitments позволяют проверять conservation of value, а range proof доказывает, что скрытый amount не отрицательный и не вышел за допустимый диапазон.

Monero объединяет sender ambiguity, recipient unlinkability и confidential amounts в одном privacy-by-default transaction model
Официальный Monero visual используется как карта трёх независимых privacy layers, которые нельзя сводить к одной функции.

Privacy-by-default важна для anonymity set

Если confidential mode включают только редкие пользователи, сам факт его использования становится signal. Monero применяет privacy primitives по умолчанию для обычных transfers, чтобы protected flow не был отдельным «privacy transaction type».

Но default privacy не означает отсутствие metadata

Wallet connection к remote node, IP timing, exchange KYC records, reuse operational patterns, unusual transaction timing и mistakes пользователя могут создавать linkage вне cryptographic transaction layer.

Stealth addresses скрывают получателя через one-time destinations

Monero user публикует один standard address, построенный из public spend key и public view key. Но sender не отправляет funds прямо на этот static key.

Sender генерирует уникальный one-time output key

Используя recipient public keys и случайный transaction secret, sender выводит destination, который выглядит как новый unrelated public key. Два платежа одному и тому же public address создают разные outputs.

Receiver сканирует chain private view key

Wallet использует private view key, чтобы проверить, какие outputs принадлежат этому account. Observer без соответствующего key не может просто отфильтровать blockchain по опубликованному address.

Spend key остаётся отдельным полномочием

Private spend key нужен для authorizing spend. Это позволяет архитектурно отделить scanning/monitoring от spending capability.

Monero stealth address flow: опубликованный адрес используется для вывода уникального one-time destination каждого платежа
Официальный Monero stealth-address poster показывает, почему один публичный адрес не появляется напрямую как повторяющийся onchain recipient.

Повторное получение на один address не создаёт очевидный address cluster

В прозрачной account chain все deposits на один address легко агрегировать. В Monero observer видит набор one-time outputs без публичного доказательства, что они принадлежат одному recipient.

Subaddresses улучшают operational separation

Wallet может создавать subaddresses для разных контрагентов, invoices или identities. Это снижает необходимость раздавать один и тот же public address и помогает локально классифицировать incoming payments.

Subaddress не является отдельным wallet balance account

Это derivation внутри одного wallet key hierarchy. Owner может управлять большим количеством subaddresses, сохраняя общую spend/view architecture.

Ring signatures и CLSAG скрывают, какой output реально расходуется

Когда Monero wallet тратит output, он не предъявляет его как единственный source. Он формирует ring, содержащий real member и decoys, выбранные из historical outputs chain.

Current mainnet использует фиксированный ring size 16

Текущий Monero Core consensus после hard-fork version 15 требует mixin 15: **15 decoys + 1 real input = ring size 16** для обычного RingCT spend. Старые docs могут использовать исторические меньшие sizes, поэтому важно смотреть именно current consensus code.

CLSAG делает linkable ring proof компактнее прежних схем

Current transaction format использует CLSAG для signer ambiguity. Signer доказывает знание secret key одного ring member, не раскрывая его index.

Все members выглядят cryptographically valid

Observer видит набор candidate outputs и signature, которая проверяется для ring целиком. Нельзя просто прочитать поле «real input».

Monero ring signature смешивает real spent output с decoys, оставляя observer несколько plausible candidates
Официальный Monero ring-signatures poster иллюстрирует sender ambiguity и невозможность напрямую выбрать real member из ring.

Decoy selection влияет на practical anonymity

Если decoys выбирались бы явно не так, как real spends распределены по возрасту outputs, statistical analyst мог бы назначать candidates разные probabilities. Поэтому wallet sampling policy является частью privacy engineering, а не косметической настройкой.

Ring signature скрывает source, но не может сама предотвращать double-spend

Если spender мог бы создать две разные rings с одним real output, network должна распознать, что secret spend повторился. Эту функцию выполняет key image.

Future privacy research не следует путать с текущим mainnet

Monero Research Lab изучает более крупные anonymity-set конструкции, включая full-chain membership approaches. Но текущий production Monero Core v0.18.5.x по состоянию на 2026 год всё ещё валидирует CLSAG/ring-based spends и Bulletproof+ RingCT. Research roadmap нельзя описывать как уже активированный consensus.

Key images дают linkability double-spend без раскрытия real input

Key image — deterministic cryptographic value, связанное с real spend key/output таким образом, что один и тот же output создаёт один и тот же spend marker.

Node проверяет uniqueness key image

Если transaction предъявляет key image, который уже присутствует среди spent inputs chain, новый spend отвергается. Так Monero получает обычное UTXO property «один coin нельзя потратить дважды».

Observer не получает обратную ссылку на конкретный ring member

Key image linkable между попытками spend одного output, но не раскрывает, какой public output внутри ring является настоящим.

Ring members могут повторно появляться как decoys

Исторический output, который уже использовался как decoy, способен появляться в других rings. Его присутствие не означает, что он spent или unspent в обычном прозрачном смысле.

Explorer поэтому не может построить достоверный spent/unspent graph как Bitcoin

Для transparent UTXO можно пометить outpoint spent после одного input reference. В Monero публичный observer знает key images spends, но не знает corresponding real output among ring candidates.

Key image решает очень точную задачу: **linkability повторного расходования без deanonymization source output**. Это не адрес получателя, не amount commitment и не network identity.

RingCT скрывает amounts, сохраняя conservation of value

Ring Confidential Transactions объединяет sender ambiguity с confidential amounts.

Pedersen commitments прячут value

Вместо публичного числа output содержит commitment. Благодаря algebraic properties сеть может проверить balance inputs/outputs/fees без раскрытия денежных сумм каждому observer.

Range proof доказывает, что hidden value валиден

Без range proof malicious sender мог бы попытаться представить commitment отрицательной или огромной value и нарушить supply. Proof показывает, что committed amount находится в допустимом диапазоне.

Current Monero использует Bulletproof+

Bulletproof+ уменьшает размер и verification cost range proofs относительно более ранних constructions. Current Monero Core hard-fork version 15 включает Bulletproof+ support как стандарт current RingCT path.

RingCT скрывает monetary amounts, а commitments и range proofs позволяют проверять баланс transaction без раскрытия value
Официальный Monero RingCT poster объясняет confidential-amount слой отдельно от sender и recipient privacy.

Fee остаётся protocol-visible

Miner/node должен проверить transaction fee и reward accounting. Privacy модели не нужно скрывать абсолютно каждое numeric field, чтобы скрыть transferred amounts.

Supply audit становится cryptographic, а не визуальным сложением outputs

В прозрачной chain observer складывает visible UTXOs. В confidential system корректность supply зависит от verification commitments, range proofs, coinbase rules и consensus cryptography.

Bulletproof+ уменьшает размер range proofs, используемых для confidential amounts Monero
Официальный Monero Project visual Bulletproofs+ сопровождает переход от скрытого commitment к проверяемому диапазону value.

Confidential amount не скрывает факт существования transaction

Observer всё равно видит transaction object, число inputs/outputs, ring members, key images, fee-related fields, block inclusion и timing. Privacy — это уменьшение semantic information, а не исчезновение transaction из ledger.

View keys дают selective disclosure, но не превращают Monero в прозрачный account chain

Monero wallet имеет private spend key и private view key с разными полномочиями.

Private view key позволяет находить incoming outputs

Watch-only wallet может сканировать blockchain и обнаруживать outputs, предназначенные его account/subaddresses, не имея spend authority.

View key полезен для accounting и audit

Организация может дать auditor доступ к incoming-payment visibility, не передавая private spend key. Это делает privacy **selectively revealable** владельцем.

Outgoing history сложнее одной view-key операции

Старые Moneropedia materials прямо предупреждают, что view-only state не всегда достаточно для полного tracking outgoing spends. Wallet accounting может требовать key images или export additional spend metadata.

Transaction proofs точечнее полного view access

Для подтверждения конкретного payment стороны могут использовать wallet proof mechanisms вместо раскрытия всей account scanning capability.

Selective disclosure не публикует данные всему миру

В прозрачной chain любой observer имеет одинаковый read access. В Monero owner решает, кому отдать view/proof material и какой scope раскрыть.

Monero explorer показывает структуру, но не может восстановить обычный payment graph

Block explorer XMR выглядит беднее Bitcoin/Ethereum explorer не потому, что indexing «плохой», а потому что часть данных consensus специально не раскрывает.

Видны block height, hash, time, fees и transaction identifiers

Можно проверить inclusion transaction, число confirmations и структурные параметры block.

Видны rings и key images, но не real source

Explorer способен перечислить candidate outputs. Он не может честно выделить один как фактически spent только из public consensus data.

Output amount скрыт RingCT

Без wallet keys observer не получает transferred XMR value для обычного RingCT output.

Static recipient address не виден

Onchain destination является one-time key, а не user-published standard/subaddress.

Поэтому «баланс известного Monero address» нельзя получить обычным explorer query

Если business опубликовал Monero address на сайте, внешний analyst не может просто вставить его в explorer и увидеть все deposits, withdrawals и current balance.

Вопрос explorerBitcoin-like transparent UTXOMonero
Какой output реально spent?Обычно видноСкрыто ring ambiguity
Кому принадлежит output?Address/script часто публиченOne-time stealth key
Amount outputПубличенСкрыт RingCT
Double-spend markerOutpoint referenceKey image
Balance public addressЧасто вычислимБез view data не вычислим

Но chain analysis всё равно не равен нулю

Timing, ring composition, transaction shape, known exchange withdrawals/deposits и external metadata могут давать probabilistic clues. Privacy system должен оцениваться против statistical attacks, а не только field visibility.

RandomX защищает Proof of Work и не является privacy primitive

Monero consensus использует RandomX Proof of Work. Его задача — выбрать valid chain/work, а не скрыть transactions.

RandomX оптимизирован под general-purpose CPUs

Algorithm выполняет pseudorandom programs в virtual machine, использует integer/floating-point operations, AES-like functions и memory-heavy dataset accesses. Это усложняет создание hardware с огромным advantage над массовыми CPUs.

Fast mode использует dataset чуть больше 2 GiB

Official RandomX specification задаёт dataset base 2,147,483,648 bytes плюс extra ~33.5 MB. Cache и dataset construction используют Argon2d/SuperscalarHash mechanics.

VM scratchpad составляет 2 MiB на L3 level

Spec задаёт L3 scratchpad 2,097,152 bytes, с вложенными L2 256 KiB и L1 16 KiB regions.

RandomX virtual machine сочетает registers, scratchpad и large dataset для CPU-oriented Proof of Work
Figure из официальной RandomX specification показывает VM components, отделяя mining security от transaction privacy.

«ASIC-resistant» лучше читать как engineering objective, а не физический закон

Любой profitable PoW может стимулировать custom hardware. Цель RandomX — сделать advantage specialized silicon меньше и использовать свойства commodity CPUs как moving target.

Monero target block interval — 120 секунд

Current Core consensus использует DIFFICULTY_TARGET_V2 = **120 seconds**. Как и в других PoW networks, это long-run target, а не гарантия следующего block.

Tail emission поддерживает постоянную subsidy floor

Current reward formula использует final subsidy 0.3 XMR per minute. При двухминутном block target это **0.6 XMR per block** до penalty effects. Поэтому security budget не зависит исключительно от fee market после конечного halving-to-zero.

Mining decentralization и privacy decentralization связаны косвенно

Более распределённый hashpower затрудняет chain-level censorship/reorg, но не меняет cryptographic anonymity ring. И наоборот, сильный RingCT не защищает от 51%-style consensus attack.

Threat model: где privacy может ослабнуть вне cryptography

Monero deliberately hides more transaction semantics than transparent chains, но operational privacy остаётся end-to-end problem.

Remote node может видеть wallet network behavior

Wallet, подключённый к чужому daemon, раскрывает этому operator часть timing/query metadata. Recent Monero Core releases отдельно усиливали privacy/hardening против malicious remote nodes и spy-node patterns.

Exchange превращает cryptographic privacy в identified endpoint

KYC exchange знает account identity и exact deposit/withdraw actions внутри своей системы. Chain скрывает дальнейший graph, но endpoint metadata остаётся мощным signal.

Timing correlation не требует взлома ring signature

Если observer видит network submission и почти одновременный exchange arrival, он может строить probabilistic hypotheses без cryptographic deanonymization.

Decoy analysis является statistical problem

Ring member history, age distribution и known-spend heuristics могут менять posterior probability candidates. Поэтому decoy-selection algorithms регулярно являются предметом Monero research.

Fungibility — экономическое следствие privacy-by-default

Если public observer не может надёжно пометить конкретный output как происходящий из определённой прошлой transaction, coin-history discrimination становится значительно сложнее, чем в fully transparent UTXO chain.

Privacy tools требуют корректного wallet behavior

Sharing keys, screenshots, transaction proofs, exchange records или invoice mapping может добровольно раскрыть связи, которые ledger скрывает. Cryptography не может отменить disclosure пользователя.

Главный вывод

Monero privacy — это **композиция механизмов с разными обязанностями**. Stealth addresses скрывают recipient linkage, создавая one-time outputs. CLSAG ring signatures смешивают real spend с 15 decoys в current ring size 16. Key images делают повторный spend обнаружимым без раскрытия real member. RingCT и Bulletproof+ скрывают amounts, сохраняя проверяемость supply. Private view key позволяет owner selectively раскрывать incoming history без выдачи spend authority.

RandomX находится на другом уровне: это CPU-oriented Proof of Work с двухминутным target block interval и tail-emission floor 0.6 XMR per target block. Он защищает consensus, но не создаёт transaction anonymity.

Правильный анализ XMR поэтому задаёт не один вопрос «анонимно ли?», а несколько: **можно ли связать output с recipient address, можно ли выбрать real input из ring, виден ли amount, какие keys позволяют selective audit, какой metadata остаётся у remote node/exchange и насколько устойчив mining layer.**

Что важно помнить о current mainnet

По состоянию на текущий Monero Core v0.18.5.x production network использует ring-based CLSAG spends, fixed ring size 16 и Bulletproof+ RingCT. Более крупные anonymity-set designs остаются research/development направлением и не должны описываться как уже активированный mainnet consensus.

FAQ

Сколько members в current Monero ring signature?

Для обычного current RingCT spend consensus требует 15 decoys плюс один real member — ring size 16.

Может ли explorer увидеть, откуда именно пришёл XMR input?

Он видит candidate ring members и key image, но public data не указывает, какой member реальный. Аналитика может строить probabilities, но не получает прозрачный outpoint-spent mapping как в Bitcoin.

Что скрывает stealth address?

Связь между опубликованным recipient address и конкретным onchain output. Каждый payment создаёт уникальный one-time destination key.

Что скрывает RingCT?

Transferred amounts. Commitments позволяют проверить balance, а Bulletproof+ range proofs доказывают валидность hidden values без публикации самих сумм.

Что даёт private view key?

Он позволяет wallet сканировать incoming outputs и подходит для ограниченного monitoring/audit без права тратить funds. Полный outgoing accounting может требовать дополнительной wallet metadata.

RandomX делает транзакции приватными?

Нет. RandomX — Proof-of-Work algorithm. Transaction privacy обеспечивают stealth addresses, ring signatures, key images и RingCT.

Почему у Monero есть tail emission?

Current reward formula не падает до абсолютного нуля: final subsidy соответствует 0.6 XMR на двухминутный target block. Это сохраняет постоянный базовый miner incentive вместе с fees.

Материал носит образовательный характер и не является финансовой рекомендацией.

Trust 96 Importance 84 Noise 0% Связанный символ Информационный материал, не является финансовой рекомендацией.