source

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

ittop 2023. 5. 22. 21:41
반응형

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

Git의 내부 데이터 구조는 각 개체가 이전 개체만 가리키는 데이터 개체 트리입니다.각 데이터 블록은 해시됩니다.중간 블록 수정(비트 오류 또는 공격)은 저장된 해시와 실제 해시가 편차를 보일 때 표시됩니다.

이 개념은 블록체인과 어떻게 다른가요?
Git는 블록체인의 예로 나열되지는 않았지만, 적어도 요약하자면, 두 데이터 구조 설명은 데이터 블록, 단일 방향 역방향 링크, 해시 등 유사하게 보입니다.

그렇다면 Git이 블록체인이라고 불리지 않는 차이점은 무엇일까요?

Git와 블록체인이 유사하게 나타나는 이유는 둘 다 기본 데이터 구조로 머클 트리를 사용하고 있기 때문입니다.머클 트리는 각 노드에 하위 항목의 레이블이 포함된 내용의 암호화 해시 값으로 레이블이 지정된 트리입니다.

Git의 지시된 비순환 그래프는 정확히 그것입니다. 각 노드(태그, 커밋, 트리 또는 블로브 개체)는 내용의 해시와 "하위" 레이블로 레이블이 지정된 머클 트리입니다.커밋의 경우, "자녀" 용어는 Git의 부모에 대한 이해와 약간 충돌합니다. 부모 커밋은 커밋의 자녀입니다. 그래프를 다시 루팅하여 계속 성장하는 트리로 보기만 하면 됩니다.

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

블록체인을 이해하는 것은 다소 어렵지만(개인적으로 아직 모든 것을 이해하는 것과는 거리가 멀다), 저는 Git 내부를 이해하는 것이 블록체인에 대한 근본적인 부분을 이해하는 데 확실히 도움이 되는 머클 트리를 이해하는 좋은 방법이라고 생각합니다.

질문의 내용은 다음과 같습니다.Git이 "블록체인"으로 간주되지 않는 이유는 무엇입니까?그래서 이것은 Git이 블록체인이 아니라는 의견이 널리 퍼져 있다는 것을 주장하는 것입니다(이 페이지의 제 앞에 있는 답변에 의해 설명되고 입증된 주장). 그리고 이 의견이 만연한 이유를 묻고 있습니다.이것은 좋은 질문입니다.

말 그대로 질문을 받아들이면 블록체인 용어와 개념이 '비트코인'이라는 디지털 화폐 운영의 일환으로 인기를 끌었다는 답이 나올 수 있습니다.따라서 비트코인이 어떻게 일을 하는지와 관련이 있습니다. 비트코인은 특정 임의 요구 사항을 충족하기 위해 온스를 포함한 특정 해시를 계산하기 위해 많은 컴퓨팅 능력을 사용함으로써, 주장되는 중앙 권한이 없고, 이는 "독립적"이며, 심지어 "민주적"일 수도 있습니다.그리고 나머지 쿨 에이드; 그리고 이것들이 깃에서 보이지 않기 때문에 깃은 블록체인이 될 수 없습니다, 그렇죠?그래서 그 질문은 문자 그대로 답이 될 것입니다.

이 표면적인 질문 뒤에는 또 다른 질문이 숨겨져 있습니다.블록체인이란 무엇입니까?이제 당신은 정의를 찾아서 여기에 복사할 수 있지만, 저는 몇 년 에 비트코인에 대한 팟캐스트를 들었을 때, 블록체인의 새로운 개념을 설명하려고 노력했던 것처럼 그렇게 하지 않았습니다.블록체인이 Git처럼 작동한다는 것과 나는 내 소중한 이해가 인터넷의 임의적인 주장에 현혹되도록 할 의도가 없습니다.

그렇다면 블록체인이란 무엇일까요?그 단어에 무엇이 있습니까?

