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

저자 Bitcoin Cash Development Team · 2017

Bitcoin Cash(BCH)는 2017년 8월 1일 Bitcoin에서 하드포크되었습니다. 자체 백서가 없으며, 여기에 제시된 문서는 Bitcoin Cash가 P2P 전자 현금 비전의 기반으로 참조하는 Satoshi Nakamoto의 Bitcoin 원본 백서입니다.

Abstract

Bitcoin Cash는 2017년 8월 1일 비트코인 블록체인에서 포크된 P2P 전자 화폐 시스템이다. 비트코인의 확장성 한계에 대응하여 탄생한 Bitcoin Cash는 블록 크기 제한을 늘려 더 높은 거래 처리량과 더 낮은 수수료를 실현함으로써, 일상적인 거래를 위한 실용적 교환 수단이라는 비트코인의 본래 비전을 복원하였다. 32MB 블록, 적응형 난이도 조절 알고리즘, 그리고 지속적인 프로토콜 개발을 통해 Bitcoin Cash는 글로벌 P2P 전자 화폐로 기능하기 위한 온체인 확장을 목표로 한다.

Bitcoin Cash 프로젝트는 증가하는 수요를 수용하기 위해 네트워크가 어떻게 확장되어야 하는지에 대한 비트코인 커뮤니티 내부의 근본적인 의견 불일치에서 탄생하였다. 한쪽은 SegWit 위에 구축된 라이트닝 네트워크와 같은 오프체인 확장 솔루션을 지지했고, 다른 한쪽은 블록 크기 제한을 늘리는 것이 가장 직접적이고 검증된 확장 방법이라고 주장했다. 합의에 도달할 수 없게 되자, 후자 그룹은 하드 포크를 실행하여 비트코인의 거래 이력을 보존하면서도 더 큰 블록 크기 제한을 구현하고 SegWit을 배제한 새로운 체인을 만들었다. 이 문서는 Bitcoin Cash의 기술 사양, 설계 철학, 그리고 개발 방향을 기술한다.

Abstract

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

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

Introduction

2008년 사토시 나카모토가 발표한 비트코인 원본 백서는 "금융 기관을 거치지 않고 한 당사자에서 다른 당사자에게 직접 온라인 결제를 보낼 수 있는 순수한 P2P 전자 화폐"를 기술하였다. 일상적인 거래를 위한 교환 수단으로서의 비트코인이라는 이 비전은 초기 채택과 커뮤니티 성장의 핵심이었다. 초기 비트코인 지지자들은 낮은 거래 수수료와 빠른 결제를 전통적 금융 시스템 대비 핵심 장점으로 자주 인용하였다.

그러나 2010년대 중반 비트코인의 인기가 높아지면서, 전자 화폐로서의 유용성을 제한하는 근본적인 제약이 드러나기 시작했다. 원래 임시 스팸 방지 조치로 도입된 1메가바이트 블록 크기 제한이 네트워크가 처리할 수 있는 거래 수에 인위적인 상한선을 만들었다. 블록 공간에 대한 수요가 증가하면서 사용자들은 더 높은 거래 수수료를 제시하며 제한된 용량을 놓고 경쟁해야 했다. 2017년 초까지 비트코인의 중간값 거래 수수료는 수 달러에 달했으며, 소액 거래는 경제적으로 비현실적이 되었다. 혼잡이 최고조에 달하는 시기에는 수수료가 20달러를 초과하기도 했고, 거래가 몇 시간 또는 며칠 동안 미확인 상태로 남기도 했다.

이러한 상황은 비트코인의 본래 약속에서 근본적으로 벗어난 것이었다. P2P 전자 결제를 가능하게 하기 위해 설계된 시스템이 바로 그 목적에 사용하기에는 너무 비싸고 너무 느려지고 있었다. 비트코인이 교환 수단이 아닌 가치 저장 수단인 "디지털 금"으로 점점 더 자리매김하는 동안, 많은 커뮤니티 구성원과 개발자들은 이것이 프로젝트의 창립 원칙에 대한 배신이라고 믿었다.

