> ## Documentation Index
> Fetch the complete documentation index at: https://www.helius.dev/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Конфиденциальный ввод и вывод фиатных средств

> Вводите фиатные средства напрямую на приватный баланс и выводите их с него, не раскрывая актив или сумму.

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

<img src="https://mintcdn.com/helius/q7LsEOD0O5LZhnha/images/privacy/on-off-ramp/on-offramp-overview.svg?fit=max&auto=format&n=q7LsEOD0O5LZhnha&q=85&s=5678250e0ea926b6461a4c09e2fa5886" alt="A fiat on-ramp and off-ramp. On the fiat side, a User fiat balance box connects by a two-way arrow to an Onramp Provider and Offramp Provider circle that straddles a dashed divider between fiat and onchain. On the private onchain side, the provider connects by a two-way arrow to user wallets holding private balances." width="1560" height="500" data-path="images/privacy/on-off-ramp/on-offramp-overview.svg" />

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

<Tabs>
  <Tab title="On-ramp from fiat balance">
    | Поле | Видимость | Причина |
    | - | - | - |
    | Баланс в фиатной валюте и платеж | Не в блокчейне | Фиатный платеж не проводится в блокчейне |
    | Актив | Конфиденциально | Актив зашифрован в блокчейне |
    | Сумма | Конфиденциально | Переведенная сумма зашифрована в блокчейне |
    | Отправитель | Публично | Адрес кошелька провайдера ввода фиатных средств виден в блокчейне. |
    | Получатель | Публично | Адрес кошелька пользователя виден в блокчейне. |
    | Примечание (необязательно) | Конфиденциально | Примечание зашифровано в блокчейне. |
  </Tab>

  <Tab title="Off-ramp to fiat balance">
    | Поле | Видимость | Причина |
    | - | - | - |
    | Выплата в фиатной валюте | Не в блокчейне | Выплата в фиатной валюте не выполняется в блокчейне |
    | Актив | Конфиденциально | Актив зашифрован в блокчейне |
    | Сумма | Конфиденциально | Переводимая сумма зашифрована в блокчейне |
    | Отправитель | Публично | Адрес кошелька пользователя виден в блокчейне. |
    | Получатель | Публично | Адрес кошелька провайдера вывода в фиатную валюту виден в блокчейне. |
    | Примечание (необязательно) | Конфиденциально | Примечание зашифровано в блокчейне. |
  </Tab>
</Tabs>

Вам потребуется:

