比特币现金:面向全球的点对点电子现金

Автор Bitcoin Cash Development Team · 2017

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.

Abstract

Bitcoin Cash是一个于2017年8月1日从比特币区块链分叉而来的点对点电子现金系统。为应对比特币的扩展性限制而诞生的Bitcoin Cash通过提高区块大小上限来实现更高的交易吞吐量和更低的手续费,恢复了比特币作为日常交易实用交换媒介的原始愿景。通过32MB区、自适应难度调整算法以及持续的协议开发,Bitcoin Cash旨在通过链上扩展来服务于全球点对点现金。

Bitcoin Cash项目源于比特币社区内部关于网络应如何扩展以适应不断增长的需求的根本性分歧。一方主张采用基于SegWit构建的闪电网络等链下扩展方案,另一方则认为提高区块大小上限是最直接且经过验证的扩展方法。当无法达成共识时,后者执行了硬分叉,创建了一条保留比特币交易历史、同时实现更大区块大小上限并排除SegWit的新链。本文描述了Bitcoin Cash的技术规格、设计理念和发展方向。

Introduction

Оригинальный whitepaper Bitcoin, опубликованный Сатоси Накамото в 2008 году, описывал «чисто одноранговую версию электронных денег», которая позволяла бы «отправлять онлайн-платежи напрямую от одной стороны к другой без обращения к финансовому посреднику». Это видение Bitcoin как средства обмена для повседневных транзакций было центральным для его раннего принятия и роста сообщества. Ранние сторонники Bitcoin часто ссылались на низкие комиссии за транзакции и быстрые платежи как на ключевые преимущества перед традиционными финансовыми системами.

Однако по мере роста популярности Bitcoin в середине 2010-х годов фундаментальное ограничение начало снижать его полезность как электронных денег. Лимит размера блока в один мегабайт, изначально введённый как временная мера против спама, создал искусственный потолок для количества транзакций, которые сеть могла обработать. По мере роста спроса на блочное пространство пользователи были вынуждены конкурировать за ограниченную ёмкость, предлагая более высокие комиссии. К началу 2017 года медианная комиссия за транзакции Bitcoin выросла до нескольких долларов, что сделало транзакции малой стоимости экономически нецелесообразными. В периоды пиковой загрузки комиссии могли превышать двадцать долларов, а транзакции могли оставаться неподтверждёнными часами или даже днями.

Эта ситуация представляла собой фундаментальное отступление от первоначального обещания Bitcoin. Система, предназначенная для осуществления одноранговых электронных платежей, становилась слишком дорогой и слишком медленной для тех самых случаев использования, ради которых она была создана. В то время как Bitcoin всё чаще позиционировался как «цифровое золото» -- средство сбережения, а не средство обмена -- многие члены сообщества и разработчики считали это предательством основополагающих принципов проекта.

Bitcoin Cash был создан для решения этого кризиса путём принятия наиболее прямого подхода к масштабированию: увеличения лимита размера блока. Позволяя вместить больше транзакций в каждый блок, Bitcoin Cash стремился восстановить низкие комиссии и быстрые подтверждения, снова сделав одноранговые электронные деньги практичными. Сторонники проекта утверждали, что масштабирование на уровне блокчейна не только технически осуществимо, но и является подходом, который изначально предусмотрел Сатоси Накамото, ссылаясь на ранние сообщения, в которых Накамото обсуждал увеличение лимита размера блока по мере роста сети.

Создание Bitcoin Cash 1 августа 2017 года стало одним из наиболее значимых событий в истории криптовалют. Оно представляло собой первое крупное разделение цепи Bitcoin, вызванное подлинным философским разногласием о будущем направлении протокола. Форк продемонстрировал, что в децентрализованной системе неразрешимые споры могут быть урегулированы путём предоставления каждой фракции возможности независимо следовать своему видению, при этом рынок в конечном счёте определяет результат.

Introduction

中本聪于2008年发表的比特币原始白皮书描述了"一种纯粹的点对点电子现金",将"允许在线支付从一方直接发送给另一方,而无需通过金融机构"。比特币作为日常交易交换媒介的这一愿景是其早期采用和社区发展的核心。早期的比特币支持者经常将低交易手续费和快速支付作为相对于传统金融系统的关键优势加以引用。

