Анализ биткойн-сети, часть 4: моделирование будущей нагрузки

jzhlbae

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

Моделирование пропускной способности биткойн-сети

Во второй части нашего анализа мы выяснили, что в своей нынешней форме биткойн-сеть может стабильно обрабатывать примерно 3 транзакции в секунду (TPS). На текущий момент в 2015 году нагрузка на сеть составляет в среднем 1,2 TPS, однако из-за увеличения количества транзакций этот показатель постепенно растет. В этой части мы рассмотрим, к чему это может привести на практике, и попытаемся оценить, когда при условии сохранения текущих темпов роста в сети начнут наблюдаться заметные задержки подтверждения транзакций.

a1

Чтобы собрать сведения о том, как будет работать сеть при большом количестве транзакций, 29-30 мая было проведено нагрузочное тестирование, результаты которого показаны на приведенной ниже диаграмме. Как видите, при пиковой нагрузке в пуле (список транзакций, ожидающих добавления в блок, в памяти компьютера) находилось около 26 тысяч транзакций. Даже в идеальных условиях, а именно при полном заполнении всех блоков, для обработки всех этих транзакций потребовалось бы 14 блоков (или 2,5 часа).

a2

Моделирование методом Монте-Карло

Для практического анализа заполнения блоков при различной нагрузке мы провели моделирование методом Монте-Карло, использовав исторические сведения о размере транзакций. Для каждого уровня TPS мы смоделировали 1 миллион блоков и оценили, хватило ли ресурсов сети для обработки всех поступивших транзакций. Технические подробности модели см. в конце статьи.

 a3

Наблюдения:
1. При текущем уровне около 1,2 TPS накладные расходы, связанные с ожиданием подтверждения транзакций (правая ось), составляют 0,07 блока (т. е. примерно 7% транзакций не попадают в ближайший блок). Если помните, в первой части мы отметили, что в настоящее время объем примерно 20% блоков превышает 725 КБ, что вполне согласуется с тем фактом, что на приведенной выше диаграмме полностью заполняются 16% блоков.
2. Значительные задержки подтверждения транзакций начинают наблюдаться при уровне примерно в 2,3 TPS, при котором среднее время обработки транзакций начинает превосходить 1 блок.
3. При 3,0 TPS (что примерно соответствует теоретическому пределу текущего протокола) среднее время ожидания достигло бы 20 блоков.
4. В реальности существенные задержки, скорее всего, начнутся гораздо раньше достижения теоретического предела в 3 TPS.

Увеличенный размер блоков

Наконец, ради полноты анализа мы провели моделирование Монте-Карло с блоками размером 8 МБ, результаты которого показаны ниже. Задержка обработки транзакций становится заметной (превышает 1 блок) только после 18 TPS, а средняя задержка в 5 блоков достигается при 22 TPS.

a4

Сколько у нас времени?

Результаты моделирования и прогноз в отношении роста количества транзакций позволяют оценить, когда в сети начнут наблюдаться заметные проблемы с масштабируемостью. Во второй части мы оценили совокупный среднегодовой темп роста количества транзакций с 2013 года. Ниже мы воспроизводим ту диаграмму со средним значением TPS по оси ординат (а не количеством транзакций в сутки).

a5

В общем, при сохранении текущих темпов роста эффекты, связанные с исчерпанием ресурсов сети, скорее всего, проявятся раньше достижения теоретического предела в декабре 2016 года: так, к июлю 2016 года обработка типичной транзакции станет дольше на 1 блок. Более того, в анализе предполагается, что размер блоков ограничен 1 МБ, тогда как в стандартных биткойн-клиентах предел составляет примерно 732 КБ (см. первую часть). Это означает, что задержки могут стать заметны еще раньше.

Просмотреть данные блокчейна в реальном времени можно с помощью инструментов TradeBlock.

Вероятностные характеристики модели:

  • Время между блоками соответствовало экспоненциальному распределению со средним значением 10 минут.
  • Транзакции генерировались согласно распределению Пуассона со средним значением, зависящим от TPS.
  • Размер транзакций соответствовал нормальному распределению с характеристиками, имевшими место в последние 30 дней: среднее значение = 543 байта; стандартное отклонение = 1759 байтов.

Источник: tradeblock.com



Categories: Инфраструктура, Технологии

Tags:

Leave a Reply

26 Комментарий на "Анализ биткойн-сети, часть 4: моделирование будущей нагрузки"

Notify of
avatar
trackback
Анализ биткойн-сети, часть 6: распространение данных | Bit•Новости

[…] 1: блокиЧасть 2: транзакцииЧасть 3: майнингЧасть 4: моделирование будущей нагрузкиЧасть 5: анализ нагрузочного […]

trackback
Анализ биткойн-сети, часть 5: анализ нагрузочного тестирования | Bit•Новости

