블록체인(Blockchain) 용어 알아보기
비트코인이 개발되면서 암호화폐를 원활하게 유통하고 활용하기 위한 시스템이 필요했습니다. 그래서 비트코인 창시자인 나카모토 사토시가 ‘믿을 수 없는 개인 대신’ ‘믿을 수 있는 네트워크’ 시스템을 제안했는데, 그것이 바로 블록체인입니다.
비트코인만큼이나 많이 알려진 용어인데, 제대로 아는 일반인은 많지 않습니다. 비트코인이 블록체인이라고 생각하는 사람도 꽤 많습니다. 솔직히 ‘체인’과 같은 이미지처럼 다양한 용어가 얽혀 있습니다. 이제부터 얽히고설켜 있는 체인을 풀어보겠습니다.
우선, 블록체인(Blockchain)
P2P 네트워크에 참여하는 모든 노드(node)에 의해 거래 내용이 공유된 공개된 분산 원장(元帳)을 말합니다. 거래 내용이 담긴 블록이 사슬처럼 연결돼 있습니다. 첫 번째 블록은 제네시스 블록이라고 하며, 이후 계속 블록이 추가돼 현재의 블록까지 잇따라 연결돼 있습니다.
블록(Block)은 뭐지?
일정 기간, 비트코인을 기준으로 할 때 약 10분 동안 이뤄진 거래를 담은 공간입니다. 블록에는 당연히 거래 내용과 타임스탬프, 그리고 이전 블록의 해시값이 표시돼 있습니다. 블록은 채굴자들의 작업증명을 거쳐 블록체인에 추가됩니다.
제네시스 블록(Genesis block)은 시작이다
블록체인의 첫 번째 블록을 말합니다. 2009년 1월 2일, 나카모토 사토시가 제네시스 블록을 발행했습니다.
블록 헤더(Block header) 머리는 항상 중요합니다^^
블록 헤더는 블록에서 가장 중요한 데이터를 담고 있습니다. 그리고 메타데이터는 이전 블록 해시값, 난이도, 타임스탬프, 논스, 머클 트리 루트로 구성돼 있습니다.
블록 높이(Block height)는 블록체인의 성장입니다
블록 넘버로 불리기도 하는데, 제네시스 블록부터 현재의 블록까지의 높이를 나타내는 수치입니다.
주요 체인(Main chain) 어디서나 주류는 존재합니다
제네시스 블록으로부터 가장 최근의 블록까지 연결된 체인을 말합니다.
고아 블록(Orphaned block) 고아는 역시 외롭고 힘드네요
동시에 두 블록이 승인되었을 때 주요 체인에 연결되지 못한 블록을 가리키는 말입니다. 고아 블록은 체인에 연결되지도 못하고, 거래도 승인되지 못합니다.
머클 트리(Merkle tree), 나무는 역시 복잡해요
사전에서 Merkle을 검색해 봐도 뜻이 나오지 않습니다. 왜냐하면, 사람 이름이니까요. 블록 용량을 효율적으로 활용하기 위해 사용되는 데이터 구조인데, 더 많은 거래를 담기 위해 암호화해서 데이터 용량을 압축하는 방법입니다(머클 트리와 관련해서는 또 다른 장을 할애해야 합니다).
작업증명(Proof of Work) 블록체인의 핵심은 증명이죠
채굴이라고도 하며, 컴퓨팅 파워(연산력)를 투입해서 일정 시간 동안 쌓인 거래를 새로운 거래로 승인하는 작업입니다. 시간과 비용이 발생하는 작업이고 블록체인의 핵심적인 과정입니다.
난이도(Difficulty) 절대적이나 상대적인
새로운 블록을 찾는 게 얼마나 어려운지를 나타내는 상대적인 기준입니다. 난이도를 나타내는 수치는 단순하고 절대적인지만, 실제로 얼마나 많은 컴퓨팅 파워가 몰려있는가에 따라서 실질적인 난이도가 결정됩니다. 따라서 실질적으로는 상대적이라고 할 수 있습니다. 어린이한테는 무거운 짐도 어른한테는 가벼울 수 있으니까요.
블록 보상(Block reward) 작업증명에 대한 리워드(reward)죠
자신의 컴퓨팅 파워를 투입해서 가장 먼저 작업증명의 해답을 발견한 채굴자에게 주어지는 보상입니다. 블록 보상이 필요한 이유는 작업증명에는 채굴기와 전기 등의 비용이 발생하는 부분을 보상해 주기 위해서, 그리고 더 많은 채굴자를 유인하기 위해서입니다. 더 많은 채굴자가 참여해야 어려운 문제도 쉽게 해결할 수 있으니까요.
타임스탬프(Timestamp) 확실히 도장 찍어줍니다
블록의 생성 시간을 나타내는 값이고, 그 시간에 데이터가 명백하게 존재했음을 입증해 줍니다.
지금까지 블록체인의 기본적인 용어들을 살펴봤는데요, 블록체인은 블록이라는 고정성과 체인이라는 유동성을 동시에 포함하고 있는 언어인 듯합니다. 각 용어의 뜻은 단순하고 고정돼있는 듯하지만, 실제로는 각 요소가 동적(動的)으로 작동해 블록체인을 형성한다고 이해해야 합니다.