머클 트리 가이드

블록 체인 기술에 대해 논의 할 때 머클 트리에 대해 들어 보셨습니까? 머클 트리가 기술 자체의 핵심이기 때문입니다.. 

그래서 정확히 무엇입니까?

이 기사에서는 머클 트리를 심층적으로 살펴보고 블록 체인 기술을 성공으로 이끄는 역할을 이해합니다..

시작하자.

 

머클 트리 란??

Merkle 트리는 대규모 콘텐츠 풀에서 데이터를 안전하게 확인하는 데 사용되는 데이터 구조입니다. 또한 데이터를 검증 할 때 효율적이고 일관 적입니다..

Ethereum과 Bitcoin은 모두 Merkle Tree를 사용합니다..

문제 : 중앙 집중식 네트워크의 핵심에서 데이터는 단일 복사본에서 액세스 할 수 있습니다. 즉, 데이터를 저장하거나 액세스하기 위해 많은 일을 할 필요가 없습니다. 그러나 분산 형 블록 체인 네트워크의 경우 각 데이터가 노드간에 복사되므로 문제가 발생합니다. 따라서 데이터에 효율적으로 액세스하는 것은 어려운 일입니다. 문제는 또한 데이터의 복사본을 만들어 노드간에 공유하는 것입니다. 또한 각 수신 노드에 대해 공유 데이터를 확인해야합니다..

해결책: 머클 트리는 분산 형 블록 체인이 데이터를 공유하고 검증하며 신뢰할 수 있도록합니다. 데이터를 공유하고 확인하는 데 많은 처리 능력이 필요하지 않은 방식으로 데이터를 구성합니다. 또한 해시 기능 및 암호화를 사용하여 안전한 트랜잭션을 용이하게합니다..

Satoshi Nakamoto는 Bitcoin을 통해 블록 체인 기술에서 Merkle 트리를 구현 한 최초의 사람입니다. 그의 사용은 중앙 집중식 권한이 필요하지 않은 컴퓨터 과학의 새로운 분야를 열었습니다. 그는 또한 머클 트리를 과도하게 사용하고 패스트 머클 트리를 사용했습니다..

그러나이 개념은 1979 년에 특허를받은 Ralph Merkle에 의해 처음 소개되었습니다..

Hyperledger Cactus : 새로운 Hyperledger 프레임 워크도 읽어보세요.


암호화 해시 함수

머클 트리에 대해 논의하기 전에 암호화 해시 함수를 더 잘 이해해야합니다..

해시 함수는 모든 길이의 임의 데이터 형식을 고정 된 크기의 출력에 매핑하는 역할을합니다. 암호화 기능이므로 암호화에 널리 사용됩니다..

해시 함수는 효율적이며 하나의 속성으로 알려져 있습니다. 즉, 함수를 되돌릴 수 없습니다. 이 방식으로 만 작동하도록 설계된 단방향 기능입니다.. 

해싱은 다음을 포함하여 여러 용도로 사용됩니다.

  • 비밀번호 보안
  • 파일 무결성 검사 및 확인
  • 암호 화폐

MD (Message Direct), SHF (Secure Hash Function) 및 RIPE Message Direct (RIPEMD)를 비롯한 여러 해시 패밀리가 있습니다..

SHA256 해시 알고리즘을 사용하고 101Blockchains를 입력으로 전달하면 다음 출력이 표시됩니다.

fbffd63a60374a31aa9811cbc80b577e23925a5874e86a17f712bab874f33ac9

요약하자면 해시 함수의 주요 속성은 다음과 같습니다.

  • 결정 론적
  • 사전 이미지 방지
  • 계산 효율성
  • 리버스 엔지니어링 불가
  • 충돌 방지

암호화 해시 함수에 대해 자세히 알아 보려면 여기에서 자세한 문서를 확인하세요. 

머클 트리의 작동 원리?

이제 해시 함수에 대해 어느 정도 이해 했으므로 이제 머클 트리에 대해 자세히 알아볼 차례입니다..

따라서 기술적으로 Merkle 트리는 리프가 아닌 노드가 해당 자식 노드의 해시 값으로 정의되는 데이터 구조 트리입니다..

이것은 또한 Merkle 트리가 리프 노드가 가장 낮은 노드 인 곳에서 반전된다는 것을 의미합니다.. 

전달하려는 내용을 더 잘 이해하기 위해 Merkle 트리 예제를 살펴 보겠습니다.

출처 : Wikipedia

머클 트리의 핵심에서 우리는 세 가지 중요한 용어를 배워야합니다. 다음과 같습니다.

  • 머클 루트
  • 리프 노드
  • 리프가 아닌 노드

