[{"data":1,"prerenderedAt":25},["ShallowReactive",2],{"blog-content-ru-what-is-a-smart-contract":3},{"slug":4,"title":5,"excerpt":6,"description":7,"bodyHtml":8,"faqItems":9},"what-is-a-smart-contract","Что такое смарт-контракт? Код, который двигает деньги","Смарт-контракт — это программа, развёрнутая в блокчейне, которая хранит и перемещает средства по фиксированным правилам, причём каждый узел сети проверяет исполнение, и никого посередине нет. Как они работают в EVM, Solana и TON, когда их можно изменить, почему ошибки стоят реальных денег — и как WATS Hot Wallet использует контракт-paymaster по ERC-4337, чтобы взимать комиссии в одном токене.","Смарт-контракты простыми словами: детерминированный ончейн-код, который хранит и перемещает средства, модели EVM, Solana и TON, токены как контракты, обновляемые прокси, пределы аудитов и то, как paymaster по ERC-4337 в WATS Hot Wallet взимает каждую комиссию в ATS вместо нативного газа каждой сети.","\u003Cblockquote>\u003Cp>\u003Cstrong>Смарт-контракт\u003C\u002Fstrong> — это программа, развёрнутая в блокчейне, которая хранит и перемещает средства по фиксированным правилам и исполняется детерминированно — один и тот же ввод всегда даёт один и тот же результат, — при этом каждый узел сети проверяет это исполнение, и ни компании, ни клерка посередине нет. Почти всё, что вы делаете ончейн, — это смарт-контракт: токены, свопы, рынки кредитования и те самые одобрения, которые позволяют протоколу двигать ваш баланс. Поскольку контрагент — это \u003Cem>сам код\u003C\u002Fem>, его нельзя уговорить и на него нельзя подать апелляцию; именно поэтому уязвимость — это опустошённое хранилище, а не обращение в поддержку. В EVM-сетях их называют смарт-контрактами, в Solana — программами, а TON моделирует как контракт даже ваш кошелёк, но механизм везде один и тот же. Кошельки тоже построены на них: \u003Ca href=\"\u002Fhot-wallet\">WATS Hot Wallet\u003C\u002Fa> использует контракт-paymaster по ERC-4337 в EVM-сетях и эквивалентного плательщика комиссии в Solana и TON, так что любая комиссия взимается в одном токене, ATS, вместо нативной газовой монеты каждой сети.\u003C\u002Fp>\u003C\u002Fblockquote>\n\u003Ch2>Код, который двигает деньги\u003C\u002Fh2>\n\u003Cp>\u003Cstrong>Смарт-контракт\u003C\u002Fstrong> — это программа, развёрнутая в блокчейне, которая хранит и перемещает средства по фиксированным правилам. После развёртывания она исполняется детерминированно — один и тот же ввод всегда даёт один и тот же результат, — и каждый узел сети проверяет это исполнение, а ни компании, ни клерка посередине нет. Токены, свопы и рынки кредитования — всё это смарт-контракты: код, который сам и есть контрагент.\u003C\u002Fp>\n\u003Cp>Важна именно последняя фраза. Когда вы пользуетесь банком, вам должно учреждение, а ваше требование поддерживает правовая система. Когда вы пользуетесь смарт-контрактом, всё соглашение — это код: его нельзя уговорить и нельзя обжаловать. Именно это свойство делает возможным \u003Ca href=\"\u002Fblog\u002Fwhat-is-web3\">Web3\u003C\u002Fa>, и оно же делает его сбои такими беспощадными.\u003C\u002Fp>\n\n\u003Ch2>Торговый автомат — честная версия\u003C\u002Fh2>\n\u003Cp>Классическая аналогия говорит, что смарт-контракт — это торговый автомат: бросил монету, получил снек, продавец не нужен. Правила \u003Cem>и есть\u003C\u002Fem> услуга. Эта часть верна и хорошо передаёт детерминизм — автомат не может решить, что сегодня вы ему не нравитесь.\u003C\u002Fp>\n\u003Cp>А вот что аналогия скрывает. Поставить автомат может кто угодно, и никакой инспектор не проверяет его перед тем, как он начнёт принимать монеты, — контракт может быть ошибочным или намеренно враждебным с первого дня. Ещё автомат хранит настоящие деньги: пулы и рынки кредитования держат средства пользователей внутри самого контракта, так что изъян — это не застрявший снек, а опустошённое хранилище. И, в отличие от торговых автоматов, контракты вызывают друг друга. Эта композируемость — суперсила, стоящая за \u003Ca href=\"\u002Fblog\u002Fwhat-is-defi\">DeFi\u003C\u002Fa>, — и она же означает, что один сломанный автомат может утянуть за собой каждый подключённый к нему.\u003C\u002Fp>\n\n\u003Ch2>С чем вы взаимодействуете каждый день?\u003C\u002Fh2>\n\u003Cp>Если вы хоть немного пользовались криптой, вы пользовались смарт-контрактами — обычно несколькими за транзакцию:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Токены — это контракты.\u003C\u002Fstrong> «Баланс» ERC-20 — это не монеты, лежащие у вас в кошельке; это запись во внутреннем реестре токен-контракта, отображение адресов в суммы. Отправить токены — значит попросить этот контракт обновить две записи.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Свопы — это контракты.\u003C\u002Fstrong> Пул DEX — это контракт, который держит два токена и оценивает сделки по формуле: ни книги ордеров, ни торгового деска по ту сторону.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Одобрения — это вы, настраивающий контракт.\u003C\u002Fstrong> Прежде чем DEX сможет двигать ваши токены, вы говорите токен-контракту, сколько ему позволено взять, — это allowance, записанный ончейн. Поскольку такое разрешение переживает саму сделку, в нём стоит разобраться; материал о \u003Ca href=\"\u002Fblog\u002Ftoken-approvals-and-permit-explained\">токен-одобрениях и Permit\u003C\u002Fa> объясняет ровно то, что вы выдаёте.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>В некоторых сетях даже ваш кошелёк — это контракт, что подводит нас к различиям между крупными экосистемами.\u003C\u002Fp>\n\n\u003Ch2>Чем различаются контракты в EVM, Solana и TON?\u003C\u002Fh2>\n\u003Cp>Идея везде одна — детерминированный код, проверяемый сетью, — но архитектура различается так, что это чувствуется на уровне пользователя.\u003C\u002Fp>\n\u003Ctable>\n\u003Cthead>\u003Ctr>\u003Cth>\u003C\u002Fth>\u003Cth>EVM-сети\u003C\u002Fth>\u003Cth>Solana\u003C\u002Fth>\u003Cth>TON\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\u003Cth>Обычное название\u003C\u002Fth>\u003Ctd>Смарт-контракты\u003C\u002Ftd>\u003Ctd>Программы\u003C\u002Ftd>\u003Ctd>Контракты (акторы)\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Cth>Где живёт состояние\u003C\u002Fth>\u003Ctd>Код и хранилище вместе по одному адресу\u003C\u002Ftd>\u003Ctd>Код в программе; состояние — в отдельных аккаунтах, передаваемых в каждую транзакцию\u003C\u002Ftd>\u003Ctd>Каждый контракт держит собственное состояние и общается с другими асинхронными сообщениями\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Cth>Модель токена\u003C\u002Fth>\u003Ctd>Один контракт ERC-20 записывает баланс каждого держателя\u003C\u002Ftd>\u003Ctd>Программа токенов SPL управляет токен-аккаунтами каждого держателя\u003C\u002Ftd>\u003Ctd>Баланс jetton каждого держателя живёт в собственном маленьком дочернем контракте\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Cth>Обновляем по умолчанию?\u003C\u002Fth>\u003Ctd>Нет — байткод неизменяем, если не используется прокси\u003C\u002Ftd>\u003Ctd>Да — пока не отозваны полномочия на обновление\u003C\u002Ftd>\u003Ctd>Только если это позволяет собственный код контракта\u003C\u002Ftd>\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Cp>TON доводит модель до предела: всё в сети, включая ваш кошелёк, — это контракт, обменивающийся сообщениями с другими контрактами.\u003C\u002Fp>\n\n\u003Ch2>Можно ли изменить смарт-контракт после развёртывания?\u003C\u002Fh2>\n\u003Cp>В EVM-сетях сам развёрнутый байткод редактировать нельзя. Но многое из того, с чем вы взаимодействуете, стоит за \u003Cstrong>прокси\u003C\u002Fstrong>: вы обращаетесь к фиксированному адресу, который переадресует каждый вызов в отдельный контракт-реализацию, — и администратор может перенаправить прокси на новый код. Ваш адрес остаётся прежним; правила за ним оставаться прежними не обязаны.\u003C\u002Fp>\n\u003Cp>То есть «неизменяемость» — на самом деле вопрос о ключах. Кто держит полномочия на обновление: мультисиг из членов команды, timelock, навязывающий публичную задержку, голосование управления — или никто, потому что полномочия сожжены и код финален? Ни один ответ не является автоматически правильным: обновляемость позволяет командам чинить баги, но она же означает, что соглашение может измениться у вас под ногами. На практике многие крупные протоколы находятся посередине — обновляемые, но за timelock-ами и мультисигами.\u003C\u002Fp>\n\n\u003Ch2>Почему ошибки в смарт-контрактах так важны?\u003C\u002Fh2>\n\u003Cp>Поскольку контрагент — это код, баг здесь не обращение в поддержку, а открытая дверь, за которой лежат деньги. Нет отдела по борьбе с мошенничеством, который отменит перевод, и в большинстве сетей нет никого, кто мог бы поставить реальность на паузу, пока дверь открыта.\u003C\u002Fp>\n\u003Cp>Этот сюжет стар, как сама технология. В 2016 году ошибка повторного входа (reentrancy) в The DAO — раннем инвестиционном контракте Ethereum — позволила атакующему вывести значительную часть его средств, и последствия оказались настолько тяжёлыми, что Ethereum пошёл на хардфорк, чтобы это откатить, отделив в процессе Ethereum Classic. Контракты мостов, которые держат заблокированные токены целых экосистем, по той же базовой причине дали одни из крупнейших потерь в истории криптовалют: огромная стоимость, охраняемая одним лишь кодом.\u003C\u002Fp>\n\n\u003Ch2>Делает ли аудит контракт безопасным?\u003C\u002Fh2>\n\u003Cp>Более безопасным — но не безопасным. Аудит — это платный разбор одной версии кода в один момент времени, выполненный инженерами по безопасности. Он ловит известные классы ошибок и небрежные паттерны; он не доказывает корректность кода, не покрывает будущие обновления и не учитывает, как контракт поведёт себя в связке с протоколами, которых аудиторы никогда не видели. Хорошо проаудированные протоколы всё равно взламывали.\u003C\u002Fp>\n\u003Cp>Практический вывод для пользователя: предпочитайте контракты, которые проаудированы \u003Cem>и\u003C\u002Fem> проверены временем и объёмом средств, относитесь к новым непроаудированным контрактам как к экспериментам, держите токен-одобрения узкими и никогда не вносите больше, чем заслужил код контрагента.\u003C\u002Fp>\n\n\u003Ch2>Где здесь WATS\u003C\u002Fh2>\n\u003Cp>В \u003Ca href=\"\u002Fhot-wallet\">WATS Hot Wallet\u003C\u002Fa> рельсы смарт-контрактов — это и есть модель комиссий: каждая транзакция, которую вы подписываете, — перевод, вызов контракта — оплачивается одним токеном, ATS, вместо нативного газа сети, через paymaster по ERC-4337 в EVM и эквивалентного плательщика комиссии\u002Fрелеера в Solana и TON. ATS — это OFT на LayerZero, поэтому один баланс работает в EVM, Solana и TON, а собранный ATS сжигается со 100M к уровню в 30M. Кошелёк остаётся некастодиальным — ключи держите вы, а WATS никогда не держит ключ — и WATS является первым и единственным кошельком, который объединяет единый токен для комиссий на основе ERC-4337 + OFT, взимаемых вместо нативного газа, с этим сжиганием.\u003C\u002Fp>\n\u003Cp>Смарт-контракты — не экзотический уголок крипты: это то, что вы подписываете каждый раз, когда двигаете токен, а код по ту сторону — единственное, что стоит между вашими средствами и тем, кто его написал. Две вещи остаются в вашей власти: что вы одобряете и где живут ваши ключи. Проверяйте \u003Ca href=\"\u002Fblog\u002Ftoken-approvals-and-permit-explained\">одобрения\u003C\u002Fa> до того, как их выдать, и соразмеряйте каждый депозит с тем, что код заслужил, — а сторону ключей оставьте за собой, подписывая из кошелька, который не может двигать средства от вашего имени. \u003Ca href=\"\u002Fhot-wallet\">WATS Hot Wallet\u003C\u002Fa> — именно такой во всех восьми сетях, которые он охватывает: Ethereum, Arbitrum, Optimism, Base, Polygon, BNB Chain, Solana и TON, — ключи держит пользователь, а WATS не держит ключ никогда, и сторона комиссий работает на той самой технологии, которую описывает этот текст: контракт-paymaster по ERC-4337, взимающий плату в ATS вместо нативного газа каждой сети.\u003C\u002Fp>",[10,13,16,19,22],{"q":11,"a":12},"Токены — это действительно смарт-контракты?","Да. В EVM-сетях токен ERC-20 — это контракт, в хранилище которого адреса сопоставлены с балансами: ваши токены — это записи в этом реестре, а не объекты внутри кошелька. В Solana программа токенов SPL управляет токен-аккаунтами каждого держателя, а в TON баланс jetton каждого держателя живёт в собственном маленьком дочернем контракте. В любом случае перевести токены — значит попросить программу обновить свои записи.",{"q":14,"a":15},"Можно ли изменить смарт-контракт после развёртывания?","Иногда. В EVM-сетях развёрнутый байткод неизменяем, но многие проекты используют прокси: пользователи обращаются к фиксированному адресу, который переадресует вызов в контракт-реализацию, а его администратор может заменить. Программы Solana обновляемы по умолчанию, пока не отозваны полномочия на обновление. Так что настоящий вопрос — кто контролирует ключи обновления: мультисиг, timelock, голосование управления или никто. Проверьте это, прежде чем верить заявлению о неизменяемости.",{"q":17,"a":18},"Безопасно ли пользоваться проаудированными смарт-контрактами?","Безопаснее, но не безопасно. Аудит — это разбор одной версии кода в конкретный момент времени; он ловит известные классы ошибок, но не доказывает корректность, не покрывает более поздние обновления и не проверяет каждое взаимодействие с другими протоколами. Хорошо проаудированные контракты всё равно взламывали. Считайте аудит одним сигналом из нескольких — наряду со временем работы в продакшене, объёмом защищаемых средств и тем, сколько власти у административных ключей, — и соразмеряйте свою экспозицию.",{"q":20,"a":21},"Нужна ли мне нативная монета сети, чтобы взаимодействовать со смарт-контрактом?","Обычно да — сеть рассчитывает газ в собственной монете, поэтому кошелёк с нулевым ETH не сможет вызвать контракт в Ethereum, какие бы токены в нём ни лежали. Paymaster, который сам является смарт-контрактом, это меняет, и WATS Hot Wallet — конкретный пример: он использует paymaster по ERC-4337 в Ethereum, Arbitrum, Optimism, Base, Polygon и BNB Chain и эквивалентного плательщика комиссии в Solana и TON, так что любая комиссия взимается в одном токене, ATS, а сеть под капотом по-прежнему получает свой нативный газ. Поскольку ATS — это OFT на LayerZero, один баланс покрывает все восемь сетей, так что не нужно поддерживать газовый запас в каждой из них. Это не скидка — блочное пространство стоит столько же, меняется лишь токен, которым вы за него платите.",{"q":23,"a":24},"Означает ли использование смарт-контрактов, что я отдаю контроль над своими средствами?","Нет. Вызов контракта — это вы, подписывающий инструкцию собственным ключом, и контракт может сделать лишь то, что позволяют эта подпись и уже выданные токен-одобрения, — поэтому держать одобрения узкими важнее любого значка аудита. Главное, чтобы ключ оставался вашим: WATS Hot Wallet полностью некастодиален, ключи держит пользователь, а WATS никогда не держит ключ; WATS NFC Metal Card тоже не хранит приватных ключей — он касанием аутентифицирует доступ к ключам, которые живут в приложениях WATS. Реальный риск, который вы берёте на себя, — это код контракта и выданные ему разрешения, а не кошелёк, из которого вы подписали.",1786059400667]