Bitcoin Cash는 가장 직접적인 확장 방법, 즉 블록 크기 제한 증가를 통해 이 위기를 해결하기 위해 만들어졌다. 각 블록에 더 많은 거래를 담을 수 있게 함으로써, Bitcoin Cash는 낮은 수수료와 빠른 확인을 복원하여 P2P 전자 화폐를 다시 실용적으로 만드는 것을 목표로 했다. 프로젝트 지지자들은 온체인 확장이 기술적으로 실현 가능할 뿐만 아니라 사토시 나카모토가 원래 구상했던 접근 방식이라고 주장했으며, 네트워크가 성장함에 따라 블록 크기 제한을 높이는 것에 대해 나카모토가 논의했던 초기 통신을 근거로 제시했다.

2017년 8월 1일의 Bitcoin Cash 탄생은 암호화폐 역사상 가장 중요한 사건 중 하나였다. 이는 프로토콜의 미래 방향에 대한 진정한 철학적 불일치로 인해 발생한 비트코인 역사상 최초의 주요 체인 분할이었다. 이 포크는 탈중앙화 시스템에서 해결 불가능한 분쟁은 각 진영이 독자적으로 자신의 비전을 추구할 수 있도록 허용하고, 궁극적으로 시장이 결과를 결정하게 함으로써 해결될 수 있음을 보여주었다.

Introduction

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

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

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

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

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

Background: The Scaling Debate

비트코인 확장성 논쟁은 오픈소스 소프트웨어 개발 역사상 가장 논쟁적이고 오랜 기간 지속된 분쟁 중 하나였다. 핵심적으로 이 논쟁은 겉보기에 단순한 질문에 집중되었다: 비트코인 네트워크는 어떻게 거래 처리 능력을 늘려야 하는가? 그러나 이 질문에 대한 답은 거버넌스, 탈중앙화, 기술 철학, 그리고 비트코인의 정체성 자체에 관한 근본적인 문제들을 건드렸다.

비트코인의 1메가바이트 블록 크기 제한은 2010년 사토시 나카모토가 적대자가 과대 블록으로 네트워크를 범람시키는 서비스 거부 공격을 방지하기 위한 임시 조치로 도입하였다. 당시 실제 블록 사용량은 이 제한에 훨씬 미치지 못했으며, 나카모토는 향후 간단한 코드 변경을 통해 제한을 올릴 수 있다고 제안하였다. 그러나 비트코인 사용량이 늘어나고 블록이 가득 차기 시작하면서, 제한을 올리는 것은 누구도 예상하지 못할 만큼 논쟁적인 일이 되었다.

한 진영은 Bitcoin Core 개발팀과 연관되어 있었으며, 탈중앙화를 보존하기 위해 블록 크기를 작게 유지해야 한다고 주장하였다. 그들의 논리는 더 큰 블록이 풀 노드를 운영하기 위한 연산 및 대역폭 요구 사항을 증가시켜 일반 사용자들의 참여를 배제하고 자원이 풍부한 기관에 노드 운영이 집중될 수 있다는 것이었다. 그들은 대안적 확장 경로를 제안하였다: 명목상의 크기 제한을 올리지 않으면서 거래 데이터를 재구성하여 블록의 거래 용량을 사실상 증가시키는 프로토콜 변경인 SegWit과, 대부분의 거래를 메인 블록체인에서 벗어나게 하는 라이트닝 네트워크와 같은 오프체인 솔루션의 결합이었다.

반대 진영은 저명한 개발자, 채굴자, 기업들을 포함하고 있었으며, 블록 크기 제한을 올리는 것이 가장 간단하고 검증되었으며 가장 시급한 해결책이라고 주장하였다. 그들은 1메가바이트 제한이 프로토콜의 영구적 특성으로 의도된 적 없는 임의의 제약이며, 그로 인한 수수료 인상과 혼잡이 사용자와 상인을 비트코인에서 멀어지게 하고 있다고 반박하였다. 그들은 SegWit의 복잡성에 회의적이었고, 당시 대부분 이론적 단계에 머물러 있던 라이트닝 네트워크가 저렴하고 즉각적인 거래라는 약속을 이행하지 못할 수 있다는 우려를 표명하였다.

논쟁은 일련의 제안과 반대 제안을 통해 격화되었다. 2015년 마이크 헌과 개빈 안드레센이 제안한 Bitcoin XT는 블록 크기를 8MB로 늘리려 하였다. Bitcoin Classic은 2MB로의 보다 완만한 증가를 제안하였다. Bitcoin Unlimited는 블록 크기 제한을 완전히 없애고 채굴자들이 시장 역학을 통해 자체 제한을 설정할 수 있도록 제안하였다. 각 제안은 격렬한 논쟁을 불러일으켰으며, 논쟁의 여지가 없는 하드 포크에 필요한 압도적 합의를 달성한 것은 없었다.