"블록체인"이라는 용어의 어떤 것도 너무 많은 선행 0의 해시를 도출하기 위해 콘텐츠에 온스를 포함해야 하는 요구 사항을 전제로 하지 않습니다. (이 요구 사항은 오직 계산 능력과 궁극적으로 돈으로 블록체인을 제어할 수 있는 것입니다.)

"블록체인"이라는 용어의 어떤 것도 분산된 네트워크의 존재를 전제로 하지 않습니다.

"블록체인"이라는 용어의 어떤 것도 "중앙 권력"으로부터의 "독립"을 전제로 하지 않습니다.

블록 체인이라는 용어는 (데이터의) 블록이 서로 연결되어 있다고 가정할 뿐입니다.이제 체인이란 무엇일까요?그냥 링크야?아니요, 그것은 힘으로 물건들을 함께 묶기 위해 고안된 강한 연결고리입니다.

단순한 링크된 목록은 블록체인의 자격이 없습니다. 목록에 있는 데이터 청크의 내용이 변경될 수 있지만 목록은 앞뒤로 계속 연결될 수 있기 때문입니다.이것은 체인이 작동하는 방식이 아닙니다.

데이터 블록을 데이터 블록 체인으로 연결하려면 블록의 내용을 어떤 식으로든 체크섬(소화)해야 하며 이 체크섬(소화)은 링크의 일부여야 하며, 이 체크섬(소화)은 콘텐츠를 보호하여 콘텐츠가 변경되지 않도록 하는 강력한 링크가 되어야 합니다.이것은 블록체인입니다.

이것이 Git이 하는 일입니다. 따라서 Git은 블록체인이거나, 당신이 원한다면 하나로 작동합니다.

원을 닫으려면 다시 한 번 묻습니다.Git이 "블록체인"으로 간주되지 않는 이유는 무엇입니까?많은 사람들, 어쩌면 대다수의 사람들도 개념의 본질에 집중하지 않고 깜빡이는 사고에 집중하기 때문일 수 있습니다.

블록체인은 단순히 어떤 블록의 체인이 아닙니다.

블록체인은 두 개 이상이 전용될 때 메인 체인을 결정하는 방법이 있고, 그 결정에 중앙 권한이 필요하지 않을 때입니다.

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

Git는 블록 체인(머클 트리)을 사용하지만, '블록체인'이라는 용어의 일반적인 사용이 의미하는 암호화 구성 요소에 대한 분산 합의가 부족합니다.

암호화폐 블록체인과 달리 git에는 p2p 신뢰할 수 없는 합의 메커니즘이 없습니다.

Git를 블록체인으로 간주하지 않을 이유가 없습니다.Git는 소스 코드라는 매우 특정한 (그리고 중요한) 자산 집합에 초점을 맞추고 있습니다.이 경우 합의는 수동이며, 트랜잭션(커밋)이 릴리스 분기에 병합될 때 수락되는 것으로 간주할 수 있습니다.실제로 거래(커밋) 횟수를 고려하면 Git이 단연 가장 성공적인 블록체인입니다.

추출 대상: https://arxiv.org/pdf/1803.00892.pdf "...우리는 "블록체인"과 "블록체인 네트워크"를 정의한 다음, 매우 다른 두 가지 잘 알려진 클래스의 블록체인 네트워크인 암호화폐와 Git 저장소에 대해 논의합니다.."

Google이 단일 모노레포를 단일 진실 소스(기본적으로 블록체인)로 사용하는 이유를 설명하는 다음 문서도 참조하십시오.https://research.google/sshot/sshot45424/

요약하자면 (나를 위해):

Git은 당신에게 완전한 선택의 자유를 제공하지만, 블록체인은 당신이 다른 사람들을 믿을 수밖에 없는 매우 정치적인 시스템입니다.

  • Git는 사전 정의된 합의 알고리즘이 없는 Merkle Tree입니다.

  • 블록체인은 사전 정의된 합의 알고리즘을 가진 머클 트리입니다.