Merkle 트리를 전체적으로 보면 거꾸로 된 트리입니다. 트리는 자체적으로 전체 트랜잭션 집합을 요약 할 수 있습니다. 이는 사용자가 트랜잭션이 블록의 일부인지 여부를 확인할 수 있음을 의미합니다..

머클 트리를 작동시키기 위해 해싱이 사용됩니다. 해시 값이 하나만 남을 때까지 노드의 해싱 쌍을 반복적으로 수행합니다. 왼쪽 해시 값은 다음과 같습니다. 머클 루트 또는 루트 해시. 트리는 개별 트랜잭션 해시를 사용하여 상향식으로 생성됩니다. 개별 트랜잭션 해시는 트랜잭션 ID라고도합니다.. 

리프 노드는 트랜잭션 데이터 해시를 포함하는 노드입니다. 리프가 아닌 노드의 경우 이전 두 해시의 해시를 저장합니다..

머클 트리의 또 다른 중요한 속성은 본질적으로 이진이라는 것입니다. 즉, 작동하려면 리프 노드가 균등해야합니다. 만약 홀수 개의 리프 노드가 있다면 그것은 단순히 마지막 해시를 복제하여 균등하게 만들 것입니다..

 

예를 들어 이해하려고 노력합시다.

머클 트리 예

여기에서 블록에서 4 개의 트랜잭션이 발생했음을 알 수 있습니다. 이러한 트랜잭션의 이름은 X, Y, Z 및 W입니다. 트랜잭션은 해시 된 다음 Hash X, Hash Y, Hash Z 및 Hash W라는 이름의 리프 노드에 저장됩니다..

완료되면 해시 X, Y, Z 및 W의 리프 노드가 다시 해시되고 XY 및 ZW의 결합 된 해시로 생성됩니다. 마지막으로이 두 해시는 머클 루트 또는 루트 해시를 만드는 데 사용됩니다..

해싱의 전체 프로세스는 분산 된 네트워크의 경우 Merkle Trees 데이터 구조를 유용하게 만드는 매우 큰 데이터 세트에서 수행 될 수 있습니다..

앞서 논의했듯이 해싱 알고리즘 사용은 구현에 따라 다릅니다. 그러나 사용되는 가장 일반적인 해시 함수 중 하나는 SHA-2 암호화 해시 함수를 포함합니다.. 

따라서 해시 값 덕분에 이전 트랜잭션이 확인 가능한 경우 트랜잭션을 확인할 수 있습니다..

 

데이터 무결성이란??

머클 트리는 데이터 무결성에 이상적입니다. 또한 검증 가능성을 확인하기 위해 전체 트랜잭션을 수행 할 필요가 없습니다. 블록 헤더에 저장된 정보를 사용하여 트랜잭션을 확인할 수 있습니다. Merkle 루트 값도 이전 트랜잭션에 따라 변경됩니다..

이는 또한 루트 값이 자주 변경되고 거의 즉시 트랜잭션을 확인하는 데 사용할 수 있음을 의미합니다.. 

이 모든 것이 해시 목록과 약간 비슷하게 들릴 수 있지만 사실이 아닙니다. 해시 목록의 경우 전체 목록을 다운로드하여 거래 또는 데이터를 확인해야합니다..

머클 트리의 경우 브랜치를 다운로드하여 거래를 확인할 수 있습니다..

트랜잭션을 확인하기 위해 전체 트리를 다운로드 할 필요가 없습니다. 이것은 또한 전체 트리가 네트워크 전체에서 트랜잭션을 확인하는 데 사용할 수있는 작은 데이터 블록으로 나눌 수 있음을 의미합니다. 개념은 다음과 같이 알려져 있습니다. 머클 증명.

Merkle tree python (Python의 Merkle 트리 구현)을 확인할 수도 있습니다. 조.

 

비트 코인에서 머클 트리가 작동하는 방식

비트 코인은 머클 트리를 효과적으로 사용한 최초의 암호 화폐였습니다. 해시 값이 보호되고 쉽게 되돌릴 수 없도록하기 위해 유명한 Secure Hashing Algorithm SHA-256을 사용합니다. 이것은 또한 해시 값 출력이 256 비트 길이임을 의미합니다. 핵심에서 Merkle 트리는 데이터를 저장하고 트랜잭션을 정리하는 데 사용됩니다..

또한 블록 체인을 시작하는 방법을 읽어보세요.

비트 코인에서 각 블록은 해시 값을 사용하여 이전 블록에 연결됩니다. 이것이 전체 블록 체인이 생성되는 방법입니다. 블록에는 다음과 같은 중요한 정보를 포함하는 블록 헤더가 있습니다.

  • 머클 루트 해시
  • 블록 버전 번호
  • 타임 스탬프
  • 목하
  • 채굴 난이도 대상
  • 이전 블록 해시

