Большинство наших читателей уже наверняка знают, какие горячие сетевые баталии развернулись в криптовалютном сообществе вокруг возможностей увеличения максимального размера блока Биткоина. А многие даже принимали в них участие на том или ином уровне. Скептиков, которые считают, что блока в 1Мб хватит всем, осталось не так много.
Почти все разработчики, видные члены сообщества и представители бизнеса признают, что сеть нуждается в масштабировании - как для увеличения запаса прочности к DDoS-атакам, так и для компенсации естественного роста объемов транзакций. Разработчики Bitcoin Core выдвинули на суд сообщества несколько предложений по улучшению (BIP - Bitcoin Improvement Proposal), и в конце концов выбор будет сделан в пользу одного из них.
Несмотря на то, что проблема актуальна, большинство дискуссий продолжают оставаться в медийном поле. Единственным исключением стала интеграция предложения BIP101 в форк Bitcoin XT. Это событие активизировало противостояние и в конце концов выделились два лидера, каждый со своей группой поддержки: это BIP100 от Джеффа Гарзика и BIP101 от Гэвина Андресена и Майка Херна. Но кроме них, есть несколько других предложений, которые в конечном счете могут найти то или иное применение в Bitcoin Core.
Каждое из предложений показывает собственный, специфический взгляд на то, что должно быть сделано с размером блока. Достижение консенсуса по этому вопросу становится сложной задачей. В этой статье мы остановимся на каждом из предложений в порядке их номеров - без углубления в технические детали. Более важно то, какие риски и перспективы имеет каждое из них, и какой группе в сообществе пользователей криптовалют оно может быть выгодно.
Причины дебатов по размеру блока
Основные противоречия о будущем размере блока возникли вследствие пересечения интересов разных групп пользователей Биткоина. От максимального размера в первую очередь зависит количество транзакций, которые могут быть включены в один блок. Так как блок в среднем формируется каждые 10 минут, пропускная способность всей сети Биткоина напрямую зависит от этого параметра. Существующий сейчас предельный размер блока в 1Мб позволяет совершать до 7 простых транзакций (1-2 входа/выхода) в секунду. Эта цифра условна, так как транзакции с большим количеством входящих и исходящих адресов могут достигать размера в десятки килобайт.
Когда средний объем транзакций превысит величину в 1 Мб за 10 минут, блоки начнут переполняться и очередь транзакций, ожидающих подтверждения, будет непрерывно расти. Пользователи Bitcoin вынуждены будут перекупать друг у друга право на транзакции, которые должны войти в следующий блок, путем повышения комиссий. Многие эксперты справедливо опасаются, что процесс "гонки комиссий" сделает транзакции слишком дорогими, а сам Биткоин потеряет главное конкурентное преимущество перед традиционными платежными системами.
Одним из самых простых решений, казалось бы, является линейное увеличение предельного размера блока, но в этом и заключается основная проблема. По мере увеличения размеров блока и всей цепи блоков (блокчейна), запуск полного узла в сети Bitcoin становится все более трудным и дорогостоящим. Уменьшение числа полных узлов в сети увеличвает риск централизации, который сделает систему Р2Р более уязвимой для атаки. Вторая сложность в том, что большие блоки вызовут затруднения у майнеров - рассылать и скачивать большие блоки гораздо сложнее, поэтому сильно возрастает зависимость от качества и скорости соединения. Особенно это касается майнеров из Китая, находящихся за "Великим китайским фаерволлом".
По сути, дискуссии сводятся к нахождению пути масштабирования Bitcoin, который удовлетворит все стороны. При этом, не жертвуя принципом децентрализации и безопасностью сети.
Суть предложений
Наиболее приемлемые и популярные предложения по увеличению размеров блока Биткоина можно увидеть ниже. Разнообразие предложений и амбиции их авторов привели к ожесточенному соперничеству и разделению сообщества на "группы по интересам".
BIP100
Это хронологически первое из зарегистрированных предложений, которое успело привлечь множество влиятельных сторонников. Главная причина - в его гибкости. Вместо того, чтобы периодически увеличивать размер блока на фиксированную величину, предложение Гарзика позволяет майнерам голосовать за повышение или понижение предела каждые 2 недели. Единственные ограничения в том, что изменение всегда остается двукратным, а границы коридора устанавливаются техническими ограничениями текущей версии протокола сети. При реализации предложения Гарзика, майнеры будут иметь возможность сдвигать пределы размера блока между 1 и 32Мб.
Голосование происходит каждые 2016 блоков путем внесения в блок соответствующей текстовой метки. Но в BIP100 некоторые проблемы голосования пока остаются нерешенными. Голосование ограничено "снизу" - если более 20% майнеров голосуют против выдвигаемого остальными изменения - то оно откладывается до следующего раза. Следовательно, для гарантированного кворума требуется поддержка более 80% активных майнеров, добывающих блоки. Это открывает возможности для злоупотрбления с обеих сторон - как полного контроля над величиной размера блока майнерами при сговоре крупнейших пулов, так и "саботажа" всех изменений группой майнеров, имеющих чуть больше 20% мощностей сети.
Для реализации BIP100 требуется как минимум один хардфорк, подразумевающий его поддержку большинством членов сети. Все будущие изменения в размере блока на основе голосований майнеров будут происходить на основе "мягких" обновлений, не требующих обязательного обновления программы кошелька.
Несмотря на указанные выше проблемы, BIP100 Джеффа Гарзика в настоящее время пользуется поддержкой примерно 60% майнеров. Его поддержали большинство китайских пулов, которые опасаются резких изменений размера блока. На сегодня за BIP100 проголосовали следующие пулы:
- F2Pool
- Bitfury
- BTCChina
- KNCMiner
- 21 Inc
- BitClub Network
- CKPool
BIP101 и Bitcoin XT
BIP101 является предложением Гэвина Андресена и Майка Херна и единственной реализацией "большого блока" в программном коде. Но действует оно не в Bitcoin Core, а в альтернативной реализации, проще говоря - форке, известном как Bitcoin XT. В BIP101 предельный размер блока увеличивается сразу в 8 раз, а позже растет с удвоением каждые 2 года в течение 20 лет. Первое восьмикратное увеличение должно произойти 11 января 2016 года, если BIP101 поддержат более 75% майнеров.
Это изменение также требует хардфорка, а код становится активным только если 750 блоков из 1000 добыты майнерами, кошельки которых поддерживают BIP101. Следует отметить, что изменения опираются на вероятное увеличение пропускной способности глобальных сетей, без которого гигабайтные блоки, которые по плану Андресена придут уже в 2030 году, не могут быть работоспособными.
BIP101 также пользуется мощной поддержкой. За его принятие выступили 8 крупных представителей криптовалютного бизнеса, подписав совместное письмо в защиту идей Гэвина Андресена. Однако, в письме ни единым словом не упоминается Bitcoin XT, из чего можно сделать вывод, что упомянутые компании против раскола сети, которая может привести Биткоин к серьезным репутационным потерям.
А для бизнеса такие потери плавно перетекают в область прямых финансовых убытков. Кроме того, через неделю после подписания документа пул KnCminer начал генерировать голосующие блоки с поддержкой конкурирующего предложения BIP100, а значит, единения среди подписантов нет.
Вокруг BIP101 ведутся самые горячие споры, так как несмотря на авторитет создателей, его сопровождают и многие нелицеприятные подробности. В одной из самых первых прессс-конференций, посвященных BIP101, Майк Херн заявил, что в случае принятия предложения все последующие изменения в коде Bitcoin XT будут основываться не на голосовании пользователей, а на совместном решении Майка Херна и Гэвина Андресена.
Если же им не удастся договориться даже вдвоем, то Херн будет решать все сам, единолично, как "великодушный диктатор". Это сообщение вызвало бурю негативных эмоций в сообществе, в частности все обсуждения на тему Bitcoin XT были удалены с сабреддита /r/Bitcoin модератором Theymos, который также является администратором форума Bitcointalk.
Кроме того, о поддержке Bitcoin XT заявила и компания Coinwallet, которая уже третий раз проводит так называемые "стресс-тесты", а проще говоря спам-атаки на сеть Биткоина. С их помощью Coinwallet пытается доказать необходимость наискорейшего внедрения "больших блоков". Настоящие владельцы этой фирмы неизвестны, однако, если за ней стоят сторонники Bitcoin XT, они оказывают BIP101 медвежью услугу.
Среди майнеров BIP101 поддерживают два пула: BWpool - полной мощностью и Antpool - примерно 1/3 своих мощностей. Вместе они дают около 10% хэшрейта сети. Bitcoin XT рискнул частично поддержать только один пул - Slush. После первого всплеска популярности, когда удалось добыть 8 блоков из 1000, его доля постепенно падала вплоть до нуля.
Спустя месяц после запуска Bitcoin XT, с его поддержкой добыт ровно 1 блок на 1000 из необходимых 750. Таким образом, если не произойдет каких-либо экстраординарных событий, можно говорить о полном провале Bitcoin XT.
Но успех другой реализации BIP101, без самых благосклонных к общественности диктаторов, все еще возможен.
BIP102
Это предложение также исходит от Джеффа Гарзика. Его следует рассматривать в качестве запасного варианта, на случай отсутствия лучших решений - в первую очередь, Гарзик решил подстраховаться от провала BIP100. Данное предложение единократно увеличивает предельный размер блока с 1 Мб до 2 Мб на 11 ноября 2015 года. Идея в том, что относительно небольшое, по сравнению с другими предложениями, изменение даст разработчикам время, чтобы прийти к консенсусу для более всеобъемлющего решения.
Это изменение также требует хардфорк. Однако, после того как успешность BIP100 можно признать состоявшейся, откат на BIP102 вряд ли будет востребован.
BIP103 от Питера Вюлле
Одной из основных проблем быстрого увеличения размера блока является то, что не каждый майнер имеет доступ к высокой пропускной способности сети, необходимой для того, чтобы не отставать от конкурентов. Принимая этот аргумент, можно четко спрогнозировать, что при слишком быстром росте размера блока потенциально может остаться всего несколько узлов в сети, которые будут способны обрабатывать транзакции. А это сделает сеть Bitcoin фактически централизованной и она не будет отличаться от PayPal и других подобных систем.
Питер Вюлле, один из основных разработчиков Bitcoin Core, предложил просто увеличивать лимит размера блока на 4.4% каждые 97 дней. Это приведет к ежегодному увеличению предела всего на 17.7 процента, а рост блока начнется только с 1 января 2017 года. Расчеты Вюлле не взяты с потолка - они поддержаны, по крайней мере, одной очень авторитетной технологической компанией. В соответствии с информацией от соучредителя и президента Blockstream Адама Бека, это предложение основано на цифрах, предоставленных Cisco.
Бек обсудил предложение Вюлле в недавнем эпизоде на 16z Podcast:
BIP103 от Питера Вюлле ссылается на статистику, предоставленную Cisco. Так, если вы хотите спрогнозировать размер блока, вы принимаете масштаб в соответствии с технологическими достижениями в будущем. Вопрос в том, как быстро изменяются технологии? Какова скорость роста полосы пропускания? Питер Вюлле взял некоторые цифры от Cisco и использовал их для создания модели блока с ежегодным увеличением.
Это изменение, как и все прочие, потребует хардфорк. Вюлле также поблагодарил Грегори Максвелла и Владимира ван дер Лаана за консультации. Пока это единственный из BIP-ов, который поддержал ван дер Лаан - ныне главный разработчик Bitcoin Core, в прошлом году принявший "бразды правления" от Гэвина Андресена. Однако, в отличие от своего предшественника, он не любит давать интервью и крайне редко появляется в поле зрения СМИ. При этом, на счету Владимира - максимальное количество коммитов в ядро, а значит, он не сидит без дела.
BIP105
По сравнению с другими предложениями в этом списке, BIP105 от BtcDrak наиболее близок к BIP100 Джеффа Гарзика. Есть несколько различий между этими двумя предложениями, но основная концепция позволяет майнерам голосовать за будущие изменения и блокирует предельный размер блока на 32 Мб. Основным отличием BIP105 является дополнительная стоимость для майнеров, которые желают увеличить предельный размер блока. Эта концепция является производным от предыдущих работ Мени Розенфельда и Грегори Максвелла.
Адам Бек вкратце рассказал о работе Грега Максвелла, которую можно рассматривать как часть решения BIP 105:
Если происходит внезапное увеличение количества операций, которые не могут быть обработаны, это предложение позволяет динамически увеличить размер блока.
Вкратце, как это работает: майнеры могут заплатить за то, чтобы увеличить размер блока и получить при этом прибыль на комиссиях. Если блоки переполнены и есть необработанные транзакции, майнерам выгодно увеличить размер блока и получить прибыль от дополнительных операций, которые они в состоянии обработать.
Но в то же время, их будут отпугивать экономические ограничения на увеличение размеров блока. Майнеры находятся в конкуренции друг с другом, и чтобы получить преимущество перед конкурентами, они стремятся к снижению расходов, а не их увеличению.
Основные опасения в том, что добавленная стоимость в голосовании за размер блока заставит майнинговое сообщество вступить в сговор при любых попытках изменений. Добавленная стоимость для голосования приходит в виде увеличения сложности добычи на 10% по сравнению с текущей. Эта увеличенная стоимость применяется только для голосов для увеличения предельного размера блока. Голосование для уменьшения лимита проходит бесплатно.
BIP100 позволяет майнерам голосовать за блок между 1 и 32 Мб, но BIP105 рассматривает предел до максимума в 8Мб. Это изменение также требует хардфорка. С подобными сложностями и подводными камнями BIP105 вряд ли может рассчитывать на успех по сравнению с более простыми и предсказуемыми решениями.
Компромиссное предложение от Адама Бека
Директор Blockstream Адам Бек не является разработчиком Bitcoin и не может быть автором BIP, но также имеет собственное предложение, очень похожее не BIP102.
Я предложил другой вид компромиссного решения, которое будет основано на периоде времени между изменениями. Так, многие из предложений растянуты на период 20 или 35 лет. Я думаю, что сейчас довольно трудно предсказать, где эта технология будет даже через пару лет.
Мое предложение состоит в том, чтобы немедленно увеличить блок до 2 мегабайт. Адаптация сети займет около шести месяцев, после этого увеличить через 2 года до 4 мегабайта, и до 8 мегабайт еще через четыре года.
И уже после этого исследовать необходимость следующих увеличений.
Будущее Биткоина
Хотя повышение предельного размера блока не единственное решение для масштабирования сети Bitcoin, уже кажется очевидным, что он будет изменен в ближайшем будущем. Разумеется, в долгосрочной перспективе требуются более радикальные меры, так как линейное увеличение размера блока создает дополнительные проблемы, а его эффективность со временем будет уменьшаться.
В качестве одной из альтернатив сейчас рассматривается сеть Lightning, которая предлагает мгновенные транзакции вне блокчейна, тем самым убивая двух зайцев - во-первых, уменьшается количество онлайн-транзакций и замедляется рост блокчейна вообще, во-вторых, заметно снизятся требования к пропускной способности основной сети. Однако, у предлагаемой реализации сайдчейнов есть и серьезные недостатки - в первую очередь, не решены вопросы безопасности и доверия. Чтобы совершать транзакции вне основного блокчейна, потребуется или новый механизм консенсуса, или централизация сети с обработкой транзакций только некоторыми доверенными серверами.
Другие варианты увеличения пропускной способности сети могут потребовать более глубоких изменений в базовом протоколе Bitcoin, а к этому разработчики пока не готовы. Следовательно, на данный момент сообществу придется выбирать из двух наиболее популярных вариантов - это BIP100 и BIP101. Первый из них более предсказуем и его репутация не подмочена перспективой "диктатуры программистов", но второй имеет более сильную финансовую поддержку. Поэтому, борьба еще впереди и ее итог непредсказуем.