Языки программирования препятствуют распространению DeFi

Децентрализованные финансы (DeFi) быстро растут. Общая заблокированная стоимость — показатель денежных средств, управляемых протоколами DeFi, — за последние два года выросла с $10 млрд до чуть более $40 млрд после пика в $180 млрд.

Общая заблокированная стоимость DeFi по состоянию на ноябрь 2022 года. Источник: DefiLlama

Слон в комнате? Только в 2021 году в результате взломов и эксплойтов было потеряно более 10 миллиардов долларов. Кормление этого слона: Современные языки программирования смарт-контрактов не предоставляют адекватных возможностей для создания и управления активами — также известными как «токены». Чтобы DeFi стал мейнстримом, языки программирования должны предоставлять функции, ориентированные на активы, чтобы сделать разработку смарт-контрактов DeFi более безопасной и интуитивно понятной.

Текущие языки программирования DeFi не имеют понятия об активах

Решения, которые могли бы помочь уменьшить количество постоянных взломов DeFi, включают аудит кода. В определенной степени аудит работает. Из 10 крупнейших взломов DeFi в истории (плюс-минус) девять проектов не подвергались аудиту. Но бросать больше ресурсов на решение проблемы — все равно что ставить больше двигателей в машину с квадратными колесами: она может ехать немного быстрее, но есть фундаментальная проблема.

Проблема: языки программирования, используемые сегодня для DeFi, такие как Solidity, не имеют понятия о том, что такое актив. Такие активы, как токены и нефункционирующие токены (NFT), существуют только как переменные (числа, которые могут меняться) в смарт-контракте, например, в ERC-20 Ethereum. Защиты и проверки, которые определяют, как должна вести себя переменная, например, что она не должна быть потрачена дважды, что она не должна быть слита неавторизованным пользователем, что переводы всегда должны быть сбалансированы и равны нулю — все это должно быть реализовано разработчиком с нуля, для каждого отдельного смарт-контракта.

По мере того, как смарт-контракты становятся все сложнее, возрастает и количество необходимых защит и проверок. Люди — это люди. Ошибки случаются. Случаются ошибки. Деньги теряются.

Вот пример: Compound, один из самых «голубых фишек» протоколов DeFi, в сентябре 2021 года был взломан на сумму 80 миллионов долларов. Почему? Смарт-контракт содержал «>» вместо «>=»

.

Последствия

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

В результате возникает сложный процесс балансировки. Обеспечение правильной обработки всех взаимодействий со смарт-контрактом полностью ложится на разработчика DeFi. Поскольку в Solidity и виртуальной машине Ethereum (EVM) нет встроенных защитных механизмов, разработчики DeFi должны сами разрабатывать и внедрять все необходимые средства защиты и проверки.

Поэтому разработчики DeFi тратят почти все свое время на то, чтобы убедиться в безопасности своего кода. И перепроверяют его, перепроверяют и перепроверяют — до такой степени, что некоторые разработчики сообщают, что они тратят до 90% своего времени на проверку и тестирование и только 10% времени на создание функций и функциональности.

Поэтому разработчики DeFi тратят почти все свое время на создание функций и функциональности.

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

Общие активы мировых финансовых учреждений с 2002 по 2020 год. Источник: Statista

Инновации и безопасность

Ключ к тому, чтобы DeFi был одновременно инновационным и безопасным, исходит из одного и того же источника: Дайте разработчикам простой способ создания и взаимодействия с активами и сделайте активы и их интуитивное поведение встроенной функцией. Любой созданный актив всегда должен вести себя предсказуемо и в соответствии со здравыми финансовыми принципами.

В парадигме программирования, ориентированной на активы, создание актива так же просто, как вызов родной функции. Платформа знает, что такое актив: .initial_supply_fungible(1000) создает заменимый токен с фиксированным запасом в 1000 единиц (помимо запаса доступно множество других вариантов конфигурации токена), а такие функции, как .take и .put, берут токены откуда-то и помещают их в другое место.

Вместо того, чтобы разработчикам писать сложную логику, предписывающую смарт-контрактам обновлять списки переменных со всей вытекающей из этого проверкой ошибок, в программировании, ориентированном на активы, операции, которые любой интуитивно ожидал бы как фундаментальные для DeFi, являются встроенными функциями языка. Tokens can’t be lost or drained because asset-oriented programming guarantees they can’t.

This is how you get both innovation and safety in DeFi. And this is how you change the perception of the mainstream public from one where DeFi is the wild west to one where DeFi is where you have to put your savings, as otherwise, you’re losing out.

Ben Far is head of partnerships at RDX Works, the core developer of the Radix protocol. Prior to RDX Works, he held managerial positions at PwC and Deloitte, where he served clients on matters relating to the governance, audit, risk management and regulation of financial technology. He holds a bachelor of arts in geography and economics and a master’s degree in mapping software and analytics from the University of Leeds.

The author, who disclosed his identity to Cointelegraph, used a pseudonym for this article. This article is for general information purposes and is not intended to be and should not be taken as legal or investment advice. The views, thoughts, and opinions expressed here are the author’s alone and do not necessarily reflect or represent the views and opinions of Cointelegraph.