AI Shift
DeFi

Как устроен DeFi: три уровня безопасности......

Сергей Зиненко13 мин чтенияТоп5 мар 2026

Разбираем три уровня DeFi: блокчейн, смарт-контракты и веб-интерфейс. Практический гайд по безопасности для новичков с конкретными примерами.


TL;DR

Разбираем три уровня DeFi: блокчейн, смарт-контракты и веб-интерфейс. Практический гайд по безопасности для новичков с конкретными примерами.

Основной разбор

В этой статье разберём как устроен DeFi — ключевые аспекты и практические рекомендации. Когда я впервые пытался понять, что такое Uniswap и почему MetaMask постоянно просит подтвердить какие-то транзакции, я чувствовал себя идиотом. В голове был хаос: блокчейн, смарт-контракты, веб3-интерфейс — все эти слова смешались в кашу. Потом я понял одну простую вещь: DeFi — это не магия, а всего лишь три чётких уровня, которые работают вместе. И как только ты поймёшь, как они связаны, всё сразу встанет на места.

Почему важно понимать архитектуру DeFi

Данные актуальны на момент написания. Проверяйте текущие показатели на defillama.com.

Вот тебе контринтуитивный факт: большинство людей теряют деньги в DeFi не из-за взломов блокчейна или багов в смарт-контрактах. Они теряют деньги из-за того, что не понимают, на каком уровне происходит действие. Ты подключил MetaMask к подозрительному сайту и думаешь: "Ну всё, меня взломали". Но на самом деле пока ты не подписал транзакцию, твои активы в безопасности.

Когда я настраивал автоматизацию для одного клиента, он панически звонил мне каждый раз, когда видел в MetaMask скам-токен с "ценой" $50,000. Он думал, что его кошелёк взломан. Хотя достаточно было понять: этот токен существует только в блокчейне, а цена — просто число на левом сайте.

Понимание трёх уровней DeFi — это не теория. Это практический фреймворк, который экономит тебе реальные деньги и нервы.

Уровень 1: Блокчейн — единственный источник правды

Блокчейн — это база данных. Только распределённая, неизменяемая и абсолютно прозрачная. Вся информация о твоих активах находится именно здесь. Не в MetaMask. Не на сайте Aave. В блокчейне.

Что хранится в блокчейне

Балансы нативных монет. Каждый адрес в Ethereum хранит значение баланса в ETH. В Binance Smart Chain — в BNB. В Polygon — в MATIC. Это первый тип данных.

Состояние смарт-контрактов. Второй тип — внутренняя память контрактов. Например, контракт токена USDC хранит информацию: сколько USDC на каком адресе. Контракт Uniswap V3 хранит данные о пулах ликвидности, ценах, комиссиях.

Вот простая аналогия: блокчейн — это Excel-таблица, в которой записано:

  • Адрес 0x1234...abcd — 2.5 ETH
  • Адрес 0x5678...efgh — 150 USDC (согласно контракту USDC)
  • Пул ETH/USDC — 1,500 ETH + 3,000,000 USDC (согласно контракту Uniswap)

И эта таблица обновляется только через транзакции.

Как меняется состояние блокчейна

Единственный способ изменить данные в блокчейне — отправить транзакцию. Транзакция делает одно из двух:

  1. Переводит нативную монету с одного адреса на другой (например, 0.5 ETH от тебя другу).
  2. Вызывает функцию смарт-контракта (например, функцию swap() в Uniswap, которая обменивает ETH на USDC).

Каждая транзакция должна быть подписана закрытым ключом отправителя. Это криптографическая подпись, которую невозможно подделать без знания ключа. MetaMask или Trust Wallet хранят этот ключ локально и показывают тебе окошко: "Подтвердить транзакцию?". Пока ты не нажмёшь "Confirm", никакая транзакция не уйдёт.

Важный момент для безопасности: Без твоего закрытого ключа никто не может создать транзакцию от твоего имени. Даже если ты подключил MetaMask к 100 фишинговым сайтам. Опасность начинается только когда ты подписываешь что-то руками.

Прозрачность блокчейна

Всё, что происходит в блокчейне, видно всем. Ты можешь зайти на Etherscan, вбить любой адрес и увидеть:

  • Сколько ETH и токенов на балансе
  • Все транзакции (когда, куда, сколько)
  • Все взаимодействия со смарт-контрактами

