Разогнаться до миллиарда: возможности и препятствия. Ведущий программист компании BankEx Александр Власов комментирует протокол Plasma, совместной разработки Lightning Network и Виталия Бутерина.
***Disclaimer*** Данное описание является попыткой описать принципы, предложенные авторами, простыми словами. Оно нисколько не отражает сложные последовательности действий и мотиваций игроков, которые должны быть проанализированы специалистами теории игр. Также, на данный момент описание находится в стадии work in progress, имеет значительные ошибки и во многом является не полным.
Несколько дней назад Joseph Poon (основатель Lightning Network) и Виталий Бутерин (основатель криптовалюты Ethereum) представили первый черновик описания протокола Plasma, призванного значительно увеличить пропускную способность блокчейн-сетей, до величин порядка миллиардов операций в секунду, по словам самих авторов.
Во многом подход авторов близок к идее Lightning Network — это выведение транзакций за блокчейн, за счет замораживания средств в основной сети и использования этой суммы для расчетов вне сети. Основное свойство расчетов вне сети — это отсутствие централизованного расчетного сервиса, и использование определенного интерактивного протокола между непосредственными участниками расчета (отправителем и получателем, которых мы тоже будем называть Alice и Bob). Сами Alice и Bob имеют минимум доверия друг к другу и потому вовлечены в определенного рода “игру” — если один поймает другого на некорректном поведении ( нарушении заранее предопределенных правил транзакции), то второй участник “игры” может предъявить в родительскую сеть доказательства обмана и “обманщик” будет оштрафован.
В Plasma протоколе похожая идея развивается и обобщается. За корневой (root) блокчейн выводится целый новый блокчейн! Правила консенсуса в новом блокчейне и поведения участников и выполняемые функции описываются смарт-контрактом в корневой сети. Состояние потенциально большого количества участников в дочерней сети приводится к компактному представлению с помощью Merkle Tree и записывается в родительский блокчейн, что позволяет внешним наблюдателям следить за состоянием дочернего блокчейна. Для того, чтобы принимать участие в операциях в дочерней сети, участники изначально должны отправить средства на смарт-контракт дочерней сети.
Для начала предположим, что в дочерней сети действует протокол консенсуса Proof of Authority (PoA) — только определенный набор узлов может подтверждать транзакции. Оператор — создатель смарт-контракта дочернего блокчейна — несет ответственность за обновление данных и вносит в качестве залога значительные средства на этот контракт. Эти средства являются стимулом (incentive) для оператора вести себя согласно правилам. Поскольку все участники сети (как участвующие в родительском блокчейне, так и потенциально внешние) могут наблюдать за транзакциями в дочернем блокчейне, то в случае, если они находят ошибку в расчетах и предоставляют то, что авторы статьи называют “fraud proof”, то согласно условиям смарт-контракта в родительской сети оператор будет оштрафован на значительную сумму в пределах изначально депонированных им средств, а пользователи дочернего блокчейна смогут вывести свои средства обратно в родительский.
Этот протокол в целом является интерактивным, внутри такой дочерней сети Alice и Bob и идеале должны следить за текущими транзакциями и удостоверяться, что они корректно включены в дочернюю цепочку, и состояние дочерней цепочки корректно внесено в родительский блокчейн. Временное окно для возможности Alice или Bob поймать оператора блокчейна является конечным, поскольку, цитата, “whereby if a tree falls in the forest and nobody listens to it, it presumes that it doesn’t matter whether it makes a sound or not”.
Предложенная архитектура позволяет обойти основное ограничение корневого (root) блокчейна — достаточно высокую стоимость транзакций и хранения информации внутри цепочки (как минимум в текущем протоколе Proof of Work (PoW)), поскольку состояние дочерней цепочки компактно представлено в родительской и вычисления внутреннего состояние ведутся вне её. Тем не менее, родительский блокчейн является аналогом верховного суда над дочерним, что позволяет участником дочернего блокчейна вывести свои средства обратно при некорректном поведении.
Дочерняя сеть может иметь и другие механизмы консенсуса, авторы статьи также представляют вариант протокола Proof of Stake (PoS), хотя и призывают относиться к их варианту с определенной доли осторожности. Также, дочерняя сеть может оперировать внутри себя не только основной валютой корневой сети — этереумом (ETH), но и любыми ERC20 совместимыми токенами. Поскольку стоимость такого токена к другим единицам также будет определяться корректностью поведения участников в такой дочерней сети, это дает еще один стимул всем участникам вести себя корректно.
Вы можете спросить — где же ускорение до миллиарда транзакций? — ведь дочерние сети подвержены многим известным ограничениям, хотя потенциально и снижают стоимость транзакций и скорость обработки? Для этого авторы предлагают сделать шаг вглубь и создать внутри дочерней сети еще одну дочку!
Таким образом создается иерархия блокчейнов, и каждый вашестоящий является судьей и присматривает за своими дочками. Конечно же, авторами предусмотрены различные крайние ситуации, когда “дочка” ведет себя хорошо, а вот прямой её родительский блокчейн нарушает правила.
Такая иерархия блокчейнов во многом перекликается с идеей архитектуры map — reduce, которую предлагается использовать для реализации достаточно произвольных вычислений с помощью такого дерева блокчейнов. В статье можно найти примеры реализации аналога Reddit, децентрализованного обмена, электронной почты и Content Delivery Network (CDN). Тем не менее, такой подход к построению архитектуры не позволяет реализовать любые произвольные бизнес-процессы, что авторы также признают.
В данный момент опубликованный документ является черновиком и будет значительно дополнен, а описания — расширены. Тем не менее, уже сейчас можно сказать, предложенный протокол пока очень далек от реализации, хотя через какое-то время мы вполне можем увидеть несколько компаний, реализующих похожий функционал и работающих с целью коммерческого интереса. Также, описанная архитектура возможно содержит намек, что основная сеть Ethereum не перейдет на протокол консенсуса PoS, но будет организована дочерняя сеть с таким протоколом.
Автор: BankEx_Labs