Масштабируемость биткойнов и проблема распространения блоков

Гостевой пост HodlX  Отправьте свой пост

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

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

Это среднее время, необходимое новому блоку для достижения большинства узлов в сети. В большой децентрализованной сети, такой как Биткойн, всякий раз, когда генерируется новый блок, он транслируется в соответствии с протоколом Gossip. Если какой-либо узел имеет новый действительный блок, он сообщает узлам, подключенным к нему, о своем новом владении. Затем узел передает этот блок тем узлам, которые его попросили. Прежде чем блок достигнет каждого полного узла в сети, он проходит через семь промежуточных узлов. Важно, чтобы каждый честный узел проверял блок, прежде чем передавать его другим партнерам. Очевидно, все это требует времени. Каждый новый блок сотрясает сеть и заставляет узлы и Ethernet-соединения между ними работать на полную мощность..

Кто-то может возразить, что с момента запуска сети в протокол Gossip было внесено много улучшений. Например, предложение по усовершенствованию биткойнов BIP 0152 представило возможность передачи только коротких идентификаторов транзакций, а не всего списка транзакций, в теле блока. Однако, если у узла нет этой транзакции в своем пуле памяти, он должен попросить своих коллег передать ее в отдельном сообщении. Если таких транзакций в блоке большое количество, то улучшение от BIP 0152 пропадает..

Поскольку передача данных является наиболее трудоемкой частью блочной ретрансляции, исследователей заинтересовало определение, сколько времени требуется, чтобы пакет данных определенного размера достиг 50%, 90% или 95% узлов в сети. Было обнаружено, что для блоков размером более 20 КБ задержка распространения блока почти пропорциональна размеру блока..

Согласно исследованию, опубликованному в 2013 году, каждый дополнительный килобайт данных в блоке вызывал дополнительную задержку распространения блока на 80 мс. С тех пор каждый год публикуется несколько научных статей и обзоров по этой теме. Они обновляют вышеупомянутые данные и обсуждают различные предложения по улучшению. Более того, сайт отслеживает текущее состояние сети Биткойн и время распространения блока. Кроме того, он предоставляет диаграммы с историческими данными по этому вопросу..

Большинство хорошо зарекомендовавших себя сетей блокчейнов имеют тот же дизайн, что и Биткойн. В результате время распространения блока в этих сетях подчиняется одним и тем же правилам. К сожалению, время распространения блока оказывает огромное влияние на безопасность блокчейна. Чем дольше время распространения в сети, тем чаще майнеры майнят поверх старых блоков. В результате чаще происходит разветвление основной цепочки, и увеличивается процент бесхозных блоков. Большая задержка распространения приводит к так называемой дилемме верификатора..

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

Чтобы решить вышеупомянутую проблему, разработчики блокчейнов часто стараются поддерживать время распространения блока менее 1% от среднего времени блока..

Это верно для Биткойн, Эфириума и других крупных сетей блокчейнов, основанных на консенсусе доказательства работы. По этой причине время распространения блока на 50% узлов сети Биткойн часто составляет менее 6 секунд..

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

Когда люди говорят о масштабируемости блокчейна, они упоминают пропускную способность транзакций в системе. Однако люди забыли, что повышение пропускной способности транзакций не должно ставить под угрозу безопасность сети или повышать требования к хранению данных для узлов, желающих участвовать в сети. Эти модификации могут уменьшить количество независимых валидаторов транзакций в сети, тем самым уменьшив децентрализацию..

куда

Bsize – размер блока в байтах;

Цизе – средний размер записи транзакции в блоке;

Btime – это среднее время между последовательными блоками в цепочке блоков..

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

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

Винод Манохаран – технологический предприниматель, основатель и генеральный директор Jax Multiversal Holdings, холдинговая компания, портфель которой включает компании, занимающиеся онлайн-играми, платежные шлюзы и технологические компании Blockchain. Манохаран также является основателем JAX.Network, технологический стартап в Украине, сфокусированный на технологии блокчейн и, в частности, на решении печально известной трилеммы масштабируемости блокчейна.

Рекомендуемое изображение: Shutterstock / whiteMocca

About the author