В моей практике я часто анализирую адреса перед работой с новым протоколом. Например, проверяю адрес создателя смарт-контракта: если он массово выводит средства из пула ликвидности, это red flag.

Уровень 2: Смарт-контракты — логика протоколов

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

Как работают смарт-контракты

Возьмём простой пример: контракт токена ERC-20 (стандарт для токенов типа USDC, LINK, UNI). У него есть функции:

Функции чтения (view/pure):

  • balanceOf(address) — узнать баланс токенов на адресе
  • totalSupply() — узнать общее количество токенов

Эти функции бесплатны. Ты просто читаешь данные из блокчейна.

Функции записи:

  • transfer(address to, uint256 amount) — отправить токены
  • approve(address spender, uint256 amount) — дать разрешение смарт-контракту распоряжаться твоими токенами

За вызов этих функций ты платишь газ (комиссию майнерам), потому что меняешь состояние блокчейна.

Approve — критическая функция для безопасности

Вот где начинается самое интересное. Допустим, ты хочешь обменять USDC на ETH через Uniswap. Процесс такой:

  1. Ты вызываешь функцию approve() контракта USDC, даёшь разрешение контракту Uniswap тратить 1000 USDC с твоего адреса.
  2. Ты вызываешь функцию swap() контракта Uniswap. Uniswap забирает у тебя 1000 USDC (может это сделать, потому что ты дал approve) и отправляет тебе эквивалент в ETH.

Проблема: Если ты дал approve на максимальную сумму (2^256 - 1, практически бесконечность), то контракт Uniswap теперь может в любой момент забрать все твои USDC. Пока разработчики Uniswap честные — проблем нет. Но если бы контракт был скамом, ты бы потерял всё.

В моей практике у клиента однажды списали 8 ETH через старое approve разрешение на подозрительный контракт, которому он дал доступ год назад при минте NFT. Он забыл отозвать разрешение.

Неизменяемость смарт-контрактов

Как только смарт-контракт задеплоен в блокчейн, его код нельзя изменить. Никак. Даже разработчики протокола не могут "починить" контракт после деплоя. Это защита от произвола, но и проблема: если в контракте баг, он останется навсегда.

Поэтому перед работой с новым DeFi-протоколом я всегда проверяю:

  • Прошёл ли контракт аудит (CertiK, Trail of Bits, OpenZeppelin)
  • Есть ли верифицированный код на Etherscan
  • Сколько TVL (total value locked) — если миллионы долларов, значит контракт прошёл тест временем

Уровень 3: Веб-интерфейс — удобное окно в блокчейн

Сайт app.uniswap.org, app.aave.com или любой другой DeFi-интерфейс — это просто красивая обёртка. В самом сайте ничего не хранится. Ноль информации. Сайт делает две вещи:

📢 Больше практических разборов — в канале «Сергей Зиненко | DeFi-Гедонист». Подписывайтесь, чтобы не пропустить.

  1. Читает данные из блокчейна и показывает их тебе в понятном виде (твой баланс, цены токенов, APY в пулах).
  2. Формирует транзакции и передаёт их в MetaMask для подписания.

Как работает взаимодействие с сайтом

Ты заходишь на Uniswap:

Читайте также

  1. Подключаешь MetaMask — сайт получает доступ к публичному адресу твоего кошелька (0x1234...abcd). Это безопасно, публичный адрес и так виден всем.
  2. Сайт читает блокчейн — показывает тебе баланс ETH, USDC и других токенов через вызовы view-функций контрактов.
  3. Ты нажимаешь "Swap" — сайт формирует две транзакции: approve (дать разрешение) и swap (обменять). Транзакции передаются в MetaMask.
  4. MetaMask показывает окно — ты видишь, какую функцию вызываешь, сколько газа заплатишь, какие данные передаются.
  5. Ты подписываешь — закрытым ключом, транзакция уходит в блокчейн.

Где кроется опасность

Мошеннический сайт может подсунуть тебе вредоносную транзакцию. Например:

Сценарий 1: Approve на скам-контракт Ты думаешь, что даёшь разрешение Uniswap, но на самом деле даёшь разрешение контракту 0xScam...1234, который сразу спишет все токены.

Сценарий 2: Перевод активов Ты думаешь, что покупаешь NFT, но на самом деле просто отправляешь 2 ETH на адрес мошенника.

Сценарий 3: Вредоносная подпись (signature phishing) Сайт просит подписать "безобидное сообщение", но в нём закодирована транзакция на списание токенов (этот метод работает через permit() функцию некоторых токенов).

