222 votes

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

Git la structure de données interne est un arbre d'objets de données, dans lequel chacun des objets que des points à son prédécesseur. Chaque bloc de données est haché. La modification d'erreur de bit (ou d'attaque) un bloc intermédiaire sera remarqué lors de l'sauvé de hachage et le réel de hachage de s'écarter.

Comment cette notion est-elle différente de bloc de la chaîne d'approvisionnement?
Git n'est pas répertorié comme un exemple de bloc de chaînes, mais au moins dans les résumés, à la fois la structure de données des descriptions ressemblent: le bloc de données, seule la direction inverse de la liaison, de tables de hachage, ...).

Alors, où est la différence, que Git n'est pas appelé un bloc de la chaîne d'approvisionnement?

143voto

poke Points 64398

La raison pour laquelle Git et blockchains paraître semblables, c'est parce qu'ils sont à la fois en utilisant des arbres de merkle que leurs données sous-jacentes de la structure. Un arbre de merkle est un arbre où chaque nœud est étiqueté avec le hachage cryptographique de la valeur de leur contenu, ce qui comprend les étiquettes de ses enfants.

Git du graphe dirigé acyclique est exactement ça, une merkle arbre où chaque nœud (tag, de commettre, arbre, ou de l'objet blob) est étiqueté avec le hash de son contenu et de l'étiquette de son "enfant". Notez que pour les livraisons, les "enfants" terme des conflits un peu avec Git compréhension des parents: le Parent s'engage sont les enfants de commits, il vous suffit de regarder le graphique comme un arbre qui ne cesse de grandir, par le ré-enracinement.

Blockchains sont très semblables à ceci, car ils continuent de grandir de cette façon, et ils sont également l'aide de son arbre de merkle propriété afin de garantir l'intégrité des données. Mais généralement, blockchains sont considérés comme bien plus qu'un simple merkle les arbres, qui est l'endroit où ils se séparent de la "stupide contenu tracker" Git. Par exemple, les blockchains habituellement signifie aussi avoir une très décentralisée du système sur un bloc de niveau (pas tous les blocs doivent être dans le même lieu).

La compréhension des blockchains est un peu compliqué (personnellement, je suis encore loin de tout comprendre à ce sujet), mais je considère que la compréhension Git internes comme une bonne façon de comprendre merkle arbres qui aide vraiment à la compréhension d'une partie fondamentale sur les blockchains.

57voto

houtanb Points 2405

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

  1. Dans une blockchain mise en œuvre, chaque bloc est vérifiée de façon indépendante plusieurs fois avant d'être ajoutée à la blockchain. C'est en effet l'une des choses les plus importantes sur la technologie blockchain et c'est ce qui assure sa "unhackability." D'autre part, bon nombre git des projets ne nécessitent pas de vérification indépendante et, quand ils le font, ils n'ont besoin que d'une personne à signer un changement avant qu'il s'est engagé dans le référentiel. Donc, avec tout au plus un point de validation que vous devez avoir confiance en, git brise l'un des principes fondamentaux de la technologie blockchain.

  2. Un git référentiel n'est pas nécessairement dupliqué sur de nombreux serveurs. Vous pouvez travailler à partir d'un git référentiel localement et si votre disque local ont été endommagés, vous perdez tout. La technologie Blockchain implique la reproduction de la livre sur les serveurs.

  3. Vous pouvez réécrire git histoire. Un git push <remote> <branch> --force<branch> est fixé à un état précédent, que <remote> de la réécrire l'histoire. Dans blockchains, le grand livre est immuable de l'histoire.

28voto

Brian Sullivan Points 191

Les cyber monnaies comme Bitcoin utilisent une chaîne de blocs cryptographiques à consensus généralisé (merkle tree). Un usage courant a abrégé cela en 'blockchain'

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

22voto

Daniel Vartanov Points 1267

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

Blockchain lorsqu'il existe un moyen de déterminer la chaîne principale lorsque deux personnes ou plus sont détournées , et lorsqu'aucune autorité centrale n'est nécessaire pour cette détermination.

20voto

Miguel Mota Points 14005

Contrairement aux blockchains de crypto-monnaie ; git n'a pas de mécanisme de consensus p2p sans confiance.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X