타협 시도도 여러 차례 있었다. 홍콩 합의(2016년 2월)에서 Bitcoin Core 개발자들과 채굴자들은 SegWit 배포 후 2MB 하드 포크를 실행하기로 합의하였으나, 하드 포크 부분이 추진되지 않으면서 합의는 무산되었다. 뉴욕 합의(2017년 5월), 일명 SegWit2x는 SegWit을 즉시 활성화한 후 6개월 내에 2MB 하드 포크를 실행하도록 제안하였다. 이 합의는 비트코인 해시 파워의 과반을 대표하는 50개 이상의 기업이 서명하였으나, Bitcoin Core 개발팀과 상당한 비율의 사용자 커뮤니티의 강한 반대에 부딪혔다.

타협이 불가능하다는 것이 명확해지자, 빅블록 진영은 단독으로 행동하기로 결정하였다. 2017년 8월 1일, 그들은 비트코인 블록체인의 하드 포크를 실행하여 초기 블록 크기 제한 8MB의 Bitcoin Cash를 만들었다. 이는 가볍게 내린 결정이 아니었다 -- 블록체인, 네트워크, 커뮤니티, 그리고 브랜드를 분할해야 했다. 그러나 Bitcoin Cash의 지지자들은 이것이 P2P 전자 화폐라는 비트코인의 본래 비전을 보존하는 유일한 방법이라고 믿었다.

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 하드 포크는 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 제한보다 8배 컸다. 이는 온체인 거래 용량의 상당한 증가를 의미하며, Bitcoin Cash가 낮은 수수료를 유지하면서 블록당 훨씬 더 많은 거래를 처리할 수 있게 하였다. 포크 후 첫 Bitcoin Cash 블록은 ViaBTC 채굴 풀에 의해 채굴되었으며 약 1.9MB 크기로, 더 큰 블록 크기의 즉각적인 실질적 이점을 보여주었다.

포크는 또한 비트코인 체인에서 활성화된 SegWit을 제거하였다. Bitcoin Cash 개발자들은 여러 이유로 SegWit을 거부하였다: 프로토콜에 불필요한 복잡성을 도입한다고 믿었으며, 서로 다른 수수료 구조를 가진 이중 거래 시스템을 만들었고, UTXO 모델의 단순성을 훼손하는 방식으로 블록 구조를 수정하였다고 주장하였다. 직접적인 블록 크기 증가를 선택함으로써, Bitcoin Cash는 더 단순하고 전통적인 비트코인 스타일의 프로토콜 아키텍처를 유지하였다.

포크 직후, 양쪽 체인은 난이도 조절이라는 과제에 직면하였다. Bitcoin Cash는 처음에 비트코인 체인과 동일한 SHA-256 난이도를 사용하였으나, 채굴에 투입되는 해시 파워는 상당히 적었다. 블록이 극도로 느리게 채굴되는 시나리오를 방지하기 위해, Bitcoin Cash는 12시간 동안 6개 미만의 블록이 채굴될 경우 난이도를 20퍼센트 감소시키는 긴급 난이도 조절(EDA) 메커니즘을 구현하였다. 이 메커니즘은 초기의 중요한 시기 동안 체인을 유지하는 데 성공했으나, 불안정한 것으로 판명되어 수익성에 따라 채굴자들이 비트코인과 Bitcoin Cash 사이를 전환하면서 블록 생산 시간과 해시 레이트에 심한 변동을 야기하였다. EDA는 2017년 11월에 이전 144개 블록의 이동 평균에 기반한 더 안정적인 난이도 조절 알고리즘으로 대체되었다.

포크는 더 넓은 암호화폐 커뮤니티에서 상당한 논란을 불러일으켰다. 비판자들은 Bitcoin Cash가 비트코인 브랜드를 탈취하려는 부당한 시도라고 주장한 반면, 지지자들은 비트코인 본래 로드맵의 정당한 계승이라고 주장하였다. 거래소와 서비스 제공업체들은 새로운 체인을 지원할지 여부와 포크된 코인을 고객에게 어떻게 분배할지에 대해 신속한 결정을 내려야 했다. 논란에도 불구하고, 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는 SHA-256 작업 증명 합의 메커니즘, UTXO 거래 모델, 디지털 서명을 위한 secp256k1 타원 곡선, 10분 목표 블록 간격 등 비트코인의 근본적인 기술 아키텍처를 공유한다. 그러나 여러 핵심적인 수정 사항이 비트코인 프로토콜과 차별화된다.