然而,随着比特币在2010年代中期日益普及,一个根本性的限制开始制约其作为电子现金的实用性。最初作为临时反垃圾邮件措施引入的1兆字节区块大小限制,为网络可以处理的交易数量设定了人为上限。随着对区空间需求的增加,用户不得不通过提供更高的交易手续费来竞争有限的容量。到2017年初,比特币的中位交易手续费已上涨至数美元,使小额交易在经济上不切实际。在拥堵高峰期,手续费可超过20美元,交易可能数小时甚至数天未得到确认。

这种情况代表了对比特币原始承诺的根本背离。一个旨在实现点对点电子支付的系统,对于其被创造出来要服务的用例而言正变得过于昂贵和缓慢。当比特币越来越被定位为"数字黄金"——一种价值储存手段而非交换媒介时,许多社区成员和开发者认为这是对项目创始原则的背叛。

Bitcoin Cash的创建正是为了通过最直接的扩展方法——提高区块大小上限来解决这一危机。通过允许每个区块容纳更多交易,Bitcoin Cash旨在恢复低手续费和快速确认,使点对点电子现金再次变得实用。该项目的支持者认为,链上扩展不仅在技术上可行,而且是中本聪最初设想的方法,并引用了中本聪讨论随着网络增长而提高区块大小限制的早期通信作为依据。

2017年8月1日Bitcoin Cash的诞生是加密货币历史上最重要的事件之一。它是比特币历史上第一次因对协议未来方向的真正哲学分歧而引发的重大链分裂。这次分叉表明,在去中心化系统中,不可调和的争端可以通过允许各方独立追求自己的愿景来解决,最终由市场决定结果。

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 как одноранговых электронных денег.

Background: The Scaling Debate

比特币扩展性之争是开源软件开发历史上最具争议性和持续时间最长的纷争之一。其核心是一个看似简单的问题:比特币网络应如何提高其交易处理能力?然而,这个问题的答案涉及治理、去中心化、技术哲学以及比特币身份认同本身的根本性问题。

比特币1兆字节的区块大小限制由中本聪于2010年引入,作为防止攻击者用超大区泛滥网络的拒绝服务攻击的临时措施。当时,实际的区块使用量远低于这一限制,中本聪建议未来可以通过简单的代码更改来提高该限制。然而,随着比特币使用量的增长和区块开始填满,提高限制被证明远比任何人预期的更具争议性。

一个阵营与Bitcoin Core开发团队相关联,主张应保持较小的区块大小以维护去中心化。他们的理由是,更大的区块会增加运行全节点的计算和带宽要求,可能将普通用户排除在外,并使节点运营集中在资源充足的实体手中。他们提出了一条替代性扩展路径:SegWit,一种在不提高名义大小限制的情况下重组交易数据以有效增加区块交易容量的协议变更,结合闪电网络等链下解决方案,将大部分交易移出主区块链

对立阵营包括知名开发者、矿工和企业,他们主张提高区块大小上限是最简单、最经过验证且最紧迫的解决方案。他们认为1兆字节的限制是一个从未打算成为协议永久特性的任意约束,由此导致的手续费上涨和拥堵正在将用户和商家从比特币中赶走。他们对SegWit的复杂性持怀疑态度,并担心当时仍主要处于理论阶段的闪电网络可能永远无法兑现其廉价即时交易的承诺。

争论通过一系列提案和反提案不断升级。2015年由Mike Hearn和Gavin Andresen提出的Bitcoin XT试图将区块大小增加到8MB。Bitcoin Classic提出了更温和的增加到2MB的方案。Bitcoin Unlimited提出完全取消区块大小限制,允许矿工通过市场动态设定自己的限制。每项提案都引发了激烈的辩论,但没有一项达到无争议硬分叉所需的压倒性共识

也进行了多次妥协尝试。香港协议(2016年2月)中,Bitcoin Core开发者和矿工同意在部署SegWit后进行2MB硬分叉,但由于硬分叉部分未被推进,协议最终瓦解。纽约协议(2017年5月),也称为SegWit2x,提议立即激活SegWit,随后在六个月内进行2MB硬分叉。该协议由代表比特币大部分算力的50多家公司签署,但遭到Bitcoin Core开发团队和相当一部分用户社区的强烈反对。

当妥协显然不可能时,大区块阵营决定单方面行动。2017年8月1日,他们执行了比特币区块链的硬分叉,创建了初始区块大小上限为8MB的Bitcoin Cash。这不是一个轻率的决定——它需要分裂区块链、网络、社区和品牌。但Bitcoin Cash的支持者们相信这是保护比特币作为点对点电子现金原始愿景的唯一途径。

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 быстро утвердился как жизнеспособная и активно используемая криптовалюта, достигнув значительных торговых объёмов и принятия торговцами в месяцы после форка.

