Количество транзакций Ethereum всего 20 в секунду. Проблема масштабирования
Для любого разработчика, который пытался создать децентрализованное приложение, используемое массами, очевидно, что Ethereum - в его нынешнем проявлении - не совсем готов.
Отправка транзакций занимает много времени, а оплата за каждую базовую функцию обходится дорого и создает плохой пользовательский опыт.
Все сводится к общей проблеме «масштабируемости». Как низкая пропускная способность, так и стоимость транзакций являются серьезными препятствиями для любой значимой разработки.
Сколько транзакций Ethereum
Сегодня Ethereum обрабатывает около 500 000 транзакций в день и на полную мощность может обрабатывать около 20 транзакций в секунду.
Хотя эти транзакции не требуют участия посредников для проверки, централизованные партнеры могут обрабатывать транзакции гораздо эффективнее.
Например, платежная сеть Visa обрабатывает 150 миллионов транзакций в день или около 24 000 транзакций в секунду - на порядок больше, чем могла бы достичь любая децентрализованная блокчейн сеть.
Сравнение масштабирования транзакций криптовалют против VISA
Основная причина узкого места в масштабируемости Ethereum заключается в том, что каждый узел в сети должен обрабатывать каждую транзакцию.
Помните, что узлы выполняют работу по проверке того, что работа майнеров является действительной. Именно узлы играют неотъемлемую роль в сети, поскольку они являются основной проверкой майнеров, на случай, если они решат действовать злоумышленно.
Точно так же каждый узел хранит точную копию текущего состояния сети, что означает, что им не нужно полагаться на третью сторону для подтверждения баланса каждой учетной записи и смарт-контракта.
Ноды (узлы) сети Ethereum – принцип работы
Когда дело доходит до масштабирования Ethereum, самый важный вопрос...
Вопросы масштабирования
Сколько работы требуется сделать каждому узлу? Чем больше транзакций происходит в сети, тем больше работы приходится выполнять узлам. Эта работа не легка, операторы узлов несут высокие фиксированные затраты на приобретение оборудования, а также для настройки и обслуживания узла требуются высокие технические знания.
Меньшее количество узлов в сети означает меньше проверок майнеров и большую централизацию в сети в целом.
Решения масштабирования в сети и вне сети
Как правило, существует два подхода к масштабированию общедоступных блокчейнов: масштабирование в блокчейне (on-chain) и масштабирование вне блокчейна (off-chain).
Транзакция в цепочке (on-chain) - это транзакция, которая происходит в блокчейне.
Транзакции вне цепочки (off-chain) относятся к транзакциям, которые происходят в криптовалютной сети без выполнения транзакций в блокчейне.
On-chain масштабирование
Масштабирование в блокчейне относится к любому увеличению пропускной способности на уровне основного блокчейна.
Наиболее распространенный метод масштабирования в основной цепочке блоков - это увеличение объема данных, которые могут поместиться в каждом блоке.
Повышая лимит данных, вы можете разместить больше транзакций в каждом интервале нахождения (майнинга) блока в 13 секунд.
Самый простой способ повысить количество транзакций - это увеличить размер блока с транзакциями
Другие примеры масштабирования в цепочке сосредоточены вокруг подписей и манипулирования объемом данных, необходимых для действительной транзакции.
Критики масштабирования в основной сети блокчейна указывают на большие вычислительные требования, которыми должны удовлетворять операторы узлов, чтобы участвовать в валидации блоков.
Чем меньше полноценных узлов, тем более централизованной становится сеть, поскольку майнерам легче вести себя злонамеренно.
Помимо выжимания полных узлов, масштабирование в цепочке также требует твердого согласия сообщества, прежде чем оно будет реализовано. Это сложно делать, так как любое изменение должно быть одобрено через хард-форк.
Хардфорк – часто разделяет блокчейн на два разных. Так появился Ethereum Classic
Off-chain масштабирование
С другой стороны прохода находится внецепочечное масштабирование, которое обычно относится к построению дополнительных слоев над основным блокчейном, которые могут обрабатывать транзакции без использования основной цепи.
Типичные примеры масштабирования вне цепочки включают группирование нескольких платежей в одну транзакцию, каналы оплаты и боковые цепи (sidechains).
Основная идея масштабирования в блоковой цепи (sidechain) заключается в том, что основной блокчейн должен использоваться только в качестве уровня доверия и арбитража.
Сторонники этого подхода утверждают, что, если мы хотим, чтобы транзакции продолжались во всех узлах сети, они должны ограничиваться транзакциями на большие суммы.
В то время как как масштабирование в основной цепи, так и вне цепи имеют сторонников, большая часть сообщества объединилась вокруг масштабирования вне цепочки как наиболее быстрого пути продвижения вперед.
Основная причина этого заключается в том, что внешняя сеть лучше сохраняет децентрализацию, что является преимуществом, которое сообщество Ethereum в конечном итоге хочет защитить в долгосрочной перспективе.
Масштабирование вне цепочки часто называют масштабированием «Второго уровня» (layer 2), потому что оно включает перемещение транзакций в слои, которые располагаются поверх базового блокчейна Ethereum.
Принцип работы слоев верхнего уровня, взаимодействующих с основным слоем Эфириума
Теоретически это может распространяться и на 4-й и 5-й слои, но пока развитие сосредоточено на слое, находящемся непосредственно над Ethereum.
Для масштабирования 2-го уровня требуется дополнительное оборудование и сложное программное обеспечение, поэтому сети часто требуется больше времени, чтобы ощутить его влияние.
Также важно отметить, что масштабирование в основной цепи не было полностью исключено так же, как в Биткоине.
Ethereum 2.0 для решения проблемы масштабирования
Одним из долгожданных решений по масштабированию в дорожной карте Ethereum, является Sharding, - оптимизация основного блокчейна Эфириума.
Проблема с Sharding и масштабированием в блокчейне в целом заключается в том, что изменение основного протокола (с Proof-of-Work на Proof-of-Stake) технически сложно.
Таким образом, сообщество не желает полагаться исключительно на масштабирование в базовом блокчейне Ethereum.
Перемещение активности на слои, расположенные над основной цепью, обеспечивает быстрый путь к масштабируемым приложениям.
Ethereum более или менее определился с дальнейшими действиями. Ethereum 2.0 оказывается одним из самых амбициозных начинаний в блокчейн-пространстве, но если он будет работать как задумано, он станет одним из самых значительных достижений в децентрализации.
В основе Ethereum 2.0 лежат три решения по масштабируемости, призванные сделать Ethereum более широко используемым.
Каналы состояния (state channels)
Каналы состояния (state channels) позволяют пользователям осуществлять одноранговые операции «вне блокчейна», отправляя сообщения в основную цепочку только тогда, когда они хотят выйти из канала.
Они построены аналогично сети Биткойн Lightning Network. По сути, они являются платежными каналами, в которых пользователи осуществляют транзакцию за пределами основной цепочки и возвращаются к ней только тогда, когда они хотят синхронизироваться с основным блокчейном.
Каналы состояния особенно интересны, поскольку они позволяют пользователям отправлять обновления состояния, например, обновления смарт-контракта, а не просто деньги.
Каналы состояния функционально просты. Допустим, Алиса и Петр хотят отправить друг другу немного ETH. Если они ожидают отправки друг другу нескольких транзакций, они могут проводить все эти платежи вне блокчейна или в другом блокчейне, а затем возвращаться к базовому блокчейну, когда они прекращают транзакции.
Чтобы открыть канал, Алиса и Петр отправили бы ETH на Мульти-кошелек (коллективный кошелек). Затем они могут отправлять друг другу столько транзакций, сколько захотят, пока хранят каждую подпись транзакции в автономном режиме. Когда они захотят закрыть канал, они заплатят только одну комиссию за транзакцию и получают свои средства.
Есть много интересных команд, продвигающих технологию каналов состояния.
- Counterfactual облегчает разработчикам интеграцию каналов состояния в их dApps,
- Spankchain упрощает доступ их пользователей к масштабируемым средам,
- а Connext позволяет каждому приложению блокчейна устанавливать и использовать концентратор каналов состояний.
Plasma
Плазма - это основа для создания дочерних блокчейнов, связанных с Ethereum, которые обеспечивают более масштабируемое и сложное использование.
Дочерние цепочки привязываются к основной цепочке через корневой смарт-контракт. Этот контракт создает постоянную запись состояния и устанавливает правила для дочерней цепочки. Пользователи должны следовать правилам, изложенным в корневом контракте, если они хотят вернуть свои активы после возвращения в основную цепочку.
С первого взгляда плазма кажется немного запутанной, но концепция довольно проста: вы можете создавать меньшие блокчейны бесконечной сложности, если сеть Ethereum может проверить, что все в этих блокчейнах действительно.
Хотя может показаться, что существует множество угроз безопасности, использование Ethereum в качестве арбитражного слоя (только в случае возникновения спора) заставляет экономически рациональных игроков вести себя честно.
Сообщество Ethereum очень взволновано Plasma, и есть несколько известных команд, создающих основную инфраструктуру.
- OmiseGo уже давно работает над внедрением Plasma, чтобы лучше масштабировать свою платежную сеть,
- Loom Network создает сайдчейны цепочки Plasma для улучшения пользовательского опыта их коллекционной игры,
- а Карл Флёрш из Ethereum Foundation недавно выпустил простую спецификацию Plasma Cash.
Sharding
Шардинг является одним из последних и одним из самых амбициозных компонентов масштабной дорожной карты Эфириума.
Шардинг отличается от Каналов состояния и Плазмы тем, что он повышает производительность самого базового блокчейна Ethereum. Sharding (Осколок с анг.) означает разделение всей сети Эфириума на несколько частей, называемых «осколками». Каждый осколок - это, по сути, отдельный блокчейн со своим собственным состоянием.
Упрощенное объяснение Шардинга
Шардинг также определенно является одним из самых сложных решений в дорожной карте Ethereum, для его реализации еще предстоит провести много исследований и испытаний.
В частности, разработчики Ethereum должны создать механизм межсегментной связи, который позволит смарт-контрактам на одном шарде общаться с другими смарт-контрактами на других шардах.
Хотя Sharding является наиболее технически сложным решением, разработчиками экосистем уже создано 8 различных клиентов. Для изучения полного списка каждого клиента, проверьте этот список.
Выводы
Ethereum - это первая сеть, которая позволила разработчикам с первого дня создавать действительно интересны приложения с массовым распространением. Но конкуренция идет быстро, и в конечном итоге жемчужиной для разработчиков dApp являются пользователи.
В нынешнем виде Ethereum не сможет масштабироваться до миллионов пользователей.
Если он хочет сохранить тот же уровень децентрализации, ему придется искать новые способы структурирования использования вокруг базового блокчейна.
Решения, изложенные в планах масштабирования Ethereum, чрезвычайно амбициозны, но в случае успеха оставят Ethereum готовым для массового использования. Главное предостережение, эта дорожная карта очень экспериментальная, и нет эмпирических доказательств того, что все будет работать так, как планировалось.
Независимо от каких-либо сомнений, сообщество Эфириум продвигается вперед и имеет тысячи самых умных людей, работающих над масштабированием.
В следующие 3–6 месяцев мы должны начать видеть ощутимые преимущества, в первую очередь в отношении снижения комиссий за транзакции, завершенности технологии и удобства пользователей.
Затем мы начнем экспериментировать на сайдчейнах (боковых цепях), соединенных с более прочной и надежной платформой Ethereum. Как только это перемещение станет дешевым и легким между боковыми цепями и основной сетью Ethereum, мы должны начать видеть некоторое массовое принятие технологии платформы Ethereum.