따라서 당신이 혼자라면 Git와 블록체인 사이에 차이가 없습니다.Git과 당신 자신을 신뢰할 때, 당신은 이미 사전 정의된 합의를 가지고 있습니다.

하지만 네트워크에 있으면 상황이 달라지기 시작합니다.


주의:

  • 블록체인의 경우 해시를 계산하기 어렵거나 "마이닝"과 같은 것을 정의하거나 특정 네트워크에 참여하도록 보장하는 특정 소프트웨어를 보유할 필요가 전혀 없습니다.
    이 모든 것이 비트코인(일반적으로 암호화폐로 지칭되며 완전히 동의할 수는 없습니다)과 같은 것에 대한 요구사항일 수 있지만, 비트코인이 블록체인이 무엇인지 정의하지도 않고, 블록체인이 비트코인과 같은 것일 필요도 없습니다.

  • 합의 알고리즘이 반드시 일부 암호화 프로토콜을 기반으로 하는 것은 아닙니다.예를 들어 매일 지역 신문에 TIP를 게재하여 Git를 블록체인으로 사용하는 것으로 충분합니다.

Git는 다음 중에서 선택할 수 있는 다양한 합의 알고리즘을 쉽게 제공합니다.

  • SHA를 신문 등에 게재(배포되고 위조하기 어려운 것)

  • 이미 일부 GnuPG Web Of Trust의 일부인 경우 서명된 커밋(또는 서명된 태그)을 사용하여 합의에 동의할 수 있습니다.

  • "Signed off:" 변형은 암호적으로 안전한 합의를 제공하지 않지만, Gerrit 및 Fast-Forward-Only와 같은 것과 결합하여 상당히 잘 정의된 합의 알고리듬입니다.

따라서 Gita를 블록체인으로 만들기 위해서는 공기만 추가하면 됩니다.


일부 다른 견해:

Git는 그 자체로 블록체인이 아닙니다.대조적으로, 그것은 블록체인보다 훨씬 적고(사전 정의된 합의 알고리즘이 부족함) 블록체인보다 훨씬 더 많습니다(복수의 합의 알고리즘을 선택할 수 있도록 허용하며, SCM 등으로 의미됨).


일부 다른 관측치:

  • Git 분기는 블록체인 분할과 동일합니다.드물게 의 Git 더 분기를 .master+HEAD) 비트코인이 분할된 것보다.

  • Git는 항상 여러분이 수행한 명확한 합의, 즉 여러분이 추진하는 TIP를 가지고 있습니다.그러나 이는 귀하와 다른 누구에게도 적용되지 않습니다.
    Git 저장소를 일부 공유 Git 서비스에 푸시하는 것도 합의로 볼 수 있습니다.그러한 합의가 민주당 원칙에 기초할 필요는 없습니다.


매우 개인적인 생각:

블록체인은 과장된 유행어이고, 여러분이 없이도 행복하게 살 수 있는 것이지만, Git은 여러분이 없이는 살 수 없는 기본적인 필수품 중 하나인, 여러분의 일을 완수하기 위한 불가피한 기본적인 도구입니다. 공기와 물만큼 중요한 것입니다.이것이 아마도 저와 같은 사람들이 Git를 블록체인이라고 부르지 않는 이유일 것입니다.

YMMV

스포크의 말처럼:

Git 및 블록체인은 둘 다 Merkle Tree를 사용하여 순서가 지정된 타임스탬프 트랜잭션을 저장하기 때문에 유사하게 나타납니다.머클 트리는 각 노드에 하위 항목의 레이블을 포함하는 내용의 암호화 해시 값으로 레이블이 지정된 트리 데이터 구조입니다.

번째 차이점은 해시 함수입니다.블록체인은 매우 비싼 해시 기능을 가지고 있어서 각 블록을 채굴해야 하는 반면, Git "블록"은 간단한 커밋 메시지로 만들 수 있습니다.