* Конфиденциальный баланс для каждого поддерживаемого актива, например USDC, SOL или любого токена SPL либо Token-2022. См. раздел [Конфиденциальные активы и резервы](#конфиденциальные-активы-и-резервы).
* Пользователи с приватным кошельком.

## Конфиденциальные активы и резервы

Чтобы пополнить конфиденциальный баланс для ввода и вывода средств, внесите средства с уже имеющегося публичного баланса, например из горячего кошелька или кастодиального счета.

* **Внесите средства на конфиденциальный баланс для ввода и вывода.** Вы вносите токены SPL и получаете конфиденциальный баланс в том же токене. При пополнении с публичного баланса раскрываются внесенный актив и сумма.
* **Обрабатывайте ввод и вывод средств.** Для ввода средств вы отправляете пользователям приватные переводы со своего конфиденциального баланса, а для вывода — получаете приватные переводы от пользователей. Эти переводы не раскрывают актив или сумму.
* **Выведите средства с конфиденциального баланса для ввода и вывода.** Вы расходуете конфиденциальный баланс и получаете токены SPL на публичный баланс. При выводе раскрываются выведенный актив и сумма.

Храните резервы на конфиденциальном балансе для ввода и вывода средств и пополняйте его, когда он опускается ниже установленного порога, как в случае с публичным горячим кошельком.

## Требования комплаенса

Конфиденциальный ввод или вывод средств не меняет стандартные процедуры комплаенса.

* Вы проверяете, сопоставляете и регистрируете те же публичные адреса Solana, что и сейчас, поскольку конфиденциальный Ring шифрует актив и сумму, но не отправителя или получателя.
* Рекомендуем проверить следующие аспекты на соответствие вашим текущим процедурам комплаенса.

### Какие данные вам доступны

| Данные | Публично в ончейне | Видны вам |
| - | - | - |
| Адрес кошелька пользователя | Да | Да |
| Адрес вашего кошелька для ввода и вывода средств | Да | Да |
| Актив и сумма переводов между вами и пользователем | Нет | Да, вы расшифровываете отправляемые и получаемые переводы |
| Отправитель и получатель других приватных переводов пользователя в конфиденциальном Ring | Да | Да |
| Актив и сумма других приватных переводов пользователя | Нет | Только если пользователь предоставит ключ просмотра |
| Приватный баланс пользователя | Нет | Только если пользователь предоставит ключ просмотра |

### Проверка кошельков

Проверка кошельков не меняется:

* Перед приемом заявки проверьте адрес Solana пользователя через своего текущего поставщика услуг проверки и отмените заявку, если адрес помечен как подозрительный.
* В конфиденциальном Ring отправитель и получатель каждого приватного перевода публично доступны в ончейне, поэтому можно проверить, с кем пользователь проводит транзакции. Шифруются только актив и сумма.

### Travel Rule

Требования Travel Rule для конфиденциальных переводов не меняются.

Для переводов на некастодиальный кошелек или с него вы проверяете, что клиент владеет адресом или контролирует его.
Информация об отправителе и получателе передается между поставщиками услуг вне ончейна, поэтому шифрование актива и суммы в ончейне на нее не влияет.

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

* Подписание сообщения — пользователь подписывает заданное вами сообщение своим ключом Solana.
* Заранее заданная сумма — пользователь отправляет заранее заданную сумму на ваш конфиденциальный баланс для ввода и вывода средств посредством приватного перевода. Вы расшифровываете перевод и проверяете сумму.

Вы знаете сумму каждого отправляемого или получаемого перевода, поэтому применяете пороговые значения суммы так же, как для публичных переводов.

Проверка владения выполняется в рамках текущего процесса онбординга и не требует от пользователей дополнительных действий по сравнению с публичным кошельком.

### Сопоставьте с текущим процессом

| Текущий этап | Этап для конфиденциальных операций |
| - | - |
| Проверить адрес кошелька пользователя | Без изменений |
| Проверить владение некастодиальным кошельком, например для соблюдения Travel Rule | Без изменений. Пользователь подписывает сообщение тем же ключом Solana |
| Отправить криптовалюту для заявки на ввод средств | Отправить приватный перевод с конфиденциального баланса для ввода и вывода средств |
| Обнаружить депозит для вывода средств | Синхронизировать конфиденциальный баланс для ввода и вывода средств и сопоставить перевод по адресу Solana отправителя |
| Зарегистрировать сумму заявки | Расшифровать перевод с помощью ключа просмотра и сохранить его вместе с заявкой |
| Хранить резервы в горячем кошельке | Хранить конфиденциальный баланс для ввода и вывода средств и пополнять его с публичного баланса |

### Учет и аудит

Вы расшифровываете каждый отправляемый или получаемый перевод, поэтому ваши записи содержат те же данные, что и для публичных переводов.

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

## Потоки транзакций

### 1. Ввод средств

При вводе средств пополняется приватный баланс: пользователь переводит фиатные средства вне ончейна, а провайдер отправляет приватный перевод в ончейне со своего конфиденциального баланса для ввода и вывода средств на приватный кошелек пользователя.

1. Пользователь вносит фиатные средства.
2. Провайдер сопоставляет фиатный депозит пользователя с приватным кошельком во внутреннем реестре.
3. Провайдер синхронизирует свой конфиденциальный баланс для ввода и вывода средств, а затем отправляет приватный перевод на приватный кошелек пользователя.

```mermaid theme={"system"}
%%{init: {
  'theme': 'base',
  'themeVariables': {
    'lineColor':           '#FF6B35',
    'primaryTextColor':    '#737373',
    'primaryBorderColor':  '#9CA3AF',
    'actorBkg':            '#FFFFFF',
    'actorBorder':         '#9CA3AF',
    'actorTextColor':      '#737373',
    'signalColor':         '#FF6B35',
    'signalTextColor':     '#737373',
    'labelBoxBkgColor':    '#FF6B351F',
    'labelBoxBorderColor': '#FF6B35',
    'noteBkgColor':        '#F5F5F5',
    'noteTextColor':       '#737373',
    'noteBorderColor':     '#9CA3AF'
  }
}}%%
sequenceDiagram
    participant User
    participant UW as UserWallet
    participant P as Provider OnOfframp
    participant RPC as RPC
    participant SPP as Solana

    User->>P: onramp request (fiat amount)

    P->>RPC: sync the on/off-ramp balance
    RPC-->>P: latest on/off-ramp balance
    Note over P: build and sign the private transfer
    P->>RPC: request proof
    RPC-->>P: proof
    P->>SPP: submit private transfer (on/off-ramp balance to user)
    SPP-->>P: confirmed, transaction hash

    UW->>RPC: sync private balance
    RPC-->>UW: confirm private balance
```

### 2. Вывод средств

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

Для выполнения приватного вывода средств:

1. Пользователь синхронизирует свой приватный баланс и отправляет приватный перевод на конфиденциальный баланс провайдера для ввода и вывода средств.
2. В конфиденциальном Ring провайдер может сопоставить перевод по видимому адресу кошелька пользователя. В анонимном Ring публичный реестр не раскрывает отправителя или получателя; сопоставьте перевод с запросом на вывод средств во внутреннем реестре.

```mermaid theme={"system"}
%%{init: {
  'theme': 'base',
  'themeVariables': {
    'lineColor':           '#FF6B35',
    'primaryTextColor':    '#737373',
    'primaryBorderColor':  '#9CA3AF',
    'actorBkg':            '#FFFFFF',
    'actorBorder':         '#9CA3AF',
    'actorTextColor':      '#737373',
    'signalColor':         '#FF6B35',
    'signalTextColor':     '#737373',
    'labelBoxBkgColor':    '#FF6B351F',
    'labelBoxBorderColor': '#FF6B35',
    'noteBkgColor':        '#F5F5F5',
    'noteTextColor':       '#737373',
    'noteBorderColor':     '#9CA3AF'
  }
}}%%
sequenceDiagram
    participant User
    participant UW as UserWallet
    participant P as Provider OnOfframp
    participant RPC as RPC
    participant SPP as Solana

    User->>P: send off-ramp request (amount)

    UW->>RPC: sync private balance
    Note over UW: build and sign the private transfer
    UW->>RPC: request proof
    RPC-->>UW: proof
    UW->>SPP: submit private transfer (user to on/off-ramp balance)
    SPP-->>UW: confirmed, transaction hash

    P->>RPC: sync on/off-ramp balance
    RPC-->>P: off-ramp request confirmed
    Note over P: match sender to a user, credit fiat ledger
    P->>User: pay out fiat
```

## Начните интеграцию

<Steps>
  <Step>
    ### Изучите пользовательские сценарии

    <a href="https://www.helius.dev/privacy/demo" target="_blank" rel="noopener noreferrer" className="not-prose">
      <Card title="Launch Demo" icon="play">
        Попробуйте конфиденциальные переводы и свопы в devnet.
      </Card>
    </a>
  </Step>

  <Step>
    ### Создайте приватный кошелек

    <CardGroup cols={2}>
      <Card title="Native Wallet Integration" icon="wallet" href="/docs/ru/privacy/integration/wallet">
        Добавьте поддержку конфиденциальности с собственным управлением ключами. Для провайдеров, которые хотят управлять ключами шифрования и выполнять синхронизацию состояния.
      </Card>

      <Card title="Embedded Private Wallet" icon="key" href="/docs/ru/privacy/integration/embedded-wallet">
        Используйте встроенный кошелек с приватными и публичными балансами непосредственно в своем продукте. Для компаний и приложений без собственной системы управления ключами.
      </Card>
    </CardGroup>
  </Step>

  <Step>
    ### Интегрируйте процессы ввода и вывода средств

    <CardGroup cols={2}>
      <Card title="Deposit" icon="arrow-down-to-bracket" href="/docs/ru/privacy/guides/deposit">
        Пополняйте конфиденциальный баланс для ввода и вывода средств с публичного баланса.
      </Card>

      <Card title="Private Transfer" icon="arrow-right-arrow-left" href="/docs/ru/privacy/guides/transfer">
        Отправляйте пользователям приватные переводы для ввода средств и получайте их для вывода средств.
      </Card>
    </CardGroup>
  </Step>
</Steps>

## Не нашли то, что искали?

<Callout type="info">
  Свяжитесь с нами! [Telegram](https://t.me/tilo_light) | [Электронная почта](mailto:sales@helius.xyz) | [Контакты](https://www.helius.dev/contact)
</Callout>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.