Что такое смарт-контракт в блокчейне?

Простыми словами
Смарт-контракт — это программа, которая записана прямо в блокчейне и сама исполняет заранее заданные правила, без посредника. Правило устроено просто: если случилось одно, программа автоматически делает другое. Когда условие наступило, изменить исход обычно уже нельзя.
Проще всего представить это как торговый автомат: вы бросаете монету, и он выдаёт банку. Автомату не нужен продавец, он исполняет своё правило сам, и правило одинаково для всех. Смарт-контракт — такой же автомат, только для цифровых денег и данных, и его правила видны каждому.
Слово «контракт» здесь сбивает с толку. Это не юридический договор с подписями, а программный код — правило, которое сеть исполняет сама собой.
Глубже
Чем он отличается от обычной программы
Обычная программа крутится на чьём-то сервере, и владелец может её тихо изменить или выключить. Смарт-контракт опубликован в блокчейне, его правила исполняет сеть, и поменять их незаметно задним числом гораздо труднее. Здесь важна оговорка: не все контракты неизменяемы, и не всякий код открыт. Часть контрактов сделана обновляемой, у части есть админ-ключи и возможность поставить работу на паузу, а исходный код виден не всегда. Так что неизменяемость и прозрачность — это свойства конкретного контракта, которые стоит проверять, а не данность у всех подряд.
За исполнение платит не сам контракт, а тот, кто его вызывает, то есть отправитель перевода. Он платит комиссию сети. На Ethereum эту комиссию называют газ, о ней рассказывает статья что такое газ. В некоторых схемах газ за вас может оплатить другая сторона.
Сеть Bitcoin умеет проверять простые условия для переводов, но идею контрактов общего назначения, где можно запрограммировать почти любую логику, массово принёс Ethereum. Поэтому большинство токенов, стейблкоины вроде DAI, NFT и разные приложения внутри сети работают именно на Ethereum и похожих на него сетях.
Что на них построено и где вы с ними встречаетесь
Многое из того, с чем сталкивается новичок, работает на смарт-контрактах под капотом. Это и стейблкоин, и обмен одной монеты на другую без компании-посредника, и выпуск токена или NFT. Вы можете ни разу не увидеть слова «контракт», но всё равно ими пользуетесь.
Отсюда важный практический момент: смарт-контракт исполняет то, что в нём записано, а не то, что вы имели в виду. Когда вы разрешаете контракту доступ к своим монетам, такое действие называют approve, вы доверяете его коду. Поэтому стоит понимать, что именно вы разрешаете. Подробнее об этом рассказывает статья безопасность при подключении кошелька.
Честно про «код — это закон»
«Код — это закон» — так часто говорят про смарт-контракты: раз правило записано в коде, оно исполняется само, без чьего-либо решения. У такого самоисполнения две стороны.
Хорошая сторона в том, что если правило записано и контракт неизменяем, никто не сможет передумать и не выполнить обещанное — ни создатель, ни площадка. Обратная сторона в том, что код исполняет ровно то, что в нём написано, включая ошибку: если в контракте есть ошибка, она сработает буквально, деньги могут уйти не туда, и откатить это обычно уже некому, ведь перевод в блокчейне не отменить.
Само правило «код — это закон» тоже верно не всегда. У многих контрактов есть админ-ключи, то есть создатель может вмешаться в работу; бывает кнопка паузы; а иногда контракт зависит от внешних данных, которые подаёт так называемый оракул — программа, поставляющая в блокчейн данные из внешнего мира, например курс валюты. Всё это способно изменить или остановить работу контракта.
Поэтому серьёзные проекты заказывают независимую проверку кода — её называют аудитом. Аудит снижает риск ошибок, но стопроцентной гарантии не даёт: дыры иногда находят и в проверенном коде.