비트코인의 목적은 거래 순서에 신뢰를 추가하는 것입니다.가장 긴 체인에 초점이 맞춰져 있습니다. 계산 비용이 가장 많이 들기 때문에 사실일 가능성이 가장 높기 때문입니다.

Bitcoin은 해시가 특정 매개 변수(특정 숫자의 0으로 시작)를 충족하도록 요구하고, 만족스러운 해시가 발견될 때까지 메시지의 값("논스")을 증가시킴으로써 이를 달성합니다.이 작업은 한 번만 확인하면 되지만 한 번만 확인할 수 있습니다. 여러 개의 nons가 만족스러운 해시를 생성하면 한 번은 더 낮아지며 진실로 간주됩니다.다른 인증 체계는 네트워크 계약 또는 다른 방법으로 투표된 기관에 해시를 중앙 집중화하여 신뢰할 수 있도록 합니다.

블록체인 데이터는 트랜잭션으로 제한되며, 트랜잭션은 유효성 검사를 준수해야 합니다.다음 블록에 포함하려면 트랜잭션이 유효해야 합니다.비트코인 거래는 화폐 가치의 교환과 같이 이 이체를 기록하기 위해 비싼 블록을 사용하는 것을 정당화하는 현실 세계에서 중요한 것에 해당합니다.우리는 실제로 최종 원장에 대해 신경쓰지 않습니다. 그것은 현실 세계에서 무엇인가에 대한 은유입니다.

대조적으로 Git 블록은 임의이며 커밋에는 임의의 양의 데이터가 포함될 수 있습니다.Git 저장소의 존재에 의해 검증되는 최종 제품에 관심이 있기 때문에 Git 트리로 구성되는 데이터의 변화에 그 가치가 있습니다.

Git의 목적은 저렴한 "원장"이 여러 제품 대안을 추적할 수 있도록 하는 것입니다.Git의 "대장"은 우리가 관심을 갖는 최종 제품입니다. 트랜잭션 데이터는 제품이 어떻게 만들어졌는지만 기록합니다.우리는 여러 버전의 최종 제품을 만드는 것을 매우 저렴하게 만들고 싶습니다. 제작자가 어떻게 이 제품을 만들었는지 기록해야 할 정도의 간접비만 있으면 됩니다.데이터에 대한 명시적인 검증은 수행되지 않으며, 최종 제품이 좋아 보이면 유지 관리하며, 이러한 존재는 이 제품의 생성 체인을 갖는 것을 유용하게 만듭니다.최종 제품이 불량하거나 커밋 순서가 올바르지 않으면 가비지 수집 중에 이 "장부"가 삭제됩니다.

두 번째 차이점은 블록체인 트랜잭션이 이전의 유효한 소스에서 나와야 한다는 것입니다.Git에서는 트리를 확장하는 데 어떤 데이터를 사용하든 상관하지 않습니다.블록체인에서 트랜잭션은 이전의 유효한 소스에서 와야 합니다.그런 의미에서, Git는 우리 환경의 확장을 추적하는 반면, 블록체인은 폐쇄적인 환경 내에서 가치의 교환을 추적합니다.

두 가지 모두 머클 트리를 데이터 구조로 사용하지만 목표는 블록체인과 깃에 대해 다릅니다.

A blockchain는 일반적으로 노드 간 통신을 위한 프로토콜을 준수하고 새로운 블록을 검증하는 피어 투 피어 네트워크에 의해 관리됩니다.기록된 블록의 데이터는 모든 후속 블록을 변경하지 않고는 소급하여 변경할 수 없으므로 네트워크 다수의 동의가 필요합니다.

비트코인 백서에 따르면:

