목적
이 글에서는 해쉬가 블록들을 어떻게 연결해주는지, 그리고 트랜잭션의 합법성을 어떻게 증명하는지에 대해 자세히 설명합니다.
참고 정보
이 글에서는 여러분이 아래 글에 기술된 내용을 이해하고 있다고 가정합니다.
요약
블록체인에서 블록들을 함께 연결하려면, 이전 블록과 다음 블록을 반박의 여지없이 연결해 주는 식별자가 필요합니다. 이러한 목적을 달성하는 숫자를 해쉬라고 부릅니다. 해쉬에는 "다음" 해쉬가 있고, "이전" 해쉬가 있습니다. "다음" 해쉬는 현재 블록의 논스와 트랜잭션, "이전" 해쉬를 고려하여, 이들을 모두 알고리즘에 따라 돌린 다음, 데이터 누적을 나타내는 매우 긴 숫자를 생성해냅니다. 해쉬는 블록의 데이터를 복소수 형식으로 요약한 것이라 생각할 수 있습니다. 현재 블록의 "이전" 해쉬는 이전 블록의 "다음" 해쉬와 동일합니다.
이렇게 하면 한 블록의 요약(다음 해쉬)이 다음 블록의 시작이 되고, 동시에 "이전" 해쉬로 기록되는 시스템이 생성됩니다. 이 시스템을 사용하면, 블록이 작성된 후 블록의 어떤 부분도 변경할 수 없습니다. 하나의 트랜잭션을 +1.00에서 +1.01로 살짝만 변경하더라도, 현재 블록의 "다음" 해쉬가 완전히 변경되어 다음 블록의 "이전" 해쉬와 일치하지 않게 됩니다. 블록체인은 이러한 설계에 따라 완전한 불변성을 유지하고, 네트워크들은 블록을 체인에 업로드하기 전에 해당 블록의 적합성을 확인할 수 있습니다. 또한, 해쉬는 "서명된" 것으로 간주될 수 있습니다. 0x0000과 같이 지정된 수열로 시작하기 때문입니다. 이를 위해서는 지정된 수열로 시작되는 "다음" 해쉬가 생성되도록 다른 유형의 논스를 계산해야 합니다. 논스에 대해서는 다음 글에서 자세히 설명합니다: [블록체인 상식] 논스