Плыви в сети...
priv.eth, читатель!
В нашей статье про альткоины мы уже бегло затрагивали тему сетей. Говорили, что у каждой сети есть своя монета, которая используется для функционирования блокчейна, на котором сеть построена.
Давай посмотрим на существующие сети, поговорим зачем столько различных блокчейнов и рассмотрим то, какие проблемы они решают, и разберемся с видами сетей.
Оглавление
Куда столько...
Bitcoin, Ethereum, BSC, Solana, Terra, Tron, Cardano, Cosmos, Near, Polkadot, Avalanche, Polygon... можем продолжать еще долго.
Это всё - существующие и реально функционирующие блокчейны, на которых строятся десятки и сотни проектов. Но почему бы не создать все проекты, например, на Ethereum и не бегать между сетями туда-сюда? Потому что не существует идеального блокчейна.
Как мы уже говорили в одной из первых статей - у блокчейна как технологии есть некоторые недостатки. Давайте раскроем их подробнее...
Трилемма масштабируемости
Еще в 90-х годах ученый Эрик Брюэр разработал так называемую теорему CAP. Согласно ей, у децентрализованной базы данных (к которой относится и блокчейн) может быть только два из трех основных свойств — согласованность (Consistency), доступность (Availability) и устойчивость к делению (Partition).
Таким образом, теорема ставит проблему: создатели децентрализованной базы данных должны пожертвовать одним из трех свойств, чтобы достичь должного уровня остальных двух.
Позднее, небезызвестный Виталик Бутерин, о котором мы уже рассказывали в статье про Ethereum, адаптировал эту теорему под блокчейн и популяризировал ее как "Триллему масштабируемости". Эта триллема говорит о том, что каждый блокчейн обладает тремя главными свойствами:
- Масштабируемость. Способность сети увеличивать пропускную способность, то есть обрабатывать все большее число транзакций за единицу времени.
- Децентрализованность. Способность сети работать без необходимости контроля со стороны какого-то субъекта или группы субъектов. Другими словами - это степень распределенности "власти" над блокчейном между его пользователями.
- Безопасность. Блокчейн способен противостоять потенциальной атаке значительной части нод (в идеале — 50% всех нод в сети, но все, что выше 25% — хороший уровень).
Отражения трилеммы
Существует три группы блокчейнов, наглядно отражающих триллему масштабируемости:
- Традиционные блокчейны: В них работает алгоритм консенсуса PoW, где любой желающий может участвовать в подтверждении транзакций в блокчейне. Такие сети обладают высоким уровнем безопасности и децентрализации, но низкой пропускной способностью.
Примеры: Bitcoin, Ethereum, Litecoin. - Скоростные блокчейны. Обычно это сети, работающие на алгоритмах консенсуса PoS или DPoS. Это производительные и безопасные, но не достаточно децентрализованные сети, т.к. представленные алгоритмы консенсуса имеют тенденцию к централизации.
Примеры: Solana, Cardano, Tezos. - Мультичейн-системы, в которых приложения связаны с различными блокчейнами, а те, в свою очередь, взаимодействуют между собой через протоколы кроссчейн-коммуникации. Это пример децентрализованной и масштабируемой сети, но не безопасной. Ведь для атаки нужно завладеть большинством нод всего в одном блокчейне системы, чтобы «сломать» привычную структуру и вызвать негативные последствия у всех остальных участников.
Примеры: Polkadot, Cosmos.
Если вам не понятно, что такое алгоритмы консенсуса - прочитайте нашу предыдущую статью: "Все еще кушаем блокчейны..."
Layer 1
Все сети, о которых мы говорили выше - сети первого уровня, или L1 сети. Это все те блокчейны, о которых вы обычно слышите - Bitcoin, Ethereum, Solana и остальные.
Каждый блокчейн первого уровня пытается решить триллему масштабируемости по-своему.
Причем обычно с безопасностью и децентрализацией проблем не возникает, потому что отличные примеры реализации этих параметров представлены в Bitcoin и Ethereum. А вот уже с масштабируемостью приходится делать "финт ушами".
На сегодняшний день самыми популярными способами увеличить пропускную способность сети являются увеличение размера блока и шардинг.
Увеличение размера блока
Теоретически самый простой способ решения проблемы масштабирования блокчейна. Позволяет включить в блок больше транзакций и уменьшить размер комиссии. По этому пути пошел Bitcoin Cash.
Увеличение размера блока ведет к централизации и требует хардфорка (о хардфорках мы рассказывали в предыдущей статье), который грозит расколом сообщества и разделением сети на две цепи.
Поэтому большие блоки не могут рассматриваться как долгосрочное решение проблемы масштабируемости.
Шардинг
Это метод разделения блокчейна на несколько "параллельных" блокчейнов.
Шардинг подразумевает разделение сети блокчейна на индивидуальные сегменты (шарды). Каждый шард содержит уникальный набор смарт-контрактов и балансов счетов.
В едином блокчейне каждая нода отвечает за транзакции во всей сети. При шардинге, за каждым сегментом блокчейна закрепляется определенная нода, работающая только в пределах этого сегмента
Разделение блокчейна на более управляемые сегменты позволяет увеличить пропускную способность транзакций и тем самым решить проблему масштабируемости.
Основные проблемы шардинга — коммуникация и безопасность. При таком подходе каждый шард станет отдельной сетью. Пользователи и приложения одного сегмента не смогут коммуницировать с пользователями и приложениями другого, не применяя особый механизм коммуникации.
В сегментированном блокчейне также возникает проблема безопасности, поскольку хакерам легче захватить один шард — по причине меньшей мощности, требуемой для контроля индивидуальных сегментов (так называемая атака 1%).
Ethereum предлагает решение в виде рандомизированной выборки нод, управляющих конкретным шардом.
Примеры сетей с шардингом: Near и, в ближайшем будущем, Ethereum.
Layer 2
А теперь поговорим об очень хайповом на сегодня сегменте крипты - Layer 2 сетях.
Основное отличие L2 от L1 заключается в том, что L2 сети - это "симбиоты" по отношению к L1 блокчейну. То есть они не являются самостоятельной сетью, а лишь дополняют родной блокчейн.
Гениальность этого решения заключается в лаконичном решении все той же трилеммы масштабируемости.
L2-системы могут обрабатывать значительные объемы транзакций, уменьшая нагрузку на базовую сеть и высвобождая ресурсы для других функций. Таким образом, они являются очень хорошим решением для масштабируемости блокчейнов, потому что большая часть функций безопасности и децентрализации лежат на родительском блокчейне.
L2 решения делятся на два вида.
Каналы состояния
Канал состояния — это решение второго уровня, позволяющее участникам совершать бесконечное множество приватных транзакций вне основного блокчейна.
В отличие от ончейн-транзакций, операции в каналах состояния видимы лишь их пользователям. Только первоначальное и финальное состояние транзакций записываются в основном блокчейне.
Участники каналов состояния заключают соглашения, которые подтверждают своими цифровыми подписями.
Пример каналов состояния: Lightning Network (на Bitcoin) и Plasma (на Ethereum)
Сайдчейны
Это технология, позволяющия токенам и другим цифровым активам одного блокчейна безопасным образом использоваться в другом блокчейне и затем (в случае необходимости) быть возвращенными в оригинальный блокчейн.
Чтобы перевести средства с родительского блокчейна на сайдчейн, пользователь отправляет средства на специальный адрес, где они блокируются и через время, он получает такое же количество средств на сайдчейне.
При отправке монет из сайдчейна в основной блокчейн происходит обратный процесс.
Сайдчейны сами отвечают за свою безопасность и нуждаются в собственных валидаторах. При отсутствии достаточной майнинговой мощности для обеспечения безопасности сайдчейн могут взломать. Поскольку каждый сайдчейн независим, в случае, если он взломан или скомпрометирован, ущерб остается в рамках этой цепи и не затрагивает основной блокчейн.
Примеры: Polygon, zkSync, Liquid Network, ImmutableX.
Вообще сайдчейны очень обширная тема. Мы так как это вводная статья, мы зздесь не затрагиваем деталей работы сайдчейнов, например zk-rollups, optimistic rollups или Validium. Об этих понятиях мы подробнее раскажем в последующих статьях. Так что ставьте уведомленя на канал, чтобы не пропустить.