Pourquoi Git n’est-il pas considéré comme une «chaîne de blocs»?

La structure de données interne de Git est une arborescence d’objects de données, dans laquelle chaque object ne pointe que vers son prédécesseur. Chaque bloc de données est haché. La modification (erreur binary ou attaque) d’un bloc intermédiaire sera notée lorsque le hachage enregistré et le hachage réel s’écartent.

En quoi ce concept est-il différent de la chaîne de blocs?
Git n’est pas répertorié comme exemple de chaînes de blocs, mais au moins dans les résumés, les deux descriptions de structures de données se ressemblent: bloc de données, liaison inverse à sens unique, hachages, …).

Alors, où est la différence, que Git ne s’appelle pas une chaîne de blocs?

git n’est pas un exemple de technologie de blockchain pour plusieurs raisons (c’était la première à l’être):

  1. Dans une implémentation de blockchain, chaque bloc est vérifié indépendamment plusieurs fois avant d’être ajouté à la blockchain. C’est en effet l’un des aspects les plus importants de la technologie de la blockchain et c’est ce qui garantit son «inébranlable». D’un autre côté, de nombreux projets git ne nécessitent pas de vérification indépendante et, lorsqu’ils le font, ils ne nécessitent qu’une seule personne pour valider une modification avant de la valider dans le référentiel. Par conséquent, avec au plus un sharepoint validation auquel vous devez faire confiance, git brise l’un des principes fondamentaux de la technologie de la chaîne de blocs.

  2. Un repository git n’est pas nécessairement dupliqué sur de nombreux serveurs. Vous pouvez travailler à partir d’un repository git localement et si votre disque local était corrompu, vous perdriez tout. La technologie de la chaîne de blocs implique la reproduction du registre entre les serveurs.

  3. Vous pouvez réécrire l’histoire de git . Un git push --force est défini sur un état antérieur à celui de réécrirait l’historique. Dans les blockchains, le grand livre est une histoire immuable.

La raison pour laquelle Git et les chaînes de blocs semblent similaires est que les deux utilisent des arbres de type Merkle comme structure de données sous-jacente. Un arbre de marque est un arbre où chaque noeud est étiqueté avec la valeur de hachage cryptographique de leur contenu, qui inclut les étiquettes de ses enfants.

Le graphique acyclique dirigé de Git est exactement cela, un arbre de marque où chaque nœud (tag, commit, arbre ou object blob) est étiqueté avec le hachage de son contenu et l’étiquette de son «enfant». Notez que pour les commits, le terme «enfant» est un peu en contradiction avec la compréhension des parents par Git: les commits parents sont les enfants des commits, il suffit de regarder le graphe en le ré-enracinant.

Les chaînes de blocs sont très similaires, car elles continuent de croître de cette façon, et elles utilisent également leur propriété d’arborescence pour assurer l’intégrité des données. Mais généralement, les chaînes de blocs sont considérées comme beaucoup plus que de simples arbres de trait, là où elles se séparent du «tracker de contenu stupide» Git . Par exemple, les chaînes de blocs signifient généralement avoir un système hautement décentralisé au niveau du bloc (tous les blocs ne doivent pas nécessairement se trouver au même endroit).

Comprendre les chaînes de blocs est en quelque sorte difficile (personnellement, je suis encore loin de tout comprendre), mais je considère la compréhension des éléments internes de Git comme un bon moyen de comprendre les éléments fondamentaux des chaînes de blocs.

Les cyber-devises telles que Bitcoin, utilisent une chaîne de blocs cryptographiques (Merkle Tree) à consensus dissortingbué. L’utilisation courante a abrégé cela en “blockchain”

Alors que git utilise une chaîne de blocs (merkle tree), il manque les composants cryptographiques des consensus dissortingbués que l’utilisation courante du terme ‘BlockChain’ implique.

Contrairement aux chaînes de blocs de crypto-monnaie ; git n’a pas de mécanisme de consensus sans confiance pour p2p.

Blockchain n’est pas n’importe quelle chaîne de blocs.

Blockchain est le cas où il existe un moyen de déterminer la chaîne principale lorsque deux ou plus sont détournés et lorsqu’aucune autorité centrale n’est nécessaire pour cette détermination.