Почему ограничение лимита размера блока опасно для bitcoin и про segwit2x

    В ноябре 2017-го, произойдет действительно важный хардфорк bitcoin, а не мусорный хайп-форк bitcoin cash (весь смысл которого — принципиальная не поддержка segwit и 8мб лимит бока), прошедший первого августа, единственной целью которого, по моему мнению, было отвлечение внимания и сил сообщества от реальной проблемы. Номер блока старта segwit2x стал точно известен — это будет блок 494 784.

    Напомню коротко, в феврале 2016-го, значимыми участниками, включая bitcoin core, было подписано соглашение Bitcoin Roundtable Consensus in Hong-Kong, в котором описывался поэтапно процесс внедрения нового формата транзакций segregated withness и увеличение лимита размера блока до 2мб но не больше 4мб.

    Вне зависимости от того, кто виноват, полагаю обе стороны вели себя более чем неразумно (я считаю большая часть вины на майнерах), условия это соглашения не были выполнены в срок, и через год — в мае 2017-го, уже без участия представителей bitcoin core было подписано новое соглашение — Bitcoin Scaling Agreement in New York, подразумевающее фактически то же самое но в порядке, не совместимом с планом, проводимым командой bitcoin core.

    По факту происходит попытка отъема управляющих и координирующих функций у команды bitcoin core.
    Напомню, что благодаря децентрализованной природы bitcoin а именно технологии консенсуса, реальные бразды правления лежат не только на разработчиках/владельцах ключей соответствующего аккаунта на github но и на большинстве майнеров (пулов майнинга). И не важно, кто прав а кто нет, так же не важно, у кого влияние больше — важно то, у кого больше мощностей. До сих пор участникам удавалось идти в ногу друг с другом и заметных конфликтов не возникало. Но сейчас у майнеров (а по факту это китайские пулы с совокупной мощностью более 80%) появилось желание и возможность сделать что то по своему.

    Последние два года, новостные сайты, форумы и площадки для обсуждения, на перебой, создавали путаницу вокруг проблемы расширения лимита размера блока, доходило все до банальной цензуры. В результате у сообщества, а точнее у 'неразумного большинства' (людей, которые хотят пользоваться но не желают разбираться в тонкостях и особенностях, ведь это не банки, где вы можете подойти к клерку и вам все разжуют а ошибочную транзакцию откатят) появилось стойкое убеждение что развитие bitcoin это либо segwit либо увеличение лимита. Такие проекты как bitcoin xt, bitcoin unlimited а позже bitcoin cash это отлично показали, и весь смысл их создания похоже был именно в этом — заложить в людях эту глупую мысль. Но между этими технологиями нет знака неравенства, они вполне совместимы.

    Блокчейн слишком большой!?
    Почему лимит на размер блока так важен? Фактически это ограничение скорости работы блокчейна, он определяет требования к железу, поддерживающему работу сети — полных нод хранения блоков и устройств для майнинга. Чем больше лимит на размер блока тем больше транзакций могут быть сохранены в блокчейне и тем больше скорость роста объема базы полной ноды, которая уже занимает порядка 160 гигабайт.

    Напомню, что уже существуют куча решений, позволяющие снизить требования к размеру блокчейна, который необходимо хранить у конечных пользователей, причем разные инструменты подходят разным категориям пользователей — майнерам, платежным шлюзам и пользователям. Даже самый первый кошелек bitcoin-qt уже давно имеет настройку (ключ -prune), который позволяет автоматически уменьшать размер сохраняемого блокчейна на диске, вплоть до 512мб.

    В теории, существует опасность, что при увеличении размера блока, трафик между нодами значительно поднимется, особенно это важно для мест и стран с ограниченным подключением, каким выставляется тот же Китай, с его 'Китайским фаерволом', который ограничивает канал вне страны до считанных сотен килобайт. Но по факту, пока, изменения лимита на размер блока не значительно влияют на этот показатель, тот же bitcoin cash уже спокойно пропускал блоки размером 6мб, а корнем обсуждаемой проблемы является увеличение лимита всего до 2мб.

    Низкая скорость транзакций и сайдчейны — спасение.
    Одной из самый интересных технологий повышения скорости и количества транзакций в сети bitcoin и ее прямых форков является — технология lightning network. Эта технология в теории позволит увеличить пропускную способность сети на несколько порядков, перенеся и размазав нагрузку на обработку транзакций с майнеров на полные ноды 'обычных' пользователей сети. Технология не является той самой серебряной пулей, у нее есть ограничения и нюансы использования, но любому здравомыслящему человеку ясно что эта технология должна быть реализована и внедрена повсеместно. Именно эта технология представлялась как главное обоснование внедрения segwit, которое по факту позволит вообще в сети bitcoin удобно использовать контракты и создавать свои токены, по аналогии как это сделано в других альткоинах, таких как например ethereum.

    Раньше в сети bitcoin уже были успешные попытки реализации токена например популярный из них tether.io, тикер USDT, равный $1. Так же недавно команда bitfury успешно реализовали и протестировали на текущем не тестовом блокчейне bitcoin работу lightning network, без использования segwit.

    Т.е. segwit — не панацея но ее внедрение предпочтительно, любой форк без этой поддержки рано или поздно обречен на забвение, ведь основной объем разработчиков будет ориентироваться на нее. Плюс это теоретическое увеличение количества транзакций на тот же лимит блока в блокчейне до в 2.5 раза.

    Чем опасно ограничение на количество транзакций в блокчейне?
    Лимит количества транзакций напрямую определяет их стоимость. Именно это мы наблюдаем последние три года в сети bitcoin, когда благодаря росту курса и почти постоянно заполненным пулом транзакций, ожидающих подтверждения, доходящим до 200 тысяч (сейчас, например это 60тысяч), стоимость типичной транзакции легко доходит до $7, и эта цена не зависит от переводимой суммы. Пользователи некоторых кошельков могут самостоятельно выставлять комиссию, и при правильном подходе можно подобрать ее такой, что стоимость ее уменьшается в несколько раз, за счет увеличения времени ее прохождения.

    Транзакции могут идти до 3 суток, позже, не подтвержденная транзакция почти всегда удаляется из пула и ее можно повторно послать, так же в сети уже два года действует технология, запрещающая обычным пользователям использовать двойную трату напрямую, но есть возможность заранее пометить свой перевод как replaceble, и уже после отсылки транзакции до ее помещения в блок повторно ее послать с другой комиссией. Решение спорное, работает не всегда (в том смысле что двойная трата возможна и без этой опции), но путаница и не полная поддержка в кошельках очень сильно мешает обычным пользователям сети хоть немного оптимизировать свои операции.

    Например классический пример — майнер в течении года получал на свой кошелек сотни переводов, пыль, на сумму более $400, но при попытке сделать перевод, получил требование комиссии размером в $500. При самостоятельной и ошибочной выставленной комиссии (кошелек blockchain.info в этом отношении ужасен, по сравнению с тем же electrum) пользователь получил повисшую транзакцию на неделю и ничего не мог сделать, даже в других кошельках она появлялась, ситуация разрешилась типичной транзакцией двойной платы с использованием одного из входов со значительно более высокой стоимостью комиссии за байт, такая транзакция стала приоритетнее повисшей и попала в блок, что в свою очередь удалило первую, в итоге транзакция обошлась в $20.

    И тут мы подходим к главной проблеме сети bitcoin — количество транзакций будет только расти, с ростом популярности, а именно с ростом количества пользователей.

    Даже технологии вида lightning network могут не справиться, если лимит на размер блока будет сохранен на текущих 1мб.
    Причина кроется в особенностях самой этой технологии, для подключения своего кошелька к сети LN необходимо как минимум две блокчейн транзакции — открывающая блокирующая средства и закрывающая, которая может быть отложена во времени почти до бесконечности, плюс клиринговые транзакции, выравнивающие балансы на кошельках пользователей сети, это необходимо, когда у пользователя происходят значительные изменения на счете, выше чем объем заблокированных средств в момент подключения к сети.

    Что самое опасное, так это то, что увеличение стоимости блокчейн транзакций будет лавинообразной (сейчас мы наблюдаем только кратковременные пики в количестве транзакций, в моменты спада сеть разгружается, при увеличении популярности этой роскоши может не оказаться), и времени что то исправить просто может не быть, ведь до сих пор адекватной технологии увеличения лимита на размер блока не было предложено, предложения bitcoin unlimited были отклонены, а это значит любое увеличение лимита — это опять hard fork.

    На текущем примере мы видим что организационная возня с hard fork по поводу лимита на размер блока может затянуться на годы.
    Чем опасна высокая стоимость блокчейн транзакций? Я говорю не о считанных $ за перевод, а в десятки и сотни тысяч раз дороже, когда такую транзакцию смогут заплатить только крупные ноды lightning network, обслуживающие большое количество пользователей. Опасность в сложности подключения новых пользователей к сети, а именно в первой блокирующей транзакции, которая открывает подключение. Для подключения к сети LN пользователь уже должен иметь на адресе в блокчейне некоторую сумму (уже транзакция) и должен эту сумму заблокировать (еще транзакция).

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

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

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

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

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

    Резюме — да, текущая ситуация с лимитом на размер блока и внедрением segwit выглядит как обычный отъем управляющих механизмов одной группы у другой, в любом случае транзакции будут ходить, и финансовая заинтересованность не позволит вытворять совсем уж глупости ни одной из них. Но вот опасность потерять bitcoin как инструмент независимый от третьих лиц а в частности от финансовых регуляторов стран — не иллюзорна.

    Подумайте над этим, когда будете выбирать свой кошелек и стандарт.

    Напоминаю, хотя bitcoin core напрямую не заявляли о том, что собираются сохранять лимит блока в 1мб, но неоднократно заявляли, что блокчейн должен быть использован в основном для клиринга транзакций LN на пределе своих возможностей, что фактически одно и то же.

    p.s. рекомендую к прочтению мой следующий пост.
    Какому форку вы доверитесь?

    Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.

    Метки:
    Поделиться публикацией
    Комментарии 12
    • +2
      «Лимит» — это и есть ограничение.
      • +1
        Довыпендриваются товарищи со всей этой возней — «Деньги любят тишину»
        Баланс может ведь и поменяться — перед форком эфир по капитализации с битком почти сравнялся — 31% против 38%.
        coinmarketcap.com/charts/#dominance-percentage
        • +1
          Объясните, пожалуйста, почему вы в статье вместо подзаголовков используете блоки цитирования? Так, по-вашему, лучше смотрится? Семантика и согласованность с остальным хабром вас не волнуют?
          • 0
            Я думал как семантически поделить статью на разделы, получалось длиннее. И так жалобы что читать этот лонгрид невозможно.
            Сначала я пытался написать статью в виде диалога — портенциальные вопросы от слушателя и мои ответы, но сокращая, выродилось в это. Как думаете, стоит вернуть формат, когда вся статья будет в виде вопрос-ответ. Получится сильно больше букв.

            Еще сложнее придумать, как это организовать красиво не в формате вопрос ответ.
            • 0

              Спасибо за статью.
              Осмелюсь предложить попробовать упростить предложения длиной в абзац (причастные/деепричастные обороты, ИМХО, уменьшают удобство чтения). Также добавьте структуру а-ля "проблема-варианты развития-рассуждения-выводы", ввести заголовки которые обозначают эту структуру.
              Ни в коем случае не претендую на звание профи-корректора или стилиста.

              • +1
                этот лонгрид

                Это — лонгрид? Вы шутите?

            • +3
              Отлично, чувак разобрался в вопросе, написал статью, на пальцах разъяснил довольно непростую тему, сохранил время другим интересующимся, а вместо благодарности получил наезды за форматирование (именно наезды а не замечания) и стебания за «лонгрид». Был бы я на его месте, задумался следует ли в следующий раз писать статью, или пусть сами разбираются.
              • +1
                Поколение комиксов наступает
                • 0
                  Статья хорошая, но количество грамматических ошибок зашкаливает.
                • 0
                  Эта грязная политическая возня, непрекращающаяся драма с борьбой китайских майнеров за контроль над кодом, уже порядком поднадоела.
                  Устроли цирк с форками.
                  Больше всего интересна вот эта таблица: en.bitcoin.it/wiki/Segwit_support

                  У core нормальный инженрный подход к проблеме, с минимальным импактом на инфраструктуру. Эти-же коммерсанты, плодят форки, и даже не думают о том, что в распределённой сети необходимо ответсти время на обновление ПО на тсысячах узлов. Пару тестов на тестнете провели, — и в перёд.
                  • 0
                    объясните мне не очень понятную фишку. При каждом форке количество монет у людей удваивается, по одной и второй технологии. Курс на момент разделения равный, потом может меняться. Получается просто так, из ничего удваивается общий возможный объем выпущенных биткоинов. При этом ограниченность эмиссии всегда и везде подают как благо. И тут вдруг удвоение из ничего. Как так?
                    • +2
                      То, что появляется при форке — не биткоин. Монетка на той же технологии/алгоритме, общий с битком до момента форка блокчейн, но к битку он уже никакого отношения не имеет. Просто еще один «персонаж» в толпе альткоинов.
                      coinmarketcap.com/all/views/all

                    Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.