Сразу перейду к одному из «политических» аспектов вопроса, потому что этот аспект хорошо объясняет почему в русскоязычной среде так мало обсуждений по этому вопросу. Дело в том, что на всю «криптоанархию» напала что ни на есть самая обычная цензура. Руководитель крупнейших биткоин-форумов bitcointalk и /r/bitcoin на Реддите блокирует обсуждения BIP101 и критику предложений Bitcoin Core. Лучше всего это заметно на Реддите, где забаненных и удалённых топиков уже не одна сотня. Вследствие этого большая часть обсуждения перешла на нецензурируемые сабреддиты
https://www.reddit.com/r/bitcoin_uncensored/ и
https://www.reddit.com/r/bitcoinxt/Советую почитать, что такое "цензура", и почему это понятие неприменимо к частной интернет-площадке со своими правилами. Я, конечно, понимаю, что для пропагандистского эффекта нужно выбирать термины поярче, но всё же.
За реддит не скажу, но тут всё весьма либерально.
Если вкратце, то диспут заключается в том, надо ли увеличивать размер блоков, и если да, то как и когда. Текущий лимит на размер блока – 1 Мб, и его уже почти не хватает. BIP101, который предлагают разработчики Bitcoin XT, в случае его принятия, предлагает 8 Мб с января, а далее плавное увеличение в 2 раза каждый год (вплоть до 8 Гб в отдалённом 2036 году). BIP100, предлагаемый как альтернатива, даёт возможность голосования майнерам по вопросу размера блоков (с верхней планкой в 32 Мб). И то, и другое – хард-форки, без хард-форка размер блока увеличить нельзя. BIP100, в отличие от BIP101, до сих пор не воплощён в коде и передаёт контроль по вопросу размера блоков целиком в руки майнеров (что в результате может привести к непредсказуемым экономическим последствиям). Думаю, что все более-менее в курсе подробностей.
Во-первых, лимита хватает. За вычетом спама, транзакций в среднем едва набирается на 400Кб. У нас есть порядочно времени (если экстраполировать, то около года должно быть, но я не любитель экстраполяции), чтобы спокойно рассмотреть варианты, всё взвесить и выбрать оптимальный, а не устраивать политклоунаду с XT.
Во-вторых, "а далее плавное увеличение в 2 раза каждый год" - здесь я посмеялся. Плавное увеличение в 2 раза - это что-то новое. На самом деле старое, называется экспоненциальным ростом. Плюс не каждый год, а раз в два года.
В-третьих, увеличить размер блока без хард-форка можно (теоретически, надо признать), см. extension blocks Адама Бэка.
Теперь перейдём к основному – почему, казалось бы, логичное и реализованное в коде предложение BIP101 об увеличении блоков не было принято в Bitcoin Core и вылилось в Bitcoin XT с таким жарким обсуждением?
Оно не было принято, потому что на поверку оказалось неприемлемым по техническим причинам. Bitcoin XT же появился раньше, и основной его целью было удовлетворение потребностей Майка Хёрна (BIP64, который не прошёл в Core). До BIP101, впрочем, ничего плохого в XT не было.
Дело в конфликте интересов у разработчиков Bitcoin Core (да-да, коррупция докатилась и до Биткоина). Подавляющее количество текущих разработчиков Core было недавно нанято на работу в компанию Blockstream.
Ещё пропаганда. Окей, давайте считать. У нас 5 core-разработчиков, которые определяют вектор разработки:
- Wladimir J. van der Laan (maintainer, принимает решения о merge/reject)
- Gavin Andresen
- Jeff Garzik
- Gregory Maxwell
- Pieter Wuille
Из них только два последних являются работниками Blockstream. Остальные же разработчики/эксперты не имеют прав на репозиторий.
Основной разработкой компании, на которую она получила инвестиции в размере $21 млн., является так называемая Lightning Network (которая тоже не воплощена в коде).
И тут у нас искажение фактов. Компания Blockstream была создана задолго до Lightning Network с совершенно другой целью - разработать концепт сайдчейнов (sidechains). Сама же LN как концепт появилась в результате работы независимой группы людей. Оценив потенциал технологии, в Blockstream решили выделить часть ресурсов на работу над LN.
Что же предлагает концепция Lightning Network? Она предлагает решение для мгновенных off-chain транзакций, т.е. создаётся некий оператор (третье лицо), который проводит ряд транзакций между Алисой и Бобом, транзакции эти не уходят в блокчеин. В блокчеин попадает только результирующая транзакция (далее – клиринговая). Понятно, что при достаточном количестве пользователей, одна клиринговая транзакция в блокчеине может обеспечивать тысячи транзакций вне цепи. Поэтому Lightning Network подаётся как решение для масштабирования Биткоина.
Не похоже, что вы читали концепт LN. Никакого "оператора" там нет. Все транзакции исключительно peer-to-peer, а глобальность системы достигается за счёт связывания платёжный каналов в цепочки. При этом каждый пользователь остаётся "сам себе банком" и может открвать каналы со сколь угодно большим числом людей.
Проблемы у Lightning Network следующие:
1. Сама идея Lightning Network идёт вразрез с изначальным видением P2P-сети Биткоина: дело в том, что операторы этой сети будут централизованными единицами, которым пользователи будут доверять свои деньги;
2. Если Lightning Network станет успешен, то (если не увеличивать размер блоков) весь блокчеин будет состоять из клиринговых транзакций, обслуживающих этот самый Lightning Network. Что приводит нас к тому, что обычному пользователю транзакцию в блокчеине уже будет не провести, таким образом тот Биткоин, каким мы знаем его сегодня, канет в лету.
1. Неверно. Идея полноценной LN не полагается на доверие (trust). Но для этого нужно внести в протокол несколько дополнений, разрешающих проблему malleability и добавляющих новые типы SIGHASH. К счастью, софт-форк подойдёт.
2. Какое-то странное заявление. Блокчейн будет состоять из тех транзакций, которые смогли туда попасть, т.е. заплатить определённую комиссию. Обычный пользователь - абстрактное понятие. Кто-то будет готов платить много, кто-то нет. Много - тоже понятие относительное.
Вы можете спросить «Почему обычный пользователь не сможет провести транзакцию в блокчеине?» и вопрос вполне резонный. Попробую объяснить.
Какова экономическая модель Lightning Network? Естественно, за транзакции будет взиматься комиссия (предположим, по 5 центов за транзакцию). Теперь представьте, что мы имеем 1 Мб блоки (в которые, допустим, помещается 1.500 транзакций в каждый) – т.е. за 10 минут мы можем провести 1.500 транзакций в блокчеине. Далее математика простая. Предположим, что потребность пользователей – 1.000.000 транзакций каждые 10 минут. Понятно, что 1.000.000 в 1.500 не уложить, и тут приходит на помощь Lightning Network. С этого миллиона транзакций сеть соберёт комиссию в размере $50.000. Теперь, чтобы утвердить эти транзакции в блокчеине, Lightning Network может потратить эту сумму на размещение клиринговых транзакций в блоке. Делим $50.000 на 1.500 транзакций и получаем примерно по $33 на транзакцию. Всё это крайне грубый расчёт, это понятно, но суть в том, что при любом раскладе, никто не будет пользоваться on-chain транзакциями из-за того, что никто не сможет платить такую комиссию.
Это не то что грубый расчёт, это неверный расчёт.
Если блоки неполные (отсутствует или незначителен бэклог), то какого лешего надо будет платить $33 за транзакцию?
Если блоки хронически полные, и присутствует бэклог, то LN окажется неработоспособной, поскольку для части контрактов будет наступать экспирация с потерями для участников. Я уже не говорю об атаках вроде expiration spam.
Сейчас майнеры получают за блок $5-6 тыс, что предполагает комиссию в $3.5 за транзакцию. Но тут всё очень сильно зависит от наличия бэклога.
По факту, для работоспособности LN нам необходимо иметь достаточно места в блоках. Лучше всего, чтобы размер блоков был динамическим.
Что мы получаем в результате? Большую централизованную платёжную систему, потому что все будут пользоваться off-chain транзакциями (сам Биткоин превратится в аналог SWIFT, а операторы Lightning Network в аналог банков). Все идеалы на тему «сам себе банк» будут к ней неприменимы. А там где централизация, там и «Извините, мы вас заблокировали, потому что вы не прислали нам скан паспорта! Если вы хотите получить свои монеты назад, вышлите нам факс и нотариально заверенную копию вашей подписи!».
Тут мне добавить нечего, выше всё сказано.
Естественно, Blockstream получит от всего этого финансовую выгоду. Так как, как я уже говорил, большинство разработчиков Bitcoin Core уже работают на Blockstream, понятно, что у них существует конфликт интересов (между тем, чтобы заработать на Lightning Network и развивать нормально Биткоин).
"Где ваши доказательства?" Расскажите, как они получат выгоду от open-source технологии, где каждый может открыть платёжный канал, а каждый крупный (по факту, любой, но крупному проще) держатель может работать "хабом" (связывать платёжные каналы).
Какая альтернатива Lightning Network предлагается? Тот же BIP101. Он просто увеличивает блоки и, в конечном итоге, сможет обрабатывать тот же миллион транзакций каждые 10 минут.
Если верить расчём авторов LN, то:
- 7 млрд человек, делающих 2 блокчейн-транзакции в день: 24Гб блоки
- 7 млрд человек, закрывающих 2 канала в год, с неограниченным количество транзакций: 133Мб блоки.
Мне интересно, что же перспективней?
Почему многие так против BIP101? Разработчики Bitcoin Core считают так: «увеличение размера блоков приведёт к тому, что меньше людей станет запускать полную ноду, а это приведёт к централизации и снижению уровня безопасности». Да, все эти гигабайтные блоки выглядят немного устрашающе, но подумайте сами, 2036 год – это через 20 лет, а 20 лет назад мы с вами имели Windows 95 на дискетах, текущий месячный трафик полной ноды тогда бы казался чем-то астрономическим. Поэтому технически подкованным людям, которые понимают, что прогресс неизбежен, ясно, что в реальности никаких проблем с безопасностью нет. Какие ещё аргументы против BIP101? Да никаких. Почему же предложение BIP101 не было интегрировано в Bitcoin Core? Ответ абзацем выше. Если блокчеин будет принимать огромные блоки, то отпадёт такая большая потребность в Lightning Network.
Тут сложно что-то ответить, это аргумент к невежеству. Строить отказоусточивую децентрализованную консенсус-критичную систему на эфемерных вещах вроде закона Мура или Нильсена - нонсенс.
Именно потому что большие блоки не удалось «протащить» в Bitcoin Core, два разработчика – Майк Хирн и Гэвин Андресен (в прошлом – тоже одни из ключевых разработчиков Core) решили создать Bitcoin XT. Они не «захватывают» Биткоин! Те, кто не понимают следующей простой истины, не понимают, как вообще работает Биткоин в принципе: если вдруг Хирн и Андресен станут «плохишами», то сеть в любой момент сможет сделать ещё один форк, хоть Bitcoin ZT, и перейти на него, таким образом, отстранив их от разработки. Никто не может «захватить Биткоин». Ну, с другой стороны, у Blockstream это уже почти получилось, но, увы, благодаря текущей поддержке большинства майнеров.
Разрыв шаблона. Сначала вы говорите, что захватить Биткойн нельзя, а потом говорите, что почти получилось. Ну по факту, вы скорее правы, и "захватить Биткойн" у XT не получится.
Реальность такова, что ваши SMM-шные штуки не сработали, и люди слепо не ломанулись за харизматичным лидером в ряды правоверных XT-шников. Но вы можете продолжать, пока реальное комьюнити посредством конференций и основательной работы будет по-настоящему решать проблему.