В статье представлен обзор некоторых методов масштабирования блокчейна Ethereum.
Ключевые слова: блокчейн, Ethereum, масштабирование блокчейна.
Блокчейны в настоящее время имеют недостатки, и один из самых существенных — это скорость обработки транзакций. Чтобы соответствовать современным стандартам, сеть должна обрабатывать порядка нескольких тысяч транзакций в секунду (например, Visa имеет возможность обрабатывать порядка нескольких десятков тысяч транзакций в секунду). Ethereum [1] на данный момент, по словам Виталика Бутерина, сооснователя этого проекта, обрабатывает порядка 15 транзакций в секунду. Теоретически сеть может обрабатывать порядка 1000 транзакций в секунду. Но на практике количество транзакций, которые могут быть включены в блок и, следовательно, количество транзакций, которые могут быть обработаны за единицу времени, ограничено лимитом газа в блоке. Также ограничивающим скорость фактором является необходимость заверять истинность информации в блоке каждым узлом сети (т. е. пользователем, который проводит вычисления для сети).
Газ — единица исчисления комиссии за вычисления, произведенные в смарт-контракте.
Смарт-контракт — система, которая автоматически перемещает средства по заданным разработчиком контракта правилам.
Предложены разные решения данной проблемы.
Первый способ решения — увеличение размера блока (в случае Ethereum — лимита газа на блок), что влечёт за собой увеличение требуемых вычислительных мощностей, а это, в свою очередь исключает из процесса майнинга узлы, представляющие собой слабые компьютеры.
Другое направление решения — шардинг [1], предложенный Виталиком Бутериным.
Шардинг— подход к масштабированию блокчейна, при котором каждый узел сети обрабатывает не все транзакции, а только их часть. Сеть делится на части, называемые шардами.
Шардинг называют решением первого слоя, так как его внедрение происходит на базовом уровне протокола блокчейна Ethereum.
Сам Виталик Бутерин возлагает большие надежды именно на технологию шардинга и надеется достичь за его счёт пропускной способности порядка 100000 транзакций в секунду. [2]
Проблема шардинга состоит в том, что при разбиении блокчейна на n шардов каждый шард становится в n раз менее надёжен. Эта проблема решается введением нового блокчейна, в котором проводятся вычисления для случайного назначения пользователей для заверения блоков в каждом шарде. Но так как этот блокчейн не разбит на шарды, и его пропускная способность ограничена пропускной способностью каждого узла, количество шардов, которые он в состоянии поддерживать, ограничено.
В решениях второго слоя взята за основу идея эффективного использования имеющихся вычислительных мощностей сети без внесения изменений в базовый протокол. Такие решения как State channels и Plasma основаны на вынесении максимального количества полезных операций за пределы основного блокчейна Ethereum.
Statechannels — технология, при использовании которой между пользователями создаётся канал состояния. Этому каналу сообщается состояние блокчейна в данный момент. Далее пользователи обмениваются транзакциями между собой внутри этого канала. Когда пользователи решают прекратить обмен транзакциями, кто-то из них должен закрыть канал, передав в блокчейн соответствующую транзакцию, содержащую конечное состояние канала (например, список произведенных в канале транзакций). В течение некоторого времени пользователи могут оспорить результат.
Плюсы State Channels:
– В основной цепи происходит только два действия — развертывание и свертывание канала, после развертывания стоимость обновления состояния крайне низкая.
– Каналы состояния имеют сильные свойства конфиденциальности, потому что все происходит «внутри» канала между участниками, а не транслируется публично и записывается по цепочке. Только транзакции открытия и закрытия должны быть публичными.
Минусы State Channel:
– Необходима доступность. При потере соединения с каналом участник не сможет вмешаться, до окончания периода оспаривания.
Plasma[2] — как и state channels, технология основана на вынесении полезных операций из основного блокчейна. Но Plasma развивает идею за счёт создания дочерних блокчейнов, куда передаётся состояние основного блокчейна. В дочернем блокчейне действуют собственные правила консенсуса, которые могут отличаться от правил консенсуса основной цепи.
При возникновении ситуации, в которой производители блоков в дочерней цепи совершают попытки мошенничества, например, создания блока, в котором указано, что активы пользователя больше ему не принадлежат, пользователь имеет механизм оспаривания данной ситуации в основной цепи (например, предъявление последнего блока с истинной информацией). Также наказываются пользователи, подписавшие ложный блок.
Заключение. Блокчейны являются отличной платформой для реализации экономических механизмов благодаря встроенным монетарным стимулам и публичной верифицируемости информации в нем. Значительной проблемой является крайне низкая пропускная способность сети. Способы масштабирования блокчейна первого и второго слоя призваны решить эту проблему. Крупные компании, такие как OmiseGo, L4 Digital ведут исследования и разработку в направлении реализации различных методов.
Литература:
- V. Buterin. Ethereum White Paper. A NEXT GENERATION SMART CONTRACT & DECENTRALIZED APPLICATION PLATFORM. // http://blockchainlab.com. URL: http://blockchainlab.com/pdf/Ethereum_white_paper-a_next_generation_smart_contract_and_decentralized_application_platform-vitalik-buterin.pdf (дата обращения: 17.05.2019).
- Vitalik Buterin Says Ethereum Must Reach 100,000 Transactions Per Second, Bitcoin May Remain Solely a Store of Value // https://dailyhodl.com. URL: https://dailyhodl.com/2019/03/20/vitalik-buterin-says-ethereum-must-reach-100000-transactions-per-second-bitcoin-may-remain-solely-a-store-of-value/ (дата обращения: 17.05.2019).
- V. Buterin. Ethereum Sharding FAQ. URL: https://github.com/ethereum/wiki/ wiki/Sharding-FAQ (дата обращения: 17.05.2019).
- J. Poon, V. Buterin. Plasma: Scalable Autonomous Smart Contracts. // plasma.io. URL: https://plasma.io/plasma.pdf (дата обращения: 17.05.2019).