으로 포크는 말했다 :
Git과 Blockchain은 Merkle Trees 를 사용하여 정렬 된 타임 스탬프 트랜잭션을 저장 하기 때문에 비슷하게 보입니다 . 머클 트리는 각 노드에 하위의 레이블을 포함하는 컨텐츠의 암호화 해시 값으로 레이블이 지정된 트리 데이터 구조입니다.
첫 번째 차이점은 해시 함수입니다 . 블록 체인은 매우 비싼 해시 함수를 사용하므로 간단한 커밋 메시지로 Git "블록"을 만들 수 있지만 각 블록을 채굴해야합니다.
Bitcoin의 목적은 거래 순서에 신뢰를 추가하는 것입니다. 가장 긴 체인에 중점을 둡니다. 계산하는 데 비용이 가장 많이 들고 진실 일 가능성이 큽니다.
Bitcoin은 해시가 만족스러운 해시를 찾을 때까지 메시지의 값 ( "nonce")을 증가시켜 특정 매개 변수 (특정 0으로 시작)를 충족하도록 요구함으로써이를 달성합니다. 이를 위해서는 노력이 필요하지만 nonce를 검증하는 데 단 하나의 계산 만 필요합니다. 다수의 논 스가 만족스러운 해시를 생성한다면, 하나는 낮아지고 진실로 간주됩니다. 다른 인증 체계는 네트워크 계약 또는 다른 방법으로 투표 한 권한에 대한 해시 발급을 중앙 집중화하여 해시를 신뢰할 수있게 만듭니다.
블록 체인 데이터는 트랜잭션으로 제한되며, 유효성을 준수해야합니다. 다음 블록에 포함 되려면 트랜잭션이 유효해야합니다. 비트 코인 거래는 돈 가치 교환과 같이이 전송을 기록하기 위해 비싼 블록을 사용하는 것을 정당화하는 현실 세계에서 중요한 무언가에 해당합니다. 우리는 실제로 최종 원장에 신경 쓰지 않습니다. 그것은 실제 세계에서 무언가에 대한 은유입니다.
반대로 커밋은 임의의 양의 데이터를 포함 할 수 있으므로 Git 블록은 임의적입니다. 값은 최종 제품에 관심을 갖기 때문에 git 트리로 구성되는 데이터의 변경에 있습니다 .git 저장소의 존재에 의해 검증됩니다.
Git의 목적은 저렴한 "리더"가 여러 제품 대안을 추적 할 수 있도록하는 것입니다. Git의 "지도자"는 우리가 관심을 갖는 것입니다. 이것이 최종 제품입니다. 거래 데이터는 단지 제품이 어떻게 만들어 졌는지를 기록합니다. 우리는 제작자가이 제품을 어떻게 만들 었는지 기록하기에 충분한 오버 헤드만으로 최종 제품의 여러 버전을 만드는 것이 매우 저렴 해 지길 원합니다. 데이터에 대한 명시 적 유효성 검증은 수행되지 않으며 최종 제품이 양호 할 경우 최종 제품을 유지 보수하며 해당 제품이 존재하면이 제품 작성의 체인을 보유하는 것이 유용합니다. 최종 제품이 잘못되었거나 커밋 순서가 유효하지 않은 경우이 "ledger"는 가비지 수집 중에 삭제됩니다.
두 번째 차이점은 블록 체인 거래는 유효한 이전 소스에서 가져와야한다는 것입니다. Git에서는 트리를 확장하는 데 사용하는 데이터는 중요하지 않습니다. 블록 체인에서 거래는 유효한 이전 소스에서 가져와야합니다. 그런 의미에서 Git은 환경의 확장을 추적하는 반면 Blockchain은 닫힌 환경 내에서 가치 교환을 추적합니다.