The Fork

Bitcoin Cash硬分叉于2017年8月1日在区块高度478,558处执行。在该节点,比特币区块链分裂为两条独立的链:随着SegWit激活而延续的原始链比特币(BTC),以及区块大小上限增加至8MB的新链Bitcoin Cash(BCH)。

分叉在技术上是干净且精心计划的。在分叉时持有余额的每个比特币地址在两条链上都收到了相同的余额。如果用户在分叉前持有1 BTC,分叉后他们将在比特币链上拥有1 BTC,在Bitcoin Cash链上拥有1 BCH。区478,558之前的全部交易历史由两条链共享。

分叉面临的关键技术挑战之一是实现重放保护。在没有重放保护的情况下,在一条链上广播的交易可能在另一条链上被重放,可能导致用户无意中在两条链上花费代币。Bitcoin Cash通过修改交易签名算法实现了强重放保护。具体来说,Bitcoin Cash引入了一个新的SigHash标志(SIGHASH_FORKID),该标志包含在每个交易签名的哈希中。使用此标志签名的交易在Bitcoin Cash链上有效但在比特币链上无效,反之亦然。这确保了从分叉时刻起两个网络之间的干净分离。

Bitcoin Cash的初始区块大小上限设为8MB,是比特币1MB限制的八倍。这代表了链上交易容量的显著提升,使Bitcoin Cash能够在保持低手续费的同时处理每个区块中更多的交易。分叉后的第一个Bitcoin Cash区块由ViaBTC矿池挖出,大小约为1.9MB,展示了更大区块大小的即时实际效益。

分叉还移除了在比特币链上已激活的SegWit。Bitcoin Cash开发者出于多种原因拒绝了SegWit:他们认为它给协议引入了不必要的复杂性,创建了具有不同手续费结构的双层交易系统,并以他们认为破坏UTXO模型简洁性的方式修改了区块结构。通过选择直接的区块大小增加,Bitcoin Cash维持了更简单、更传统的类比特币协议架构。

分叉后,两条链都不得不应对难度调整的挑战。Bitcoin Cash最初使用与比特币链相同的SHA-256难度,但投入挖矿的算力大幅减少。为防止区块被极其缓慢挖出的情况,Bitcoin Cash实施了紧急难度调整(EDA)机制,如果在12小时内挖出的区块少于6个,难度将降低20%。虽然这一机制成功地在关键的早期阶段维持了链的运行,但事实证明它是不稳定的,导致矿工根据盈利能力在比特币和Bitcoin Cash之间切换时,区块生产时间和算力出现剧烈波动。EDA在2017年11月被基于前144个区块移动平均值的更稳定的难度调整算法所取代。

分叉在更广泛的加密货币社区中引发了重大争议。批评者认为Bitcoin Cash是对比特币品牌的不正当侵占尝试,而支持者则坚持认为它是比特币原始路线图的合法延续。交易所和服务提供商不得不迅速决定是否支持新链以及如何将分叉代币分配给客户。尽管存在争议,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 не будут случайно подключаться друг к другу, несмотря на использование одного и того же порта.

Technical Specifications

Bitcoin Cash与比特币共享基本技术架构,包括SHA-256工作量证明共识机制、UTXO交易模型、用于数字签名的secp256k1椭圆曲线,以及十分钟的目标出间隔。然而,若干关键修改使其区别于比特币协议。

最显著的区别是区块大小上限。Bitcoin Cash以8MB区块大小上限启动,随后于2018年5月将其提高至32MB。这一32MB上限提供的交易容量约为比特币有效1MB非SegWit区块大小的32倍(或比特币SegWit增强后有效上限约4MB的约8倍)。更大的区块大小是Bitcoin Cash链上扩展哲学的基石,在区块持续满载时不会产生手续费压力的情况下,为交易增长提供充足空间。

Bitcoin Cash不实现SegWit。与SegWit将见证数据从交易数据中分离不同,Bitcoin Cash保持了原始的比特币交易格式。包括签名在内的所有交易数据都以传统方式存储在区块内。这简化了协议并保持了与旧版比特币软件和基础设施的向后兼容性。

