git - merkle tree




Warum wird Git nicht als "Blockkette" angesehen? (4)

Die interne Datenstruktur von Git ist ein Baum von Datenobjekten, wobei jedes Objekt nur auf seinen Vorgänger verweist. Jeder Datenblock wird gehasht. Das Ändern (Bitfehler oder Angriff) eines Zwischenblocks wird bemerkt, wenn der gespeicherte Hash und der tatsächliche Hash abweichen.

Inwiefern unterscheidet sich dieses Konzept von der Blockkette?
Git ist nicht als Beispiel für Blockketten aufgeführt, aber zumindest in Zusammenfassungen sehen beide Datenstrukturbeschreibungen gleich aus: Datenblock, Rückwärtsverknüpfung in eine Richtung, Hashes, ...).

Wo ist also der Unterschied, dass Git nicht als Blockkette bezeichnet wird?


Cyber-Währungen wie Bitcoin verwenden eine verteilte kryptografische Kette von Konsensblöcken (Merkle-Baum). Die allgemeine Verwendung hat dies zu "Blockchain" verkürzt.

Während git eine Kette von Blöcken verwendet (Merkle-Baum), fehlen die verteilten Konsenskomponenten für kryptografische Komponenten, die die allgemeine Verwendung des Begriffs "BlockChain" impliziert.


Git und Blockchains sehen ähnlich aus, weil beide Merkle-Bäume als zugrunde liegende Datenstruktur verwenden. Ein Merkle-Baum ist ein Baum, in dem jeder Knoten mit dem kryptografischen Hashwert seines Inhalts gekennzeichnet ist, einschließlich der Bezeichnungen seiner untergeordneten Knoten.

Gits gerichteter azyklischer Graph ist genau das, ein Merkle-Baum, in dem jeder Knoten (Tag, Commit, Baum oder Blob-Objekt) mit dem Hash seines Inhalts und der Bezeichnung seines "Kindes" gekennzeichnet ist. Beachten Sie, dass bei Commits der Begriff „Kind“ ein wenig im Widerspruch zu Gits Verständnis der Eltern steht: Übergeordnete Commits sind die Kinder von Commits. Sie müssen lediglich das Diagramm als einen Baum betrachten, der weiter wächst, indem Sie es neu verwurzeln.

Blockchains sind dem sehr ähnlich, da sie auch weiterhin auf diese Weise wachsen und ihre Merkle-Tree-Eigenschaft verwenden, um die Datenintegrität sicherzustellen. Aber Blockchains sind in der Regel weit mehr als nur Merkle-Bäume. Hier trennen sie sich vom „dummen Content-Tracker“ Git . Beispielsweise bedeutet Blockchains in der Regel auch, dass ein stark dezentralisiertes System auf Blockebene vorhanden ist (nicht alle Blöcke müssen sich an derselben Stelle befinden).

Blockchains zu verstehen ist etwas schwierig (ich persönlich bin immer noch weit davon entfernt, alles zu verstehen), aber ich betrachte das Verstehen von Git-Interna als eine gute Möglichkeit, Merkle-Bäume zu verstehen, was definitiv hilft, einen grundlegenden Teil von Blockchains zu verstehen.


Blockchain ist nicht irgendeine Kette von Blöcken.

Blockchain ist, wenn es eine Möglichkeit gibt, die Hauptkette zu bestimmen, wenn zwei oder mehr umgeleitet werden , und wenn für diese Bestimmung keine zentrale Autorität erforderlich ist.


git ist aus mehreren Gründen kein Beispiel für Blockchain-Technologie (dies waren die ersten, die mir in den Sinn kamen):

  1. In einer Blockchain-Implementierung wird jeder Block mehrmals unabhängig überprüft, bevor er der Blockchain hinzugefügt wird. Dies ist in der Tat eines der wichtigsten Dinge bei der Blockchain-Technologie und stellt deren "Unhackbarkeit" sicher. Auf der anderen Seite erfordern viele git Projekte keine unabhängige Überprüfung, und wenn dies der Fall ist, muss nur eine Person eine Änderung abzeichnen, bevor sie in das Repository übernommen wird. Daher bricht git mit höchstens einem Punkt der Validierung, dem Sie vertrauen müssen, einen der Grundpfeiler der Blockchain-Technologie.

  2. Ein git Repository wird auf vielen Servern nicht unbedingt dupliziert. Sie können lokal von einem git Repository aus arbeiten, und wenn Ihre lokale Festplatte beschädigt wäre, würden Sie alles verlieren. Bei der Blockchain-Technologie wird das Hauptbuch auf mehreren Servern reproduziert.

  3. Sie können den git Verlauf neu schreiben. Ein git push <remote> <branch> --force bei dem <branch> auf einen früheren Status als den bei <remote> würde den Verlauf neu schreiben. In Blockchains ist das Hauptbuch eine unveränderliche Geschichte.





blockchain