Я видел случай, когда человек подключился к фейковому сайту "yuniswap.org" (вместо uniswap.org), подписал approve на все свои 15,000 USDT, и через 10 секунд баланс был нулевым.

Семь правил безопасности в DeFi

Теперь ты понимаешь архитектуру. Давай переведём это в практические правила.

Правило 1: Храни закрытый ключ в безопасности

Без закрытого ключа никто не может подписать транзакцию от твоего имени. Даже если ты подключил MetaMask к 50 фишинговым сайтам. Используй:

  • Seed-фразу на бумаге — хранится в сейфе, никогда не вводится в цифровом виде
  • Аппаратный кошелёк (Ledger, Trezor) — для сумм от $5,000
  • Отдельные кошельки для экспериментов — для минтов NFT, airdrop farming, тестирования новых протоколов

Правило 2: Подключение к сайту ≠ опасность

Просто подключить MetaMask — безопасно. Сайт получает только твой публичный адрес. Опасность начинается когда ты подписываешь транзакцию.

Обратное тоже верно: отключение MetaMask от сайта не убирает риски. Если ты уже дал approve, контракт может списать токены даже когда MetaMask отключен.

Правило 3: Управляй approve разрешениями

Два подхода:

Подход А: Approve на точную сумму При каждом свопе даёшь разрешение ровно на ту сумму, которую собираешься обменять. Минус — каждый раз тратишь газ на две транзакции (approve + swap вместо одной).

Подход Б: Периодически отзывай разрешения Раз в месяц заходишь на Revoke.cash или Etherscan Token Approvals, отзываешь все approve у подозрительных контрактов.

Я использую оба метода: для крупных сумм (>$10,000) — approve на точную сумму, для остального — ежемесячная чистка через Revoke.cash.

Правило 4: Проверяй транзакцию перед подписью

MetaMask показывает детали транзакции, но они закодированы в hex. Установи расширения:

  • Stelo (ex-Pocket Universe) — декодирует транзакции, показывает: "Ты отправляешь 2.5 ETH на адрес 0x1234"
  • Fire (ex-MetaMask Security) — предупреждает о подозрительных контрактах
  • DeBank Rabby Wallet — альтернатива MetaMask с лучшим отображением транзакций

Когда я вижу в Stelo: "Ты даёшь approve контракту, созданному 3 дня назад, на все твои 50,000 USDC" — я не подписываю. Очевидно скам.

Правило 5: Новые/подозрительные сайты — только с тестового кошелька

Минт NFT от неизвестного проекта, клейм airdrop от сомнительного токена, новый DeFi-протокол без аудита — создай отдельный кошелёк с минимальной суммой ($50-100). Если это скам, потеряешь копейки.

У меня три типа кошельков:

  1. Холодный (Ledger) — основной капитал, только проверенные протоколы (Aave, Uniswap, Curve)
  2. Горячий основной (MetaMask) — для повседневной работы, до $5,000
  3. Тестовые (5+ адресов) — для экспериментов, airdrop farming, минтов

Правило 6: Никогда не открывай ссылки из личных сообщений

Discord, Telegram, Twitter DM — 99% ссылок там фишинг. Даже если пишет "официальный представитель проекта", даже если ник выглядит правильно.

Классическая схема:

  1. Тебе пишут: "Поздравляем, ты выиграл whitelist на минт NFT! Переходи по ссылке в течение 24 часов"
  2. Ссылка ведёт на фейковый сайт openseea.io (вместо opensea.io)
  3. Ты подписываешь транзакцию на approve всех твоих NFT
  4. Через минуту твой Bored Ape стоимостью $50,000 уходит мошеннику

Правило: Если тебе написали — игнорируй. Если интересно — сам зайди на официальный сайт проекта через Google.

Правило 7: Скам-токены — не трогай вообще

В блокчейне любой может отправить токен на любой адрес. Мошенники массово рассылают токены с названиями типа "OpenSeaBonus.com" или "ClaimReward.io" и высокой "ценой" $10,000.

Ты видишь в MetaMask: "У меня 5,000 токенов ClaimReward, цена $10,000!" → заходишь на сайт из названия токена → подписываешь "claim" → на самом деле подписал approve на все твои USDC.

Правило: Видишь токен, который не покупал — скрывай в MetaMask (Hide token) и забудь.

Практический чеклист безопасности

Перед каждой транзакцией в DeFi задай себе эти вопросы:

