왜 Git이 "블록체인"으로 간주되지 않는 걸까요?
Git의 내부 데이터 구조는 데이터 객체의 트리로 이루어져 있으며, 각 객체는 오직 그 앞선 객체만을 가리킵니다. 각 데이터 블록은 해시됩니다. 중간 블록을 수정(비트 오류 또는 공격)할 경우 저장된 해시와 실제 해시가 다른 경우에는 알려질 것입니다.
이 개념은 블록 체인과 어떻게 다른가요?
Git은 블록 체인의 예로 나열되지 않았지만, 적어도 요약에서는 데이터 구조 설명이 비슷해 보입니다: 데이터 블록, 단방향 역 연결, 해시 등).
그러면, Git이 왜 블록 체인이라 불리지 않는지 차이는 어디에 있을까요?
답변 1
기트(Git)와 블록체인(Blockchain)이 유사해 보이는 이유는 둘 다 내부 데이터 구조로 'merkle trees' 를 사용하기 때문입니다. 머클 트리는 각 노드가 그 내용물의 암호화 해시 값을 포함한 자식들의 라벨을 가진 트리입니다.
Git의 유향 비순환 그래프(Directed Acyclic Graph)는 정확히 그것입니다. 각 노드(tag, commit, tree 또는 blob 객체)는 해당 내용의 해시와 자식의 레이블이 지정되어 있습니다. 커밋의 경우 자식 용어는 Git이 부모에 대한 이해와 약간 충돌한다는 것에 유의하십시오: 부모 커밋은 커밋의 자식이며, 트리가 다시 루팅되면 계속 성장하는 트리로 그래프를 봐야 합니다.
블록체인은 이와 매우 비슷합니다, 그렇기 때문에 블록체인은 계속해서 성장하며 데이터 무결성을 보장하기 위해 메르클 트리 속성을 사용합니다. 하지만 일반적으로 블록체인은 메르클 트리만으로는 보다 많은 의미를 갖는데, 그것이 '“stupid content tracker” Git'amp;#@@!로부터 구분되는 부분입니다. 예를 들어, 블록체인은 일반적으로 블록 수준에서 매우 탈중앙화된 시스템을 가지는 것을 의미합니다 (모든 블록이 동일한 위치에 있을 필요는 없음).
블록체인을 이해하는 것은 다소 어려운 일이다 (개인적으로, 나는 여전히 모든 것을 이해하긴 멀었다고 생각한다), 그러나 Git 내부를 이해하는 것은 머클 트리를 이해하는 좋은 방법이라고 생각한다. 머클 트리를 이해하면 블록체인의 근본적인 부분을 이해하는 데 도움이 될 것이다.
답변 2
기술적으로 Git은 블록체인이라고 할 수 없습니다. Git은 분산 버전 관리 시스템(Distributed Version Control System)으로, 코드 변경 이력 추적, 협업, 소스 코드 관리 등 개발 작업에 유용한 기능을 제공합니다. 그러나 블록체인과는 다른 개념과 목적을 가지고 있습니다.첫째, Git은 변경 이력 목록을 관리하는 도구입니다. 소스 코드 변경의 시간순서를 추적하고, 변경 내용과 작성자를 기록하여 개발자가 필요한 때마다 특정 시점의 코드로 돌아갈 수 있게 해줍니다. 그러나 블록체인은 분산된 데이터베이스로, 변경 이력뿐만 아니라 거래 내역 등의 데이터를 기록하고 보관합니다.
둘째, Git은 중앙화된 관리자 없이 독립적으로 작동합니다. 개발자들은 로컬 컴퓨터나 서버에서 코드 변경을 추적하며, 원격 저장소를 통해 다른 개발자와 협업할 수 있습니다. 이러한 분산 구조는 개발 프로젝트를 유연하고 효율적으로 관리할 수 있도록 도와줍니다. 반면 블록체인은 중앙화된 인증기관 없이 모든 참가자들의 데이터 동기화와 합의를 이루도록 합니다.
셋째, Git은 지속적인 개발 작업의 효율성을 높이기 위한 용도로 설계되었습니다. 개발자들은 코드 변경에 대한 다양한 의견을 주고받을 수 있으며, 변경 내용을 여러 번 되돌릴 수도 있습니다. 반면 블록체인은 변경과 인증의 시간 및 과정을 최소화하고, 신뢰성과 안정성을 보장하는 것에 초점을 맞추었습니다.
따라서 Git은 분산 버전 관리 시스템으로서 효율적인 개발을 위한 목적을 가지고 있으며, 블록체인과는 다른 기술적 특징과 목적을 가지고 있습니다. 이러한 이유로 Git을 블록체인으로 간주할 수 없습니다. 현대의 소프트웨어 개발에서 Git과 블록체인은 각각 효율적인 협업과 안정화된 데이터 관리를 지원하는 주요 도구로 사용되고 있습니다.