decentralized Pourquoi Git n'est-il pas considéré comme une "chaîne de blocage"?




decentralized git (4)

La structure de données interne de Git est un arbre d'objets de données, dans lequel chaque objet pointe uniquement vers son prédécesseur. Chaque bloc de données est haché. En modifiant (erreur binaire ou attaque) un bloc intermédiaire sera remarqué 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 un exemple de chaînes de blocs, mais au moins dans les résumés, les deux descriptions de structure de données se ressemblent: bloc de données, liaison inverse à sens unique, hachages, ...).

Alors, où est la différence, que Git n'est pas appelé une chaîne de blocs?


git n'est pas un exemple de technologie blockchain pour plusieurs raisons (ce sont les premiers qui sont venus à l'esprit):

  1. Dans une implémentation de blockchain, chaque bloc est vérifié de manière indépendante plusieurs fois avant d'être ajouté à la blockchain. C'est en effet l'une des choses les plus importantes à propos de la technologie blockchain et c'est ce qui garantit son "impossibilité d'accès". D'un autre côté, de nombreux projets git ne nécessitent pas de vérification indépendante et, lorsqu'ils le font, ils exigent seulement qu'une personne signe une modification avant qu'elle ne soit validée dans le référentiel. Par conséquent, avec au moins un point de validation auquel vous devez faire confiance, git rompt l'un des principes fondamentaux de la technologie blockchain.

  2. Un référentiel git n'est pas nécessairement dupliqué sur de nombreux serveurs. Vous pouvez travailler à partir d'un dépôt git localement et si votre disque local était corrompu, vous perdriez tout. La technologie Blockchain implique la reproduction du ledger sur les serveurs.

  3. Vous pouvez réécrire l'histoire git . Un git push <remote> <branch> --force<branch> est défini sur un état antérieur à celui de <remote> réécrirait l'historique. Dans blockchains, le ledger est une histoire immuable.


Blockchain n'est pas n'importe quelle chaîne de tous les blocs.

Blockchain est quand il y a un moyen de déterminer la chaîne principale quand deux ou plus sont détournés , et quand aucune autorité centrale n'est nécessaire pour cette détermination.


La raison pour laquelle Git et blockchains semblent similaires est qu'ils utilisent tous deux les arbres merkle comme structure de données sous-jacente. Un arbre de merkle est un arbre où chaque noeud est étiqueté avec la valeur de hachage cryptographique de son contenu, qui comprend les étiquettes de ses enfants.

Le graphe acyclique orienté de Git est exactement cela, un arbre de merkle où chaque noeud (tag, commit, arbre ou objet blob) est étiqueté avec le hash de son contenu et l'étiquette de son "enfant". Notez que pour les commits, le terme "enfant" est un peu en conflit avec la compréhension des parents par Git: Les commits parents sont les enfants des commits, il suffit de regarder le graphe comme un arbre qui ne cesse de croître en le re-rootant.

Les chaînes de blocs sont très similaires à cela, puisqu'elles continuent à grandir ainsi, et elles utilisent aussi sa propriété merkle tree pour assurer l'intégrité des données. Mais d'habitude, les blockchains sont compris comme étant bien plus que des arbres de merkle, c'est-à-dire qu'ils se séparent du "stupide content tracker" Git . Par exemple, blockchains signifie généralement avoir un système hautement décentralisé au niveau du bloc (tous les blocs n'ont pas besoin d'être au même endroit).

Comprendre les blockchains est plutôt difficile (personnellement, je suis encore loin de tout comprendre), mais je considère comprendre les internes de Git comme un bon moyen de comprendre les arbres de merkle, ce qui aide certainement à comprendre une partie fondamentale des blockchains.


Cyber ​​Devises comme Bitcoin, utilisent une chaîne de blocs cryptographiques distribués par consensus (arbre de merkle). L'usage courant a raccourci cela à 'blockchain'

Alors que git utilise une chaîne de blocs (arbre de merkle), il lui manque les composants cryptographiques à consensus distribué que l'utilisation courante du terme «BlockChain» implique.





blockchain