Что такое риск смарт-контракта?

Риск смарт-контракта — это шанс потерять стоимость — или потерять к ней usable-доступ — потому что поведение ончейн-программы, её зависимости, её оракулы или её админ- / upgrade-полномочия дают исход, который вы не собирались принимать, когда вносили депозит, одобряли spender или взаимодействовали. Риск смарт-контракта — это не «сеть забыла ваши монеты».
Определение
Риск смарт-контракта — это шанс потерять стоимость — или потерять к ней usable-доступ — потому что поведение ончейн-программы, её зависимости, её оракулы или её админ- / upgrade-полномочия дают исход, который вы не собирались принимать, когда вносили депозит, одобряли spender или взаимодействовали.
Простыми словами:
Риск смарт-контракта — это не «сеть забыла ваши монеты». Это риск того, что код, который вы авторизовали — или код, который может переписать правила уже после депозита — по собственной логике перемещает, замораживает, неверно оценивает или опустошает стоимость.
Кастодия спрашивает, кто может тратить. Риск смарт-контракта спрашивает, что разрешено делать программам, к которым вы прикасаетесь, какие допущения они делают о мире и кто потом может изменить эти правила.
В торговле
Настоящий торговый вопрос
Для этой протоколной экспозиции могу ли я назвать контракты, поверхности доверия (оракулы, апгрейды, админы) и форму убытка, которую я всё ещё переживу, если эти поверхности откажут — или я подменяю измерение ярлыками «аудирован / высокий TVL / знакомый logo»?
Отвечайте отдельно по каждому депозиту и по каждой поверхности одобрения. Переотвечайте после апгрейдов, после смены оракула и после скачков размера. Одна и та же слоган-формула на каждое DeFi-взаимодействие — ловушка «только узнавания без измерения», которую эта страница оставляет позади.
Два индикатора, которые люди схлопывают в один
| Рыночные заголовки про «взлом» | Протоколные DeFi-экспозиции | |
|---|---|---|
| Что чаще доминирует в долларовых потерях | Ключи, подписанты, инфраструктура кошельков, фронтенды, компрометация админа | Логика протокола и экономические допущения |
| Что чаще доминирует в числе инцидентов | Смешанно; баги кода по-прежнему часты | Логика, контроль доступа, оракул, бухгалтерские пути |
| Ошибка трейдера | Читать каждую историю убытка как «контракты небезопасны, значит избегать DeFi» | Читать каждый audit-бейдж как «кодовый риск закрыт» |
| Полезный ответ | Держать кастодиальный индикатор для площадок и ключей | Держать индикатор контракт / оракул / апгрейд для депозитов |
Оба индикатора реальны. Смешивая их, вы выбираете неверный хедж: либо занижаете размер по каждому протоколу, потому что новости заполнили кражи ключей CeFi, либо чрезмерно доверяете vault, потому что «большую часть украденной в этом году стоимости составили ключи».
Ограниченное чтение недавних отраслевых сводок: на рынке в целом инфраструктура и компрометация ключей часто забирают большую часть стоимости; внутри потерь DeFi-протоколов логика часто забирает большую часть массы убытка. Используйте оба факта. Не выбирайте один и не отбрасывайте другой.
Таксономия (классы, а не единый флаг «взломано»)
| Класс | Что ломается | Как проявляется убыток |
|---|---|---|
| Контроль доступа | Привилегированные функции вызываемы не той стороной | Открываются mint, pause, upgrade, set-price, путь опустошения |
| Бизнес-логика | Задуманные правила ≠ закодированные правила | Неверные награды, неверная математика залога, сломанная ликвидация или mint/redeem |
| Реентрантность / внешние вызовы | Управление передано до финализации состояния | Повторный withdraw, межфункциональный reentry, hook-колбэки |
| Арифметика / округление / shares | Дрейфует fixed-point, fee, share или reserve-математика | Тихая утечка стоимости; крайние состояния усиливают ошибки порядка одного wei |
| Оракул / тонкая ликвидность | Safety-логика доверяет подвижной или устаревшей цене | Подводные займы, несправедливые ликвидации, раздутый залог |
| Усиление flashloan | Капитал в той же tx доводит слабое допущение до поломки | Корневой баг уже был; временный капитал сделал его прибыльным |
| Proxy / upgradeability | Слабы implementation, initializer или admin-путь | Перепись логики, неинициализированный claim, порча storage |
| Griefing / DoS | Доступность или выходы заблокированы без чистого «воровства» | Застрявшие выводы, заклинившие ликвидации, revert распределений |
Списки в стиле OWASP Top 10 год от года меняют ранги. Контроль доступа, бизнес-логика и оракулы остаются у вершины; пути с flashloan-содействием и категории proxy/upgrade выросли как практические поверхности. Считайте список меню мониторинга, а не карточкой бинго.
Поверхности второго порядка (где реально умирает опытный размер)
Учебниковая реентрантность — не единственный индикатор. Эти пути второго порядка обычно важнее, как только вы выходите за toy-размер:
- Композируемость — ваш vault в порядке, пока не начнёт оценивать shares по peer-пулу, wrapper или мосту, которые вы никогда не разбирали.
- Пробелы scope аудита — многие постмортемы «аудированных» протоколов показывают: путь атаки лежал вне каждого публичного audit-scope или в dependency / keeper / forwarder, который отчёт никогда не покрывал.
- Неверифицированный или несовпадающий bytecode — имя в UI ≠ адрес в explorer ≠ implementation, на которую сейчас указывает proxy.
- Апгрейд без окна ревью — нет timelock, одиночный EOA-апгрейдер или тихая смена implementation после вашего депозита.
- Emergency pause как доверие — pause может остановить drain и может также запереть выходы; кто держит переключатель — часть цены риска.
- Частичный vs полный drain — одни баги снимают округление; другие опустошают пул; третьи замораживают средства без перевода. Размерьте под наихудшую правдоподобную форму, а не под средний заголовок.
- Устаревшие «безопасные» контракты — к старым деплоям возвращаются; возраст — не ореол безопасности, если стимулы всё ещё сидят на адресе.
Остаточные поверхности на wallet-first площадках
Wallet-first торговля (включая площадки вроде edgeX) снижает риск «IOU на балансе компании», когда средства двигает ваша авторизация. Риск контракта всё равно появляется, когда:
- вы одобряете spender, который потом может тянуть токены
- вы вносите депозит в vault, мост или структурированный продукт
- матчинг или сеттлмент зависит от контрактов, чей путь апгрейда или оракула вы не картировали
- клонированный фронтенд просит подписать против адреса, отличного от того, который вы верифицировали
Если чек-лист спрашивает только «это non-custodial?», вы всё ещё на старом индикаторе.
Рабочие сцены (суждение, а не слоганы)
A — Округление под давлением flashloan.
Математика вывода пула округляет не в ту сторону на экстремальном tick. Обычный поток выглядит нормально. Заёмённый в той же транзакции капитал толкает пул в это состояние, извлекает разрыв, возвращает заём и оставляет LP в минусе. Flashloan был усилителем. Баг был в учёте.
B — «Взлом оракула», который оказался контролем доступа.
Обновления цены должны идти через путь keeper / forwarder. Слабый forwarder даёт атакующему дотянуться до `setPrices`. Они печатают плохую отметку, открывают и закрывают против неё и уходят. Бренд фида не был корнем; корнем было кто мог писать в фид.
C — Аудированный vault, dependency вне scope.
На сайте документации висят три audit-PDF. Drain использует library-helper или bridge-verifier, которые эти отчёты никогда не включали в scope. «Нас аудировали» было и правдой, и неполным. Спрашивайте какой commit, какие файлы, какие экономические пути и что изменилось с тех пор.
D — Proxy: день первый vs год второй.
Вы размеряли депозит, когда implementation была заморожена, а multisig + timelock были публичны. Через шесть месяцев приходит апгрейд с коротким окном и новой ролью. Тот же proxy-адрес; другая поверхность доверия. Переандеррайтите или выходите — не наследуйте тезис прошлого года.
Мониторинг (что фальсифицировать)
Оценивайте каждую существенную контрактную экспозицию по фактам, которые можно проверить — не по бейджам.
| Монитор | Pass выглядит так | Fail выглядит так |
|---|---|---|
| Карта адресов | Вы можете назвать proxy vs implementation vs spender | «Контракт с сайта», неверифицирован |
| Карта полномочий | Известны роли для upgrade, pause, mint, записи оракула | Один «owner» god-key, которого вы не можете описать |
| Путь апгрейда | Культура timelock / multisig / публичный diff | Тихие EOA-апгрейды |
| Дизайн оракула | Агрегация / TWAP / freshness / границы отклонения там, где нужен размер | Same-tx spot из тонкого пула для ликвидаций |
| Гигиена аудита | Scope, дата, commit-hash; bounty ещё жив | Стена logo; нет scope; код сдвинулся после отчёта |
| Композируемость | Вы знаете, от каких внешних пулов/мостов зависит экспозиция | Вложенные wrapper, которые не можете назвать |
| Поверхность allowance | Least privilege; периодический revoke | Unlimited approve навсегда каждому router |
| Drill выхода | Недавний небольшой withdraw сработал | Мышечная память только на депозит |
| Поза к инцидентам | Pause ограничен scope; мониторинг; привычка к публичным постмортемам | TVL как доказательство безопасности |
Условные дефолты (начните здесь, затем подстраивайте)
- Если не можете назвать адрес контракта и кто может его апгрейдить → не масштабируйте экспозицию.
- Если safety-критичное ценообразование читает same-transaction spot тонкого пула → считайте пути ликвидации / mint / redeem враждебными, пока не доказано иное.
- Если единственный комфорт — «аудировано» без scope или commit → оценивайте audit как маркетинг, а не как индикатор.
- Если после вашего депозита прошёл апгрейд → переандеррайтите; не предполагайте непрерывность.
- Если капитал размера flashloan может сдвинуть оракул или share-математику, от которых вы зависите → размеряйте так, будто этот капитал появится.
- Если горячая торговля и протоколные депозиты делят unlimited approvals → разделите поверхности в ту же неделю.
- Если размер резко вырос → переделайте карту, даже если UI не изменился.
Дизайн-ходы
- Разделяйте одобрения торгового float и депозиты простаивающего протокола.
- Предпочитайте верифицированные адреса, которые вы вставляете из известного источника, а не «Connect and hope».
- Ограничивайте каждую протоколную экспозицию формой убытка, которую переживёте (skim vs empty vs freeze).
- Отрепетируйте небольшой withdraw до масштабирования.
- Отзывайте устаревшие unlimited allowances по расписанию.
- Предпочитайте площадки и протоколы, которые публикуют адреса контрактов, политику апгрейда и audit-scope — и всё равно запускайте свои мониторы.
- Запишите короткий stress-порядок: какую экспозицию выходите первой, если сработает алерт апгрейда или оракула.
Границы этой рамки
Эта страница не заменяет профессиональный аудит, формальную верификацию или incident response для билдеров. Она не ценит каждый quirks финальности chain, bridge или L2. Она не спасёт экспозицию, если вы проигнорируете фишинг и подпишете malicious spender. Соседние индикаторы — кастодия, одобрения, MEV, риск протокола vs платформы vs пользователя — по-прежнему применимы. Используйте эту таксономию, чтобы перестать схлопывать каждый ончейн-убыток в одно слово.
Не путайте с
- Кастодиальный риск — отказ spend-authority / контрагента-vs-оператора; складывается с протоколными депозитами, но это не тот же индикатор.
- Риск одобрения токена — allowance, который может включить поздний pull; часто дверь в риск контракта, а не всё дерево эксплойта.
- Ценовой риск — mark может двигаться, пока поведение кода и контроль остаются целыми.
- Риск ликвидности / проскальзывания — нельзя выйти размером на рынке ≠ vault опустошён, заморожен или неверно оценён логикой программы.
- MEV / sandwich — упорядочивание и извлечение вокруг вашей транзакции; может касаться дизайна оракула/свопа, всё ещё не синоним logic-бага.
Поделиться
Похожие статьи
СреднийЧто такое смарт-контракт?
ПродвинутыйЧто такое кастодиальный риск?
НачинающийЧто такое одобрение токена?
ПродвинутыйРиск протокола vs риск платформы vs риск пользователя
СреднийЧто такое ликвидность?
СреднийЧто такое проскальзывание?
НачинающийCEX vs DEX: ключевые различия
НачинающийЧто такое самостоятельное хранение?

Готовы к следующему шагу?
Перейдите к регистрации или торговле с этой страницы по официальным ссылкам.
Отказ от ответственности
Этот материал носит исключительно образовательный характер и не является инвестиционной рекомендацией. Торговля цифровыми активами и деривативами связана с риском. Перед началом торговли убедитесь, что понимаете продукты, и учитывайте свои обстоятельства.