Bitcoin XT против Core: раскол, который нас разобщает2015/09/13
В последнее время шумиха вокруг Биткойн-форка Гэвина Андресена и Майка Хирна, называемого Bitcoin XT. Впервые за всю историю Биткойна, всё его существование оказывается под угрозой благодаря так называемому хард-форку протокола. Я наблюдал за развитием ситуации, и я чувствовал, что должен внести свой комментарий на эту тему в то время, как страх и смятение идут из лагерей с обеих сторон и перерастают в истерику, и откровенно говоря, я думаю, что Биткойн от этого страдает (и цена и сообщество). Этот пост будет длинным, так что заранее приношу извинения. Обычно я их разделяю на несколько, но мне хочется, чтобы моё послание было цельным и законченным. Если вам нужны сразу выводы, листайте вниз к заголовку “Кратко о главном”. Давайте, я не возражаю (только не задавайте потом глупых вопросов).
Приоритеты БиткойнаБиткойн, как видение, задуманное Сатоши Накамото – это децентрализованная платёжная система. Для того, чтобы такая система работала, вам необходимо децентрализованное решение задачи византийских генералов. Биткойн является настолько блестящим изобретением именно потому, что решает проблему консенсуса децентрализованным способом. На самом деле, решение не является идеальным. Его нельзя применить для абсолютно всех задач (что вызывает ужас у многих людей вроде Виталика Бутерина, что и мотивировало его создать Эфирум как решение с формально доказуемой безопасностью), но до настоящего момента в большинстве реальных ситуаций он демонстрировал свою работоспособность. Для поддержания этой работоспособности Биткойн соблюдает следующие приоритеты по убыванию важности: консенсус, децентрализация, хранилище ценности и платёжная система. Может показаться, что цели проекта Биткойн с тех пор сместились, под предводительством Гэвина, чтобы сосредоточить больше внимания на Биткойне как платёжной системе в ущерб консенсусу и децентрализации. Я заявляю, что жертва консенсуса ставит под угрозу все остальные аспекты Биткойна, и не в последнюю очередь как стабильное средство сохранения ценности. На самом деле, я верю в то, что нарушение консенсуса является критичным риском для существования Биткойна.
Проблема усугубляется тем, что лагерь сторонников XT (и в меньшей степени – лагерь Core) всё больше используют популистские и алармистские стратегии, чтобы напугать людей и склонить на свою сторону, делая ставку на то, что большинство людей не разбирается во внутренней кухне работы над Биткойном (и это действительно так), и поэтому рассчитывают на то, что люди поверят их словам, опираясь на единоличный авторитет. С позиции заинтересованной третьей стороны, я не могу больше смотреть на эти разворачивающиеся партизанские медиа войны с использованием вводящей в заблуждение риторики и искажения фактов, чтобы привлечь людей на сторону своей точки зрения. Я могу привести конкретные примеры таких лицемерных высказываний и утверждений, но я оставлю возможность самостоятельно отыскать соответствующие примеры читателям, способным мыслить критически. Я не стану вдаваться в полемику, основанную на предубеждениях, и вместо этого буду акцентировать внимание на плюсах и минусах предмета с чисто научной позиции (надеюсь, язык, которым будут описываться вещи по существу, не окажется слишком техническим.)
Суть дебатов вокруг лимита блока в двух словахВсё-таки, о чём же так вообще идет этот спор? Лимит блока. Не будем слишком углубляться в детали того, как устроен блокчейн. Важно сказать лишь то, что текущий лимит размера каждого блока Биткойна равен 1МБ (на самом деле, 1000000 байт, но кто считает?) Это позволяет теоретически обрабатывать примерно 7 транзакций в секунду (tps). Не так уж заоблачно для “глобальной платёжной системы”. Именно из-за этого Гэвин Андерсен и Майк Хирн принципиально проталкивают увеличенный размер блока. Для сравнения, VISA теоретически может обрабатывать с невероятной скоростью 50 000 tps. Так почему же тогда Биткойн искуственно ограничивает себя таким низким уровнем? Да потому что Биткойн является децентрализованной системой без единой центральной точки обработки, что делает его восприимчивым к атакам типа “отказ в обслуживании” (DoS). Это означает, что плохие парни могут вступить в сговор и атаковать сеть, нарушив её стабильность, если им это станет выгодно. Ключевая инновация консенсусного решения Накамото состоит в том, чтобы это было не выгодно. Сатоши сам установил предел в 1МБ, предчувствуя необходимость наличия некоторого ограничителя размера, чтобы плохие парни не смогли сломать систему до того, как она получит широкое распространение, чтобы стать эластичной. Он предвидел, что настанет время, когда лимит может быть увеличен, но не был уверен в том, в какой момент это может случиться, в связи с тем, что это зависит от многих переменных. Мы всё ещё не знаем, каким должен быть лимит, но большинство сходится к тому, что 2МБ – это нормально, 8МБ – непонятно, 20МБ – слишком рисковано. Почему? Читайте дальше.
Эгоистичные майнерыЭгоистичный майнинг – это одна из форм атак, ясно описанная в работе Сатоши как потенциальная слабость Биткойна. Она даёт возможность майнеру с существенной мощностью майнить блоки не публикуя их в сети, чтобы образовалась секретная более длинная цепочка блоков, которую можно транслировать позже, и таким образом внедрить некоторые транзакции, которые уже могут быть подтверждены в публичной (но более короткой) цепочке блоков. Это и есть печально знаменитая атака 51% мощности хэширования. Что большинству людей неизвестно, так это то, что распространение по сети также является влияющим фактором. Сатоши признался, что расчётная величина процента для предотвращения атаки 51% предполагает надёжное распространение сообщений по сети без существенных задержек.
Действительно, опасность разрешения на увеличение размера блока в контексте возможных задержек распространения блоков, нескончаемо обсуждалась в прошлом и остаётся причиной дебатов по меньшей мере с 2011 года. Я могу понять Гэвина в его решительном порыве “что-то предпринять” для решения проблемы. Однако, пренебрежительно высказываясь о влиянии размера блока на майнинг, Гэвин многое упускает.
Атака может быть проведена следующим образом: если блоки смогут быть большими (достаточно большими, чтобы внести задержку в распространение среди всех полных узлов), то майнеру будет выгодно заполнять блок, который он майнит, транзакциями самому себе (или своим сообщникам), вплоть до предельного размера. Он не транслирует транзакции до тех пор, пока ему не удастся решить блок самостоятельно, исключая тем самым оплаты комиссии другим майнерам. Если у него получается отыскать такой блок, то он немедленно отправляет в сеть свои спам-транзакции и решённый блок. Другие майнеры должны будут прекратить майнить то, что они уже майнят и начать скачивать новый (очень большой) блок (что может занять какое-то время) и проверить его, что включает в себя проверку валидности всех включённых транзакций (которые только что выплеснулись в сеть). Это займёт нетривиальное время, что даст атакующему майнеру хорошую фору и он сможет в некоторое время единолично майнить следующий блок. Так что наградой для него станет увеличенная “эффективная” мощность и опережение конкурентов.
Конечно, эта проблема из области теории игр, поэтому мы предполагаем, что как только кто-то из майнеров начнёт так поступать, все остальные начнут поступать точно так же. Начнется “война майнеров”, сформируются коалиции, орфанные блоки и двойные траты станут гораздо более частыми, майнеры объединятся для построения высокоскоростных каналов/узлов “для своих” (и тем самым ещё сильнее усугубят централизацию). Несомненно, это негативно отразится на Биткойне. Так что каждый должен согласиться с тем, что слишком большой размер блока сделает Биткойн гораздо более хрупким, что до повышения лимита блоков хоть и имело место, но не было большой проблемой.
Так насколько большой будет слишком большим?Неограниченный блок абсолютно не годится, и даже 20МБ считается большинством слишком рискованным (до 8 секунд задержек в распространении для “нормальных” блоков, но гораздо больше при “враждебном” майнинге). Тогда как насчет 8МБ? Откровенно говоря, тут трудно сказать. Возможно, всё будет в порядке. Возможно. Но проблема в том, что наверняка этого никто не знает. Потому что никто ещё не закончил по этому поводу моделирования и исследования. Вот почему некоторые разработчики ядра просят больше времени, чтобы проанализировать, каким будет “безопасный” лимит с учётом пропускной способности Интернета на текущий момент. Другие предлагают альтернативные решения по увеличению лимита размера блока в более консервативном ключе.
Но, кое-кто больше ничего ждать не собирается. Форк XT предлагает начать с 8МБ и автоматически его удваивать, пока он не достигнет 8 ГБ. Гигабайт. Конечно, это теоретически позволит Биткойну конкурировать с VISA. Но можем ли мы быть настолько же уверены в том, что такими же темпами будет расти и пропускная способность сетей без провалов? Что если мы увидим разворот и замедление развитий технологий? Что случится с людьми, которые купили биткойны как страховку против коллапса фиатных денег? Лично для меня самое страшное то, что как только триггер увеличения лимита предела блока в XT форке сработает, назад пути уже не будет!
О чём споримМы подходим к сути происходящего. То, что мы имеем сейчас – это раскол в Биткойне. Большинство людей не способно осознать, о чём действительно эти дебаты вокруг блока. С одной стороны, у нас есть кучка людей, считающих, что Биткойн может заменить VISA. Они верят в то, что базовая сеть Биткойна, без всяких надстроек, должна обрабатывать все платежи на планете Земля, от каждодневных покупок чашки кофе до покупки недвижимости и оплаты сервиса автопилотируемых гугломобилей.
С другой стороны, есть и те, кто верит в ценность ядра Биткойна как актива-страховки против неустойчивости фиатных валют, а следовательно и самих правительств (на случай, если те решили вдруг внезапно ущемить наши свободы).
Но Биткойн НЕ МОЖЕТ БЫТЬ и тем и другим одновременно. Это просто невозможно. Чтобы базовая сеть была способна обрабатывать более 53к транзакций в секунду, она должна быть массивно-централизованной (спорное утверждение.
Если подобная система существует (наподобие той же Visa), она больше не будет неуязвимой перед правительственным давлением или контролем. Противники XT станут утверждать, что необходимы локальные подсистемы, надстроенные над Биткойн-протоколом, которые могли бы обрабатывать локальные транзакции между локально находящимися субъектами. Таким образом поддерживая необходимое количество транзакций в базовой Биткойн-сети в рамках ограничения. Такие проекты как раз находятся в разработке, и Lightning Network – как раз одно из них.