가장 두드러진 차이점은 블록 크기 제한이다. 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는 스크립팅 언어의 표현력을 확장하는 여러 opcode를 재활성화하고 새로 도입하였다. 주목할 만한 추가 사항으로는 거래 스크립트가 거래 데이터뿐만 아니라 임의의 데이터에 대해 서명을 검증할 수 있게 하는 OP_CHECKDATASIG와 OP_CHECKDATASIGVERIFY가 있으며, 이를 통해 오라클 기반 스마트 컨트랙트 및 기타 고급 스크립팅 패턴이 가능해진다. OP_REVERSEBYTES opcode, 네이티브 인트로스펙션 opcode, 그리고 더 큰 스크립트 및 스택 제한은 Bitcoin Cash의 프로그래밍 가능성을 더욱 향상시켰다.

Bitcoin Cash는 비트코인과 동일한 주소 형식 기반을 사용하지만, 혼동과 크로스체인 전송 오류를 방지하기 위해 2018년 1월에 CashAddr 형식을 채택하였다. CashAddr 주소는 "bitcoincash:"를 접두사로 시작하며(해시 부분은 흔히 "q" 또는 "p"로 축약됨), 비트코인의 base58check 형식과 다른 인코딩 체계를 사용한다. 이러한 시각적 구분은 주소가 비트코인에 속하는지 Bitcoin Cash에 속하는지를 즉시 명확하게 하여, 사용자가 실수로 잘못된 체인에 코인을 보내는 위험을 줄인다.

네트워크는 비트코인과 동일한 기본 포트인 8333번 포트에서 운영되지만, Bitcoin Cash 노드는 프로토콜 핸드셰이크에서 다른 네트워크 매직 넘버로 자신을 식별한다. 이는 동일한 포트를 사용함에도 불구하고 비트코인과 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의 가치 제안의 핵심이다. 이 프로젝트의 근본적인 명제는 P2P 전자 화폐가 일상적으로 사용 가능하려면 거래를 빠르고 저렴하게 처리할 수 있어야 하며, 더 큰 블록을 통한 온체인 확장이 이를 달성하는 가장 신뢰할 수 있는 방법이라는 것이다.

32MB 블록 크기 제한과 10분 블록 간격으로, Bitcoin Cash는 평균 거래 크기에 따라 초당 약 100건의 이론적 최대 처리량을 가진다. 이는 1MB 블록으로 초당 약 7건의 이론적 최대치를 가진 비트코인에 비해 상당한 증가이다. 실제로 실질 처리량은 거래 유형과 크기의 조합에 따라 달라지지만, Bitcoin Cash의 용량은 현재 거래량에 비해 충분히 여유가 있으며, 블록은 일반적으로 32MB 제한에 훨씬 미치지 않는다.

풍부한 블록 공간의 가용성은 거래 수수료에 직접적이고 측정 가능한 영향을 미친다. 블록이 가득 차지 않으면 수수료 경쟁이 없으며, 거래는 최소한의 수수료로 확인될 수 있다. Bitcoin Cash의 기본 최소 릴레이 수수료는 바이트당 1사토시(1사토시 = 0.00000001 BCH)이며, 대부분의 거래는 이 최소치 또는 그에 가까운 수준으로 다음 블록에서 확인된다. 이는 Bitcoin Cash 거래가 정상 조건에서 1센트 미만의 비용으로 이루어지게 하며, 혼잡 기간 동안 수 달러에서 수십 달러에 이를 수 있는 비트코인의 수수료와 대조된다.

Bitcoin Cash 개발 커뮤니티는 온체인 확장의 한계에 대한 광범위한 연구와 테스트를 수행하였다. 2017-2018년에 수행된 기가블록 테스트넷 이니셔티브는 적절한 소프트웨어 최적화와 현대적 하드웨어를 갖춘 비트코인 프로토콜이 1GB 이상의 블록을 처리할 수 있음을 입증하였다. 이 테스트들은 원래 코드베이스에서 블록 전파, 거래 검증, UTXO 집합 관리 등 여러 병목 현상을 식별하였고, 이후의 최적화 작업에 정보를 제공하였다.