Bitcoin Cash的一项重要协议改进是在分叉时引入的改进SigHash算法。这一基于BIP 143(最初为SegWit开发)的新算法修复了原始比特币签名验证方案中存在的二次哈希问题。在原始方案中,验证交易签名的计算成本随输入数量呈二次增长,造成了潜在的拒绝服务攻击向量。新的SigHash算法使验证成本变为线性,使网络能够安全地处理更大、更复杂的交易。

与比特币相比,Bitcoin Cash支持更大的最大交易大小和每个区块更多的签名操作(sigops)。sigops限制按区块大小比例调整,确保区块验证的计算成本保持在限度内,同时允许每个区块处理显著更多的交易。

Bitcoin Cash的脚本系统已经超越了比特币相对保守的方法进行了积极开发。Bitcoin Cash已重新启用并引入了多个扩展脚本语言表达能力的操作码。值得注意的新增内容包括OP_CHECKDATASIG和OP_CHECKDATASIGVERIFY,它们允许交易脚本验证针对任意数据(而不仅仅是交易数据)的签名,从而实现基于预言机的智能合约和其他高级脚本模式。OP_REVERSEBYTES操作码、原生内省操作码以及更大的脚本和堆栈限制进一步增强了Bitcoin Cash的可编程性。

Bitcoin Cash使用与比特币相同的地址格式基础,但于2018年1月采用了CashAddr格式以防止混淆和跨链发送错误。CashAddr地址以"bitcoincash:"作为前缀(哈希部分通常缩写为"q"或"p"),使用与比特币的base58check格式不同的编码方案。这种视觉区分立即明确了地址属于比特币还是Bitcoin Cash,降低了用户不小心将代币发送到错误链的风险。

网络在8333端口运行,这是与比特币相同的默认端口,但Bitcoin Cash节点在协议握手中使用不同的网络魔数来标识自身。这意味着尽管使用相同的端口,比特币和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 практичным для транзакций в точках продаж, где ожидание десяти минут для подтверждения блока было бы непрактичным.

Transaction Throughput and Scalability

交易吞吐量和可扩展性是Bitcoin Cash价值主张的核心。该项目的基本论点是,点对点电子现金必须能够快速且低成本地处理交易才能在日常使用中可行,而通过更大区进行链上扩展是实现这一目标最可靠的方式。

凭借32MB区块大小上限和十分钟的出块间隔,Bitcoin Cash的理论最大吞吐量约为每秒100笔交易,具体取决于平均交易大小。与比特币在1MB区块下每秒约7笔交易的理论最大值相比,这是一个显著的提升。实际吞吐量取决于交易类型和大小的组合,但Bitcoin Cash的容量对于其当前交易量而言绰绰有余,区块通常远低于32MB上限。

充裕的可用区块空间对交易手续费产生直接且可衡量的影响。当区块未满时,不存在手续费竞争,交易可以以最低手续费得到确认。Bitcoin Cash的默认最低中继手续费为每字节1聪(1聪 = 0.00000001 BCH),大多数交易以该最低值或接近该最低值在下一个区块中得到确认。这使得Bitcoin Cash交易在正常条件下的成本不到一美分,与比特币在拥堵期间可能从数美元到数十美元的手续费形成鲜明对比。

Bitcoin Cash开发社区对链上扩展的极限进行了广泛的研究和测试。2017-2018年进行的千兆区块测试网计划证明,在适当的软件优化和现代硬件条件下,比特币协议可以处理1GB甚至更大的区块。这些测试识别出了原始代码库中的几个瓶颈——包括区块传播、交易验证和UTXO集管理——并为后续的优化工作提供了信息。

为支持更大的区块,已进行了若干协议和实现改进。Graphene是一种基于可逆布隆查找表和布隆过滤器的区块传播协议,通过仅编码区块与接收节点内存池中已有交易的差异,大幅降低了区块传播所需的带宽。2018年11月实施的规范交易排序(CTOR)要求区块内的交易按交易ID排序。这一看似微小的变更实现了交易的并行验证和更高效的集合协调算法,在区块验证和传播方面带来了显著优化。

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 предлагает преимущество хорошо зарекомендовавшей себя, высокозащищённой и широко поддерживаемой сети с доказанной историей непрерывной работы.

OP_RETURN and Data Applications

Bitcoin Cash支持OP_RETURN操作码,允许用户在可证明不可花费的交易输出中将任意数据嵌入区块链。此功能支持在Bitcoin Cash区块链上构建的一系列以数据为中心的应用,包括代币协议、消息系统、公证服务和社交媒体平台。

