머클 트리란? 작동 원리와 비트코인에서의 역할

· 2 min read

머클 트리는 컴퓨터 과학과 암호학에서 쓰이는 데이터 구조입니다. 암호화폐 시장에서 머클 트리는 블록체인에서 해시 함수로 만들어진 거래 요약을 담는 데이터 구조를 가리킵니다. 머클 트리는 블록체인의 거래 블록을 쉽고 효율적으로 검증할 수 있게 도와줍니다. 이 글에서 머클 트리가 무엇인지에 대한 답을 찾아보실 수 있습니다.

머클 트리는 랠프 머클이 고안했습니다. 랠프 머클은 1979년 머클 트리 개념으로 특허를 받았고, 1987년에 발표한 논문 '전통적 암호화 함수에 기반한 디지털 서명'에서 이 개념을 다루었습니다. 머클 트리는 해시 값을 담고 있는, 도식 형태의 데이터 구조입니다. 머클 트리에 담긴 해시 데이터의 해시 코드는 아래에서 위로 도식처럼 배열됩니다. 머클 트리에서는 아래쪽 도식의 해시들을 서로 합해 위쪽 해시의 값이 정해집니다.

시스템 안 데이터의 무결성은 머클 트리와 도식 형태의 해시 데이터, 그리고 해시 값을 아래에서 위로 차례차례 모아 가는 과정을 통해 보장됩니다. 사람과 사람 사이, 즉 P2P로 데이터를 주고받을 때, 그리고 전송된 데이터를 검증할 때 쓰입니다. 머클 트리를 이용하면 전송된 데이터나 데이터 블록이 손상되었는지, 위조되었는지를 알아낼 수 있습니다. 이렇게 블록이 정확한지를 머클 트리로 검증할 수 있습니다.

머클 트리는 어떻게 작동할까?

머클 트리는 블록 안의 해시 값들로 이루어집니다. 머클 트리의 맨 아래에는 거래 데이터가 놓입니다. 이 데이터에 해시 함수를 돌려 해시 값(해시 코드)을 얻습니다. 그다음 해시 도식의 아래쪽 값들을 서로 합하고, 그렇게 얻은 값을 위쪽 줄에 올립니다. 이 과정을 되풀이하면서 머클 트리가 만들어집니다. 마지막에 도식의 맨 위에 남는 해시 값을 루트 해시 또는 머클 루트라고 부릅니다. 계산된 루트 해시 값은 블록에 오류가 있는지를 보여 줍니다. 루트 해시를 이루는 값들이 서로 맞지 않으면, 시스템의 알고리즘은 오류 없는 머클 루트가 만들어질 때까지 해시 함수를 계속 돌립니다.

비트코인에서 머클 트리를 쓰는 이유는?

머클 트리는 비트코인 블록체인에서 블록을 검증하려는 채굴자의 일을 한결 수월하게 해 줍니다. 비트코인 블록체인의 채굴자는 해시 함수를 돌려 블록을 검증합니다. 비트코인 블록체인에서는 데이터가 정렬되어 머클 트리에 배치됩니다. 그다음 알고리즘의 해시 함수를 돌려 루트 해시를 얻습니다. 이렇게 얻은 루트 해시는 이후의 채굴 작업에도 쓸 수 있습니다. 덕분에 채굴자는 모든 블록을 일일이 해시하는 대신 루트 해시만 해시하면서 작업을 이어 갈 수 있습니다. 머클 트리는 비트코인 외의 다른 암호화폐 블록체인에서도 같은 역할을 해 줍니다.

머클 트리 머클 루트 해시 함수 블록체인 검증 비트코인 채굴