FUEL – ДЕТАЛЬНО
FUEL – один из первых модульных блокчейнов, нацеленный на: «улучшить существующие блокчейны, такие, как Ethereum, в качестве высокопроизводительного уровня исполнения (execution layer)».
В этой статье затрону такие понятия, как модульные блокчейны, FuelVM, язык программирования Sway и набор инструментов Forc. Технических знаний практически не требуется. Лишь базовое понимание блокчейна.
ЧАСТЬ 1 – Определение модульного блокчейна
Для начала вспомним или выучим основы:
Блокчейн имеет четыре функции (или уровня; не путать с L1 и L2 сетями):
- Исполнение (execution): Выполнение транзакций для обновления сети;
- Урегулирование (Settlement): Разрешение споров;
- Согласование (Consensus): Определение состояния сети среди всех нод;
- Наличие данных (Data availability): Удостоверение, что данных публикуются в сеть.
Хорошо известные блокчейны, как Ethereum, являются монолитными блокчейнами. Все четыре функции выполняются одной и той же нодой, что обычно приводит к высоким требованиям для запуска этих нод.
Модульные блокчейны, в свою очередь, предоставляют возможность разделить выполнение этих функций между разными уровнями. Логика проста – уменьшение нагрузки и потребляемого места на диске приводит к лучшей пропускной способности. Нода, фокусирующаяся на уровне Исполнения, либо на любом другом уровне, будет более эффективной. Здесь и приходит Fuel со своими модульными решениями:
Трудно не упомянуть другой проект работающий над модульным будущим блокчейнов – Celestia. Не буду описывать нюансы его устройства сейчас, но наверняка разберу в будущем. Так что не забываем подписаться ;)
Обе команды, кстати, закрыли внушительные раунды финансирования: Fuel, Celestia.
Главное отличие между ними заключается в том, что Celestia фокусируется на уровне Согласование (Consensus) и Наличии данных (Data availability), в то время как Fuel на Исполнении (Execution). Несмотря на то, что Fuel способен функционировать как полноценная L1 сеть, основной целью остается улучшение существующих блокчейнов.
ЧАСТЬ 2 – Подход Fuel
Нынешние L2 решения в прошлом доказали, что не способны в полной мере обеспечивать низкие комиссии, когда главная сеть Ethereum загружена. Fuel, по дизайну, не должен сталкиваться с подобными проблемами, благодаря параллельному исполнению транзакций и Trust-minimized light clients.
Как правило, существует 2 вида клиентов: full-node и light-node. В то время как full-node подразумевает высокие требования и хранения всего состояния сети, от light-node требуется только проверка заголовков (headers) блоков. Сводится это к тому, что обычному пользователю проблематично развернуть и поддерживать полную ноду (full-node), в то время как поддержание легкой ноды (light-node) не гарантирует высокий стандарт безопасности сети. Неплохое разъяснение от офф команды:
«Честное большинство легких клиентов безопасно лишь тогда, когда большинство валидаторов честны. Полная нода безопасна, даже если все валидаторы не честны».
Первая инновация представленная командой Fuel Labs это Trust-minimized light client. Использующий механизм Fraud Proofs, данный клиент достигает высоких стандартов безопасности при низких требованиях к железу.
Fraud Proofs – это механизм блокчейна использующийся для определения должен или не должен ли блок быть принятым. Блок считается валидным, если за заранее определенное время не было выдвинуто никаких доказательств в его несоответствии. Используя такой механизм, легкая нода с уменьшенным доверием (Trust-minimized light client) считается безопасной, пока существует хотя бы один честный валидатор. А теперь сравните это определение с прошлой цитатой от команды.
Как было сказано, Fuel способен осуществлять параллельные транзакции. Представьте следующее. Когда отправляете транзакцию, она определяется в специальный список. Этот список определяется тем, с какими контрактами ваша транзакция будет взаимодействовать. Существует множество таких списков. Таким образом, сети нет необходимости обрабатывать транзакции в определенном строгом порядке, так как большинство из них не пересекаются между собой и находятся в разных списках. Это упрощенная версия того, как это работает в Fuel.
Как итог, мы получаем высокую пропускную способность и хорошую горизонтальную масштабируемость. По крайней мере на бумаге.
ЧАСТЬ 3 – Особенности структуры
Fuel Labs представляют 3 новых термина: Sway, FuelVM и Forc.
3.1 – Sway
Sway – это доменный язык (DSL) созданный на базе Rust + Solidity для виртуальной машины Fuel (FuelVM). Rust – это хорошо знакомый дружелюбный язык программирования, который, как говорят, облегчает жизнь разработчикам. Некоторые блокчейны уже построены с его применением: Solana, Near, Polkadot, Elrond.
Хотя Sway и базируется в основном на Rust, некоторые концепты для смарт-контрактов взяты с Solidity. Такое сочетание вместе с Forc (см. ниже) должно создавать уникальный опыт блокчейн разработки.
3.2 – FuelVM
FuelVM, не усложняя, это обновленная версия виртуальной машины Ethereum (EVM). Команда внесла изменения, которые многие годы выдвигались, как улучшения оригинального EVM. Однако они не внедрялись по причине негативных последствий и несовместимости с нынешней версией Ethereum.
Существует перечень того, чем FuelVM отличается от EVM, с которым можно ознакомиться здесь. Большинство из перечисленного является весьма техническими моментами, однако некоторые из них можно подчеркнуть:
- FuelVM убирает такие функции, как “approval” и “transferFrom” с помощью специальных скриптов, что делает UX еще лучше. Действия в таком случае вызываются напрямую отправителем.
- FuelVM использует 64-битный формат вместо 256-битного. Поскольку большинство машин используют 64-бит, это должно быть плюсом для разработчиков.
3.3 – Fuel Orchestrator (Forc)
Последний по списку, но не по важности Fuel Orchestrator (Forc) – это набор инструментов созданный командой Fuel Labs для помощи в разработке приложений на базе Fuel.
«Разработчики могут получить все необходимое для начала создания приложений на базе Sway и FuelVM с помощью единого инструментария, созданного той же командой, что и FuelVM и язык Sway».
ЧАСТЬ 4 – Заключение
Я бы сказал, модульные блокчейны способны стать серьезными конкурентами таким решениям как L2 и L0. Время покажет, является ли это идеалистической идеей или же гениальной конструкцией. Я не стал затрагивать некоторые технические аспекты, поскольку старался сделать статью как можно более простой. В добавок, всегда можете заглянуть в офф доки и соц сети: Twitter, Discord.
Ну а если было интересно и познавательно, возможно найдете здесь еще что-то интересненькое. Очень благодарен любой поддержке. Увидимся!