Bitcoin Cash的OP_RETURN数据限制设定为每个输出220字节,远大于比特币的80字节限制。此外,Bitcoin Cash允许在单笔交易中包含多个OP_RETURN输出,进一步扩大了可嵌入单笔交易的数据量。这些宽裕的限制结合低交易手续费,使Bitcoin Cash成为在容量更受限的链上成本过高的数据应用的经济可行平台。

Simple Ledger Protocol(SLP)是使用OP_RETURN在Bitcoin Cash上构建的最早且被广泛采用的代币系统之一。SLP允许用户通过在OP_RETURN输出中编码代币元数据,在Bitcoin Cash区块链上创建和转移自定义代币。虽然SLP已在很大程度上被CashTokens协议取代,但它证明了在UTXO模型上构建代币经济的可行性。

2023年5月激活的CashTokens代表了Bitcoin Cash上代币化的更精细方法。与依赖基础协议可以忽略的OP_RETURN元数据的SLP不同,CashTokens是一个共识级功能,将代币直接整合到UTXO模型中。每个UTXO可以同时携带BCH价值和关联的代币,代币有效性由共识规则强制执行。CashTokens支持两种类型的代币:同质化代币(类似于以太坊上的ERC-20代币)和非同质化代币(NFT)。共识级强制执行意味着代币交易具有与原生BCH交易相同的安全保障,消除了SLP等覆盖协议的信任假设和索引要求。

Memo.cash是一个使用OP_RETURN交易在Bitcoin Cash上构建的去中心化社交媒体协议。用户将帖子、关注、点赞和其他社交行为作为包含编码OP_RETURN数据的Bitcoin Cash交易进行广播。由于数据存储在区块链上,它具有抗审查性并被永久存档。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-процентного сжатия для типичных блоков.

Политики ретрансляции и мемпула сети разработаны для поддержки надёжных транзакций с нулевым подтверждением. Узлы следуют строгому правилу «первого увиденного», принимая и ретранслируя только первую версию транзакции, которую они обнаруживают. Если обнаруживается вторая транзакция, пытающаяся потратить те же входы (попытка двойного расходования), узлы генерируют доказательство двойного расходования и распространяют его по сети, предупреждая торговцев и другие заинтересованные стороны. Эта инфраструктура обеспечивает разумный уровень безопасности для принятия неподтверждённых транзакций при повседневных платежах малой стоимости.

Network Architecture

Bitcoin Cash网络在与比特币相同的基本点对点架构上运行,节点通过八卦协议进行通信以传播交易和区全节点维护区块链的完整副本,并根据共识规则独立验证所有交易和区块。网络是无许可的,意味着任何人都可以无需授权即可运行节点并参与网络。

Bitcoin Cash存在多个独立的全节点实现,反映了该项目对去中心化开发的承诺。Bitcoin Cash Node(BCHN)是最广泛使用的实现,充当事实上的参考客户端。其他实现包括Bitcoin Unlimited、BCHD(用Go编写)和Knuth(高性能C++实现)。多个独立实现的存在降低了单一软件错误导致全网故障的风险,并确保没有任何一个开发团队能够单方面控制协议。

Bitcoin Cash挖矿使用与比特币相同的SHA-256工作量证明算法。这意味着相同的ASIC挖矿硬件可以用于挖掘任一链,矿工可以根据盈利能力在比特币和Bitcoin Cash之间切换。实际上,Bitcoin Cash的算力只是比特币的一小部分,因为大部分SHA-256挖矿算力被投入到更有利可图的比特币链上。然而,Bitcoin Cash的难度调整算法确保无论绝对算力水平如何,都能以目标十分钟间隔产生区块。

难度调整算法是Bitcoin Cash最重要的协议组件之一。原始比特币的难度调整每2016个区块(约两周)重新计算一次,对于矿工在比特币和Bitcoin Cash之间切换时所经历的快速算力波动来说过于缓慢。在2017年存在问题的紧急难度调整(EDA)期间之后,Bitcoin Cash于2017年11月采用了基于144个区块移动窗口的新算法。

