IT

Git이“블록 체인”으로 간주되지 않는 이유는 무엇입니까?

lottoking 2020. 6. 16. 08:00
반응형

Git이“블록 체인”으로 간주되지 않는 이유는 무엇입니까?


Git의 내부 데이터 구조는 데이터 객체의 트리이며 각 객체는 이전 객체 만 가리 킵니다. 각 데이터 블록은 해시됩니다. 저장된 해시와 실제 해시가 벗어날 때 중간 블록 수정 (비트 오류 또는 공격)을 알 수 있습니다.

이 개념은 블록 체인과 어떻게 다릅니 까?
Git은 블록 체인의 예로 제시되지는 않지만 적어도 요약하면 데이터 블록, 단일 방향 역방향 링크, 해시 등 두 데이터 구조 설명은 모두 비슷합니다.

차이점은 어디에 있습니까, Git을 블록 체인이라고하지 않습니까?


git 여러 가지 이유로 블록 체인 기술의 예가 아닙니다 (이것이 처음으로 떠 올랐습니다).

  1. 블록 체인 구현에서 모든 블록은 블록 체인에 추가되기 전에 여러 번 독립적으로 검증됩니다. 이것은 실제로 블록 체인 기술에서 가장 중요한 것 중 하나이며 "해킹 불가능"을 보장합니다. 반면, 많은 git프로젝트는 독립적 인 검증이 필요하지 않으며, 필요한 경우 저장소에 커밋되기 전에 한 사람 만 변경에 대해 사인 오프해야합니다. 따라서 신뢰해야 할 검증 시점이 최대 한 개 git이므로 블록 체인 기술의 핵심 원칙 중 하나가 깨집니다.

  2. git저장소는 반드시 여러 서버에 복제되지 않습니다. git저장소에서 로컬로 작업 할 수 있으며 로컬 디스크가 손상된 경우 모든 것을 잃게됩니다. 블록 체인 기술은 서버에서 원장을 재생산 함을 의미합니다.

  3. git기록 을 다시 쓸 수 있습니다 . 에서보다 이전 상태로 설정되어 역사를 다시 쓸 것이다. 블록 체인에서 원장은 불변의 역사입니다.git push <remote> <branch> --force<branch><remote>


Git과 블록 체인이 비슷한 것처럼 보이는 이유는 머클 트리 를 기본 데이터 구조로 사용하고 있기 때문 입니다. 머클 트리는 각 노드에 해당 컨텐츠의 암호화 해시 값으로 레이블이 지정된 트리이며 하위의 레이블을 포함합니다.

Git의 비순환 그래프는 각 노드 (태그, 커밋, 트리 또는 블로 브 객체)에 컨텐츠의 해시와 "자식"의 레이블이있는 머클 트리입니다. 커밋의 경우 "자식"이라는 용어는 Git의 부모에 대한 이해와 약간 충돌합니다. 부모 커밋 커밋 의 자식이므로 그래프를 다시 뿌리를 내림으로써 계속 자라는 나무로보아야합니다.

블록 체인은 이와 마찬가지로 계속 커지고 데이터 무결성을 보장하기 위해 머클 트리 속성을 사용하고 있기 때문에 이와 매우 유사합니다. 그러나 일반적으로 블록 체인은 단지 "멍청한 콘텐츠 추적기"Git 과 분리되는 머클 트리 이상의 방법으로 이해됩니다 . 예를 들어, 블록 체인은 일반적으로 블록 수준에서 고도로 분산 된 시스템을 의미합니다 (모든 블록이 동일한 위치에있을 필요는 없음).

블록 체인을 이해하는 것은 어렵습니다 (개인적으로는 여전히 모든 것에 대해 이해하지 못합니다).하지만 Git 내부를 이해하는 것은 머클 트리를 이해하는 좋은 방법으로 블록 체인에 대한 기본 부분을 이해하는 데 도움이됩니다.


Bitcoin과 같은 사이버 통화는 분산 된 합의 암호화 블록 체인 (머클 트리)을 사용합니다. 일반적인 사용법은 이것을 '블록 체인'으로 단축했습니다.

git은 일련의 블록 (머클 트리)을 사용하지만 'BlockChain'이라는 용어의 일반적인 사용법이 암시하는 분산 합의 암호화 구성 요소가 없습니다.


암호 화폐 블록 체인 과 달리 ; git에는 p2p trustless consensus 메커니즘이 없습니다.


Blockchain블록의 체인 아닙니다 .

Blockchain언제 두 개 이상이 전환되는 주쇄를 결정하는 방법이 , 어떠한 중앙 당국은 그 판정에 필요하지 않은 경우.

참고 URL : https://stackoverflow.com/questions/46192377/why-is-git-not-considered-a-block-chain

반응형