Onchain масштабирование блокчейна. Спикер: Дмитрий Мешков
В данной лекции сооснователь Ergo Platform представит структурированную информацию об ончейн масштабировании блокчейн-систем.
Немного информация о спикере
С 2015 Дмитрий занимается разработкой в сфере технологии блокчейн.
Доклад условно поделен на несколько частей:
- Проблема пропускной способности
- Bitcoin-ng
- Waves-ng
- GHOST
- Inclusive GHOST
Проблема пропускной способности
Классические блокчейн-системы (Биткоин, Эфириум и т.п) имеют фундаментальное ограничение - количество транзакций, которые они способны обрабатывать за единицу времени.
Для сети Биткоин ограничение составляет 10 tx/s. Данное количество обусловлено двумя параметрами:
интервал между блоками (В Биткоин - 10 минут)
размер блока (В Биткоин - 1 Мб)
Проблема происходит из сетевого протокола, то есть участники сети должны успеть скачать блок, до момента появления следующего.
В сети Эфириум данная настройка более гибкая. Размер блока может меняться путем голосования.
Верхний график иллюстрирует количество транзакций в сети Эфириум за день.
Нижний график - количество так называемых uncle блоков (блоки не попавшие в основную цепочку) за тот же временной период.
Uncle блоки появляются по причине того, что за время скачивая одного блока, на этой же высоте создается другой блок.
Визуально заметно, что две данные величины скоррелированы - чем больше транзакций в секунду сеть Эфириум пытается обработать, тем больше блоков не попадают в основную цепочку.
Рассмотрим проблему шире
Блокчейн - р2р сеть, когда участник сети создает блок, он рассылает свой блок двум своим соседям, которые в свою очередь данный блок проверяют, валидируют, добавляют в свою цепочку и отправляют своим соседям и так далее. И пока блок распространится по всем узлам сети может пройти достаточно много времени.
Следовательно, за счет р2р природы сети пропускная способность невысокая.
На сегодняшний день предлагаются различные решения проблемы, рассмотрим некоторые из них
Bitcoin-ng
Авторы протокола Bitcoin-ng выделили несколько основных моментов работы сети:
- Создание блоков -случайный процесс
- Среднее время - 10 минут, но разброс может быть очень большим
- Сеть иногда загружена, иногда простаивает
Учитывая данные особенности, идея протокола заключается в максимально равномерном распределении нагрузки сети.
Добиться цели авторы пытаются за счет разделения двух процессов, которые происходят в момент создания блока: выбор лидера и выбор транзакции.
В Bitcoin-ng блоки делятся на ключевые блоки и микроблоки:
Ключевые блоки
Ключевые блоки подобны пустым блокам без транзакций в классической сети Биткоин, имеют те же поля:
- Ссылку на предыдущий блок
- Время
- Coinbase транзакцию
- Текущую сложность сети
- Nonce
- И добавляется еще одно поле - публичный ключ, это значит, что майнер, подписавший блок, имеет право создавать микроблоки
Микроблоки содержат:
- Ссылку на предыдущий блок
- Время
- Транзакции
- Подпись - по подписи можно понять, что блок создал именно тот майнер, который создал ключевой блок
Из изображения видно, что майнер В может выбирать на какой из микроблоков ссылаться. Из этого следует, что протокол подстраивается под текущие сетевые ресурсы майнеров, поскольку дает возможность ссылаться на те блоки, которые майнеры успели скачать.
Обозначим преимущества протокола Bitcoin-ng
- Ключевой блок - заголовок блока, небольшой, что обеспечивает быстрое распространение
- Фиксированный интервал между микроблоками создает условия для равномерного распределения нагрузки сети
- Появляется устойчивость к внезапному сокращению мощностей
- Быстрое время первого подтверждения
Также следует отметить
С появлением новых возможностей, появляются новые проблемы
Данная проблемы решаются путем разделения транзакционных комиссий
40% - майнеру, создавшему текущий блок
60% - майнеру, создавшему следующий блок
Разделение происходит 40% и 60% по причине
Рассмотрим на примере двух экспериментов параметры Bitcoin-ng:
- Сравним параметры Биткоин и Bitcoin-ng в случае изменения частоты блоков
Синим отмечен график для Биткоин, зеленым - Bitcoin-ng
- Сравним параметры Биткоин и Bitcoin-ng в случае изменения размера блока
Графики показывают более эффективную работу протокола Bitcoin-ng по сравнению с оригинальным протоколом Биткоин.
Waves-ng
Протокол Bitcoin-ng был впервые реализован в криптовалюте Waves-ng. В данной системе протокол получил дополнительное преимущество за счет использования алгоритма Proof of Stake.
В PoS блоки можно изменять и переподписывать,в итоге есть только единый тип блоков, микроблоки - просто тип сетевого сообщения.
Еще одна реализация Bitcoin-ng - Byzcoin
Byzcoin - скрещенный протокол блокчейн Биткоин и PBFT.
GHOST
Протокол GHOST учитывает все блоки в определенных цепочках.
Реализация:
- Ссылки на несколько родителей
- Пересчет сложности - по количеству форков в блоках
- Награды - только за блоки в лучшей цепочке
GHOST Inclusive
Протокол GHOST Inclusive учитывает транзакции из побочных цепочек.
В данном протоколе комиссия полагается тому, кто создал блок за транзакции, которых не было раньше. В таком случае, стоит выбирать случайные транзакции, а не транзакции с наибольшей комиссией.
Если у вас остались вопросы, можете задать их непосредственно спикеру лекции