아하
생활

생활꿀팁

목마른돼지239
목마른돼지239

머클트리(Markle Tree)가 정확히 어떤것을 의미하나요?

블록체인관련 문서를 읽다가 머클트리라는 용어를 발견하였는데요.

검색해봐도 자세히 이해하기 힘들어 이곳 아하 전문가님께 문의드립니다.

머클트리(Markle Tree)가 정확히 어떤것을 의미하나요?

답변 부탁드립니다. 감사합니다.

    55글자 더 채워주세요.
    3개의 답변이 있어요!
    • 까칠한담비242
      까칠한담비242

      머클트리(Tree)는 여러 거래 내역을 두 개씩 묶어 암호화(SHA256)하여 해시값으로 나타내는 과정을 계층적으로 반복함으로써 더 높은 층위로 갈수록 거래내역이 하나로 축약되어 가는 것이 마치 나무 모양과 같은 것을 일컫습니다. 그리고 최종적으로 모든 거래 내역이 포함된 하나의 해시값으로 나타나 있는 정보를 '머클루트(Root)'라고 부릅니다.

      즉, 어떤 책의 내용이 있다고 할 때 해당 내용을 두 페이지씩 계속해서 부분 부분 요약해 가면서 합쳐나감으로써 한장 짜리 요약본을 만드는 것과 비슷하다고 할 수 있습니다.

      이 머클루트의 경우 블록 헤더의 정보에 포함되게 되는데요, 머클 트리가 거래를 두 개씩 해시하여 층위를 나눠 만들어진다고 할 때 한 층위가 올라 갈 때마다 거래의 수는 절반으로 줄어들게 됩니다. 아래 그림을 참고로 해 주시면 좋을 듯합니다.

      1. [ㅁ]

      2. [ㅁ ㅁ]

      3. [ㅁ ㅁ] [ㅁ ㅁ]

      4. [ㅁ ㅁ] [ㅁ ㅁ] [ㅁ ㅁ] [■ ㅁ]

      이렇게 머클트리를 활용하게 되면 아무리 거래 내역이 많다고 하더라도 원하는 정보를 쉽게 찾을 수 있습니다. 블록에 포함된 머클 루트에 모든 거래 내역이 해시화되고 압축되어 있으므로 이 머클루트로 머클트리가 몇 개의 거래 내역으로 어떻게 구성되어 있는지 구조를 손쉽게 파악할 수 있습니다. 이렇게 되면 특정 거래 내역을 검색하기 위해서 마치 사다리 타기를 하듯이 빠르게 정보를 찾을 수가 있게 됩니다.

      예를 들어 위의 그림에서 '■'에 해당하는 거래 정보를 찾는다고 할 때 머클루트의 정보가 있기 때문에 일일이 모든 거래 내역을 뒤지지 않고서도 1번 머클루트에서 시작하여 '2단계 -> 3단계 -> 4단계 ■'까지 사다리 타기 처럼 내려가서 3단계만 거친다면 거래내역 ■를 손쉽게 찾을 수 있게 되는 것입니다.

      끝으로 이 머클트리 구조와 블록 헤더에 포함된 머클 루트를 활용하여 거래 내역을 빠르고 손쉽게 검증할 수 있습니다. 왜냐하면 어떤 블록의 거래 내역이 조작되었다고 한다면 머클루트에서 시작하여 해당 거래 내역까지 도달하려고 할 때 그 과정에서 최종 해시 값에 차이가 생기기 때문입니다.

      즉, 어떤 책을 부분 부분 요약하여 하나로 합쳐 가며 한 페이지 짜리로 만들어 두었을 경우에 그 한 페이지의 내용부터 시작해서 책의 원문 내용으로 올라간다고 할 때 예전에 부분 부분으로 요약된 정보와 책의 원문 내용이 다르다면 그 책의 원문이 수정되었다는 것을 쉽게 파악할 수 있는 것과 비슷하다고 할 수 있습니다.

      답변이 도움이 되길 바랍니다.

    • 안녕하세요. 머클트리에 대하여 답변드리겠습니다

      • 머클트리(Merkle Tree)란?

        • 블록에서 저장된 트랜잭션들의 해시트리를 말합니다. (토너먼트와 같은 구조)

        • 수 많은 거래내용을 해시함수를 사용해 압축하고 인접 노드끼리 더한 다음 다시 압축하여 과정을 거치게 됩니다.

        • 머클트리의 장점

          • 거래량이 기하급수적으로 늘어나도 구조가 간단한 트리구조로 되어 있기 때문에 특정거래를 쉽게 찾을 수 있습니다.

          • 거래의 위변조를 방지할 수 있고 빠르게 찾을 수 있습니다.

          • 이를 통해 용량이 줄어들게되어 서버의 부담이 적어 풀노드 뿐만 아니라 라이트 노드에서도 충분히 사용할 수 있습니다.

      감사합니다.

    • 안녕하세요. 머클트리는 블록체인 기술을 이용하는 암호화폐에 있어 중요한 역할을 합니다. 머클트리에 대해서 이해를 하시려면 머클루트에 대해서도 이해를 하셔야 합니다. 머클트리는 블록 내 저장된 트랜잭션 중 최초의 트랜잭션을 SHA-256 형태의 해쉬값으로 변환시킨 뒤 알고리즘 순에 의해 가장 가까운 노드 2개를 한쌍으로 묶어 합친 뒤 또 해쉬로 값을 변환하고 이 과정을 반복하여 마지막 하나가 남을 때까지 반복하게 됩니다. 그럼 하나의 블록 내에 모든 트랜잭션을 합친 해쉬값이 나오는데 이 값을 머클루트라고 합니다.

      머클트리를 생성하게 되면 데이터의 간편하고 확실한 인증이 가능해 집니다. 블록체인의 전체 정보를 저장하면 필요한 용량이 많아서 라이트노들은 블록체인의 정보를 머클트리를 이용한 머클루트 값만 가지게 됩니다. 한가지 해쉬로 생성된 머클루트 값은 64자를 가지고 있으며, 머클루트 값 하나만 가지게 되므로 다양한 디바이스들이 노드로 참여할 수 있어서 보안적인 측면에서도 좋아지게 되죠. 그리고 검증을 빠르고 확실하게 할 수 있게 됩니다.