2020年11月,Bitcoin Cash升级至ASERT(Absolutely Scheduled Exponentially Rising Targets)难度调整算法,也称为aserti3-2d。ASERT是一种数学上优雅的算法,根据自参考区块("锚定区块")以来实际经过时间与预期时间之间的差异来调整难度目标。如果区块生成速度快于预期,难度呈指数级增加;如果较慢,则呈指数级降低。"3-2d"标识指的是大约两天(具体为十分钟目标下的288个区块)的半衰期,意味着算力的持续翻倍或减半将在两天内带来完全的难度调整。ASERT已被证明高度稳定,即使在显著的算力波动下也能产生一致的出块间隔。

块传播效率对于拥有大区块的网络至关重要。Bitcoin Cash已采用多项优化以确保大区块能够在网络中快速传播。紧凑区块(BIP 152)允许节点在拥有重叠内存池的情况下从交易ID而非完整交易数据重建区块,大幅降低区块传播所需的带宽。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 независим) и предсказуемости (нет глобального состояния для конкуренции), хотя и требует иных паттернов проектирования по сравнению с системами на основе счетов.

Smart Contract Capabilities

虽然Bitcoin Cash主要被设计为点对点电子现金系统,但它已通过扩展其脚本语言发展出显著的智能合约能力。与以太坊基于账户的图灵完备智能合约模型不同,Bitcoin Cash智能合约在UTXO模型内使用一种有意非图灵完备的基于堆栈的脚本语言运行。这种设计提供了可预测的执行成本,避免了与无限计算相关的漏洞类别,同时仍然能够实现令人惊讶的丰富可编程金融工具集。

Bitcoin Cash脚本语言已通过一系列协议升级逐步增强。2018年5月,在比特币早期历史中被禁用的若干操作码被重新启用,包括位逻辑运算符(OP_AND、OP_OR、OP_XOR)、大数算术运算符和字符串操作(OP_SPLIT、OP_CAT)。这些恢复的操作码显著扩展了Bitcoin Cash脚本的表达能力。

2018年11月引入的OP_CHECKDATASIG和OP_CHECKDATASIGVERIFY是一项特别重要的进步。这些操作码允许交易脚本验证针对任意数据(而不仅是交易本身)的ECDSA签名。这使得基于预言机的合约成为可能,其中外部数据源签署证明某种现实世界条件(如价格、天气事件或体育比分)的消息,而合约的执行取决于该签名消息的内容。这一功能为去中心化预测市场、保险合约和其他依赖外部数据的金融工具打开了大门。

2022年5月引入的原生内省操作码允许交易脚本检查包含它们的交易的属性。脚本可以检查同一交易中输入输出的价值、锁定脚本和代币数据。这使得契约式合约成为可能——不仅限制谁可以花费代币,还限制代币在未来交易中如何被花费的脚本。契约实现了诸如保险库(用于安全的时间锁定花费限制)、定期支付、去中心化交易所和链上投票机制等强大模式。

CashScript是Bitcoin Cash的高级智能合约语言,类似于以太坊的Solidity。CashScript允许开发者以类似JavaScript的熟悉语法编写合约,并编译为Bitcoin Cash脚本字节码。该语言处理了UTXO合约设计的复杂性,包括输入/输出内省和签名验证,使不熟悉底层基于堆栈编程的开发者也能使用。CashScript合约已被用于构建去中心化交易所、托管服务、众筹平台和其他应用。

2023年5月的CashTokens升级为Bitcoin Cash的智能合约能力增添了新维度。通过在共识级别将同质化和非同质化代币直接嵌入UTXO模型,CashTokens使由网络共识规则而非覆盖协议强制执行的基于代币的合约成为可能。CashTokens中的非同质化代币(NFT)携带一个"承诺"字段——附加到代币的任意数据——可以被智能合约脚本读取和验证。这创建了一种在多笔交易之间维护链上状态的机制,这是之前在UTXO模型中难以实现的能力。合约可以使用NFT作为状态载体,在每笔交易中更新承诺数据以实现复杂的多步骤协议。

内省操作码、CashTokens和CashScript的结合创建了一个智能合约平台,虽然与以太坊的模型根本不同,但能够实现许多相同的去中心化金融应用。去中心化交易所、自动做市商、借贷协议和去中心化自治组织都已在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 пропорциональна его относительной цене, отражая рациональное экономическое поведение майнеров, стремящихся к максимизации прибыли.

Monetary Policy

Bitcoin Cash完整继承了比特币的货币政策。Bitcoin Cash的总供应量上限为2100万枚,发行计划遵循与比特币相同的减半机制。这一共享的货币政策是分叉的直接结果:由于Bitcoin Cash从比特币区块链分裂而来,它以相同的发行历史开始并继续遵循相同的未来发行规则。