순수한 P2P 버전의 전자 현금은 금융 기관을 거치지 않고 한 당사자에서 다른 당사자로 온라인 결제를 직접 보낼 수 있습니다.디지털 서명은 솔루션의 일부를 제공하지만, 이중 지출을 방지하기 위해 신뢰할 수 있는 타사가 여전히 필요한 경우 주요 이점을 잃게 됩니다.우리는 피어 투 피어 네트워크를 사용하여 이중 지출 문제에 대한 해결책을 제안합니다.네트워크는 트랜잭션을 지속적인 해시 기반 작업 증명 체인으로 해시하여 작업 증명을 다시 수행하지 않고는 변경할 수 없는 레코드를 형성하여 타임스탬프를 기록합니다.가장 긴 체인은 목격된 일련의 이벤트에 대한 증거일 뿐만 아니라 가장 큰 CPU 전력 풀에서 왔다는 증거이기도 합니다.CPU 전력의 대부분이 네트워크 공격에 협조하지 않는 노드에 의해 제어되는 한, 가장 긴 체인을 생성하고 공격자를 앞지를 것입니다.네트워크 자체에는 최소한의 구조가 필요합니다.메시지는 최선을 다해 브로드캐스트되며, 노드는 네트워크를 떠났다가 다시 가입할 수 있으며, 가장 긴 작업 증명 체인을 사용하지 않은 동안 발생한 작업에 대한 증거로 받아들입니다.

하는 동안에Git는 소프트웨어 개발 중 소스 코드의 변경 사항을 추적하기 위한 분산 버전 제어 시스템입니다.프로그래머 간의 작업을 조정하도록 설계되었지만 파일 집합의 변경 사항을 추적하는 데 사용할 수 있습니다.이 솔루션의 목표에는 속도, 데이터 무결성 및 분산된 비선형 워크플로우 지원이 포함됩니다.

Linus Torvalds에 따르면:

여러 가지 방법으로 Git를 파일 시스템으로 볼 수 있습니다. 컨텐츠 주소 지정이 가능하고 버전 관리라는 개념이 있지만, 저는 파일 시스템 담당자의 관점에서 문제를 해결하기 위해 설계했습니다(커널이 제가 하는 일입니다). 그리고 저는 전통적인 SCM 시스템을 만드는 것에 전혀 관심이 없습니다.

주어진 기술을 이해하는 좋은 방법은 "그것이 어떤 문제를 해결하는가?"라고 묻는 것입니다.Git의 사용 사례는 버전 제어/소스 코드 제어를 위한 것이라는 점에서 매우 간단합니다.

깃이 무엇입니까?

"Git는 소규모 프로젝트에서 초대형 프로젝트에 이르기까지 모든 것을 신속하고 효율적으로 처리할 수 있도록 설계된 자유 및 오픈 소스 분산 버전 제어 시스템입니다."https://www.git-scm.com/ 을 참조하십시오.

따라서 해결하고자 하는 사용 사례 문제가 "분산 버전 제어"임이 분명합니다.그것이 전부, 그 이상도 이하도 아닙니다.이것에 대한 많은 증거들은 쉽게 구할 수 있습니다.

"버전 제어(소스 제어 또는 리비전 제어라고도 함)는 코드 및 기타 파일에 대한 변경 사항을 추적하고 관리하기 위한 중요한 소프트웨어 개발 관행입니다.소스 코드 관리와 밀접한 관련이 있습니다." gitlab 소스

블록체인이란 무엇입니까?

"블록체인은 모든 디지털 자산의 기록을 투명하고 변경 불가능하게 만드는 P2P 분산 원장 기술로, 타사 중개인이 개입하지 않고도 작동합니다.확장 가능한 방식으로 위험과 부정 행위를 줄일 수 있는 기능으로 인해 대중의 많은 관심을 받고 있는 새롭고 혁신적인 기술입니다." blockchain-council.org

이전 답변에서 이미 설명한 블록체인의 기술적 세부 사항(즉, 마이닝, 분산 네트워킹)을 반복하지 않고 간단히 말해 블록체인은 Git가 해결한 문제와는 전혀 다른 문제에 대한 해결책입니다.

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

반응형