Перед approve:

  • Я доверяю этому смарт-контракту? (проверь на Etherscan: дата создания, аудит, TVL)
  • Даю ли я approve на всю сумму или только на нужную?
  • Планирую ли я отозвать это разрешение через неделю?

Перед подписью:

  • Что именно делает эта транзакция? (смотри в Stelo/Fire)
  • Правильный ли адрес получателя? (проверь первые 4 и последние 4 символа)
  • Адекватная ли цена газа? (если газ $500 для транзакции на $100 — что-то не так)

После взаимодействия с новым протоколом:

  • Отозвал ли я approve, если больше не планирую использовать протокол?
  • Перевёл ли я основные средства обратно на холодный кошелёк?

Инструменты для безопасной работы в DeFi

Расширения для браузера

Stelo (Pocket Universe) — декодирование транзакций

  • Показывает человекочитаемое описание: "Ты отправляешь 2.5 ETH на адрес 0x1234"
  • Предупреждает о подозрительных контрактах
  • Бесплатная версия покрывает 90% кейсов

Fire (ранее MetaMask Security) — анализ контрактов

  • Проверяет смарт-контракты в реальном времени
  • Показывает: аудит, возраст контракта, репутацию
  • Блокирует заведомо скамовые сайты

DeBank Rabby Wallet — альтернатива MetaMask

  • Лучшее отображение транзакций
  • Автоматически определяет сеть (не нужно переключать вручную между Ethereum, BSC, Polygon)
  • Показывает изменение баланса до подписи: "Ты потеряешь 1,000 USDC, получишь 0.5 ETH"

Сервисы для проверки approve

Revoke.cash — отзыв разрешений

  • Показывает все активные approve на твоём адресе
  • Одним кликом отзываешь разрешение (платишь только газ)
  • Поддерживает 50+ блокчейнов

Etherscan Token Approvals (вкладка на странице адреса)

  • Встроенный инструмент Etherscan
  • Менее удобный чем Revoke.cash, но не требует подключения кошелька

DeBank Security (вкладка Approvals)

  • Показывает активные approve
  • Оценивает риски (высокий/средний/низкий)
  • Бесплатно для всех

Как я использую эти инструменты

Мой workflow:

  1. Перед работой с новым протоколом — проверяю контракт на Etherscan (дата создания, верифицированный код, аудит)
  2. Подписываю транзакцию — смотрю в Stelo, что именно происходит
  3. Раз в месяц — захожу на Revoke.cash, отзываю все approve у контрактов, которыми не пользуюсь

Это занимает 10 минут в месяц и за два года сэкономило мне минимум $15,000 (один раз предотвратило скам, который мог обнулить кошелёк).

Типичные ошибки новичков

Ошибка 1: Путаница уровней

"Я отключил MetaMask от сайта, значит мои деньги в безопасности" — нет. Если ты уже дал approve, контракт может списать токены независимо от подключения.

Ошибка 2: Игнорирование approve

"Я просто подключил кошелёк к сайту для минта NFT за $100, что может пойти не так?" — может пойти не так approve на все твои 20 ETH. Один клик на "Confirm" без чтения деталей — и всё.

Ошибка 3: Доверие к UI сайта

"На сайте написано: я отправляю 1 ETH и получу 100,000 SHIB" — а в реальной транзакции (смотри Stelo) написано: "Ты отправляешь 1 ETH на адрес 0xScam...1234 и не получаешь ничего". Сайт врёт, блокчейн — нет.

Ошибка 4: Один кошелёк на все случаи жизни

Использовать один кошелёк для Aave (где лежит $50,000) и для минта сомнительных NFT (риск скама 80%) — это как ходить в казино с кошельком, где все сбережения.

Как DeFi отличается от CeFi в плане безопасности

В централизованной бирже (Binance, Coinbase) твои деньги контролирует компания. Если биржу взломают — ты теряешь всё (пример: FTX, 2022, $8 млрд).

В DeFi ты контролируешь свои активы через закрытый ключ. Преимущества:

  • Никто не может заморозить твой счёт
  • Никто не может украсть твои деньги без твоего ключа
  • Транзакции невозможно отменить или подделать

Недостатки:

  • Если потеряешь ключ — потеряешь всё, возврата нет
  • Если подпишешь скамовую транзакцию — вернуть деньги невозможно
  • Ответственность 100% на тебе

