Следует отметить, что плата за газ является основным механизмом предотвращения системных атак, генерирующих бесконечный цикл. Обнаружить вредоносность такого кода до его запуска невозможно. В компьютерных науках эта проблема известна как проблема остановки. Предположим, что у беспилотного автомобиля, едущего на полной скорости, отказали тормоза. В данном случае топливо действует как ограничивающий фактор: машина остановится, когда закончится бензин. Точно так же плата за газ защищает блокчейн Ethereum, делая подобные атаки экономически невыгодными. Наличие комиссии стимулирует делать код смарт-контрактов как можно более эффективным, поскольку контракты, которые используют меньше ресурсов и снижают вероятность сбоев, имеют намного больше шансов быть востребованными на рынке.
Довольно быстро возможности платформы для смарт-контрактов вышли за те рамки, внутри которых разработчики могли с легкостью интегрировать различные приложения. Ответом сообщества на эту проблему стало внедрение стандартных интерфейсов для различных типов функциональности. В случае с Ethereum эти стандарты называются ERC (Ethereum Request for Comment, Запрос комментариев от Ethereum). Наиболее известные из них определяют различные типы токенов, обладающих сходным поведением. ERC-20 является стандартом для взаимозаменяемых токенов и определяет интерфейс для токенов, единицы которых идентичны в плане полезности и функциональности[25]. Стандарт определяет правила передачи токенов и одобрения операторов для использования определенной части баланса пользователя. Для невзаимозаменяемых токенов существует стандарт ERC-721. Такие токены уникальны и часто используются в качестве предметов коллекционирования или таких активов, как одноранговые кредиты. Преимущество этих стандартов заключается в том, что разработчики приложений могут написать код для одного интерфейса, а затем просто поддерживать все реализующие этот интерфейс токены. Чуть позже мы вернемся к этой теме и рассмотрим ее более подробно.
Оракулы
С блокчейн-протоколами связана одна любопытная проблема, которая заключается в том, что они изолированы от мира за пределами их реестра. Блокчейн Ethereum точно знает, что происходит в блокчейне Ethereum, но ему ничего неизвестно о том, что творится, например, с индексом S&P 500 или какая команда выиграла Суперкубок. Суть этой проблемы, которая называется проблемой оракулов, состоит в том, что возможности приложений ограничены внутренними контрактами и токенами, из-за чего снижается общая полезность платформы смарт-контрактов. В контексте таких платформ оракулом называется любой внешний по отношению к блокчейну источник информации. Возможно ли создать оракула, информация от которого может считаться авторитетной при минимальном уровне доверия к нему? Такой оракул требуется многим приложениям, а его реализации могут варьироваться в зависимости от степени централизации.
Различные DeFi-приложения содержат разные реализации оракулов. Наиболее распространенный подход подразумевает использование собственного оракула или подключение к уже существующему оракулу надежной платформы. Одна из таких платформ на базе Ethereum, известная как Chainlink[26], решает проблему оракулов путем агрегации источников данных. Белая книга проекта Chainlink[27] содержит описание системы репутации. Чуть позже мы поговорим о проблеме оракулов более подробно. Оракулы, безусловно, остаются открытым вопросом проектирования и вызовом для DeFi-сервисов, стремящихся обеспечить полезность, не ограниченную их собственным изолированным блокчейном.
Стейблкойны
Ключевым недостатком многих криптовалют является их чрезмерная волатильность. Этот фактор отпугивает многих пользователей, которые хотели бы воспользоваться преимуществами DeFi-сервисов, но не готовы к рискам, связанным с волатильностью ETH. Для решения этой проблемы был создан целый класс криптовалют, называемых стейблкойнами. Предназначенные для поддержания ценового паритета с некоторым целевым активом, например долларом США или золотом, стейблкойны обеспечивают желанную стабильность, которая необходима инвесторам для использования DeFi-приложений, и предоставляют нативные криптовалютные решения для выхода из позиций по более волатильным криптоактивам. Более того, они позволяют получать внутри сети доход от операций с теми активами, которые не являются нативными для соответствующего блокчейна (например, золото, акции, биржевые фонды [ETF]). В зависимости от реализации стейблкойна механизм поддержания привязки криптовалюты может быть разным. Стейблкойны бывают следующих видов: обеспеченные фиатными деньгами, обеспеченные криптовалютой и необеспеченные.
На сегодняшний день самый большой класс составляют стейблкойны, обеспеченные фиатными деньгами, то есть внесетевым резервом целевого актива. Как правило, эти резервы хранятся у внешней организации или группы организаций, которые подвергаются стандартным проверкам на предмет наличия этих резервов. Крупнейшим из обеспеченных фиатом стейблкойнов является Tether[28] (USDT) с рыночной капитализацией в 62 миллиарда долларов США, что делает эту криптовалюту третьей по капитализации после Bitcoin и Ethereum (на момент написания этой книги). Tether также опережает остальные криптовалюты по объемам торгов, однако эта валюта не аудитируется[29]. На втором месте находится стейблкойн USDC[30], обеспеченный долларом США, резервы которого постоянно проверяются. На бирже Coinbase вы можете без комиссии обменять USDC на американский доллар по курсу 1:1 и наоборот. USDT и USDC часто интегрируются в DeFi-протоколы, поскольку спрос на инвестиции в стейблкойны довольно высок. Однако следует учитывать риски, связанные с использованием этих токенов: централизованный контроль валюты и возможность внесения учетных записей в черный список[31].
К следующему по величине классу относятся стейблкойны, обеспеченные криптовалютой. В зависимости от используемого механизма привязка стоимости к базовому активу может быть жесткой или мягкой. На момент написания этой книги самым популярным стейблкойном, обеспеченным криптовалютой, был DAI, выпущенный проектом MakerDAO[32]. Рыночная капитализация DAI составляет 5 миллиардов долларов, он обеспечен ETH и другими криптоактивами. Стейблкойн этого типа мягко привязан к экономическим механизмам, которые стимулируют спрос и предложение, приближая стоимость монеты к 1 доллару США. В главе 6 мы обсудим MakerDAO и DAI более подробно. Следующим популярным стейблкойном с криптообеспечением является sUSD, который жестко привязан к американскому доллару благодаря функции обмена сетевыми токенами Synthetix[33] (SNX). Преимуществами криптообеспеченных стейблкойнов являются децентрализация и залоговое обеспечение, а к числу недостатков можно отнести ограниченную масштабируемость. Чтобы добыть монеты, пользователь должен обеспечить их выпуск избыточной долговой позицией. В случае некоторых криптовалют, таких как DAI, потолок долга еще больше ограничивает рост предложения.
Последний и, пожалуй, наиболее интересный класс составляют стейблкойны, которые не обеспечены каким-либо активом. Для поддержания привязки они используют алгоритмическое расширение и сокращение предложения, часто задействуя модель сеньоража, в рамках которой держатели токенов на платформе получают увеличение предложения при росте спроса. Когда спрос снижается и цена падает ниже уровня привязки, эти платформы выпускают разного рода облигации, которые дают их держателю право на будущее расширение предложения перед держателями токенов. Данный механизм работает практически так же, как центральный банк с фиатными валютами, с той оговоркой, что эти платформы имеют целью поддержание привязки цены, а не финансирование государственных расходов или решение других экономических задач. Одним из первых алгоритмических стейблкойнов был Basis[34], который прекратил свое существование из-за нормативных барьеров. Современными примерами алгоритмических стейблкойнов являются Ampleforth (AMPL)[35] и Empty Set Dollar (ESD)[36]. Недостатком необеспеченных стейблкойнов является отсутствие собственной ценности, благодаря которой может существовать обмен токенов. В периоды сжатия это может спровоцировать своеобразные «массовые изъятия вкладов», когда у множества держателей оказывается «на руках» большое количество токенов, цена которых находится ниже уровня привязки.
Чтобы создать децентрализованный стейблкойн, который способен эффективно масштабироваться и будет устойчив к коллапсу в периоды сжатия[37], требуется большая работа и преодоление множества нормативных барьеров. Стейблкойны являются важным компонентом инфраструктуры DeFi, поскольку с их помощью пользователи могут получать выгоду от использования приложений, не подвергаясь при этом ненужному риску, связанному с волатильностью цен.
Децентрализованные приложения
Как уже говорилось, децентрализованные приложения (dApp) являются важным компонентом DeFi. dApp напоминают традиционные программы, за исключением того, что они работают на децентрализованной платформе для смарт-контрактов. Основным преимуществом таких программ является отсутствие необходимости в получении разрешений и устойчивость к цензуре