Zelcore
Z
Zelcore TeamMulti-Asset Crypto Wallet & Web3 Ecosystem

블록과 체인은 실제로 어떻게 작동할까요?

5분 분량
블록과 체인은 실제로 어떻게 작동하는지 설명하는 이미지

편지를 써서 봉투에 넣고 봉랍으로 봉인한다고 상상해 보세요. 다음 사람이 당신의 봉랍 인장이 찍힌 봉투를 만들면, 누구나 편지가 열렸는지 한눈에 확인할 수 있습니다. 이제 백만 명이 동시에 같은 일을 하며, 각자의 봉투에 바로 앞 사람의 인장을 찍는다고 상상해 보세요. 이것이 블록체인이 작동하는 방식의 핵심입니다.

쉽게 설명하면

블록체인은 블록이라고 부르는 데이터 묶음이 차례로 이어진 구조입니다. 각 블록에는 여러 거래와 바로 앞 블록의 암호화 지문이 들어 있습니다. 이 지문을 해시라고 합니다. 모든 블록이 이전 블록의 해시를 참조하기 때문에 블록은 끊김 없는 체인을 이룹니다. 오래된 블록의 내용을 조금이라도 바꾸면 지문도 바뀌어, 그 뒤에 이어지는 모든 블록의 연결이 즉시 끊어집니다.

블록체인 지갑을 사용하기 위해 그 바탕이 되는 수학을 이해할 필요는 없습니다. 하지만 구조를 알면 암호화폐에서 자주 언급되는 주장, 즉 블록체인 기록은 영구적이라는 말이 무엇을 뜻하는지 이해하는 데 도움이 됩니다.

블록 안에는 무엇이 들어 있을까요?

모든 블록은 블록 헤더와 본문, 두 부분으로 구성됩니다.

본문은 간단합니다. 간단한 코인 전송부터 복잡한 스마트 계약 호출까지, 해당 블록에 포함된 거래 목록입니다.

체인의 작동 원리는 헤더에 담겨 있습니다. Bitcoin 블록 헤더는 정확히 80바이트이며, 다음 여섯 필드로 구성됩니다.

  1. 버전 — 이 블록에 적용되는 검증 규칙을 나타냅니다.
  2. 이전 블록 헤더 해시 — 바로 앞 블록의 지문입니다. 이 값이 블록들을 연결합니다.
  3. 머클 루트 해시 — 본문에 있는 모든 거래를 요약한 단일 해시입니다. 거래 하나라도 바뀌면 이 값도 바뀝니다.
  4. 타임스탬프 — 블록을 채굴한 시각을 유닉스 에포크 형식으로 기록합니다.
  5. nBits(난이도 목표값) — 채굴자가 풀어야 하는 퍼즐의 난이도를 간결하게 나타냅니다.
  6. 논스 — 채굴 중 채굴자가 조정하는 4바이트 임의의 숫자입니다. (자세한 내용은 아래에서 설명합니다.)

머클 루트는 거래 목록을 변조 여부를 확인할 수 있도록 봉인하는 역할을 합니다. 공격자가 3년 전 블록에 묻힌 결제 내역 하나를 몰래 수정하면 머클 루트가 바뀝니다. 그 변경 사항은 바깥으로 전파되어 결국 체인의 연결을 깨뜨립니다.

해시란 무엇이며 왜 중요할까요?

해시 함수는 1바이트부터 1기가바이트까지 어떤 입력이든 받아 고정된 길이의 출력을 만드는 수학적 알고리즘입니다. SHA-256의 출력은 항상 32바이트(256비트)이며, 64자의 16진수 문자열로 표현됩니다.

Bitcoin은 이중 SHA-256을 사용합니다. SHA256을 두 번 실행합니다. SHA256(SHA256(block_header)) 결과는 해당 블록의 고유 ID입니다.

해시 함수가 이 용도에 강력한 이유는 다음 세 가지 특성에 있습니다.

블록의 해시는 그 블록의 지문입니다. 이 값은 다음 블록 헤더의 ‘이전 블록 해시’ 필드에 들어가 두 블록을 영구적으로 연결합니다.

체인은 블록을 어떻게 연결할까요?

이것이 바로 ‘블록체인’이라는 이름이 붙은 이유입니다. 각 블록 헤더에는 바로 앞 블록의 해시가 들어 있습니다. 어느 블록에서 시작하든 이전 블록을 가리키는 연결을 따라가면 결국 블록 0, 즉 제네시스 블록에 도달합니다. 그 앞에는 블록이 없으므로 제네시스 블록에는 이전 해시가 없습니다.

이 구조에서는 각 블록이 그보다 앞선 전체 기록을 간접적으로 확정합니다. 체인이 온전한지 확인하려면 각 블록의 해시를 다시 계산한 다음, 그 값이 다음 블록에 저장된 ‘이전 해시’ 참조값과 일치하는지 확인합니다. 제네시스 블록까지 거슬러 올라가며 모두 일치하면 체인은 유효합니다.

