Безопасность MoneroP2P
Коротко: в MoneroP2P никто не хранит средства. Ваши USDT лежат в контракте, который выдаёт деньги только по публичным правилам, а XMR — на адресе, который никто не может переместить без обеих половин ключа. Сервис работает с реальными деньгами в Arbitrum One + Monero, с лимитом 100 USDT за своп, заданным в контракте. Контракт проверен Halmos, Aderyn и Slither, его код опубликован в Sourcify; внешнего аудита пока не было, поэтому каждый своп ограничен.
Почему никто не хранит ваши средства
- USDT лежат в контракте, созданном для вашего свопа. У него нет административных функций: ни мы, ни мейкер не можем их забрать иначе, чем через
claimиrefund. - XMR лежат на общем адресе. Мейкер не может забрать их обратно без вашей половины ключа, а вы не можете забрать их без его половины.
- Ваши ключи создаются в вашем браузере и никогда не отправляются на наши серверы. Сервер отклоняет любое сообщение, содержащее полный приватный ключ.
Как работают возвраты
| Ситуация | Что происходит |
|---|---|
| Мейкер не вносит XMR | Вы делаете возврат до t0 (приложение попросит об этом) |
| Мейкер вносит меньше XMR | Вы не подтверждаете и делаете возврат до t0 |
| Вы подтвердили, а мейкер не забирает оплату | Вы делаете возврат начиная с t1 |
| Вы закрыли вкладку | Вернитесь с файлом восстановления |
Риски, о которых нужно знать
- Сроки. Если вы не сделаете возврат вовремя, когда XMR не пришли, можно потерять USDT. Приложение предупредит, но оно должно быть открыто, или вам нужно вернуться с файлом.
- Файл восстановления. Без него и его пароля вы не сможете получить XMR или сделать возврат. Мы не можем восстановить его за вас.
- Заморозка USDT. Tether может замораживать адреса. Каждый своп использует отдельный контракт, но риск существует.
- Пока нет внешнего аудита. Контракт прошёл автоматическую проверку (Halmos, Aderyn, Slither), но в ПО всё равно могут быть ошибки. Лимит 100 USDT за своп ограничивает то, чем рискует один своп.
- Конфиденциальность. Прокси узлов Monero видит, какие запросы делает ваш браузер. Можно использовать свой узел.
Как мы защищаем приложение
- Строгая Content Security Policy: приложение выполняет только собственный код.
- Subresource Integrity для скриптов и стилей; целостность криптографического ядра проверяется перед использованием.
- Никаких сторонних скриптов, аналитики и cookie.
- Проверяемые сборки: мы публикуем
SHA256SUMSдля каждого файла и копию в IPFS.
Аудиты
Контракт проверен свободными открытыми инструментами: Halmos (символьная верификация, 7/7 свойств доказаны для всех входных данных), Aderyn (0 находок высокой критичности) и Slither (нет находок средней или высокой критичности). Его код верифицирован в Sourcify (точное совпадение). Отчёт: docs/AUDITORIA-GRATUITA.md. Внешний аудит ещё впереди; подготовленный объём работ — в docs/AUDITORIA.md.
Исходный код и сообщения об уязвимостях
Открытый код (AGPL-3.0): github.com/juanjobs39-cloud/xmrp2p. Чтобы сообщить об уязвимости, используйте приватные отчёты GitHub, как описано в SECURITY.md.