Web3 это концепция развития Интернета с применением блокчейн-технологий и токенизацией всего, что может существовать онлайн. Поскольку Интернет тесно переплетён с активами из реальной экономики, токенизации может быть подвержено практически что угодно: будь то оригинальная работа художника или право на владение объектом недвижимости.   Web3 – термин, сформулированный одним человеком и сегодня широко использующийся лишь в рамках криптосообщества. Термин Web3 предложил соучредитель проекта Эфириум, основатель проекта Polkadot и Web3 Foundation Гэвин Вуд. Термин Web3, предложенный Вудом в 2014 году, отличается от понятий веб 3.0 и семантическая сеть, появившихся намного ранее – в конце двадцатого века.   Операции, проводимые с токенами и криптовалютами, будут записываться в распределённые реестры. Многие проекты, разрабатывающие запись данных в распределённые реестры сегодня, используют структуру данных вида ациклического однонаправленного графа, узлами которого являются блоки, хранящие в себе информацию о предыдущих блоках и о транзакциях, совершённых с момента создания предыдущего блока. Эта структура данных, как вы могли догадаться, называется «блокчейн». Web3-приложения должны работать быстро, полагаться на распределённую вычислительную систему, обеспечивать безопасность для рядового пользователя и гарантировать сохранность и правдивость записанных данных. Распределённость вычислений и данных уберет необходимость в концентрации вычислительных мощностей в руках небольшой группы технических гигантов, как Google или Amazon, которым пользователи сегодня неизбежно доверяют хранение и обработку собственной информации, в том числе и приватной. Итого, из всего вышесказанного можно сформулировать требование к Web3-платформе, способной обеспечить бесперебойное функционирование Интернета в третьей его итерации. Это должна быть распределённая сеть с высочайшим уровнем безопасности, неприступным алгоритмом валидации транзакций, максимальной децентрализацией и беспрецедентной пропускной способностью. Многие существующие блокчейн-проекты, стремящиеся к лидерству в технологической гонке по обеспечению перехода к Web3, к сожалению сталкиваются с проблемой низкой пропускной способности сети, которая тормозит дальнейшее развитие экосистемы. При этом не существует гарантии того, что эра Web3 когда-либо настанет. Однако, прогнозы специалистов той или иной технической сферы зачастую сбываются. Сегодня едва ли найдется человек, грезящий о возвращении в эпоху веб 1.0 (этот термин был дан Интернету до бума доткомов ретроспективно, после создания термина веба 2.0 – той концепции Интернета, которой мы пользуемся здесь и сейчас).  В рамках данной статьи мы будем исходить из того, что Web3 всё-таки придёт на смену второй версии, и разработчики существующих сегодня решений будут вынуждены переформатировать свои продукты под новые реалии, а Интернет будет принадлежать в равной степени каждому его пользователю, а не нескольким централизованным игрокам на рынке информационных технологий. Предлагаем провести оценку нескольких децентрализованных сетей первого уровня на примере пар высоконагруженных децентрализованных приложений, работа которых вполне симулирует работу остальных всевозможных приложений, написанных для Web3.   Начнем с продукта Uniswap – децентрализованной биржи для спотовой торговли криптовалютами и токенами с системой автоматизированного маркет-мейкинга. Сегодня Uniswap работает в EVM-совместимых сетях. Изначально децентрализованная биржа разрабатывалась на протоколе Ethereum – первой распределённой сети с возможностью написания смарт-контрактов. Именно благодаря смарт-контрактам появилась возможность разработки продуктов со сложной логикой, вроде Uniswap. Это полностью децентрализованная биржа, логика которой написана исключительно на смарт-контрактах.  За исполнение кода смарт-контрактов в сети Ethereum отвечает Ethereum Virtual Machine (EVM). Архитектура данной виртуальной машины была описана еще в 2014 году. К сожалению, виртуальная машина Ethereum поддерживает построение сетей, способных к исполнению только синхронного кода, что и приводит к проблемам масштабируемости Эфириума. Разработчики самого популярного блокчейна первого уровня видят решение проблемы масштабируемости Эфириума в блокчейнах второго уровня (Layer 2, L2). По своей сути, это сайдчейны (отдельные блокчейны), построенные на основе протокола Эфириум и его виртуальной машины. Коммуникация с основной сетью происходит посредством мостов, которые могут быть целью для хакерских атак. В целом, использование сторонних сетей, переводы средств через мосты, необходимость хранения нескольких валют для оплаты комиссий в разных сетях – все это не добавляет к качеству пользовательского опыта. Вернемся к Uniswap. Проблема с пропускной способностью сети Ethereum приводит к тому, что за место для транзакции в блоке пользователи соревнуются, предлагая все больше и больше газа валидаторам. Кроме того, сам протокол повышает базовую комиссию, если объем газа (читай количество транзакций) заполняющий блок превышает определенный лимит.  Пользователи сети Эфириум, в моменты высокой нагрузки на сеть, например, во время ажиотажного спроса на монету, торгующуюся на Uniswap, сталкиваются с ситуацией, когда для включения транзакции в блок необходимо заплатить 20 и более долларов в Эфире. И все это сегодня во время криптозимы, когда активность в сетях в целом находится на низком уровне. Во время бычьего рынка комиссия в Эфириуме стабильно держится на высоком уровне. В будущем ситуация будет становиться все хуже и хуже с ростом числа пользователей экосистемы и ростом стоимости самого Эфира.  А что если Web3 всё-таки придет и торговля на Uniswap будет так же распространена как торговля ценными бумагами на традиционном фондовом рынке? Синхронная архитектура Ethereum ограничивает время создания нового блока двенадцатью секундами, а также лимитирует максимальный объем газа, включаемый в каждый блок. Что если миллион пользователей Uniswap захотят единовременно купить какой-нибудь цифровой актив? Это чревато блокировкой остальных транзакций в сети, а ведь операции в сети Ethereum не ограничиваются лишь торговлей на Uniswap.  Другой пример высоконагруженного приложения – децентрализованная платформа для торговли деривативами dYdX. Перед ее разработчиками возникло еще больше препятствий на пути создания качественного децентрализованного приложения на основе сети Ethereum.  Помимо необходимости решения проблем с низкой пропускной способностью и высокими комиссиями, взимаемыми в качестве оплаты за работу EVM, dYdX требуется высокая скорость финалзиации блоков для отражения изменений в книгах ордеров в реальном времени. Переходным решением стало использование L2-блокчейна от StarkWare, которое, как всем стало известно впоследствии, не может в полной мере удовлетворить потребности децентрализованной биржи с высоким объемом торгов. Четвертая версия протокола dYdX подразумевает перенос всей архитектуры на собственный блокчейн, построенный на ядре Tendermint проекта Cosmos. Ядро Tendermint и инструментарий разработчика Cosmos SDK позволяют строить узконаправленные блокчейны, закладывая логику приложения на уровне блокчейна. Механизм консенсуса, тем не менее, остается стандартным, описанным в ядре Tendermint. Таким образом, все приложения в экосистеме Cosmos развернуты в собственных блокчейнах с возможностью взаимодействия друг с другом. По адресу можно понять к какому блокчейну относится тот или иной адрес: ATOM – cosmos1mzfzfe57tyj6m4f8j5dv98qqaurjn39v92k6tg AKASH – akash17vz8hvg96lddwawdfygvu89ua4v7qgd6y39jvv OSMOSIS – osmo12ndfvm5pmpl0w9gpz7qep5q44exfkz8ulywz4a И в скором времени появится и блокчейн dYdX. Подобный гетерогенный подход неплохо сказывается на пропускной способности всей экосистемы, поскольку каждое приложение работает на собственном блокчейне, однако у него есть свои минусы: Безопасность каждого блокчейна зависит от количества и качества валидаторов каждого конкретного блокчейна; Допуск невалидных блоков в одном блокчейне может скомпрометировать безопасность других блокчейнов и безопасность всей экосистемы в целом; Проекту Cosmos еще предстоит решить эту проблему. Один из вариантов – аренда мощностей валидаторов из основной сети – Cosmos Hub; Сам по себе блокчейн Cosmos не обладает дополнительным функционалом, а монета блокчейна Cosmos (ATOM) обладает ценностью, основанной по большей части на вере в будущее проекта. Комиссии за работу валидаторов платятся в нативных монетах блокчейнов, что может негативно сказываться на пользовательском опыте: хотите воспользоваться децентрализованной биржей для спотовой торговли и пулами ликвидности на Osmosis? Каждая транзакция потребует оплаты комиссий в токене Osmo. То же в остальных блокчейнах, то же ждет dYdX и другие будущие приложения экосистемы. Ядро Tendermint не позволяет шардировать вычислительные мощности между валидаторами. Это означает, что валидация транзакций в каждом отдельно взятом блокчейне экосистемы Cosmos происходит в синхронном режиме. Это, в свою очередь, говорит о том, что при всплесках нагрузки внутри одного приложения (а мы уже писали о том, что в эпоху Web3 может потребоваться пропускная способность в сотни тысяч транзакций в секунду) весь отдельно взятый блокчейн будет замедляться. Да, проект Cosmos решил пойти по пути, отличному от Эфириума. Вместо смарт-контрактов со свободно программируемой логикой, размещенных в одной сети, экосистема Cosmos состоит из множества блокчейнов, в каждый из которых заложена своя бизнес-логика. Подойдёт ли подобное решение для обеспечения стабильной работы Web3? С учетом перечисленных выше недостатков – маловероятно. Cosmos не единственная сеть с гетерогенной природой (можно вспомнить Polkadot и ее парачейны), а Ethereum далеко не единственная сеть со смарт-контрактами. Однако всем им не хватает одного – распараллеливания нагрузки по валидаторам для асинхронного выполнения кода смарт-контрактов или кода программы, логика которой описана в коде отдельного блокчейна. При этом желательно, чтобы именно эта особенность была заложена на уровне протокола. А если есть необходимость внедрения смарт-контрактов, то и в архитектуру виртуальной машины. Тогда все будущие приложения будут писаться в рамках асинхронного подхода. Дочитав до этого момента, вы вероятно думаете, что для построения Web3-пригодных приложений нужна распределённая сеть с огромной пропускной способностью, заложенной на уровне протокола. И вы, вероятно, думаете, что такая сеть должна каким-то образом работать асинхронно, распределяя нагрузку между несколькими или несколькими сотнями групп валидаторов.  В таком случае отпадет необходимость в ограничении размера блока и регулировании спроса комиссиями. Стабильность и скорость работы такого асинхронного блокчейна не будут угнетаться большим количеством пользователей, а опыт от взаимодействия с приложениями, развернутыми в подобной распределенной сети будет близок по качеству к лучшим централизованным веб2-продуктам. Мы, как разработчики децентрализованных приложений для блокчейнов Everscale и Venom, будем писать об этих сетях, работающих на Threaded Virtual Machine. Существует еще одна асинхронная сеть, за исполнение кода смарт-контрактов в которой отвечает TON Virtual Machine – предыдущая итерация TVM. Эта сеть известна многим – Telegram Open Network (TON). В принципе, часть тезисов об Everscale и Venom будет валидна и для этой сети. Мы уже освещали возможности асинхронных блокчейнов, построенных на TVM. Кроме того, мы писали об особенностях разработки смарт-контрактов на языке Threaded Solidity, который компилируется в инструкции для TVM. Кратко об особенностях TVM-cовместимых сетей Everscale и Venom: Все сущности сети – смарт-контракты; Код смарт-контракта должен быть лаконичным, в идеале описывать одно действие в сети. Исполнение пользовательского действия должно быть похоже на параллельную работу нескольких микросервисов; Смарт-контракты обмениваются сообщениями. Получение валидного сообщения приводит к исполнению кода смарт-контракта; Исполнение кода смарт-контракта генерирует транзакцию; Смарт-контракты динамически распределяются по вычислительным Тредам; На каждый Тред назначается собственный набор валидаторов; Транзакции из разных Тредов собираются разными группами валидаторов в разные блоки в асинхронном режиме; Максимальное количество Тредов в одном Воркчейне – 256 сегодня и 65536 в перспективе; TVM-сети – гетерогенные: один Мастерчейн (Воркчейн -1) сохраняет состояние сети многих Воркчейнов (в Воркчейны деплоится большинство смарт-контрактов, описывающих логику децентрализованных приложений); Максимальное количество Воркчейнов – 232; Смарт-контракты из разных Воркчейнов свободно обмениваются сообщениями друг с другом. В данной анимации – схематичное представление архитектуры распределённой сети на TVM: В итоге мы имеем распределённую сеть, способную обрабатывать миллионы транзакций в секунду, с единственным недостатком – разработка контрактов для асинхронной архитектуры сложнее и более требовательна к навыкам программиста, чем разработка для синхронных сетей вроде Ethereum. Воркчейны могут быть гибко сконфигурированы и выступать в роли отдельных блокчейнов, вроде Зон в Cosmos. А Threaded Virtual Machine позволяет писать свободно программируемые смарт-контракты, код которых будет исполняться с высокой скоростью и эффективностью благодаря архитектуре самой виртуальной машины. Время финализации блока может достигать субсекундных значений – всё это гибко конфигурируется настройками, сохранёнными в контрактах Мастерчейна. Кроме того, на скорость финализации блоков оказывает положительное влияние улучшенный алгоритм консенсуса – SMFT (Soft Majority Fault Tolerance), который ускоряет достижение консенсуса благодаря допущению, что большая часть валидаторов большую часть времени являются честными и нормально функционирующими. Новый алгоритм консенсуса, тем не менее, никак не сказывается на безопасности сети и не добавляет ей уязвимостей. Все перечисленные выше особенности позволяют создать быстрое, масштабируемое, безопасное решение первого уровня, функционал которого может легко совершенствоваться после проведения децентрализованных голосований. При росте нагрузки, вычислительные Треды делятся, разделяя нагрузку между несколькими группами валидаторов: Воркчейны можно сконфигурировать для размещения отдельных решений:   Обладая таким набором характеристик, сети Everscale и Venom подходят для разработки Web3 приложений, способных обрабатывать транзакции от любого количества пользователей бесперебойно, быстро и стабильно. Да, сегодня в Everscale функционируют приложения, способные отчасти продемонстрировать потенциал асинхронных сетей (полное раскрытие потенциала будет возможно лишь с серьезным ростом количества пользователей). В анимации ниже демонстрируется взаимодействие Web3 приложения с сетью Everscale: Приложение отправляет внешнее сообщение в сеть; Сообщение приводит к исполнению логики смарт-контракта (на практике получение сообщения одним смарт-контрактом в большинстве случаев запускает исполнение кода нескольких смарт-контрактов по цепочке); Смарт-контракты развернуты в сети Everscale; Состояние сети постоянно обновляется и загружается нодами; ПО ноды преобразует код смарт-контракта в инструкции для ТВМ; ТВМ возвращает новые данные для обновления состояния сети; Ноды отправляют новое состояние сети соседним нодам как часть процесса валидации транзакций. Один из примеров такого приложения – FlatQube, децентрализованная биржа для спотовой торговли и децентрализованными пулами ликвидности. Логика его работы полностью описана в смарт-контрактах, способных к асинхронному взаимодействию с другими контрактами.  Вспомните, мы писали выше: «Что, если миллион пользователей Uniswap захотят единовременно купить какой-нибудь цифровой актив? Это чревато блокировкой остальных транзакций в сети». Во FlatQube такая проблема не возникнет. Отдельно взятая торговая пара FlatQube является смарт-контрактом. При поступлении в очередь огромного количества сообщений, предназначенных для данного контракта, он может остаться единственным в своем треде. Тогда на обработку транзакций по торговле на данной паре будет выделена целая отдельная группа валидаторов, вычислительной мощности которой будет вполне достаточно, чтобы обработать заявки любого количества трейдеров. И самое главное – обработка транзакций в данном вычислительном треде не окажет никакого негативного эффекта на транзакции из других тредов – ни замедления работы сети, ни повышения комиссий, ни остановок и застрявших транзакций в мемпуле. Gravix, в свою очередь, является децентрализованной платформой для торговли деривативами, которая работает на блокчейне Venom. С высокими скоростью финализации блоков и общей пропускной способностью сети, Gravix поддерживает обновление ордербуков ончейн. В этом и заключается польза современного эффективного решения первого уровня: разработчикам не нужно переходить на собственный блокчейн, думать о решениях второго уровня, кроссчейн-мостах и прочем. Достаточно освоиться с написанием асинхронных смарт-контрактов и понять архитектуру асинхронной гетерогенной децентрализованной сети, чтобы в результате получить гибкое, легко масштабируемое приложение, безопасность которого гарантирована распределённым протоколом Everscale или Venom. Если мы говорим о Web3 как о следующем поколении Интернета в целом, нам следует также обратить внимание на сервисы, знакомые людям, не погруженным в крипто-тематику. Примером такого сервиса может быть обычная электронная почта. Использование почтового сервиса эпохи веб2 таит в себе риски, главным из которых является разумеется взлом централизованных серверов компаний, которым мы доверили хранение своих личных переписок. Кроме того, сами компании сегодня вольны предоставить ваши почтовые сообщения по первому требованию. Усугубляется данная ситуация и тем, что данное обращение может быть подделано и ваша переписка легко попадет в руки не органов правопорядка, а злоумышленнику, которому по той или иной причине может быть выгодно владение информацией из ваших писем. Единственная архитектура для по-настоящему безопасной почты – приложение, развернутое в распределенной сети, со сквозным шифрованием. Стоит ли говорить, что аудитория подобного приложения может насчитывать десятки миллионов пользователей, как корпоративных, так и частных. Разумеется, для поддержания стабильной и быстрой работы такого децентрализованного решения требуется сеть с выдающимися возможностями к масштабированию. В экосистеме Everscale уже существует децентрализованная почта с шифрованием писем – Qamon. Как и другие, описанные выше, этот сервис полностью построен на смарт-контрактах: по сути, это почта для общения между двумя аккаунтами в сети Everscale. Подробнее о Qamon мы расскажем в следующих статьях. Наступление эпохи Web3 может сильно изменить текущий ландшафт распределения сил игроков на поле решений первого уровня. Мы считаем, что будущее за асинхронными, масштабируемыми, быстрыми, децентрализованными и безопасными сетями. Приглашаем вас ознакомиться с нашими наработками на Github, там вы найдете не только разработки в области децентрализованных приложений, но и полезные инструменты для разработчиков на TVM-совместимых блокчейнах.  Также призываем вас погрузиться в мир современных децентрализованных сетей и попробовать написать свой первый смарт-контракт на Threaded Solidity. Прогресс неизбежен!