Comme l'a dit Poke :
Git et Blockchains semblent similaires car ils utilisent tous les deux des arbres Merkle pour stocker des transactions horodatées ordonnées. Un arbre merkle est une structure de données arborescente où chaque nœud est étiqueté avec la valeur de hachage cryptographique de son contenu, qui comprend les étiquettes de ses enfants.
La première différence est la fonction Hash : Blockchain a une fonction de hachage très coûteuse de sorte que chaque bloc doit être miné, alors qu'un "bloc" Git peut être créé avec un simple message de validation.
Le but de Bitcoin est d'ajouter de la confiance à l'ordre des transactions. L'accent est mis sur la chaîne la plus longue, car elle est la plus coûteuse à calculer et donc la plus susceptible d'être la vérité.
Bitcoin accomplit cela en exigeant que le hachage réponde à certains paramètres (commence par un nombre spécifique de 0), en incrémentant une valeur ("nonce") dans le message jusqu'à ce qu'un hachage satisfaisant soit trouvé. Cela demande un effort pour trouver, mais un seul calcul pour vérifier un nonce; et si plusieurs nonces produisent un hachage satisfaisant, alors l'un sera inférieur et considéré comme la vérité. D'autres schémas d'authentification rendent le hachage digne de confiance en centralisant l'émission du hachage à une autorité, peut-être votée par accord de réseau, ou par une autre méthode.
Les données de la blockchain sont limitées aux transactions, qui doivent être conformes à la validation. La transaction doit être valide pour être incluse dans le bloc suivant. Une transaction Bitcoin correspond à quelque chose d'important dans le monde réel qui justifie l'utilisation d'un bloc coûteux pour enregistrer ce transfert, comme l'échange de valeur monétaire. Nous ne nous soucions pas vraiment du grand livre final, c'est une métaphore de quelque chose dans le monde réel.
En revanche, les blocs Git sont arbitraires, car un commit peut contenir n'importe quelle quantité de données. La valeur réside dans les changements de données organisés dans l'arbre git car nous nous soucions du produit final, il est validé par l'existence du référentiel git.
Le but de Git est de permettre à des «registres» bon marché de suivre plusieurs alternatives de produits. Le "grand livre" dans Git est ce qui nous tient à cœur, c'est notre produit final; les données de transaction enregistrent simplement la façon dont le produit a été construit. Nous voulons rendre très bon marché la création de plusieurs versions de produits finaux, juste assez de frais généraux pour obliger le créateur à enregistrer comment il a construit ce produit. Aucune validation explicite n'est faite sur les données, vous maintenez le produit final s'il semble bon, et cette existence rend utile la chaîne de création de ce produit. Si le produit final est incorrect ou si l'ordre des validations n'est pas valide, ce «grand livre» est supprimé lors du garbage collection.
La deuxième différence est que les transactions Blockchain doivent provenir d'une source valide antérieure. Dans Git, nous ne nous soucions pas des données que vous utilisez pour étendre l'arborescence. Dans Blockchain, les transactions doivent provenir d'une source valide préalable. En ce sens, Git suit l'extension de notre environnement, tandis que Blockchain suit l'échange de valeur dans un environnement fermé.