Помните, как Криптокотики опрокинули сеть Эфира?
Число неподтвержденных ожидающих транзакций побило все рекорды, комиссии за транзакции также достигли абсурдных высот, а один пользователь (по ошибке) заплатил комиссий на 11 тысяч долларов. В этой статья я хотел бы рассказать о том, какие сегодня есть решения (или гипотезы) насчет повышения масштабируемости блокчейн проектов.
Число неподтвержденных Ethereum-транзакций с 5 декабря (Рекордная отметка превышает 30 тысяч)
Цены на газ, для подтверждения требуется более 40 Gwei
Необходимость в решениях для масштабирования с каждым днем становится все более острой, ведь увеличиваются комиссии и время ожидания транзакций.
Devcon3 назвал несколько потенциальных решений для масштабирования, которые смогут избавить если не ото всех, то от большинства сегодняшних проблем масштабирования. Однако, эти решения, за исключением uRaiden, находятся на стадии исследования и пока недостаточно развиты для основной сети. Другие эксперты предлагают повысить лимит газа на блок (что-то вроде повышения размера блока у Биткоина), но и у такого решения есть свои недостатки.
Тем временем наметился очевидный спрос на решения для масштабирования, которые смогут работать уже сегодня. Необходимо справляться с потребностями существующих децентрализованных приложений так, чтобы окончательно не перегрузить сеть Ethereum. Если даже такое примитивное приложение, как CryptoKitties, может вывести Ethereum из строя, как сеть справится с приложением масштаба StarCraft с миллионом пользователей?
«Вы могли бы запустить StarCraft на блокчейне. Это возможно. Высокий уровень надежности и масштабируемости позволяет надстраивать в блокчейне прочие различные приложения. Ethereum — это надежный базовый слой с небольшим количеством функций» — Виталик Бутерин
Цель этой статьи — описать, как достичь масштабирования на Ethereum с помощью специализированных сайдчейнов с настраиваемым «набором правил» и в то же время сохранить надежность основной цепочки Ethereum.
Масштабирование с помощью сайдчейнов
Термин «сайдчейн» впервые появился в статье «Инновационные возможности блокчейнов, открывающиеся с помощью привязки сайдчейнов», опубликованной Адамом Бэком и соавторами в 2014 году. Статья описывает «двунаправленную привязку сайдчейнов», механизм, в котором вы доказываете, что «заблокировали» монеты, которыми владели раньше, и получаете возможность перемещать другие монеты в пределах сайдчейна. Здесь нужно пояснить один момент, чтобы избежать неправильного понимания.
Сайдчейны могут увеличить масштаб, но не предполагают масштабируемость. Сайдчейны обеспечивают масштабируемость не лучше, чем увеличение размера блока. Но сайдчейны позволяют экспериментировать, чтобы суметь построить сети, которые работают на других технологиях — возможно, на технологиях с лучшим масштабированием.¹
Сайдчейн определяется пользовательским «набором правил» и может использоваться, чтобы выгрузить вычисления из другой цепочки. Индивидуальные сайдчейны могут следовать различным наборам правил основной цепочки, а это значит, что они могут оптимизироваться для приложений, которые требуют экстремально высоких скоростей или сложных расчетов, но по-прежнему полагаться на основную цепь в вопросах, требующих высочайшего уровня безопасности.
Источник
Специализированные сайдчейны
Правила, которые определяют сайдчейн, могут добавлять функции конфиденциальности или даже безопасности и децентрализации торговли для увеличения пропускной способности. Здесь открывается огромный простор для экспериментов. В зависимости от потребностей конкретного приложения можно задать настройки, которые обеспечат ему оптимальную эффективность.
Также, стимулы в случае управляемых данными приложений будут отличаться от финансовых приложений. Возможно, хакер найдет целесообразным потратить миллионы долларов, чтобы организовать атаку 51% на финансовый блокчейн и отменить платеж, но вряд ли он будет делать то же, чтобы отменить твит на платформе микроблоггинга. Поэтому приложениям необходима возможность выбора более гибкого моделирования угрозы и оптимизации работы.
Существует огромная потребность в приложениях, которые невозможно остановить, которые сопротивляются цензуре, являются прозрачными и работают максимально эффективно.
Так, в децентрализованном приложении типа Twitter, работающем на блокчейне, регулируемая безопасность может обеспечить более высокую пропускную способность, предоставляя основной цепочке «контрольные точки», чтобы зафиксировать финальную на данный момент версию информации.
Мы описали способы масштабирования децентрализованных приложений. Но что будет, если из-за потенциальной модели с пониженным уровнем безопасности какое-либо сообщество станет настолько влиятельным, что сможет контролировать сайдчейн?
Как добиться независимости с помощью хардфорков
В централизованных сообществах, таких, как сабреддиты, порой появляется вредный модератор, который начинает редактировать комментарии в своих интересах и со временем просто уничтожает сообщество.
В таких многопользовательских играх, как World of Warcraft, глобальные изменения иногда осуществляются против воли сообщества, и у пользователей нет возможности возразить — либо они принимают новые правила, либо бросают игру. Даже Виталик Бутерин был поражен такими событиями!
«Я с радостью играл в World of Warcraft с 2007 по 2010 годы, но в один прекрасный день Blizzard удалил компонент дамага из моего любимого заклинания Варлока Siphon Life. Я плакал, пока не заснул, а потом понял, на какие ужасы способны централизованные сервисы. Вскоре я бросил эту игру».
Координированные сообщества должны иметь возможность избежать ситуаций, которые им кажутся несправедливыми, и выбрать альтернативу, с которой согласятся все.
Ключ к достижению таких соглашений — хардфорки в сайдчейнах.
Если описывать термин максимально кратко, форк — это механизм обновления протокола. В блоге Виталика можно найти очень качественное сравнение форков.
Диаграмма Венна с вариантами форков, источник
Хардфорк — это категоричное расхождение с предыдущей версией блокчейна. Ноды, работающие с предыдущей версией, не будут принимать новую версию протокола.¹
Как же этим способом добиться независимости?
Если происходит изменение, с которым не соглашается сообщество, то такое сообщество может ответвиться и продолжить работать в предыдущей версии сайдчейна.
Предложенное изменение, с которым не согласно сообщество, может быть проигнорировано. Сообщество (в лице большинства несогласных) может продолжать работать в старой цепи.
Если такое произойдет, скажем, в игре, то возникнет множество вопросов:
- Что, если большинство ведущих «вредных» разработчиков решит остаться в старой цепи?
- Будет ли новая цепочка отставать в развитии или разработчики будут адаптироваться и идти на компромисс?
У нас нет всех ответов, но поверьте, по мере создания таких приложений с самоуправлением свободный рынок сам разберется и выберет лучшие практики.
По крайней мере, в таком случае у сообщества есть выбор.
Loom Network стремится стать платформой, где сообщества запускают свои программы в сайдчейнах, и где все заинтересованы в честности и прозрачности, а также хотят при необходимости регулировать ограничения безопасности.
Сообщества смогут работать на блокчейне, в котором пользователи смогут разворачивать свои собственные ноды и защищать сеть. Эти сообщества могут быть сетями наподобие Steemit, сабреддитами, форумами, группами на Facebook, сайтами с вопросами и ответами типа Stack Overflow — в общем, местами, где люди могут обсудить общие интересы — а также многопользовательскими играми, где каждый будет заинтересован в честном соблюдении правил. Если какое-либо изменение не поддерживается сообществом, пользователи должны иметь возможность ответвиться в форк.
Когда разработчики смогут создавать подобные платформы с такой же легкостью, с какой сейчас создают современные Web 2.0 приложения, тогда и начнется блокчейн-революция.