더 큰 블록을 지원하기 위해 여러 프로토콜 및 구현 개선이 이루어졌다. 역변환 가능 블룸 조회 테이블과 블룸 필터에 기반한 블록 전파 프로토콜인 Graphene은 수신 노드가 이미 멤풀에 보유하고 있는 거래와 블록 간의 차이만 인코딩하여 블록 전파에 필요한 대역폭을 극적으로 줄인다. 2018년 11월에 구현된 정규 거래 순서(CTOR)는 블록 내 거래가 거래 ID 순으로 정렬되도록 요구한다. 이 겉보기에 사소한 변경은 거래의 병렬 검증과 더 효율적인 집합 조정 알고리즘을 가능하게 하여 블록 검증 및 전파에서 상당한 최적화를 실현한다.

UTXO 커밋먼트 및 병렬 검증 이니셔티브는 네트워크가 대형 블록을 효율적으로 처리하는 능력을 더욱 향상시켰다. 현대적인 멀티코어 프로세서와 솔리드 스테이트 스토리지를 활용하여, 최적화된 노드 구현은 수만 건의 거래를 포함하는 블록을 허용 가능한 시간 내에 검증할 수 있다.

Bitcoin Cash의 확장성 로드맵은 기술과 수요가 정당화하는 경우 블록 크기 제한의 추가 증가를 구상한다. 프로젝트 개발자들은 온체인에서 완전히 글로벌 규모의 결제량을 지원하는 장기 목표를 표명하였으며, Bitcoin Cash가 수십억 건의 일일 거래를 처리할 수 있는 처리량 수준을 목표로 하고 있다. 이 목표는 야심적이지만, 하드웨어 성능, 네트워크 대역폭, 소프트웨어 최적화의 지속적인 개선은 이를 점진적으로 달성할 수 있는 신뢰할 만한 경로를 제공한다.

Bitcoin Cash의 확장 접근 방식에서 중요한 측면은 "영확인(zero-confirmation)" 거래의 개념이다. 소액 결제의 경우, 상인은 거래가 블록에 포함되기 전, 브로드캐스트 즉시 거래를 수락할 수 있다. Bitcoin Cash는 영확인 거래의 신뢰성을 향상시키기 위해 여러 조치를 구현하였다. 여기에는 "최초 확인(first-seen)" 규칙(노드가 처음 확인한 버전의 거래만 릴레이하여 이중 지불 시도를 더 어렵게 만듦)과 충돌하는 거래가 감지되면 상인에게 경고하는 이중 지불 통지 프로토콜이 포함된다. 이러한 조치들은 10분의 블록 확인을 기다리는 것이 비현실적인 판매 시점(POS) 거래에 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 opcode를 지원하여, 사용자가 증명 가능하게 소비 불가능한 거래 출력 내에 임의의 데이터를 블록체인에 삽입할 수 있게 한다. 이 기능은 토큰 프로토콜, 메시징 시스템, 공증 서비스, 소셜 미디어 플랫폼 등 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의 낮은 거래 비용은 이를 경제적으로 실현 가능하게 한다 -- 각 소셜 미디어 활동의 비용은 1센트 미만이다.

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 네트워크는 비트코인과 동일한 근본적인 P2P 아키텍처로 운영되며, 노드들이 가십 프로토콜을 통해 통신하여 거래와 블록을 전파한다. 풀 노드는 블록체인의 완전한 사본을 유지하고 합의 규칙에 따라 모든 거래와 블록을 독립적으로 검증한다. 네트워크는 무허가형으로, 누구나 인가 없이 노드를 운영하고 네트워크에 참여할 수 있다.

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의 난이도 조절 알고리즘은 절대적 해시 레이트 수준에 관계없이 목표인 10분 간격으로 블록이 생산되도록 보장한다.

난이도 조절 알고리즘은 Bitcoin Cash의 가장 중요한 프로토콜 구성 요소 중 하나이다. 약 2주마다(2016블록마다) 재계산하는 원래 비트코인 난이도 조절은 채굴자들이 비트코인과 Bitcoin Cash 사이를 전환하면서 경험한 급격한 해시 레이트 변동을 수용하기에는 너무 느렸다. 2017년의 문제적인 긴급 난이도 조절(EDA) 기간 이후, Bitcoin Cash는 2017년 11월에 144블록 이동 평균에 기반한 새로운 알고리즘을 채택하였다.

