以下のようPOKEは言いました:
Gitとブロックチェーンはどちらもマークルツリーを使用して、順序付けされたタイムスタンプ付きトランザクションを格納しているため、似ています。マークルツリーは、各ノードがその子のラベルを含むコンテンツの暗号化ハッシュ値でラベル付けされるツリーデータ構造です。
最初の違いはハッシュ関数です。ブロックチェーンには非常に高価なハッシュ関数があり、各ブロックをマイニングする必要があります。Gitの「ブロック」は単純なコミットメッセージで作成できます。
ビットコインの目的は、トランザクションの順序に信頼を追加することです。最長のチェーンに焦点が当てられます。これは、計算に最も費用がかかるため、真実である可能性が最も高いためです。
ビットコインは、ハッシュが特定のパラメーター(特定の数の0で始まる)を満たすことを要求し、満足のいくハッシュが見つかるまでメッセージの値( "nonce")をインクリメントすることでこれを実現します。これは見つけるのに労力を要しますが、ナンスを検証するための計算は1つだけです。複数のノンスが満足のいくハッシュを生成する場合、1つは低くなり、真実と見なされます。他の認証スキームは、おそらくネットワーク合意または他の方法によって投票された、当局へのハッシュの発行を集中化することにより、ハッシュを信頼できるものにします。
ブロックチェーンデータは、検証に準拠する必要があるトランザクションに限定されます。トランザクションは、次のブロックに含まれるために有効でなければなりません。ビットコイン取引は、お金の価値の交換など、この送金を記録するために高価なブロックを使用することを正当化する、現実世界で重要な何かに対応します。私たちは実際には最終的な台帳を気にしません。それは現実世界の何かのメタファーです。
対照的に、コミットには任意の量のデータを含めることができるため、Gitブロックは任意です。最終的な製品に関心があるため、gitツリーに編成されているデータの変更に価値があり、それはgitリポジトリの存在によって検証されます。
Gitの目的は、安価な「台帳」が複数の代替製品を追跡できるようにすることです。Gitの「元帳」は私たちが気にしているものであり、それが最終製品です。トランザクションデータは、製品の構築方法を記録するだけです。私たちは、最終製品の複数のバージョンを作成することを非常に安価にしたいと考えています。作成者がこの製品をどのように構築したかを記録するように要求するのに十分なオーバーヘッドです。データに対して明示的な検証は行われません。見た目が良い場合は最終製品を維持します。その存在により、この製品の作成のチェーンを持つことが役立ちます。最終製品が不良であるか、コミットの順序が無効である場合、この「元帳」はガベージコレクション中に削除されます。
2番目の違いは、ブロックチェーントランザクションが以前の有効なソースからのものでなければならないことです。Gitでは、ツリーの拡張にどのデータを使用するかは関係ありません。ブロックチェーンでは、トランザクションは以前の有効なソースからのものでなければなりません。その意味で、Gitは私たちの環境の拡張を追跡しますが、ブロックチェーンは閉じた環境内での価値の交換を追跡します。