Гэвин Андресен: люди просто перестанут использовать биткоин, если не увеличить размер блока
Несколько дней назад Гэвин Андресен разместил на github исходный код хардфорка, который предполагает увеличение размера блока до 20 мегабайт с 1 марта 2016 года. Данное предложение было встречено довольно резкой критикой со стороны энтузиастов и биткоин-предпринимателей — таких как майнеры.
Основные возражения заключались в том, что либо подобное увеличение не является необходимым, поскольку объёмы транзакций слишком малы, либо оно приведёт к устранению любой комиссии за транзакцию — что делает майнинг как минимум неприбыльным, в особенности учитывая постепенное усложнение самого процесса майнинга и двукратного сокращения размера вознаграждения. Также отмечалось, что это изменение сделает существование небольших пулов и скромных майнеров полностью бессмысленным, благодаря чему децентрализация всей системы может оказаться под вопросом.
Андресен в ответ сообщил, что размер протокола останется прежним, а исходный код выложен для того, чтобы сообщество могло принять решение почти за год до предлагаемой реформы. Тогда же он пообещал, что подробно ответит на все возражения и комментарии коммьюнити — и сегодня написал по этому поводу пост, перевод которого приводится ниже.
«Вероятно, наиболее часто встречающееся возражение из тех, что я получил в отношении увеличения размера блока от одного мегабайта — это то, что «блоки ещё не полны, так что пока ничего делать не нужно». Это правда, что мы ещё не заполнили кодом весь объём в один мегабайт — в среднем блоки сейчас заполнены на 30-40%.
Дэвид Хадсон написал очень хороший пост на hashingit.com, где проанализировал то, что случится с сетью, когда произойдёт заполнение на 100%. По ссылке можно ознакомиться с подробностями, но главное, о чём он говорит — это несоответствие между тем, когда создаются транзакции и находятся блоки. Это несоответствие означает, что когда предел в один мегабайт будет достингут, с сетью начнут случаться очень плохие вещи.
Во временной динамике транзакции создаются непрерывно по мере того, как люди тратят свои биткоины. Есть недельные и дневные циклы объёмов транзакций, но даже за любой десятиминутный период количество транзакций будет примерно равно количеству транзакций за предшествующие десять минут.
Блоки же создаются по случайному пуассоновскому процессу — иногда их много за час, а иногда майнерам может очень не повезти, и за час можно будет найти очень мало, а то и ни одного.
Несоответствие между стабильной подачей транзакций в сеть и случайным пуассоновским распределением найденных блоком означает, что мы никогда не найдём блоки, которые всегда заполнены на 100%. Иногда майнеры могут найти много блоков подряд, и этим расчищают очередь транзакций, находящихся в очереди.
И наоборот — если майнеру не повезёт, случится кое-что весьма скверное. Очередь транзакций, ожидающих подтверждения, будет увеличиваться, используя всё больше и больше памяти в каждом полном узле. Полные узлы могут (и, вероятно, будут — в рамках будущего ядра) выбрасывать транзакции из очереди, что сделает подтверждение менее надёжным.
Если кошелёк переведёт транзакции после отсутствия подтверждения на нескольких блоках (кошелёк Bitcoin Core так и делает), ширина полосы пропускания будет иметь пики из-за повторной передачи неподтверждённых транзакций с каждого кошелька в сети.
И, если число ожидающих транзакций становится большим, конечным итогом станет перенасыщение сети, которая будет полностью загружена, но не делает ничего. Не думаю, что это случится — гораздо вероятней, что люди просто перестанут использовать биткоин, поскольку на подтверждение транзакции надежды почти не будет».
Рассылки ForkLog: держите руку на пульсе биткоин-индустрии!