더 나은 이해를 위해 아래 다이어그램을 살펴 보겠습니다. 그것은에서 가져옵니다 비트 코인 백서 그 자체.

캡션 : 비트 코인의 머클 트리

보시다시피 채굴자가 거래를 블록에 포함해야합니다. 완료되면 해시되고 Merkle 트리의 일부가됩니다..

이러한 방식으로 머클 트리를 사용하면 여러 가지 이점을 얻을 수 있습니다. 여기에는 SPV (Simple Payment Verification)라는 주목할만한 혜택이 포함됩니다. 이러한 SVP는 경량 클라이언트라고도 할 수있는 노드입니다. 그래서 그들은 무엇을합니까? 가장 긴 체인 블록 헤더 만 다운로드하므로 전체 블록 체인을 다운로드 할 필요가 없습니다. 이 모든 작업을 수행하려면 가장 긴 체인에 대해 저장된 블록 헤더가 있는지 확인해야합니다. 이것이 머클 트리 구현이 비트 코인에서 수행되는 방법입니다..

결국 SPV는 Merkle Proof of Map을 사용하고 Merkle 트리의 루트 해시를 사용하여 트랜잭션을 확인할 수 있습니다.. 

이더 리움에서 머클 트리를 사용하는 방법

이더 리움 블록 체인은 머클 트리도 활용합니다. 그러나 여기에서의 접근 방식은 비트 코인을 활용하는 방식과 다릅니다. 이더 리움에서는 Merkle 트리의 복잡한 버전 인 Merkle Patricia Tree가 사용됩니다. Ethereum이 Turing-complete이기 때문에 가능합니다..

Ethereum에서 Merkle 트리가 작동하는 방식에 대해 자세히 알아 보려면 자세한 게시물을 확인하십시오. 여기.

기타 머클 트리 구현 : 사용 사례

물론 다른 머클 트리 구현도 있습니다. 가장 인기있는 것 중 하나는 분산 버전 제어 시스템 인 Git입니다. 전 세계의 프로그래머가 프로젝트를 관리하는 데 사용합니다.. 

또 다른 유용한 구현은 행성 간 파일 시스템 — P2P 분산 프로토콜. 또한 오픈 소스이며 컴퓨팅 장치가 유비쿼터스 파일 시스템을 결합하고 사용할 수 있도록합니다..

인증 기관조차도 Merkle 트리를 활용합니다. 검증 가능한 인증서 투명성 로그를 생성하기 위해 메커니즘에서 사용합니다. 로그가 거대하기 때문에 Merkle 트리를 사용하면 컴퓨터가 너무 많은 시간과 노력을 낭비하지 않고이를 확인할 수 있습니다..

우리가 논의 할 마지막 사용 사례는 Amazon DynamoDB 및 Apache Cassandra와 같은 데이터베이스 시스템입니다. 이러한 No-SQL 분산 데이터베이스는 데이터 복제 프로세스 중에 Merkle 트리를 사용하여 불일치를 제어합니다. 문제가있는 경우 엔트로피 방지 복구 프로세스를 사용하여 데이터를 업데이트하거나 복구 할 수 있습니다..

간단히 말해서 머클 트리의 사용 사례는 다음과 같습니다.

  • 데이터 동기화
  • 데이터 검증
  • 일관성 검증

머클 트리의 장점

이 섹션에서는 Merkle 트리의 이점에 대해 간략히 살펴 보겠습니다..

  • 데이터 무결성 확인 : 데이터의 무결성을 검증하는 데 효과적으로 사용할 수 있습니다..
  • 적은 디스크 공간을 차지합니다. 머클 트리는 다른 데이터 구조에 비해 디스크 공간을 거의 차지하지 않습니다..
  • 네트워크 전반에 걸친 작은 정보 : 머클 트리는 검증을 위해 작은 정보로 나눌 수 있습니다..
  • 효율적인 검증 : 데이터 구조는 효율적이며 데이터의 무결성을 확인하는 데 시간이 걸립니다..

결론

머클 트리는 컴퓨터 과학에서 중요한 개념 중 하나입니다. 많은 사용 사례에서 널리 사용되며 암호 화폐에서의 사용으로 인해 혁신적인 기술인 블록 체인이 탄생했습니다..

그렇다면 머클 나무에 대해 무엇을 알고 있습니까? 아래에 댓글을 달고 알려주세요..

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me
Like this post? Please share to your friends:
Adblock
detector
map