2020년 11월, Bitcoin Cash는 aserti3-2d로도 알려진 ASERT(Absolutely Scheduled Exponentially Rising Targets) 난이도 조절 알고리즘으로 업그레이드하였다. ASERT는 기준 블록("앵커 블록") 이후 실제 경과 시간과 예상 시간 사이의 차이에 기반하여 난이도 목표를 조절하는 수학적으로 우아한 알고리즘이다. 블록이 예상보다 빠르게 생산되면 난이도가 지수적으로 증가하고, 느리면 지수적으로 감소한다. "3-2d"라는 명칭은 약 2일(구체적으로 10분 목표 기준 288블록)의 반감기를 의미하며, 해시 레이트의 지속적인 배가 또는 반감이 2일 내에 완전한 난이도 조절을 가져온다는 것을 뜻한다. ASERT는 상당한 해시 레이트 변동성 하에서도 일관된 블록 간격을 생산하며 매우 안정적임이 입증되었다.

블록 전파 효율성은 대형 블록을 가진 네트워크에 필수적이다. Bitcoin Cash는 대형 블록이 네트워크 전체에 빠르게 전파될 수 있도록 여러 최적화를 채택하였다. 컴팩트 블록(BIP 152)은 노드가 중복되는 멤풀을 가진 경우 전체 거래 데이터 대신 거래 ID로부터 블록을 재구성할 수 있게 하여 블록 전파에 필요한 대역폭을 극적으로 줄인다. 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는 주로 P2P 전자 화폐 시스템으로 설계되었지만, 스크립팅 언어의 확장을 통해 상당한 스마트 컨트랙트 기능을 발전시켰다. 이더리움의 계정 기반 튜링 완전 스마트 컨트랙트 모델과 달리, Bitcoin Cash 스마트 컨트랙트는 의도적으로 튜링 완전하지 않은 스택 기반 스크립팅 언어를 사용하여 UTXO 모델 내에서 운영된다. 이 설계는 예측 가능한 실행 비용을 제공하고 무제한 연산과 관련된 취약점 유형을 방지하면서도, 놀라울 정도로 풍부한 프로그래밍 가능한 금융 상품 집합을 가능하게 한다.

Bitcoin Cash 스크립팅 언어는 일련의 프로토콜 업그레이드를 통해 점진적으로 향상되었다. 2018년 5월에는 비트코인 역사 초기에 비활성화되었던 여러 opcode가 재활성화되었으며, 여기에는 비트 논리 연산자(OP_AND, OP_OR, OP_XOR), 큰 숫자를 위한 산술 연산자, 문자열 조작 연산(OP_SPLIT, OP_CAT)이 포함된다. 이렇게 복원된 opcode들은 Bitcoin Cash 스크립트의 표현력을 상당히 확장하였다.

2018년 11월에 도입된 OP_CHECKDATASIG와 OP_CHECKDATASIGVERIFY는 특히 중요한 진전이었다. 이 opcode들은 거래 스크립트가 거래 자체뿐만 아니라 임의의 데이터에 대해 ECDSA 서명을 검증할 수 있게 한다. 이를 통해 외부 데이터 소스가 현실 세계의 조건(가격, 기상 이벤트, 스포츠 결과 등)을 증명하는 메시지에 서명하고 컨트랙트의 실행이 해당 서명된 메시지의 내용에 의존하는 오라클 기반 컨트랙트가 가능해진다. 이 기능은 탈중앙화 예측 시장, 보험 컨트랙트, 그리고 외부 데이터에 의존하는 기타 금융 상품의 문을 연다.

2022년 5월에 도입된 네이티브 인트로스펙션 opcode는 거래 스크립트가 자신을 포함하는 거래의 속성을 검사할 수 있게 한다. 스크립트는 동일 거래 내 입력과 출력의 값, 잠금 스크립트, 토큰 데이터를 검사할 수 있다. 이를 통해 커버넌트 스타일의 컨트랙트가 가능해진다 -- 누가 코인을 소비할 수 있는지뿐만 아니라 향후 거래에서 코인이 어떻게 소비될 수 있는지를 제한하는 스크립트이다. 커버넌트는 금고(보안을 위한 시간 잠금 소비 제한), 반복 결제, 탈중앙화 거래소, 온체인 투표 메커니즘과 같은 강력한 패턴을 가능하게 한다.

