it-swarm.com.de

Warum wird Git nicht als "Blockkette" angesehen?

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?

141
Paebbels

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 gewährleistet deren "Unhackbarkeit". 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 unterbricht git mit höchstens einem Punkt der Validierung, dem Sie vertrauen müssen, einen der Kernsätze 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 wo <branch> ist auf einen früheren Zustand als den bei <remote> würde die Geschichte umschreiben. In Blockchains ist das Hauptbuch eine unveränderliche Geschichte.

38
houtanb

Git und Blockchains sehen ähnlich aus, weil beide merkle trees als zugrunde liegende Datenstruktur verwenden. Ein Merkle-Baum ist ein Baum, in dem jeder Knoten mit dem kryptografischen Hashwert seines Inhalts beschriftet ist, einschließlich der Beschriftungen 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“ etwas im Widerspruch zu Gits Verständnis der Eltern steht: Übergeordnete Commits sind die Kinder von Commits. Sie müssen nur nachsehen in der Grafik als ein Baum, der weiter wächst, indem er neu verwurzelt wird.

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 einen guten Weg, um Merkle-Bäume zu verstehen, der definitiv hilft, einen grundlegenden Teil von Blockchains zu verstehen.

107
poke

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.

19
Brian Sullivan

Im Gegensatz zu Kryptowährungsblockketten; git hat keinen vertrauenslosen p2p-konsensmechanismus.

15
Miguel Mota

Blockchain ist nicht eine beliebige Kette von Blöcken.

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

13
Daniel Vartanov