아하
생활
싹싹한솔개174
싹싹한솔개174
19.08.08

블록체인 변조 여부는 어떻게 알아챌 수 있나요?

블록체인 변조 여부는 어떻게 알아챌 수 있나요?

누군가 악의적인 목적으로 블록체인을 변조했다면

변조 여부에 대해 어떻게 체크할 수 있는지 궁금합니다.

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

    블록체인의 거래 내역이 위, 변조되었다고 할 때 그것은 블록 헤드에 포함된 머클루트 해시 값을 통해 변조 여부를 확인할 수 있습니다.

    머클루트에 대해 설명을 드리기 전에 우선 머클트리에 대한 설명부터 드리도록 하겠습니다. 머클트리(Tree)는 여러 거래 내역을 두 개씩 묶어 암호화(SHA256)하여 해시값으로 나타내는 과정을 계층적으로 반복함으로써 더 높은 층위로 갈수록 거래내역이 하나로 축약되어 가는 것이 마치 나무 모양과 같은 것을 일컫습니다. 그리고 최종적으로 모든 거래 내역이 포함된 하나의 해시값으로 나타나 있는 정보를 '머클루트(Root)'라고 부릅니다. 이것이 앞서 살펴 본 것처럼 해시 값으로 블록 헤더에 저장됩니다.

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

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

    1. [ㅁ]

    2. [ㅁ ㅁ]

    3. [ㅁ ㅁ] [ㅁ ㅁ]

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

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

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

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

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

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