# Bitcoin Cash

Bitcoin Cash (abrégé BCH ou BCC) est une crypto-monnaie issue du Bitcoin.
Comme son nom l'entend BCH se veut être une version permettant beaucoup plus de transactions par bloc à moindre prix que BTC, bifurquant (fork fort) du protocole Bitcoin le 1er août 2017$^,$$^,$.
Bitcoin Cash repose sur la technologie de base de données séquentielles et distribuées appelée blockchain, telle qu'elle fut décrite en 2008 par Satoshi Nakamoto.

## Contexte

Depuis 2014, le nombre de transactions effectuées en Bitcoin augmente continuellement. Le résultat de cette croissance est une augmentation considérable des frais de transactions et de la durée de confirmation. Pour y remédier, une approche possible est l'augmentation de la taille des blocs. Bitcoin Core (l’implémentation la plus utilisée du protocole Bitcoin) et une majorité des utilisateurs ne souhaitant pas cette augmentation, une bifurcation fut nécessaire. Une autre approche possible, non retenue par Bitcoin Cash, est l'utilisation de chaînes dérivées.
Le 15 novembre 2018 BCH connaîtra lui-même un fork avec le BSV.

### Taille des blocs

Les blocs de la chaîne Bitcoin étaient originellement limités à 32 Mo par bloc, afin d'éviter que la chaîne ne devienne trop « lourde » pour les ordinateurs des « petits » utilisateurs ; finalement, une limite de 1 Mo fut introduite le 14 juillet 2010. Même avec cette limite, la chaine originale de Bitcoin pèse actuellement plus de 187 Go (Décembre 2018) ; sans cette limite, la chaine aurait pu peser plus de 4 To, ce qui aurait empêché la majeure partie de la communauté d'avoir un nœud Bitcoin complet. En définitive, la limite de 1Mo a permis de conserver la décentralisation du Bitcoin.
Il fut initialement prévu de pouvoir éventuellement adapter cette limite. Cependant cette solution, tout en étant la plus simple techniquement et la plus rapide à implémenter (un nombre seulement devant être modifié), nécessite une bifurcation du protocole et une rupture de la rétro-compatibilité. Cette solution fut critiquée pour de nombreuses raisons, ce qui entraîna un statu quo entre 2015 et 2017. Plusieurs conférences eurent lieu sans pour autant apporter un consensus général. Depuis le 15 mai 2018, cette limite de 32 Mo a été ré-instaurée pour Bitcoin Cash.

### SegWit

L’implémentation de la deuxième solution nécessita d'abord la résolution du problème de malléabilité. Une solution au problème de malléabilité fut proposée: SegWit, une UASF (User Activated Soft Fork) qui consiste en une modification rétro compatible du protocole Bitcoin. SegWit est abréviation anglaise pour Segregated Witness qui peut se traduire en français par « séparation de la signature ». Cette modification est la première modification majeure du protocole depuis son invention en 2008 par Satoshi Nakamoto, et elle introduit le concept de chaîne dérivée (side chain en anglais). En effet, chaque bloc est censé contenir un arbre de Merkle rassemblant l'ensemble des transactions constituant le bloc et leurs signatures cryptographiques, or SegWit sépare cette signature cryptographique et la place dans une chaîne dérivée qui doit obligatoirement être associée au bloc pour que celui-ci soit valide. Le 20 juillet 2017, les mineurs Bitcoin ont annoncé être prêts à 97 % pour le Bitcoin Improvement Proposal (BIP) 91. La proposition fut d'activer Segregated Witness (SegWit) le 1er août 2017 (sans augmenter de 1 Mo la taille d'un bloc de transactions), et le maintien de la compatibilité$^,$$^,$. Le 1er août 2017, le protocole de la chaîne Bitcoin implémenta SegWit.

## Différence entre Bitcoin et Bitcoin Cash

