Onchain масштабирование блокчейна. Спикер: Дмитрий Мешков

2 месяца назад
65 в блокчейн

В данной лекции сооснователь Ergo Platform представит структурированную информацию об ончейн масштабировании блокчейн-систем.

Немного информация о спикере

С 2015 Дмитрий занимается разработкой в сфере технологии блокчейн.

Снимок экрана 2018-03-15 в 22.18.52.png

Доклад условно поделен на несколько частей:

  • Проблема пропускной способности
  • Bitcoin-ng
  • Waves-ng
  • GHOST
  • Inclusive GHOST

Проблема пропускной способности

Классические блокчейн-системы (Биткоин, Эфириум и т.п) имеют фундаментальное ограничение - количество транзакций, которые они способны обрабатывать за единицу времени.

Для сети Биткоин ограничение составляет 10 tx/s. Данное количество обусловлено двумя параметрами:
интервал между блоками (В Биткоин - 10 минут)
размер блока (В Биткоин - 1 Мб)

Проблема происходит из сетевого протокола, то есть участники сети должны успеть скачать блок, до момента появления следующего.

В сети Эфириум данная настройка более гибкая. Размер блока может меняться путем голосования.

Снимок экрана 2018-03-15 в 22.18.01.png

Верхний график иллюстрирует количество транзакций в сети Эфириум за день.
Нижний график - количество так называемых uncle блоков (блоки не попавшие в основную цепочку) за тот же временной период.

Uncle блоки появляются по причине того, что за время скачивая одного блока, на этой же высоте создается другой блок.

Визуально заметно, что две данные величины скоррелированы - чем больше транзакций в секунду сеть Эфириум пытается обработать, тем больше блоков не попадают в основную цепочку.

Рассмотрим проблему шире

Снимок экрана 2018-03-15 в 22.20.17.png

Блокчейн - р2р сеть, когда участник сети создает блок, он рассылает свой блок двум своим соседям, которые в свою очередь данный блок проверяют, валидируют, добавляют в свою цепочку и отправляют своим соседям и так далее. И пока блок распространится по всем узлам сети может пройти достаточно много времени.

Следовательно, за счет р2р природы сети пропускная способность невысокая.

На сегодняшний день предлагаются различные решения проблемы, рассмотрим некоторые из них

Bitcoin-ng

Авторы протокола Bitcoin-ng выделили несколько основных моментов работы сети:

  • Создание блоков -случайный процесс
  • Среднее время - 10 минут, но разброс может быть очень большим
  • Сеть иногда загружена, иногда простаивает

Учитывая данные особенности, идея протокола заключается в максимально равномерном распределении нагрузки сети.

Добиться цели авторы пытаются за счет разделения двух процессов, которые происходят в момент создания блока: выбор лидера и выбор транзакции.

В Bitcoin-ng блоки делятся на ключевые блоки и микроблоки:

Ключевые блоки

Ключевые блоки подобны пустым блокам без транзакций в классической сети Биткоин, имеют те же поля:

  • Ссылку на предыдущий блок
  • Время
  • Coinbase транзакцию
  • Текущую сложность сети
  • Nonce
  • И добавляется еще одно поле - публичный ключ, это значит, что майнер, подписавший блок, имеет право создавать микроблоки

Микроблоки содержат:

  • Ссылку на предыдущий блок
  • Время
  • Транзакции
  • Подпись - по подписи можно понять, что блок создал именно тот майнер, который создал ключевой блок

Снимок экрана 2018-03-15 в 22.21.41.png

Из изображения видно, что майнер В может выбирать на какой из микроблоков ссылаться. Из этого следует, что протокол подстраивается под текущие сетевые ресурсы майнеров, поскольку дает возможность ссылаться на те блоки, которые майнеры успели скачать.

Обозначим преимущества протокола Bitcoin-ng

  • Ключевой блок - заголовок блока, небольшой, что обеспечивает быстрое распространение
  • Фиксированный интервал между микроблоками создает условия для равномерного распределения нагрузки сети
  • Появляется устойчивость к внезапному сокращению мощностей
  • Быстрое время первого подтверждения

Также следует отметить

Снимок экрана 2018-03-15 в 22.22.16.png

С появлением новых возможностей, появляются новые проблемы

Снимок экрана 2018-03-15 в 22.22.57.png

Данная проблемы решаются путем разделения транзакционных комиссий

Снимок экрана 2018-03-15 в 22.25.05.png

40% - майнеру, создавшему текущий блок
60% - майнеру, создавшему следующий блок

Разделение происходит 40% и 60% по причине

Снимок экрана 2018-03-15 в 22.25.40.png

Рассмотрим на примере двух экспериментов параметры Bitcoin-ng:

  • Сравним параметры Биткоин и Bitcoin-ng в случае изменения частоты блоков

Снимок экрана 2018-03-15 в 22.26.28.png

Синим отмечен график для Биткоин, зеленым - Bitcoin-ng

  • Сравним параметры Биткоин и Bitcoin-ng в случае изменения размера блока

Снимок экрана 2018-03-15 в 22.27.28.png

Графики показывают более эффективную работу протокола Bitcoin-ng по сравнению с оригинальным протоколом Биткоин.

Waves-ng

Протокол Bitcoin-ng был впервые реализован в криптовалюте Waves-ng. В данной системе протокол получил дополнительное преимущество за счет использования алгоритма Proof of Stake.

В PoS блоки можно изменять и переподписывать,в итоге есть только единый тип блоков, микроблоки - просто тип сетевого сообщения.

Еще одна реализация Bitcoin-ng - Byzcoin

Byzcoin - скрещенный протокол блокчейн Биткоин и PBFT.

Снимок экрана 2018-03-15 в 22.29.21.png

GHOST

Протокол GHOST учитывает все блоки в определенных цепочках.

Снимок экрана 2018-03-15 в 22.30.06.png

Реализация:

  • Ссылки на несколько родителей
  • Пересчет сложности - по количеству форков в блоках
  • Награды - только за блоки в лучшей цепочке

GHOST Inclusive

Протокол GHOST Inclusive учитывает транзакции из побочных цепочек.

Снимок экрана 2018-03-15 в 22.32.13.png

В данном протоколе комиссия полагается тому, кто создал блок за транзакции, которых не было раньше. В таком случае, стоит выбирать случайные транзакции, а не транзакции с наибольшей комиссией.

Если у вас остались вопросы, можете задать их непосредственно спикеру лекции

Снимок экрана 2018-03-15 в 22.33.05.png







Авторы получают вознаграждение, когда пользователи голосуют за их посты.
Голосующие читатели также получают вознаграждение за свой голос.
Порядок сортировки:  Популярное
42
  ·  2 месяца назад

Привет @cyberevents классно пишешь!
Я тут тоже недавно завёл свой блог @deniskorablev
Буду благодарен, если подпишешься, я на тебя уже подписался ;)
Скоро опубликую статью на ту же что и ты тему.
Давай дружить :) Успехов тебе!