오래된 블록에서 단 1바이트만 바뀌어도 해시가 달라집니다. 그러면 다음 블록의 참조값이 맞지 않게 됩니다. 그 블록의 해시도 바뀌고, 이런 식으로 무효 상태가 현재까지 연쇄적으로 이어집니다.

변조하면 왜 체인 전체가 깨질까요?

체인이 변조되었는지 알아내기는 쉽습니다. 하지만 이를 바로잡는 일은 전혀 다릅니다.

변조된 체인을 다시 유효하게 만들려면 공격자는 변경된 블록부터 현재 끝 블록까지 모든 블록의 작업 증명을 다시 수행해야 합니다. 작업 증명은 채굴자가 유효한 블록을 찾는 과정입니다. 논스(헤더에 있는 4바이트 카운터)를 반복해서 조정하고 헤더 전체의 해시를 계산해, 네트워크의 난이도 목표값보다 작은 출력을 찾아야 합니다. 유효한 논스를 찾는 데는 막대한 연산이 필요하지만, 유효한지 확인하는 데는 1초도 걸리지 않습니다.

수천 개의 노드가 동시에 정직한 체인을 이어 가기 때문에, 오래된 블록을 다시 작업하는 공격자는 모든 정직한 채굴자의 속도를 합친 것보다도 빠르게 작업해야 합니다. 이를 위해서는 네트워크 전체 해시 레이트의 50 %를 넘어야 한다고 흔히 설명합니다. 이는 감당하기 어려울 만큼 막대한 컴퓨팅 능력입니다.

오래된 블록 위에 새 블록이 추가될 때마다 이를 확인이라고 합니다. Bitcoin에서는 확인이 6회 이루어지면 거래가 최종 확정된 것으로 널리 간주됩니다. 그 시점에는 작업을 다시 수행하는 비용이 얻을 수 있는 어떤 현실적인 이익보다 훨씬 크기 때문입니다.

변조에는 막대한 비용이 들지만 검증에는 거의 비용이 들지 않는 이 비대칭성이 블록체인의 불변성을 뒷받침하는 경제적 토대입니다.

사용자에게는 어떤 의미가 있을까요?

해시를 직접 계산할 필요는 없습니다. 사용하는 모든 지갑과 노드, 블록 탐색기가 이미 사용자를 대신해 체인을 검증하고 있습니다.

거래가 블록에 포함되고 그 위에 블록이 몇 개 더 쌓이면, 누구나 변조 여부를 확인할 수 있는 공개 기록이 만들어집니다. 어느 한 당사자를 신뢰하지 않아도 누구나 제네시스 블록부터 오늘까지의 전체 기록을 검토할 수 있습니다. 기록을 수정하는 버튼은 없고, 내용만 추가할 수 있는 로그만 있습니다.

블록에 기록되는 거래는 개인 키와 주소로 승인됩니다. 블록 구조를 이해하면 확인된 거래를 단순히 되돌릴 수 없는 이유도 알 수 있습니다. 거래를 취소하려면 전 세계의 독립적인 참여자가 운영하는 네트워크 전체에서 그 뒤에 이어진 모든 블록을 다시 작성해야 합니다.

상당한 금액을 장기간 보관할 때는 많은 사용자가 하드웨어 지갑을 사용해 셀프 커스터디를 한 단계 더 강화합니다. 하드웨어 지갑은 거래에 서명하는 키를 완전히 오프라인으로 보관합니다.

핵심 요점


더 읽어 보기

블록체인이란 무엇일까요?

블록체인이란 무엇일까요?

과장된 기대를 걷어내고, 블록체인을 어느 한 주체도 통제하지 않는 공동 장부로 설명합니다. 누구나 읽을 수 있지만 아무도 몰래 지울 수 없는 공공 게시판에 빗대어 쉽게 풀어냅니다.

4분 분량
블록체인 거래의 단계별 처리 과정을 보여주는 이미지

블록체인 거래의 작동 방식: 단계별 설명

확인 버튼을 누른 순간부터 서명, 브로드캐스트, 멤풀 대기, 블록 포함, 최종 확인까지 하나의 전송 과정을 살펴봅니다. 거래에 시간이 걸리고 수수료가 발생하는 이유를 이해할 수 있습니다.

6분 분량
Ledger를 누가 관리하는지 보여주는 노드와 탈중앙화 개념의 정사각형 이미지

누가 Ledger를 관리할까요? 노드와 탈중앙화 이해하기

노드란 무엇인지, 수천 개의 노드가 왜 동일한 데이터를 독립적으로 저장하는지, 이러한 중복성이 네트워크를 종료하거나 조작하기 어렵게 만드는 이유를 설명합니다.

5분 분량

뉴스레터 구독하기

한 달에 한 번 반가운 소식을 보내 드립니다. 스팸 없이 Zelcore의 최신 소식만 전합니다.

뉴스레터 구독하기