Поэтому понимание трёх уровней DeFi — это не опция, а обязательное условие для работы с протоколами.

Продвинутые техники безопасности

Мультисиг-кошельки

Для сумм от $50,000 рассмотри Gnosis Safe (теперь называется Safe). Это контракт, который требует подтверждения от N из M владельцев (например, 2 из 3).

Сценарий: ты создаёшь Safe с тремя владельцами — твой основной кошелёк, аппаратный кошелёк друга, бумажная seed-фраза в банковской ячейке. Для любой транзакции нужно 2 подписи из 3.

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

Timelock на крупные транзакции

Некоторые кошельки (Argent) позволяют настроить задержку 24-48 часов на крупные переводы. Если ты подписал скамовую транзакцию случайно — успеешь отменить.

Whitelisting адресов

Протокол: ты можешь отправлять средства только на заранее одобренные адреса. Если попытаешься отправить на адрес скамера — транзакция не пройдёт.

Я не использую эти техники для сумм до $20,000 (избыточно), но для крупного капитала это стандарт.

Что дальше

Теперь ты понимаешь, как устроен DeFi на уровне архитектуры. Следующий шаг — практика. Создай тестовый кошелёк, закинь $50, попробуй:

  1. Сделать swap на Uniswap в тестовой сети (Goerli) — понять как работает approve
  2. Проверить активные approve на Revoke.cash
  3. Установить Stelo и посмотреть как он декодирует транзакции

Для продвинутых тем по DeFi-безопасности подписывайся на мой Telegram канал: https://t.me/+y9vUCFalo1E0NGUy — там разбираю реальные кейсы скама, новые векторы атак и инструменты защиты.

Чеклист действий

Шаг 1: Зайди на Revoke.cash, подключи кошелёк, найди подозрительный контракт в списке approve.

Шаг 2: Нажми "Revoke" напротив этого контракта, подпиши транзакцию (заплатишь газ ~$5-30 в зависимости от сети).

Шаг 3: Если токены уже списаны — проверь транзакцию на Etherscan (может быть это был легитимный свап, а ты паникуешь зря).

Шаг 4: Если это действительно скам — переведи оставшиеся активы на новый кошелёк. Старый кошелёк считай скомпрометированным.

Я один раз дал approve левому контракту при тестировании нового DEX. Обнаружил через 2 дня, когда проверял активные разрешения. К счастью, успел отозвать до списания средств.

FAQ

Можно ли потерять деньги просто подключив MetaMask к сайту?

Нет. Подключение кошелька даёт сайту доступ только к публичному адресу (который и так виден всем в блокчейне). Риск появляется когда ты подписываешь транзакцию — approve, swap, transfer. До момента подписи ты в безопасности.

Как понять что смарт-контракт безопасный перед тем как дать ему approve?

Проверь на Etherscan: дата создания (контракты младше 1 месяца — риск), верифицированный код (если не верифицирован — красный флаг), аудит от CertiK/Trail of Bits (ищи в документации протокола). Посмотри TVL (total value locked) на DefiLlama — если в контракте заперто $100M+, значит его уже проверили тысячи пользователей.

Что лучше: давать approve на точную сумму или на максимум?

Зависит от суммы и частоты использования. Для крупных разовых операций (>$10,000) — approve на точную сумму, даже если придётся платить газ дважды. Для частого использования проверенных протоколов (Uniswap, Aave) — approve на максимум удобнее, но раз в месяц отзывай неиспользуемые разрешения через Revoke.cash.

Если я потерял seed-фразу но кошелёк открыт в MetaMask можно ли восстановить доступ?

Пока MetaMask открыт — можешь создать новый кошелёк, записать его seed-фразу, и перевести все активы со старого на новый. Но как только закроешь MetaMask или переустановишь браузер — доступ к старому кошельку потеряется навсегда. Поэтому немедленно переведи средства если seed-фраза утеряна.

Как часто нужно проверять и отзывать approve разрешения?

Минимум раз в месяц для активных кошельков. После взаимодействия с новым/непроверенным протоколом — сразу после завершения операций (если не планируешь использовать снова). Используй Revoke.cash или DeBank — процесс занимает 5 минут, стоимость $3-20 газа в зависимости от количества разрешений и сети.

Источники

  1. defillama.com

Читайте также

СЗ

Сергей Зиненко

Эксперт по AI-автоматизации и DeFi. Пишу практические разборы, чтобы упростить вход в сложные темы и помочь действовать без лишнего шума.