Bitcoin Cash: Электронные деньги на основе одноранговой сети для всего мира
Bitcoin Cash (BCH) отделился от Bitcoin 1 августа 2017 года в результате хардфорка. У него нет собственного вайтпейпера — представленный здесь документ является оригинальным вайтпейпером Bitcoin авторства Сатоши Накамото, на который Bitcoin Cash ссылается как на основу своего видения одноранговой электронной наличности.
Abstract
Bitcoin Cash -- это одноранговая система электронных денег, отделившаяся от блокчейна Bitcoin 1 августа 2017 года. Созданная в ответ на ограничения масштабируемости Bitcoin, Bitcoin Cash увеличила лимит размера блока для обеспечения большей пропускной способности транзакций и более низких комиссий, восстанавливая первоначальное видение Bitcoin как практичного средства обмена для повседневных транзакций. С блоками размером 32 МБ, адаптивным алгоритмом корректировки сложности и постоянным развитием протокола Bitcoin Cash стремится к масштабированию на уровне блокчейна для использования в качестве глобальных одноранговых электронных денег.
Проект Bitcoin Cash родился из фундаментального разногласия внутри сообщества Bitcoin о том, как сеть должна масштабироваться для удовлетворения растущего спроса. В то время как одна фракция выступала за решения масштабирования вне основной цепи, такие как Lightning Network, построенная поверх Segregated Witness (SegWit), другая фракция утверждала, что увеличение лимита размера блока является наиболее прямым и проверенным подходом к масштабированию. Когда консенсус не удалось достичь, последняя группа осуществила хардфорк, создав новую цепь, которая сохранила историю транзакций Bitcoin, одновременно реализовав больший лимит размера блока и отказавшись от SegWit. Данный документ описывает технические спецификации, философию проектирования и траекторию развития Bitcoin Cash.
Introduction
Оригинальный whitepaper Bitcoin, опубликованный Сатоси Накамото в 2008 году, описывал «чисто одноранговую версию электронных денег», которая позволяла бы «отправлять онлайн-платежи напрямую от одной стороны к другой без обращения к финансовому посреднику». Это видение Bitcoin как средства обмена для повседневных транзакций было центральным для его раннего принятия и роста сообщества. Ранние сторонники Bitcoin часто ссылались на низкие комиссии за транзакции и быстрые платежи как на ключевые преимущества перед традиционными финансовыми системами.
Однако по мере роста популярности Bitcoin в середине 2010-х годов фундаментальное ограничение начало снижать его полезность как электронных денег. Лимит размера блока в один мегабайт, изначально введённый как временная мера против спама, создал искусственный потолок для количества транзакций, которые сеть могла обработать. По мере роста спроса на блочное пространство пользователи были вынуждены конкурировать за ограниченную ёмкость, предлагая более высокие комиссии. К началу 2017 года медианная комиссия за транзакции Bitcoin выросла до нескольких долларов, что сделало транзакции малой стоимости экономически нецелесообразными. В периоды пиковой загрузки комиссии могли превышать двадцать долларов, а транзакции могли оставаться неподтверждёнными часами или даже днями.
Эта ситуация представляла собой фундаментальное отступление от первоначального обещания Bitcoin. Система, предназначенная для осуществления одноранговых электронных платежей, становилась слишком дорогой и слишком медленной для тех самых случаев использования, ради которых она была создана. В то время как Bitcoin всё чаще позиционировался как «цифровое золото» -- средство сбережения, а не средство обмена -- многие члены сообщества и разработчики считали это предательством основополагающих принципов проекта.
Bitcoin Cash был создан для решения этого кризиса путём принятия наиболее прямого подхода к масштабированию: увеличения лимита размера блока. Позволяя вместить больше транзакций в каждый блок, Bitcoin Cash стремился восстановить низкие комиссии и быстрые подтверждения, снова сделав одноранговые электронные деньги практичными. Сторонники проекта утверждали, что масштабирование на уровне блокчейна не только технически осуществимо, но и является подходом, который изначально предусмотрел Сатоси Накамото, ссылаясь на ранние сообщения, в которых Накамото обсуждал увеличение лимита размера блока по мере роста сети.
Создание Bitcoin Cash 1 августа 2017 года стало одним из наиболее значимых событий в истории криптовалют. Оно представляло собой первое крупное разделение цепи Bitcoin, вызванное подлинным философским разногласием о будущем направлении протокола. Форк продемонстрировал, что в децентрализованной системе неразрешимые споры могут быть урегулированы путём предоставления каждой фракции возможности независимо следовать своему видению, при этом рынок в конечном счёте определяет результат.
Background: The Scaling Debate
Дебаты о масштабировании Bitcoin были одним из самых спорных и продолжительных конфликтов в истории разработки программного обеспечения с открытым исходным кодом. По сути, дебаты сосредоточились на, казалось бы, простом вопросе: как сеть Bitcoin должна увеличить свою пропускную способность обработки транзакций? Однако ответ на этот вопрос затрагивал фундаментальные вопросы управления, децентрализации, технической философии и самой идентичности Bitcoin.
Лимит размера блока Bitcoin в один мегабайт был введён Сатоси Накамото в 2010 году как временная мера для предотвращения атак типа «отказ в обслуживании», при которых злоумышленник мог бы наводнить сеть блоками чрезмерного размера. В то время фактическое использование блоков было значительно ниже этого лимита, и Накамото предположил, что лимит может быть повышен в будущем посредством простого изменения кода. Однако по мере роста использования Bitcoin и заполнения блоков повышение лимита оказалось гораздо более спорным, чем кто-либо мог ожидать.
Одна фракция, ассоциировавшаяся с командой разработчиков Bitcoin Core, утверждала, что размер блока должен оставаться небольшим для сохранения децентрализации. Их аргументация заключалась в том, что более крупные блоки увеличат вычислительные требования и требования к пропускной способности для запуска полного узла, потенциально вытесняя обычных пользователей и концентрируя эксплуатацию узлов среди хорошо обеспеченных ресурсами субъектов. Они предложили альтернативный путь масштабирования: Segregated Witness (SegWit), изменение протокола, которое реструктурировало данные транзакций для эффективного увеличения пропускной способности блока без повышения номинального лимита размера, в сочетании с решениями вне основной цепи, такими как Lightning Network, которые переместили бы большинство транзакций за пределы основного блокчейна.
Противоположная фракция, включавшая видных разработчиков, майнеров и предприятия, утверждала, что увеличение лимита размера блока является самым простым, наиболее проверенным и наиболее срочным решением. Они настаивали на том, что лимит в один мегабайт был произвольным ограничением, которое никогда не предназначалось в качестве постоянной характеристики протокола, и что рост комиссий и перегрузка отталкивали пользователей и торговцев от Bitcoin. Они скептически относились к сложности SegWit и опасались, что Lightning Network, которая в то время была ещё в значительной степени теоретической, никогда не сможет выполнить свои обещания дешёвых и мгновенных транзакций.
Дебаты обострились через серию предложений и контрпредложений. Bitcoin XT, предложенный Майком Хирном и Гэвином Андресеном в 2015 году, стремился увеличить размер блока до 8 МБ. Bitcoin Classic предлагал более скромное увеличение до 2 МБ. Bitcoin Unlimited предлагал полностью убрать лимит размера блока, позволив майнерам устанавливать собственные лимиты через рыночную динамику. Каждое предложение вызывало ожесточённые дебаты, и ни одно не достигло подавляющего консенсуса, необходимого для бесспорного хардфорка.
Было предпринято несколько попыток компромисса. Гонконгское соглашение (февраль 2016 года) предусматривало, что разработчики Bitcoin Core и майнеры согласились развернуть SegWit с последующим хардфорком до 2 МБ, но соглашение развалилось, когда компонент хардфорка не был реализован. Нью-Йоркское соглашение (май 2017 года), также известное как SegWit2x, предлагало немедленную активацию SegWit с последующим хардфорком до 2 МБ в течение шести месяцев. Это соглашение было подписано более чем пятьюдесятью компаниями, представляющими большинство хешрейта Bitcoin, но было решительно отвергнуто командой разработчиков Bitcoin Core и значительной частью пользовательского сообщества.
Когда стало ясно, что компромисс невозможен, фракция больших блоков решила действовать в одностороннем порядке. 1 августа 2017 года они осуществили хардфорк блокчейна Bitcoin, создав Bitcoin Cash с первоначальным лимитом размера блока 8 МБ. Это было непростое решение -- оно требовало разделения блокчейна, сети, сообщества и бренда. Но сторонники Bitcoin Cash считали, что это единственный способ сохранить первоначальное видение Bitcoin как одноранговых электронных денег.
The Fork
Хардфорк Bitcoin Cash был осуществлён 1 августа 2017 года на высоте блока 478 558. В этой точке блокчейн Bitcoin разделился на две отдельные цепи: оригинальная цепь, продолжившая существование как Bitcoin (BTC) с активацией SegWit, и новая цепь, ставшая Bitcoin Cash (BCH) с увеличенным лимитом размера блока 8 МБ.
Форк был технически чистым и хорошо спланированным. Каждый адрес Bitcoin, имевший баланс на момент форка, получил идентичный баланс на обеих цепях. Если пользователь владел 1 BTC до форка, после форка у него был бы 1 BTC на цепи Bitcoin и 1 BCH на цепи Bitcoin Cash. Вся история транзакций до блока 478 558 была общей для обеих цепей.
Одной из критических технических задач форка была реализация защиты от повторного воспроизведения. При отсутствии такой защиты транзакция, отправленная в одну цепь, могла быть воспроизведена в другой, потенциально заставляя пользователей непреднамеренно тратить монеты в обеих цепях. Bitcoin Cash реализовал надёжную защиту от повторного воспроизведения путём модификации алгоритма подписания транзакций. В частности, Bitcoin Cash ввёл новый флаг SigHash (SIGHASH_FORKID), включаемый в хеш подписи каждой транзакции. Транзакции, подписанные с этим флагом, действительны в цепи Bitcoin Cash, но недействительны в цепи Bitcoin, и наоборот. Это обеспечило чёткое разделение двух сетей с момента форка.
Первоначальный лимит размера блока для Bitcoin Cash был установлен на уровне 8 МБ -- в восемь раз больше лимита Bitcoin в 1 МБ. Это представляло собой значительное увеличение пропускной способности транзакций на уровне блокчейна, позволяя Bitcoin Cash обрабатывать существенно больше транзакций в каждом блоке при сохранении низких комиссий. Первый блок Bitcoin Cash после форка был добыт пулом ViaBTC и имел размер приблизительно 1,9 МБ, демонстрируя немедленную практическую выгоду увеличенного размера блока.
Форк также исключил SegWit, который был активирован в цепи Bitcoin. Разработчики Bitcoin Cash отвергли SegWit по нескольким причинам: они считали, что он вносит ненужную сложность в протокол, создаёт двухуровневую систему транзакций с различными структурами комиссий и модифицирует структуру блока способами, которые, по их мнению, подрывают простоту модели UTXO. Выбрав вместо этого прямое увеличение размера блока, Bitcoin Cash сохранил более простую и традиционную архитектуру протокола, подобную Bitcoin.
В последствиях форка обе цепи столкнулись с проблемой корректировки сложности. Bitcoin Cash первоначально использовал ту же сложность SHA-256, что и цепь Bitcoin, но со значительно меньшей вычислительной мощностью, направленной на майнинг. Для предотвращения ситуации, при которой блоки добывались бы крайне медленно, Bitcoin Cash реализовал механизм экстренной корректировки сложности (EDA), который снижал сложность на 20 процентов, если за 12-часовой период было добыто менее 6 блоков. Хотя этот механизм успешно поддерживал жизнеспособность цепи в критический начальный период, он оказался нестабильным, вызывая резкие колебания времени производства блоков и хешрейта, поскольку майнеры переключались между Bitcoin и Bitcoin Cash в зависимости от прибыльности. EDA был заменён в ноябре 2017 года более стабильным алгоритмом корректировки сложности, основанным на скользящем среднем предыдущих 144 блоков.
Форк вызвал значительные разногласия в широком криптовалютном сообществе. Критики утверждали, что Bitcoin Cash является незаконной попыткой присвоить бренд Bitcoin, тогда как сторонники настаивали на том, что это законное продолжение первоначальной дорожной карты Bitcoin. Биржи и провайдеры услуг были вынуждены принимать быстрые решения о том, поддерживать ли новую цепь и как обрабатывать распределение форкнутых монет своим клиентам. Несмотря на полемику, Bitcoin Cash быстро утвердился как жизнеспособная и активно используемая криптовалюта, достигнув значительных торговых объёмов и принятия торговцами в месяцы после форка.
Technical Specifications
Bitcoin Cash разделяет фундаментальную техническую архитектуру Bitcoin, включая механизм консенсуса proof-of-work на основе SHA-256, модель транзакций UTXO, эллиптическую кривую secp256k1 для цифровых подписей и целевой интервал между блоками в десять минут. Однако несколько ключевых модификаций отличают его от протокола Bitcoin.
Наиболее заметное отличие -- лимит размера блока. Bitcoin Cash запустился с лимитом размера блока 8 МБ и впоследствии увеличил его до 32 МБ в мае 2018 года. Этот лимит в 32 МБ обеспечивает приблизительно 32-кратную пропускную способность транзакций по сравнению с эффективным размером блока Bitcoin в 1 МБ без SegWit (или примерно 8-кратную ёмкость по сравнению с эффективным лимитом Bitcoin с SegWit, составляющим приблизительно 4 МБ). Увеличенный размер блока является краеугольным камнем философии масштабирования Bitcoin Cash на уровне блокчейна, обеспечивая достаточное пространство для роста транзакций без давления комиссий, возникающего при постоянном заполнении блоков.
Bitcoin Cash не реализует Segregated Witness (SegWit). Вместо разделения данных свидетелей и данных транзакций, как это делает SegWit, Bitcoin Cash сохраняет оригинальный формат транзакций Bitcoin. Все данные транзакций, включая подписи, хранятся в блоке традиционным способом. Это упрощает протокол и обеспечивает обратную совместимость со старым программным обеспечением и инфраструктурой Bitcoin.
Значительным улучшением протокола в Bitcoin Cash является усовершенствованный алгоритм SigHash, введённый при форке. Новый алгоритм, основанный на BIP 143 (изначально разработанном для SegWit), решает проблему квадратичного хеширования, существовавшую в оригинальной схеме верификации подписей Bitcoin. В оригинальной схеме вычислительная стоимость верификации подписи транзакции возрастала квадратично с числом входов, создавая потенциальный вектор атаки типа «отказ в обслуживании». Новый алгоритм SigHash делает стоимость верификации линейной, позволяя сети безопасно обрабатывать более крупные и сложные транзакции.
Bitcoin Cash поддерживает больший максимальный размер транзакции и большее количество операций подписания (sigops) на блок по сравнению с Bitcoin. Лимит sigops масштабируется пропорционально размеру блока, обеспечивая ограниченность вычислительных затрат на валидацию блока при значительно большем количестве транзакций в блоке.
Система скриптов в Bitcoin Cash активно развивается за пределами сравнительно консервативного подхода Bitcoin. Bitcoin Cash повторно активировал и ввёл несколько опкодов, расширяющих выразительность его языка скриптов. Среди заметных дополнений -- OP_CHECKDATASIG и OP_CHECKDATASIGVERIFY, позволяющие скриптам транзакций верифицировать подписи относительно произвольных данных (а не только данных транзакции), что делает возможными смарт-контракты на основе оракулов и другие продвинутые шаблоны скриптов. Опкод OP_REVERSEBYTES, нативные опкоды интроспекции и увеличенные лимиты скриптов и стека дополнительно расширили программируемость Bitcoin Cash.
Bitcoin Cash использует ту же основу формата адресов, что и Bitcoin, но в январе 2018 года принял формат CashAddr для предотвращения путаницы и ошибок межсетевой отправки. Адреса CashAddr начинаются с префикса «bitcoincash:» (часто сокращаемого до «q» или «p» для хеш-части) и используют другую схему кодирования по сравнению с форматом base58check Bitcoin. Это визуальное различие немедленно показывает, принадлежит ли адрес Bitcoin или Bitcoin Cash, снижая риск случайной отправки монет в неправильную сеть.
Сеть работает на порту 8333, том же порту по умолчанию, что и Bitcoin, хотя узлы Bitcoin Cash идентифицируют себя другим магическим числом сети при рукопожатии протокола. Это означает, что узлы Bitcoin и Bitcoin Cash не будут случайно подключаться друг к другу, несмотря на использование одного и того же порта.
Transaction Throughput and Scalability
Пропускная способность транзакций и масштабируемость являются центральными элементами ценностного предложения Bitcoin Cash. Фундаментальный тезис проекта заключается в том, что одноранговые электронные деньги должны быть способны обрабатывать транзакции быстро и дёшево для повседневного использования, а масштабирование на уровне блокчейна через увеличение блоков является наиболее надёжным способом достижения этого.
При лимите размера блока 32 МБ и десятиминутном интервале между блоками теоретическая максимальная пропускная способность Bitcoin Cash составляет приблизительно 100 транзакций в секунду в зависимости от среднего размера транзакции. Это представляет собой существенное увеличение по сравнению с теоретическим максимумом Bitcoin -- приблизительно 7 транзакций в секунду при блоках 1 МБ. На практике фактическая пропускная способность зависит от состава типов и размеров транзакций, однако ёмкость Bitcoin Cash более чем достаточна для текущего объёма транзакций, при этом блоки обычно значительно ниже лимита 32 МБ.
Изобилие доступного блочного пространства оказывает прямое и измеримое влияние на комиссии за транзакции. Когда блоки не заполнены, конкуренции за комиссии нет, и транзакции могут подтверждаться с минимальными комиссиями. Минимальная комиссия ретрансляции по умолчанию в Bitcoin Cash составляет 1 сатоши за байт (где 1 сатоши = 0,00000001 BCH), и большинство транзакций подтверждаются в следующем блоке при этом минимуме или близко к нему. Это делает транзакции Bitcoin Cash стоимостью в доли цента в обычных условиях, по сравнению с комиссиями Bitcoin, которые могут составлять от долларов до десятков долларов в периоды перегрузки.
Сообщество разработчиков Bitcoin Cash провело обширные исследования и тестирование пределов масштабирования на уровне блокчейна. Инициатива Gigablock Testnet, проведённая в 2017-2018 годах, продемонстрировала, что протокол Bitcoin может обрабатывать блоки размером 1 ГБ и более при соответствующих программных оптимизациях и современном оборудовании. Эти тесты выявили несколько узких мест в исходном коде -- включая распространение блоков, валидацию транзакций и управление множеством UTXO -- и направили последующие усилия по оптимизации.
Для поддержки более крупных блоков были внесены несколько улучшений протокола и реализации. Graphene, протокол распространения блоков, основанный на обратимых таблицах поиска Блума и фильтрах Блума, значительно сокращает пропускную способность, необходимую для распространения блоков, кодируя только разницу между блоком и транзакциями, которые принимающий узел уже имеет в своём мемпуле. Каноническое упорядочивание транзакций (CTOR), реализованное в ноябре 2018 года, требует упорядочивания транзакций в блоке по их идентификатору. Это, казалось бы, незначительное изменение обеспечивает существенные оптимизации валидации и распространения блоков, поскольку позволяет параллельную валидацию транзакций и более эффективные алгоритмы согласования множеств.
Инициативы по обязательствам UTXO и параллельной валидации дополнительно улучшили способность сети эффективно обрабатывать крупные блоки. Используя современные многоядерные процессоры и твердотельные накопители, оптимизированные реализации узлов могут валидировать блоки, содержащие десятки тысяч транзакций, в приемлемые сроки.
Дорожная карта масштабируемости Bitcoin Cash предусматривает дальнейшее увеличение лимита размера блока по мере развития технологий и спроса. Разработчики проекта выразили долгосрочную цель поддержки глобальных объёмов платежей полностью на уровне блокчейна, нацеливаясь на уровни пропускной способности, которые позволили бы Bitcoin Cash обслуживать миллиарды ежедневных транзакций. Хотя эта цель амбициозна, продолжающиеся улучшения аппаратных возможностей, пропускной способности сети и программной оптимизации обеспечивают реалистичный путь к её поэтапному достижению с течением времени.
Важным аспектом подхода Bitcoin Cash к масштабированию является концепция транзакций с «нулевым подтверждением». Для платежей малой стоимости торговцы могут принимать транзакции сразу после трансляции, до их включения в блок. Bitcoin Cash реализовал несколько мер для повышения надёжности транзакций с нулевым подтверждением, включая правило «первого увиденного» (при котором узлы ретранслируют только первую версию транзакции, затрудняя попытки двойного расходования) и протоколы уведомления о двойном расходовании, предупреждающие торговцев при обнаружении конфликтующей транзакции. Эти меры делают Bitcoin Cash практичным для транзакций в точках продаж, где ожидание десяти минут для подтверждения блока было бы непрактичным.
OP_RETURN and Data Applications
Bitcoin Cash поддерживает опкод OP_RETURN, который позволяет пользователям встраивать произвольные данные в блокчейн в рамках выхода транзакции, который доказуемо невозможно потратить. Эта функция обеспечивает ряд ориентированных на данные приложений, построенных поверх блокчейна Bitcoin Cash, включая токен-протоколы, системы обмена сообщениями, сервисы нотариального заверения и платформы социальных сетей.
Лимит данных OP_RETURN в Bitcoin Cash установлен на 220 байт на выход, что значительно превышает лимит Bitcoin в 80 байт. Кроме того, Bitcoin Cash допускает несколько выходов OP_RETURN в одной транзакции, дополнительно расширяя объём данных, которые могут быть встроены в одну транзакцию. Эти щедрые лимиты в сочетании с низкими комиссиями за транзакции делают Bitcoin Cash экономически жизнеспособной платформой для приложений работы с данными, которые были бы непомерно дорогими на цепях с ограниченной ёмкостью.
Simple Ledger Protocol (SLP) был одной из первых и наиболее широко принятых токен-систем, построенных на Bitcoin Cash с использованием OP_RETURN. SLP позволял пользователям создавать и передавать пользовательские токены в блокчейне Bitcoin Cash, кодируя метаданные токенов в выходах OP_RETURN. Хотя SLP в значительной степени был вытеснен протоколом CashTokens, он продемонстрировал жизнеспособность построения токен-экономик поверх модели UTXO.
CashTokens, активированный в мае 2023 года, представляет более совершенный подход к токенизации в Bitcoin Cash. В отличие от SLP, который полагался на метаданные OP_RETURN, игнорируемые базовым протоколом, CashTokens является функцией уровня консенсуса, интегрирующей токены непосредственно в модель UTXO. Каждый UTXO может нести как значение BCH, так и связанный токен, при этом валидность токена обеспечивается правилами консенсуса. CashTokens поддерживает два типа токенов: взаимозаменяемые токены (аналогичные токенам ERC-20 в Ethereum) и невзаимозаменяемые токены (NFT). Обеспечение на уровне консенсуса означает, что токен-транзакции имеют те же гарантии безопасности, что и нативные транзакции BCH, устраняя допущения доверия и требования индексирования оверлейных протоколов, таких как SLP.
Memo.cash -- это децентрализованный протокол социальных сетей, построенный на Bitcoin Cash с использованием транзакций OP_RETURN. Пользователи транслируют публикации, подписки, лайки и другие социальные действия как транзакции Bitcoin Cash с закодированными данными OP_RETURN. Поскольку данные хранятся в блокчейне, они устойчивы к цензуре и постоянно архивированы. Низкая стоимость транзакций в Bitcoin Cash делает это экономически осуществимым -- каждое действие в социальных сетях стоит доли цента.
Другие приложения для работы с данными в Bitcoin Cash включают услуги временных меток и нотариального заверения документов, где хеш документа встраивается в выход OP_RETURN для создания постоянной, защищённой от подделки записи о существовании документа на определённый момент времени. Системы отслеживания цепочки поставок, верификации учётных данных и децентрализованной идентификации также были построены с использованием возможностей встраивания данных Bitcoin Cash.
Сочетание большой ёмкости OP_RETURN, низких комиссий и быстрого времени подтверждения позиционирует Bitcoin Cash как конкурентоспособную платформу для приложений работы с данными на основе блокчейна. Хотя существуют специально созданные блокчейны для работы с данными, Bitcoin Cash предлагает преимущество хорошо зарекомендовавшей себя, высокозащищённой и широко поддерживаемой сети с доказанной историей непрерывной работы.
Network Architecture
Сеть Bitcoin Cash работает на той же фундаментальной одноранговой архитектуре, что и Bitcoin, где узлы общаются через протокол «сплетен» для распространения транзакций и блоков. Полные узлы хранят полную копию блокчейна и независимо валидируют все транзакции и блоки в соответствии с правилами консенсуса. Сеть не требует разрешений, что означает, что любой может запустить узел и участвовать в сети без авторизации.
Для Bitcoin Cash существует несколько независимых реализаций полных узлов, что отражает приверженность проекта децентрализованной разработке. Bitcoin Cash Node (BCHN) является наиболее широко используемой реализацией и служит фактическим эталонным клиентом. Другие реализации включают Bitcoin Unlimited, BCHD (написанный на Go) и Knuth (высокопроизводительная реализация на C++). Наличие нескольких независимых реализаций снижает риск того, что единственный программный баг вызовет сбой всей сети, и гарантирует, что ни одна команда разработчиков не имеет одностороннего контроля над протоколом.
Майнинг в Bitcoin Cash использует алгоритм proof-of-work SHA-256, идентичный Bitcoin. Это означает, что одно и то же оборудование для майнинга на ASIC может использоваться для майнинга любой из цепей, и майнеры могут переключаться между Bitcoin и Bitcoin Cash в зависимости от прибыльности. На практике хешрейт Bitcoin Cash составляет лишь долю от хешрейта Bitcoin, поскольку большая часть мощности майнинга SHA-256 направлена на более прибыльную цепь Bitcoin. Тем не менее алгоритм корректировки сложности Bitcoin Cash обеспечивает производство блоков с целевым десятиминутным интервалом независимо от абсолютного уровня хешрейта.
Алгоритм корректировки сложности является одним из наиболее важных компонентов протокола Bitcoin Cash. Оригинальная корректировка сложности Bitcoin, пересчитывающаяся каждые 2016 блоков (приблизительно каждые две недели), была слишком медленной для учёта быстрых колебаний хешрейта, которые испытывал Bitcoin Cash при переключении майнеров между ним и Bitcoin. После проблемного периода экстренной корректировки сложности (EDA) в 2017 году Bitcoin Cash в ноябре 2017 года принял новый алгоритм, корректирующий сложность на основе скользящего окна в 144 блока.
В ноябре 2020 года Bitcoin Cash обновился до алгоритма корректировки сложности ASERT (Absolutely Scheduled Exponentially Rising Targets), также известного как aserti3-2d. ASERT -- это математически элегантный алгоритм, который корректирует целевую сложность на основе разницы между фактически прошедшим временем и ожидаемым временем с момента референсного блока («якорного блока»). Если блоки производятся быстрее ожидаемого, сложность возрастает экспоненциально; если медленнее -- экспоненциально снижается. Обозначение «3-2d» относится к периоду полураспада приблизительно в два дня (конкретно 288 блоков при десятиминутном целевом интервале), что означает, что устойчивое удвоение или уменьшение вдвое хешрейта приведёт к полной корректировке сложности в течение двух дней. ASERT продемонстрировал высокую стабильность, обеспечивая постоянные интервалы между блоками даже при значительной волатильности хешрейта.
Эффективность распространения блоков критически важна для сети с большими блоками. Bitcoin Cash принял несколько оптимизаций для обеспечения быстрого распространения крупных блоков по сети. Компактные блоки (BIP 152), позволяющие узлам восстанавливать блоки из идентификаторов транзакций вместо полных данных транзакций, значительно сокращают пропускную способность, необходимую для распространения блоков, когда мемпулы узлов пересекаются. Протокол Graphene обеспечивает ещё большее сжатие за счёт использования вероятностных структур данных для достижения близкого к оптимальному кодирования блоков. Xthinner -- ещё один протокол сжатия, разработанный специально для Bitcoin Cash, достигающий приблизительно 99,6-процентного сжатия для типичных блоков.
Политики ретрансляции и мемпула сети разработаны для поддержки надёжных транзакций с нулевым подтверждением. Узлы следуют строгому правилу «первого увиденного», принимая и ретранслируя только первую версию транзакции, которую они обнаруживают. Если обнаруживается вторая транзакция, пытающаяся потратить те же входы (попытка двойного расходования), узлы генерируют доказательство двойного расходования и распространяют его по сети, предупреждая торговцев и другие заинтересованные стороны. Эта инфраструктура обеспечивает разумный уровень безопасности для принятия неподтверждённых транзакций при повседневных платежах малой стоимости.
Smart Contract Capabilities
Хотя Bitcoin Cash прежде всего спроектирован как одноранговая система электронных денег, он развил значительные возможности смарт-контрактов через расширения своего скриптового языка. В отличие от модели смарт-контрактов Ethereum, основанной на счетах и являющейся Тьюринг-полной, смарт-контракты Bitcoin Cash работают в рамках модели UTXO, используя стековый скриптовый язык, который намеренно не является Тьюринг-полным. Этот дизайн обеспечивает предсказуемые затраты на выполнение и позволяет избежать класса уязвимостей, связанных с неограниченными вычислениями, при этом обеспечивая удивительно богатый набор программируемых финансовых инструментов.
Скриптовый язык Bitcoin Cash последовательно улучшался через серию обновлений протокола. В мае 2018 года несколько опкодов, отключённых в ранней истории Bitcoin, были повторно активированы, включая побитовые логические операторы (OP_AND, OP_OR, OP_XOR), арифметические операторы для больших чисел и операции обработки строк (OP_SPLIT, OP_CAT). Эти восстановленные опкоды значительно расширили выразительность скриптов Bitcoin Cash.
Введение OP_CHECKDATASIG и OP_CHECKDATASIGVERIFY в ноябре 2018 года стало особенно важным достижением. Эти опкоды позволяют скрипту транзакции верифицировать подпись ECDSA относительно произвольных данных, а не только самой транзакции. Это делает возможными контракты на основе оракулов, где внешний источник данных подписывает сообщение, удостоверяющее некое реальное условие (такое как цена, погодное событие или спортивный результат), и выполнение контракта зависит от содержания этого подписанного сообщения. Эта возможность открывает двери для децентрализованных рынков предсказаний, страховых контрактов и других финансовых инструментов, зависящих от внешних данных.
Нативные опкоды интроспекции, введённые в мае 2022 года, позволяют скриптам транзакций исследовать свойства содержащей их транзакции. Скрипты могут проверять значение, скрипт блокировки и данные токенов как входов, так и выходов в рамках одной транзакции. Это делает возможными контракты типа ковенант -- скрипты, ограничивающие то, как монеты могут быть потрачены в будущих транзакциях, а не только кто может их потратить. Ковенанты позволяют создавать мощные паттерны, такие как хранилища (ограничения расходования с временной блокировкой для безопасности), периодические платежи, децентрализованные биржи и механизмы голосования в блокчейне.
CashScript -- это высокоуровневый язык смарт-контрактов для Bitcoin Cash, аналогичный Solidity для Ethereum. CashScript позволяет разработчикам писать контракты на знакомом, похожем на JavaScript синтаксисе, который компилируется в байткод скриптов Bitcoin Cash. Язык обрабатывает сложности проектирования контрактов на основе UTXO, включая интроспекцию входов/выходов и верификацию подписей, делая его доступным для разработчиков, которые могут быть незнакомы с низкоуровневым стековым программированием. Контракты CashScript использовались для создания децентрализованных бирж, эскроу-сервисов, краудфандинговых платформ и других приложений.
Обновление CashTokens в мае 2023 года добавило ещё одно измерение к возможностям смарт-контрактов Bitcoin Cash. Встраивая взаимозаменяемые и невзаимозаменяемые токены непосредственно в модель UTXO на уровне консенсуса, CashTokens делает возможными токен-контракты, обеспеченные правилами консенсуса сети, а не оверлейными протоколами. Невзаимозаменяемые токены (NFT) в CashTokens несут поле «обязательства» -- произвольные данные, прикреплённые к токену, -- которые могут быть прочитаны и валидированы скриптами смарт-контрактов. Это создаёт механизм поддержания состояния в блокчейне через несколько транзакций -- возможность, которую ранее было трудно реализовать в модели UTXO. Контракты могут использовать NFT как носители состояния, обновляя данные обязательств с каждой транзакцией для реализации сложных многоэтапных протоколов.
Сочетание опкодов интроспекции, CashTokens и CashScript создаёт платформу смарт-контрактов, которая, хотя и фундаментально отличается от модели Ethereum, способна реализовать многие из тех же децентрализованных финансовых приложений. Децентрализованные биржи, автоматические маркет-мейкеры, протоколы кредитования и децентрализованные автономные организации были построены или прототипированы на Bitcoin Cash. Подход на основе UTXO предлагает преимущества в отношении параллелизации (UTXO могут валидироваться независимо), конфиденциальности (каждый UTXO независим) и предсказуемости (нет глобального состояния для конкуренции), хотя и требует иных паттернов проектирования по сравнению с системами на основе счетов.
Monetary Policy
Bitcoin Cash полностью наследует денежно-кредитную политику Bitcoin. Общее предложение Bitcoin Cash ограничено 21 миллионом монет, а график эмиссии следует тому же механизму халвинга, что и Bitcoin. Эта общая денежно-кредитная политика является прямым следствием форка: поскольку Bitcoin Cash отделился от блокчейна Bitcoin, он начал с той же историей эмиссии и продолжает с теми же правилами будущей эмиссии.
Вознаграждение за блок начиналось с 50 BCH за блок (унаследованное от параметров генезиса Bitcoin) и уменьшается вдвое каждые 210 000 блоков, приблизительно каждые четыре года. Первый халвинг произошёл в ноябре 2012 года (до форка, поэтому это общая история), снизив вознаграждение до 25 монет. Второй халвинг в июле 2016 года снизил его до 12,5 монет. Третий халвинг в апреле 2020 года, произошедший после форка и, следовательно, специфичный для цепи Bitcoin Cash, снизил вознаграждение до 6,25 BCH. Четвёртый халвинг в апреле 2024 года дополнительно снизил его до 3,125 BCH за блок.
Этот график халвинга создаёт дезинфляционную денежно-кредитную политику, при которой темп создания новых монет снижается со временем, асимптотически приближаясь к нулю. Ожидается, что последняя монета Bitcoin Cash будет добыта примерно в 2140 году. На тот момент доход майнеров будет полностью состоять из комиссий за транзакции.
Ограничение предложения в 21 миллион и график халвинга придают Bitcoin Cash те же свойства дефицитности, что и Bitcoin. Циркулирующее предложение по состоянию на начало 2026 года составляет приблизительно 19,8 миллиона BCH, представляя более 94 процентов от общего объёма, который когда-либо будет существовать. Оставшиеся монеты будут распределены в течение более чем столетия убывающих блочных вознаграждений.
Подход Bitcoin Cash к переходу от блочных вознаграждений к компенсации майнеров на основе комиссий отличается от стратегии Bitcoin. Философия масштабирования Bitcoin, ограничивающая блочное пространство для поддержания рынка комиссий, неявно полагается на высокие комиссии за транзакцию для компенсации майнеров по мере уменьшения блочных вознаграждений. Bitcoin Cash придерживается противоположного подхода: сохраняя низкие комиссии и большие блоки, сеть стремится генерировать достаточный совокупный доход от комиссий за счёт высокого объёма транзакций, а не высоких комиссий за отдельную транзакцию. В этой модели, если каждая транзакция платит комиссию в один цент, но сеть обрабатывает миллионы транзакций за блок, совокупный доход от комиссий может быть достаточным для стимулирования майнинга.
Эта модель комиссий, основанная на объёме, требует, чтобы Bitcoin Cash достиг значительно более высокой пропускной способности транзакций по сравнению с Bitcoin для обеспечения эквивалентных стимулов для майнеров в эпоху после субсидий. Сторонники утверждают, что это достижимо через продолжающееся масштабирование на уровне блокчейна, поскольку глобальный спрос на платежи огромен и даже скромная доля мировых транзакций составит миллионы платежей в день. Критики возражают, что достижение такого уровня принятия неопределённо и что модель низких комиссий может создавать недостаточные стимулы в переходный период.
Общая денежно-кредитная политика Bitcoin и Bitcoin Cash означает, что две цепи находятся в прямой конкуренции за вычислительную мощность майнинга SHA-256. Майнеры распределяют свои ресурсы на ту цепь, которая более прибыльна в любой момент времени, а алгоритмы корректировки сложности на обеих цепях учитывают это гибкое распределение. На практике доля Bitcoin Cash в общем хешрейте SHA-256 пропорциональна его относительной цене, отражая рациональное экономическое поведение майнеров, стремящихся к максимизации прибыли.
Conclusion
Bitcoin Cash представляет собой принципиальное продолжение первоначального видения Bitcoin как одноранговых электронных денег. Увеличив лимит размера блока и следуя пути масштабирования на уровне блокчейна, Bitcoin Cash сохранил низкие комиссии и быстрые транзакции, характерные для раннего Bitcoin, делая его практичным для повседневных платежей и микротранзакций, которые были предусмотрены в оригинальном whitepaper.
Техническая траектория проекта отмечена продуманными и значимыми улучшениями протокола. Алгоритм корректировки сложности ASERT обеспечивает стабильное производство блоков в условиях волатильного хешрейта. Улучшенный скриптовый язык с восстановленными и новыми опкодами делает возможными сложные смарт-контракты в рамках ограничений безопасности модели UTXO. CashTokens впервые приносит консенсусно обеспеченную токенизацию в протокол Bitcoin. CashScript делает эти возможности доступными для широкого сообщества разработчиков. Вместе эти достижения демонстрируют, что модель UTXO способна поддерживать богатую экосистему децентрализованных приложений, сохраняя свои фундаментальные свойства простоты и безопасности.
Дебаты о масштабировании, приведшие к созданию Bitcoin Cash, высветили фундаментальное противоречие в децентрализованных системах: компромисс между ёмкостью на уровне блокчейна и стоимостью эксплуатации полных узлов. Bitcoin Cash выбрал приоритет пропускной способности транзакций и пользовательского опыта, утверждая, что экономические выгоды от массового принятия и использования перевешивают возросшие аппаратные требования для операторов узлов. Это эмпирический вопрос, ответ на который раскроется в ближайшие годы и десятилетия по мере того, как Bitcoin и Bitcoin Cash продолжат развиваться по своим соответствующим путям.
Выживание и продолжающееся развитие Bitcoin Cash через несколько медвежьих рынков, спорные форки (в частности, отделение Bitcoin SV в ноябре 2018 года) и постоянные усилия сообщества демонстрируют устойчивость проекта и убеждённость его участников. С момента форка сеть обработала сотни миллионов транзакций, поддерживала непрерывную работу и привлекла глобальное сообщество разработчиков, торговцев и пользователей, разделяющих убеждение в том, что одноранговые электронные деньги -- это технология, достойная создания.
Долгосрочный успех Bitcoin Cash зависит от его способности привлечь пользователей и торговцев, ценящих надёжные транзакции с низкими комиссиями, и масштабировать свою инфраструктуру для удовлетворения потребностей глобальной платёжной сети. Техническая основа надёжна, дорожная карта ясна, а сообщество целеустремлённо. Достигнет ли Bitcoin Cash в конечном счёте своей амбициозной цели -- стать электронными деньгами для всего мира -- будет определяться не техническими ограничениями, а сетевыми эффектами, рыночной динамикой и паттернами принятия, которые управляют эволюцией всех денежных систем.
Related Whitepapers
Dogecoin
Dogecoin: A Community-Driven Cryptocurrency
34 shared concepts · 2013
Ethereum
Ethereum: A Next-Generation Smart Contract and Decentralized Application Platfo…
33 shared concepts · 2013
Solana
Solana: A new architecture for a high performance blockchain
25 shared concepts · 2017
Tether
Tether: Fiat currencies on the Bitcoin blockchain
24 shared concepts · 2016
XRP
The Ripple Protocol Consensus Algorithm
21 shared concepts · 2014
Часто задаваемые вопросы
- Что такое вайтпейпер Bitcoin Cash?
- Bitcoin Cash (BCH) отделился от Bitcoin 1 августа 2017 года с целью восстановить первоначальное видение одноранговых электронных денег. Размер блока был увеличен с 1 МБ до 32 МБ для обработки большего количества транзакций в секунду и снижения комиссий.
- Чем Bitcoin Cash отличается от Bitcoin?
- Bitcoin Cash поддерживает блоки размером 32 МБ (против ~4 МБ у Bitcoin с SegWit), не использует Segregated Witness и применяет алгоритм корректировки сложности ASERT для более стабильного времени блоков. Приоритет — on-chain масштабирование для повседневных платежей.
- Кто создал Bitcoin Cash и когда?
- Bitcoin Cash был создан 1 августа 2017 года путём хард-форка Bitcoin. Среди ключевых сторонников — Roger Ver и команда разработчиков Bitcoin ABC, выступавшие за увеличение блоков для повышения пропускной способности и снижения комиссий.
- Каков ключевой технический подход Bitcoin Cash?
- Bitcoin Cash реализует on-chain масштабирование за счёт увеличения размера блоков, а не за счёт off-chain решений вроде Lightning Network. Блоки размером 32 МБ позволяют обрабатывать более 100 транзакций в секунду по сравнению с ~7 TPS у Bitcoin.
- Как работает консенсус Bitcoin Cash?
- Bitcoin Cash использует proof-of-work SHA-256, как и Bitcoin, с алгоритмом корректировки сложности ASERT (Absolutely Scheduled Exponentially Rising Targets), пересчитывающим сложность каждый блок для более оперативной адаптации.
- Какова модель предложения Bitcoin Cash?
- Bitcoin Cash имеет ту же модель предложения, что и Bitcoin: жёсткий лимит в 21 миллион монет с уменьшением вознаграждения за блок вдвое примерно каждые 210 000 блоков (~4 года). BCH следует тому же расписанию халвингов, поскольку разделяет с Bitcoin генезис-блок.
- Каковы основные сценарии использования Bitcoin Cash?
- Bitcoin Cash ориентирован на использование в качестве средства обмена для повседневных транзакций. Низкие комиссии (как правило, менее $0,01) и быстрые подтверждения делают его подходящим для платежей в точках продаж, денежных переводов и микротранзакций.
- Какую проблему решает Bitcoin Cash?
- Bitcoin Cash решает проблему масштабируемости Bitcoin, выбирая более крупные блоки для повышения пропускной способности. Его цель — воплотить первоначальное видение вайтпейпера Bitcoin как «одноранговых электронных денег» с комиссиями, достаточно низкими для ежедневного использования.
- Как работает модель безопасности Bitcoin Cash?
- Bitcoin Cash использует proof-of-work SHA-256, разделяя алгоритм майнинга с Bitcoin. Однако хэшрейт BCH существенно уступает BTC, что делает его более уязвимым к атакам 51%. Алгоритм корректировки сложности ASERT помогает поддерживать стабильное производство блоков.
- Каково текущее состояние экосистемы Bitcoin Cash?
- Bitcoin Cash поддерживает активную экосистему, ориентированную на внедрение у торговцев и платежи. Он поддерживает CashTokens (взаимозаменяемые токены и NFT), CashFusion для обеспечения конфиденциальности и принимается многочисленными торговцами по всему миру через платёжные процессоры, такие как BitPay.