CashScript는 이더리움의 Solidity에 비견되는 Bitcoin Cash용 고수준 스마트 컨트랙트 언어이다. CashScript는 개발자가 JavaScript와 유사한 친숙한 구문으로 컨트랙트를 작성할 수 있게 하며, 이를 Bitcoin Cash 스크립트 바이트코드로 컴파일한다. 이 언어는 입출력 인트로스펙션과 서명 검증을 포함한 UTXO 기반 컨트랙트 설계의 복잡성을 처리하여, 저수준 스택 기반 프로그래밍에 익숙하지 않은 개발자도 접근할 수 있게 한다. CashScript 컨트랙트는 탈중앙화 거래소, 에스크로 서비스, 크라우드펀딩 플랫폼 및 기타 애플리케이션을 구축하는 데 사용되었다.

2023년 5월의 CashTokens 업그레이드는 Bitcoin Cash의 스마트 컨트랙트 기능에 또 다른 차원을 추가하였다. 대체 가능 및 대체 불가능 토큰을 합의 수준에서 UTXO 모델에 직접 내장함으로써, CashTokens는 오버레이 프로토콜이 아닌 네트워크의 합의 규칙에 의해 시행되는 토큰 기반 컨트랙트를 가능하게 한다. CashTokens의 대체 불가능 토큰(NFT)은 "커밋먼트" 필드 -- 토큰에 첨부된 임의의 데이터 --를 포함하며, 이는 스마트 컨트랙트 스크립트에 의해 읽히고 검증될 수 있다. 이는 여러 거래에 걸쳐 온체인 상태를 유지하는 메커니즘을 만들며, UTXO 모델에서 이전에는 달성하기 어려웠던 기능이다. 컨트랙트는 NFT를 상태 운반체로 사용하여, 각 거래마다 커밋먼트 데이터를 업데이트하여 복잡한 다단계 프로토콜을 구현할 수 있다.

인트로스펙션 opcode, CashTokens, CashScript의 결합은 이더리움의 모델과 근본적으로 다르지만 동일한 탈중앙화 금융 애플리케이션의 많은 부분을 구현할 수 있는 스마트 컨트랙트 플랫폼을 만든다. 탈중앙화 거래소, 자동화된 시장 메이커, 대출 프로토콜, 탈중앙화 자율 조직이 모두 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 Cash의 총 공급량은 2,100만 코인으로 상한이 정해져 있으며, 발행 일정은 비트코인과 동일한 반감기 메커니즘을 따른다. 이 공유된 통화 정책은 포크의 직접적 결과이다: Bitcoin Cash가 비트코인 블록체인에서 분리되었기 때문에 동일한 발행 이력으로 시작하였고 동일한 미래 발행 규칙을 계속한다.

블록 보상은 블록당 50 BCH로 시작(비트코인의 제네시스 매개변수에서 계승)되었으며 210,000블록마다, 대략 4년마다 반감된다. 첫 번째 반감기는 2012년 11월에 발생하여(포크 이전이므로 공유 이력) 보상을 25코인으로 줄였다. 두 번째 반감기는 2016년 7월에 12.5코인으로 줄였다. 세 번째 반감기는 2020년 4월에 발생하여(포크 이후이므로 Bitcoin Cash 체인 고유) 보상을 6.25 BCH로 줄였다. 네 번째 반감기는 2024년 4월에 블록당 3.125 BCH로 더욱 줄였다.

이 반감기 일정은 신규 코인 생성 비율이 시간이 지남에 따라 감소하여 점근적으로 0에 접근하는 디스인플레이션 통화 정책을 만든다. 마지막 Bitcoin Cash 코인은 대략 2140년경에 채굴될 것으로 예상된다. 그 시점에서 채굴자의 수익은 전적으로 거래 수수료로 구성될 것이다.

2,100만 공급 상한과 반감기 일정은 Bitcoin Cash에 비트코인과 동일한 희소성 속성을 부여한다. 2026년 초 기준 유통 공급량은 약 1,980만 BCH이며, 이는 앞으로 존재할 총 공급량의 94퍼센트 이상을 나타낸다. 나머지 코인은 한 세기 이상에 걸쳐 감소하는 블록 보상을 통해 배포될 것이다.