区块奖励从每区50 BCH开始(继承自比特币的创世参数),每210,000个区块减半一次,约每四年一次。第一次减半发生在2012年11月(在分叉之前,属于共享历史),将奖励减至25枚。第二次减半在2016年7月将其减至12.5枚。第三次减半在2020年4月发生(在分叉之后,因此是Bitcoin Cash链特有的),将奖励减至6.25 BCH。第四次减半在2024年4月进一步减至每区块3.125 BCH。

这一减半计划创造了一种通缩型货币政策,新币创造率随时间递减,渐近地趋向零。最后一枚Bitcoin Cash预计将在2140年左右被挖出。届时,矿工收入将完全由交易手续费构成。

2100万的供应上限和减半计划赋予Bitcoin Cash与比特币相同的稀缺性特征。截至2026年初,流通供应量约为1980万BCH,占未来将存在的总供应量的94%以上。其余代币将在一个多世纪的递减区块奖励中分发。

Bitcoin Cash在从区块奖励向基于手续费的矿工补偿过渡方面的方法与比特币的策略不同。比特币通过限制区块空间以维持手续费市场的扩展哲学,隐含地依赖于高单笔交易手续费来在区块奖励减少时补偿矿工。Bitcoin Cash采取了相反的方法:通过保持低手续费和大区块,网络旨在通过高交易量而非高单笔手续费来产生足够的总手续费收入。在这一模型中,如果每笔交易支付一美分的手续费,但网络每个区块处理数百万笔交易,则总手续费收入仍然可以足够可观,以激励挖矿。

这种基于交易量的手续费模型要求Bitcoin Cash在后补贴时代实现远高于比特币的交易吞吐量,以提供同等的矿工激励。支持者认为这是可以实现的,因为全球支付需求巨大,即使占据世界交易量的适度份额也将代表每天数百万笔支付。批评者则反驳说,实现这一采用水平是不确定的,低手续费模型可能在过渡期间产生不充分的激励。

比特币和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 в конечном счёте своей амбициозной цели -- стать электронными деньгами для всего мира -- будет определяться не техническими ограничениями, а сетевыми эффектами, рыночной динамикой и паттернами принятия, которые управляют эволюцией всех денежных систем.

Conclusion

Bitcoin Cash代表了比特币作为点对点电子现金原始愿景的有原则的延续。通过提高区块大小上限并追求链上扩展,Bitcoin Cash维持了早期比特币所特有的低手续费和快速交易,使原始白皮书所设想的日常支付和微交易变得实用。

该项目的技术轨迹以深思熟虑且具有重大意义的协议改进为特征。ASERT难度调整算法在算力波动条件下提供稳定的区生产。具有恢复和新增操作码的增强脚本语言在UTXO模型的安全约束内实现了精密的智能合约。CashTokens首次为比特币协议带来了共识级强制执行的代币化。CashScript使这些能力对广泛的开发者社区可及。这些进步共同证明了UTXO模型可以在保持其基本简洁性和安全属性的同时支持丰富的去中心化应用生态系统。

导致Bitcoin Cash诞生的扩展性争论突显了去中心化系统中的一个基本张力:链上容量与运营全节点成本之间的权衡。Bitcoin Cash选择优先考虑交易容量和用户体验,认为广泛采用和使用的经济效益超过了节点运营者增加的硬件要求。这是一个经验性问题,其答案将在比特币和Bitcoin Cash各自沿着各自路径继续演进的未来数年乃至数十年中逐步展开。

Bitcoin Cash在经历了多次熊市、争议性分叉(尤其是2018年11月的Bitcoin SV分裂)和持续的社区努力后的存续和持续发展,展示了该项目的韧性和参与者的信念。该网络自分叉以来已处理了数亿笔交易,维持了持续运营,并吸引了一个由全球开发者、商户和用户组成的社区,他们共同相信点对点电子现金是一项值得构建的技术。

Bitcoin Cash的长期成功取决于其吸引重视低手续费、可靠交易的用户和商户的能力,以及扩展其基础设施以满足全球支付网络需求的能力。技术基础是稳固的,路线图是清晰的,社区是坚定的。Bitcoin Cash最终能否实现其服务于全球电子现金的宏伟目标,将不由技术限制决定,而由支配所有货币系统演进的网络效应、市场动态和采用模式决定。