Le protocole Bitcoin Cash est basé sur le code original de Bitcoin mais rejette la limitation de la taille des blocs introduite par Satoshi Nakamoto pour protéger le registre des attaques. Il rejette également l’implémentation de SegWit réalisée le 1er août 2017. Des partisans du Bitcoin Cash connus se sont opposés à cette implémentation, comme ça été le cas de Roger Ver.
Le problème de capacité est réglé par l'autre approche : une augmentation immédiate, lors de la bifurcation, de la taille des blocs à 8 Mo, soit environ 24 transactions par seconde, puis, plus tard, un retrait complet de cette limite, ce qui correspond à une limite de 32 Mo, soit environ 250 transactions par seconde (contre 24 000 transactions par seconde pour Visa).
La création du Bitcoin Cash (avec donc l'augmentation des blocs à 8 Mo) a eu lieu simultanément avec l'implémentation de SegWit pour Bitcoin. Cette limite artificielle de 8 Mo par bloc fut ensuite enlevée le 15 mai 2018, ne laissant que la limite réelle de 32 Mo par bloc.
Pour survivre à la bifurcation avec le protocole Bitcoin ayant implémenté SegWit, l'algorithme d'ajustement de la difficulté fut assoupli puis complètement modifié le 13 novembre 2017.

## Protocoles et sécurité

L'algorithme de hachage utilisé par Bitcoin Cash est, comme pour Bitcoin, SHA-256. De ce fait, les mineurs de Bitcoin peuvent aussi miner Bitcoin cash ce qui augmente le risque d'attaque des 51 % qui pèse toujours sur la chaine la plus faible.
Bitcoin Cash est néanmoins protégé contre les Attaques par rejeu ce qui permet une co-existence avec la chaîne Bitcoin.

## Minage

Lors de la bifurcation avec Bitcoin, la taille des blocs minés était d'une capacité maximale de 8 Mo et l'ajustement de la difficulté de minage se faisait toutes les deux semaines. Depuis le 13 novembre 2017, l'ajustement de la difficulté de minage se fait à chaque bloc de manière à maintenir a une moyenne mobile sur 144 blocs de 10 min entre chaque bloc. De plus, depuis le 15 mai 2018, la taille maximale des blocs est de 32 Mo.
Le type de minage le plus efficace pour Bitcoin Cash est le minage à l'aide d'ASIC (machines conçues spécialement pour le minage afin d'être bien plus efficaces qu'un processeur classique). Les ASIC capables de miner Bitcoin Cash sont aussi capables de miner Bitcoin car la preuve de travail est la même.

## Transactions et frais
### Transactions

Ainsi, les coins issus de différentes transactions ne peuvent être regroupés. Un utilisateur recevant plusieurs paiements conservera dans son portefeuille autant de montants différents (appelés données d'entrée), même si son logiciel, pour en rendre la lecture plus aisée, procède à un affichage global. Lorsque l'utilisateur voudra les dépenser, son logiciel calculera le meilleur ensemble de données d'entrée à transférer pour minimiser la taille des données de sortie et limiter ainsi les frais de transaction. Étant donné les très faibles frais de transaction de bitcoin cash, il est cependant possible et très peu onéreux d’agréger de nombreuses petites transactions en une seule valeur.
* Exemple : Un utilisateur reçoit 13 paiements de 1 x 2,3 BCH, 5 x 1,0 BCH, 2 x 0,7 BCH, 1 x 0,5 BCH, 1 x 0,3 BCH, 2 x 0,2 BCH et 1 x 0,1 BCH. Son logiciel lui indiquera alors qu'il possède 10,0 BCH.
* (Cas 1) : Lorsqu'il voudra dépenser 3,0 BCH, le meilleur ensemble en données de sortie consistera à regrouper les 2,3 BCH et 0,7 BCH reçus précédemment.
* (Cas 2) : S'il voulait dépenser 3,05 BCH, le meilleur ensemble en données de sortie consisterait à regrouper les 2,3 BCH avec les 0,7 BCH reçus précédemment et de fractionner la transaction de 0,1 BCH en une transaction de sortie de 0,05 BCH, l'autre fraction transactionnelle de 0,05 BCH étant conservée dans le portefeuille.

### Frais

Plus un utilisateur accepte de payer des frais de transaction élevés, plus sa transaction sera traitée rapidement. Comme les blocs de la chaîne Bitcoin cash sont pour le moment suffisamment larges pour permettre aux mineurs de miner toutes les transactions; il n'est pas nécessaire de payer des frais de transaction pour que la transaction soit minée au prochain bloc.
En pratique, pour être sûr que la transaction soit confirmée immédiatement, entre 0 et 10 minutes en moyenne, les frais se situent aux alentours de 1 satoshis / octet (0,00000001 BCH / octet). Ainsi, en 2018, pour une taille médiane de transaction de 265 octets, cela représente un coût approximatif de 265 satoshis (soit moins de 0,000 01 €) quel que soit le montant de bitcoins cash à transférer.
Plus les assemblages de données d'entrées sont importants pour réaliser une transaction, plus l'encodage de celle-ci demande un nombre important d'octet et plus les frais augmentent, tout en restant malgré tout d'un montant global virtuellement nul dans le cas de Bitcoin Cash.
Le logiciel utilisé comme portefeuille calcule en général les frais optimaux à payer pour que la transaction soit traitée à l'instant du transfert. Ces frais varient en fonction du nombre des transactions à traiter à l'instant du transfert, mais ils restent virtuellement nuls étant donné la large capacité des blocs. L'utilisateur décide seul du montant des frais de transaction qu'il est prêt à payer.

## Achat et vente sur les plateformes d'échange

La quasi-totalité des plateformes d’échange en ligne de cryptomonnaie permettent d'acheter ou de vendre Bitcoin Cash. Par exemple, les plateformes suivantes permettent d'acheter ou de vendre des Bitcoin Cash:
* Binance
* Bitfinex (en)
* BitMEX
* Bitstamp
* Bittrex
* Coinbase
* Coinhouse
* Kraken
* GDAX (une filiale de Coinbase)
* Paymium.