블록 보상에서 수수료 기반 채굴자 보상으로의 전환에 대한 Bitcoin Cash의 접근 방식은 비트코인의 전략과 다르다. 수수료 시장을 유지하기 위해 블록 공간을 제한하는 비트코인의 확장 철학은 블록 보상이 줄어듦에 따라 채굴자를 보상하기 위한 높은 거래당 수수료에 암묵적으로 의존한다. Bitcoin Cash는 반대 접근 방식을 취한다: 수수료를 낮게 유지하고 블록을 크게 함으로써, 높은 거래당 수수료가 아닌 높은 거래량을 통해 충분한 총 수수료 수입을 창출하는 것을 목표로 한다. 이 모델에서 각 거래가 1센트의 수수료를 지불하더라도 네트워크가 블록당 수백만 건의 거래를 처리한다면, 총 수수료 수입은 채굴을 인센티브하기에 충분할 만큼 상당할 수 있다.

이 거래량 기반 수수료 모델은 Bitcoin Cash가 보조금 이후 시대에 동등한 채굴자 인센티브를 제공하기 위해 비트코인보다 상당히 높은 거래 처리량을 달성해야 함을 요구한다. 지지자들은 글로벌 결제 수요가 막대하며 전 세계 거래의 보통 정도의 점유율만으로도 하루 수백만 건의 결제를 대표할 것이므로 이것이 달성 가능하다고 주장한다. 비판자들은 이 수준의 채택을 달성하는 것이 불확실하며, 저수수료 모델이 전환 기간 동안 불충분한 인센티브를 만들 수 있다고 반박한다.

비트코인과 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는 P2P 전자 화폐라는 비트코인의 본래 비전을 원칙적으로 계승한 것이다. 블록 크기 제한을 늘리고 온체인 확장을 추구함으로써, Bitcoin Cash는 초기 비트코인의 특징이었던 낮은 수수료와 빠른 거래를 유지하여, 원래 백서가 구상했던 일상적인 결제와 소액 거래를 실용적으로 만들었다.

프로젝트의 기술적 궤적은 사려 깊고 중대한 프로토콜 개선으로 특징지어진다. ASERT 난이도 조절 알고리즘은 변동성 있는 해시 레이트 조건에서도 안정적인 블록 생산을 제공한다. 복원되고 새로 추가된 opcode를 갖춘 향상된 스크립팅 언어는 UTXO 모델의 안전성 제약 내에서 정교한 스마트 컨트랙트를 가능하게 한다. CashTokens는 처음으로 비트코인 프로토콜에 합의 수준에서 시행되는 토큰화를 도입한다. CashScript는 이러한 기능을 광범위한 개발자 커뮤니티가 접근할 수 있게 한다. 이러한 진전은 UTXO 모델이 근본적인 단순성과 보안 속성을 유지하면서도 풍부한 탈중앙화 애플리케이션 생태계를 지원할 수 있음을 보여준다.

Bitcoin Cash의 탄생으로 이어진 확장성 논쟁은 탈중앙화 시스템의 근본적인 긴장을 부각시켰다: 온체인 용량과 풀 노드 운영 비용 사이의 트레이드오프이다. Bitcoin Cash는 거래 용량과 사용자 경험을 우선시하는 것을 선택하였으며, 광범위한 채택과 사용의 경제적 이점이 노드 운영자를 위한 증가된 하드웨어 요구 사항을 상회한다고 주장한다. 이는 비트코인과 Bitcoin Cash가 각자의 경로를 따라 계속 진화하면서 향후 수년과 수십 년에 걸쳐 답이 펼쳐질 경험적 질문이다.

여러 차례의 약세장, 논쟁적인 포크(특히 2018년 11월의 Bitcoin SV 분할), 그리고 지속적인 커뮤니티 노력을 통한 Bitcoin Cash의 생존과 지속적인 개발은 프로젝트의 회복력과 참여자들의 신념을 보여준다. 네트워크는 포크 이후 수억 건의 거래를 처리하였고, 지속적인 운영을 유지하였으며, P2P 전자 화폐가 구축할 가치가 있는 기술이라는 믿음을 공유하는 전 세계 개발자, 상인, 사용자 커뮤니티를 끌어들였다.

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最终能否实现其服务于全球电子现金的宏伟目标,将不由技术限制决定,而由支配所有货币系统演进的网络效应、市场动态和采用模式决定。