[…] Предлагаем вашему вниманию пятую статью из серии об увеличении размера блоков и его значении для дальнейшего роста биткойн-сети. Предыдущие части доступны по следующим ссылкам: 1. Блоки, 2. Транзакции, 3. Майнинг, 4. Моделирование будущей нагрузки. […]

Анонимно
Гость

Почему бы просто не выстраивать транзакции в очередь по отношению количества_байт/комиссия. Тогда бы те, кому действительно нужно совершить платёж без проблем могли его совершить. Мне кажется неразумно иметь одинаковую комиссию для транзакций разного размера. Кто-то просто деньги пересылает, а кто то свои фотографии в блокчейн записывает.

elite
Гость

так и делается.

Для каждой транзакции вычисляется приоритет:

priority = sum(input_value_in_base_units * input_age) / size_in_bytes

Васисуалий
Гость
Влад
Гость

Если транзакция не попала в блок, то будет ли у неё приоритет попадания в следующий блок по сравнению с новыми транзакциями? Если да, то можно просто подождать. Если же нет, то тогда она может никогда не подтвердиться.

Васисуалий
Гость

транзакции обрабатывают майнеры, майнеры майнят объединяясь в группы, группа устанавливает комиссию за которую готова работать — это на всякий пожарный предыстория. следовательно, если комиссия вашей транзакции какой либо группой принята, попадает в очередь этой группы.
а если внимательно почитать оригиналы цикла статей на английском(там их 5), из 3-ей станет ясно, что очередь может вполне состоять из 20 блоков по 1мб уже к концу 2016, что обеспечит комиссии в 2 раза выше нынешних.

Васисуалий
Гость

пардон, если блок увеличат до 20мб вот тогда комсы вдвое, а так в 100500

elite
Гость

Если майнеры могут голосованием увеличить размер блока, то что мешает им убрать ограничение количества монет?

Анонимно
Гость

потому что это не имеет смысла, т.к. приведет к инфляции и подорвет доверие к биткоину и криптовалюте в целом. Получится майнеры потеряют все что имеют.

Как верно заметили, важно чеканить 100% золотые монеты, а не смеси.

Майнеры это обслуживающие элементы биткоин сети, они не создают рынок, его создают простые пользователи. Как без одих, так и без других не будет рынка и смысла.

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

elite
Гость
Майнеры не имеют биткойны, они их продают пользователям биткойна на бирже, чтобы заплатить за электричество. Кто сейчас при таком низком курсе продает биткойны на бирже? Правильно — майнеры. Если бы майнеры верили в биткойн, то продаж по такой цене не было бы. Конечно есть майнеры, которые являются и пользователями, но кто вас сказал, что таких большинство? Цена биткойна говорит об обратном. Доллар тоже не имеет смысла печатать, так как это приведет к инфляции и подорвет доверие к доллару, как к резервной валюте, в которой хранят деньги центральные банки всего мира. Получится ФРС США потеряет всё, что имеет. Но по факту… Read more »
Васисуалий
Гость

выходит 20мб на блок — это с запасом в 4 раза? леонардо да винчи был бы рад услышав такую цифру 🙂 следующий запас будет в 16 раз — 320мб/блок. к концу 2020-го — 80мб/блок?

Васисуалий
Гость

это я загнул конечно.. и забыл посчитать 6-ой блок, извинтиляюсь.
6мб к концу 2016 — около 3транз/сек — не маловато? 18мб блок к этому времени обеспечит 9транз/сек стало быть? тоже как-то мало на фоне визы.. виза получается около двух тыщ транз/сек судя по предыдущим статьям.. исходя из этого битку надо блоки по 12гб к 2016. без дисков на пару петабайт тут не обойтись короче… а лучше на пару эксабайт сразу :-р

Анонимно
Гость

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

Васисуалий
Гость
само собой! прогнозирование — дело тонкое. а вышесказанное — лишь мои прикидки опирающиеся на данные с трэйдблока. но всёж если люди, как вы говорите, буквально массово повалят, то парочку эксабайтов всётаки хватит на некоторое время. жаль вот только закон Мура не вписывается в такой сценарий, а если ему верить то дисок в 1эксабайт только к 2049, потом держать транзы за последние 7 лет — вполне достаточно — опять мои прикидки если что. поэтому есть мнение, что либо не повалят, либо блокчейн переедит на суперкомпьютер — и прощай мокрые мечты социал-пацифистов о светлом децентрализованом будущем, как минимум, лет эдак на 30-40,… Read more »
Влад
Гость

если сейчас 1 мб это запас в 2 раза, то 20 мб = запас в 40 раз наверно.

Васисуалий
Гость

я имел ввиду запас после конца 2016-го по таблице выше.

wpDiscuz