Come detto poke :
Git e Blockchains sembrano simili perché utilizzano entrambi Merkle Trees per archiviare le transazioni con data e ora ordinate. Un albero merkle è una struttura di dati ad albero in cui ogni nodo è etichettato con il valore hash crittografico del loro contenuto, che include le etichette dei suoi figli.
La prima differenza è la funzione Hash : Blockchain ha una funzione hash molto costosa in modo che ogni blocco debba essere estratto, dove un "blocco" Git può essere creato con un semplice messaggio di commit.
Lo scopo di Bitcoin è aggiungere fiducia all'ordine delle transazioni. L'attenzione si concentra sulla catena più lunga, poiché è la più costosa da calcolare e quindi molto probabilmente la verità.
Bitcoin realizza ciò richiedendo che l'hash soddisfi determinati parametri (inizia con un numero specifico di 0s), incrementando un valore ("nonce") nel messaggio fino a quando non viene trovato un hash soddisfacente. Questo richiede uno sforzo per trovare, ma solo 1 calcolo per verificare un nonce; e se più nonce producono un hash soddisfacente, allora uno sarà più basso e preso come la verità. Altri schemi di autenticazione rendono l'hash degno di fiducia centralizzando il rilascio dell'hash a un'autorità, magari votata da un accordo di rete o da qualche altro metodo.
I dati della blockchain sono limitati alle transazioni, che devono essere conformi alla convalida. La transazione deve essere valida per essere inclusa nel blocco successivo.Una transazione Bitcoin corrisponde a qualcosa di importante nel mondo reale che giustifica l'uso di un blocco costoso per registrare questo trasferimento, come lo scambio di valore in denaro. In realtà non ci interessa il libro mastro finale, è una metafora di qualcosa nel mondo reale.
Al contrario, i blocchi Git sono arbitrari, in quanto un commit può contenere qualsiasi quantità di dati. Il valore sta nelle modifiche dei dati che vengono organizzati nell'albero git perché ci preoccupiamo del prodotto finale, è convalidato dall'esistenza del repository git.
Lo scopo di Git è consentire ai "registri" economici di tenere traccia di più alternative di prodotto. Il "libro mastro" in Git è ciò che ci interessa, è il nostro prodotto finale; i dati delle transazioni registrano semplicemente come è stato creato il prodotto. Vogliamo rendere molto economico realizzare più versioni dei prodotti finali, un sovraccarico sufficiente per richiedere al creatore di registrare come hanno costruito questo prodotto. Non viene effettuata alcuna convalida esplicita sui dati, si mantiene il prodotto finale se sembra buono e quell'esistenza rende utile avere la catena della creazione di questo prodotto. Se il prodotto finale è errato o l'ordine dei commit non è valido, questo "libro mastro" viene eliminato durante la garbage collection.
La seconda differenza è che le transazioni Blockchain devono provenire da una fonte valida precedente. In Git, non ci interessa quali dati utilizzi per estendere l'albero. In Blockchain, le transazioni devono provenire da una fonte valida precedente. In questo senso, Git traccia l'estensione del nostro ambiente, mentre Blockchain traccia lo scambio di valore all'interno di un ambiente chiuso.