본문 바로가기
카테고리 없음

<디지털 자산 경제 상식 2>블록체인이란 무엇일까? [구성요소와 의미·합의알고리즘·생성과정과 검증과정·스마트계약과 트랜잭션구조·장점과 한계점,활용사례]

by gccomp 2025. 12. 8.
반응형

블록체인과 관련된 이미지입니다.

여러 가지 디지털 자산의 의미 중에 블록체인이란 쉽게 말해 여러 사람이 함께 같은 장부를 복사해서 공동적으로 가지고 있으며, 아무도 마음대로 고칠 수 없도록 암호와 규칙으로 지켜지는 분산형 기록 시스템이다. 이글에서는 블록체인이란 뭔지, 어떠한 원리로 작동하는지와 구성요소들을 작성해 보겠다.


1. 블록체인의 의미. 구성요소와 그 의미( 블록, 체인, 해시, 머클트리, 노드, 합의알고리즘)

전통적으로는 은행이나 정부 같은 중앙기관이 여러 장부들을 관리해 왔다. 중앙기관이 있으면 사용자들은 확실히 편리하지만, 그 기관이 오류를 내거나 사용자들이 모르게 몰래 부정하게 행동하면 사용자들이 피해를 보게 된다. 블록체인은 이런 ‘중앙화된 신뢰’를 대신할 수 있는 기술이다. 여러 사람이 각자 동일한 장부를 갖고 서로 확인하면, 한 사람이 장부를 바꾸게 되어도 다른 사람들의 장부와 달라져 금방 드러난다. 그래서 조작이 어렵고 사실상 위조가 불가능한 구조이다.
블록체인은 기본적으로 블록과 체인으로 이루어져 있는데 이 단위들의 의미는 다음과 같다.

블록(Block)이란 일정 시간 동안 발생한 거래들을 묶은 상자라고 할 수 있다. 상자 안에는 거래 목록, 시간, 이전 블록을 가리키는 요약값(해시) 등이 들어간다.
체인(Chain)이란 블록들이 시간 순서대로 이어진 사슬이다. 즉 하나의 블록이 만들어지면 다른 블록이 생성되는데 이블록들은 체인형태로 이어지게 된다. 여기서 각 블록은 이전 블록의 해시를 포함하므로 중간 블록을 바꾸게 되면 뒤의 모든 블록의 해시값이 맞지 않게 된다. 이러한 구조 때문에 한 번 기록된 정보는 사실상 지우기 어렵다. 이것을 불변성이라고 부른다.

블록체인을 구성하는 요소들과 각의미는 다음과 같다.
먼저 해시(hash)와 머클트리(Merkle tree)가 있는데 이 요소들은 데이터 무결성의 비밀요소이다.
해시(hash)란 입력이 조금이라도 바뀌면 완전히 다른 값이 나오는 일방향 암호 함수다. 블록은 이전 블록의 해시를 포함하므로 체인의 무결성이 유지된다.
머클트리(Merkle tree)란 많은 거래 즉, 데이터를 효율적으로 묶어서 한 개의 요약값 즉, 루트 해시로 만드는 트리 구조이다. 이 구조는 대용량 데이터의 무결성(변조 여부)을 빠르고 가볍게 확인할 수 있게 해주는 기술이다.
머클트리는 블록 안의 수많은 거래를 효율적으로 검증할 수 있게 해주는 핵심 요소이다. 거래 여러 개의 해시를 계속 합쳐 최종 루트 해시를 만들면, 특정 거래가 블록에 포함되었는지 빠르게 증명할 수 있다.
다음으로는 노드(node)와 합의(consensus) 요소가 있다. 이들은 누가 장부에 기록하는지를 의미하는 요소이기도 하다.

노드(node)란 쉽게 말해 블록체인 네트워크에 참여하는 컴퓨터를 말한다. 이 컴퓨터들은 서로 연결되어 같은 장부(거래 기록)를 공유한다.

예를 들어 동네 사람들이 한 권짜리 가계부를 가지고 돌려서 보는 것이 아니라, 동네 사람 전부가 각각 같은 내용의 가계부 사본 한 권씩 들고 있는 것과 같다고 보면 된다. 누군가가 “A가 B에게 1 코인을 보냈다”라고 말하면, 그 소식이 모든 사람(노드)에게 퍼지고,
각 노드가 자신의 장부에 이 기록을 동일하게 적는다이다.
합의(consensus)란 전 세계 수많은 사람들이 공정하게 결정하는 규칙이라고 볼 수 있다.
만약 합의가 없어도 전 세계의 많은 사람들이 싸우지 않고 규칙을 따를 수 있을까? 사람이 두 명만 있어도 “내가 먼저 적을게”, “아니 이번에는 내가 먼저 적을게”라고 서로 싸울 수 있다. 특히 블록체인은 수천만 명에서 수만 명의 노드가 동시에 참여하므로 누가 새 블록을 만들고 추가할지 공정하게 결정하는 규칙이 필수이다. 여기서 이 규칙이 바로 합의 알고리즘이다. 그렇다면 또 합의 알고리즘이란 무엇일까?


2. 합의 알고리즘 2가지와 역할. 작업증명 (Pow)와 지분증명 (PoS)

합의 알고리즘 첫 번째로 작업증명(PoW, Proof of Work)이라는 요소가 있다. 작업증명은 곧 문제를 풀어야 열수 있는 금고 열기 게임으로 볼 수 있다. 작업증명은 복잡한 퍼즐 문제를 가장 먼저 푼 사람이 장부를 작성할 권한을 얻는 방식이다.

조금 더 쉽게 예시를 들자면 중앙에 큰 금고가 있다고 가정해 본다. 이 금고를 열려면 정답이 하나뿐인 번호를 맞춰야 할 것이다. 전 세계에서 수많은 사람들이 그 번호를 맞추기 위해 계속 시도한다. 여기에서 가장 먼저 번호를 맞춘 사람이 새 장부(블록)를 작성할 권한을 얻고 문제를 푼 보상으로 비트코인을 받게 된다. 이러한 과정을 “채굴”이라고 하고, 많은 비용의 전기와 뛰어난 컴퓨터 성능이 필요한 이유는 금고 비밀번호 즉, 해시값을 찾는 데 엄청나게 많은 시도를 해야 하고 사람이 하나씩 맞춰보는 것이 아닌 컴퓨터로 채굴을 진행하기 때문이다.  위조가 불가능한 이유도 여기에 있다. 장부를 조작하려면 수많은 금고 비밀번호를 계속 맞춰야 하므로 비용이 너무 많이 들기 때문에 결과적으로 네트워크가 안전해진다.

두 번째 규칙요소는 지분증명(PoS, Proof of Stake)이 있다. 이는 쉽게 말해 추첨 상자 뽑기 방식으로 진행된다.

지분증명은 작업증명처럼 엄청난 전기나 컴퓨터가 필요 없는 대신에 코인을 많이 소유하고 있는 사람일수록 뽑을 수 있는 추첨 공이 많아지는 방식이다. 조금 더 쉽게 예시를 들어보면 큰 추첨 상자가 있다고 가정해 본다. 사람들은 자신이 가진 코인 수만큼 추첨상자에 공을 넣는다. 10 코인을 가지고 있으면 공 10개를 넣을 수 있고 1 코인을 가지고 있으면 공을 1개 넣을 수 있다. 이렇게 각각 사람들의 공이 한 추첨상자 안에서 돌아간다. 이제 추첨 상자에서 로또발표처럼 무작위로 공 하나를 뽑는다. 뽑힌 공의 주인이 '이번 블록 작성자'가 된다. 즉, 코인을 더 많이 갖고 상자에 잠가둔 사람 즉, 스테이킹한 사람에게 블록을 생성할 수 있는 확률이 높아지는 구조이다. 이 방법은 연산이 거의 필요 없기 때문에 전기와 비용 소모가 적고, 환경 친화적인 방식을 구현하기 쉽다는 특징이 있다. 

결국 합의 알고리즘의 역할은 단 하나이다 “누가 새 블록을 추가할지 공정하게 정하는 규칙이다.”

그리고 블록을 만든 노드는 다음 일을 한다. 먼저 블록 안의 거래들이 정당한지 검증하고 거래들을 하나의 블록으로 묶는다. 그 블록을 네트워크 전체에 전파하게 되면 다른 노드들도 그 블록이 정당한지 확인한다. 
여기서 블록안의 거래는 또 무슨 말이야? 무슨 내용의 장부로 블록을 이어 붙이는 거야? 하는 생각이 들 수도 있기 때문에 조금 더 설명해 보겠다. 


3. 블록의 생성 과정과 검증과정 

먼저 많은 사람이 오해하는 부분이 있다. 블록 생성권한을 얻은 노드가 블록의 전체 장부를 만들어서 올리는 것이 아니다.

이미 블록체인에는 1번 블록, 2번 블록, 3번 블록… 이렇게 과거에 등록했던 블록들의 기록이 체인으로 이미 쭉 이어져 있다.

블록 생성자는 단지 가장 최신 블록 뒤에 붙일 새로운 블록 하나만 만드는 것이다. 그럼 블록 생성자는 어디서 '새로운 거래 목록'을 가져오는 걸까? 바로 메모리풀이라는 곳에서 새로운 거래 목록 즉, 작성할 장부를 가져오게 된다.
여기에서 메모리풀이란 블록체인 네트워크로 들어왔지만 아직 블록에 실리지 않은 대기 중인 거래 목록 저장소이다.

비유하자면, 버스 승강장에 승객이 줄 서 있는 모습과 같다. 버스 기사(블록 생성자)가 줄 서 있는 승객(대기 거래) 중에서 태울 사람(블록에 넣을 거래)을 선택하는 구조이다. 차이점이 있다면 현실에서는 선착순으로 승객을 태우지만 블록체인에서는 각종 기준을 충족한 거래들만 선택한다. 블록을 만드는 권한을 얻은 노드는 다음 일을 한다.
1. 메모리풀에서 거래들을 가져온다. 이 거래들은 이미 네트워크 곳곳의 노드로 퍼져 있는 상태이다.
2. 거래를 하나씩 검증한다. 잔고가 충분한지, 서명이 진짜인지, 이미 쓴 돈을 다시 쓰려는 건 아닌지 검증하고 이 과정에서 유효하지 않은 거래는 버린다.
3. 검증을 통과한 거래만 모아서 새로운 블록을 만든다. 즉, 블록 생성자는 “어디선가 임의로 장부를 새로 쓰는 사람”이 아니라 대기 중인 거래들을 모아 공식 기록(블록)으로 확정하는 사람이다.
4. 만든 블록을 다른 노드에게 전파한다. “내가 만든 새 블록이야. 확인해 줘.”
5. 다른 노드들도 그 블록을 검사한다. 문제없이 만들어졌는지, 규칙 위반은 없는지, 거래가 모두 정당한지를 검사한 뒤, 검사가 끝나면 모든 노드는 그 블록을 장부(블록체인) 맨 뒤에 붙인다.

이 과정을 통해 전 세계 수많은 노드가 모두 동일한 장부 상태에 동기화될 수 있다. 이러한 합의시스템 덕분에 블록생성 권한을 받은 한 사람이 악의를 품고 블록에 잘못된 정보와 거래내역을 작성한다고 해도 전 세계의 수천수만 명의 노드들이 검증을 하기 때문에 사실상 위조가 불가능한 시스템이다.
중앙은행, 회사 서버, 국세청 같은 중앙 관리자 없이도 네트워크가 스스로 정직하게 유지되는 이유가 바로 이 합의 시스템 때문이다이다.

그렇다면 여기에서 거래장부란 정확히 어떤 흐름을 가지고 있는지 살펴보자면 다음과 같다.
트랜잭션 즉, 거래의 흐름을 A가 B에게 보내면 어떻게 기록되는지 예시를 들어 설명해 보겠다.
먼저 A가 B에게 코인을 보내는 거래를 만든다. 여기에는 서명이 포함되어 있다.
이 거래는 네트워크로 전파되어 대기 중인 거래내역들이 모여있는 메모리폴에 들어간다.
다음으로 채굴자 또는 검증자가 메모리풀에서 거래들을 모아 블록을 만든다.
합의 규칙(PoW나 PoS)에 따라 블록이 정해지면 네트워크에 전파되고 전 세계 노드들이 검증해 장부에 추가된다.
여기에 일정 수의 뒤따르는 블록들이 연결되어야 거래가 ‘확정’되었다고 본다.

이 과정에서 디지털 서명이 중요하다. 개인키로 거래에 서명해야만 그 거래가 유효하다고 인정된다.

블록체인의 블록생성과정과 관련된 이미지입니다.


4. 스마트 계약과 UTXO, 계좌모델의 의미와 차이점

블록체인의 또 하나의 중요한 요소는 바로 스마트 계약이다. 이는 코드로 된 계약을 의미하며 스마트 계약은 블록체인 위에서 자동으로 실행되는 프로그램이다. 어떤 조건이 충족되면 사전에 정한 로직이 자동으로 실행되므로 중개자나 관리자 없이도 신뢰 기반의 거래나 서비스를 만들 수 있다. 예를 들어 디파이의 대출, 자동화된 지급, NFT의 로열티 지급 등이 스마트 계약으로 동작한다.
여기서 로직이란 컴퓨터가 자동으로 실행하는 규칙과 명령들을 의미하고 프로그램 코드라고 보면 된다.

그리고 장부 구조 즉, 트랜잭션 구조를 정의하는 방식으로 UTXO와 계좌모델 두 가지가 존재한다. 
쉽게 말해 ‘지갑 안의 동전 하나하나’를 관리하는 방식은 UTXO라고 불리며 대표적인 예시로 비트코인이 있다.
‘통장 잔액’을 관리하는 방식은 계좌 모델이라고 불리며 대표적인 예시로 이더리움이 있다.

UTXO는 Unspent Transaction Output이라는 의미로 “아직 쓰이지 않은 거래 출력값”이라는 뜻이다.
이 말이 어려워 보이지만 이해하기 쉽게 예시를 들어보겠다. 
UTXO를 실제 화폐로 생각하면 된다 예를 들어 지갑에 5,000원짜리 지폐 1개, 500원짜리 동전 2개

가 있다고 가정해 본다. 이때 나의 총자산은 7,000원이지만 여기서 중요한 건 잔액이 7,000원이라는 사실이 아니라 어떤 동전이 내 지갑에 남아 있는지이다. 비트코인도 똑같다. 각 비트코인은 UTXO 즉, 사용 가능한 동전으로 구분되어 있다. 결제할 때는 이 UTXO들을 선택해서 “입력”으로 사용하고 새로운 UTXO를 “출력”으로 만든다. 
그럼 여기서 도대체 입력, 출력이 뭐냐? 할 수 있으니 조금만 더 설명해 보겠다.
예를 들어서 A 지갑에 UTXO 비트코인 1개(조각 1이라고 부르겠다)와 비트코인 0.5개(조각 2라고 부르겠다)가 있다고 가정해 본다. 이때 비트코인은 총 1.5 개가 있다.
여기서 A가 B에게 비트코인 1.2개를 보내려 한다.
그럼 트랜잭션(거래)을 입력한다. A는 가지고 있는 조각 1(비트코인 1개)과 조각 2(비트코인 0.5개)를 사용한다.(Input으로 소모)
그럼 트랜잭션이 다음과 같이 출력된다. B에게 비트코인 1.2개(새로운 UTXO 생성) 그리고 A에게 거스름돈 비트코인 0.3개 (새로운 UTXO 생성)가 출력된다.
이 거래가 네트워크에 기록되면 원래의 두 UTXO는 ‘사용됨(소모)’으로 표시되고 새로 생성된 두 UTXO가 유효하게 남는다.

요약하자면 UTXO란 기존 동전들을 소모하고 새 동전들을 만든다라고 볼 수 있다.

그렇다면 다른 방식인 계좌 모델 즉, 통장 방식을 설명해 보겠다. 
예를 들어서 A 계정의 잔액은 이더리움 10개, B 계정의 잔액은 이더리움 2개라고 가정해 보겠다.
만약에 A가 B에게 3 ETH를 보낸다. 거래 즉, 트랜잭션이 처리되면 바로
'A 잔액은 이더리움 7개' 
'B 잔액은 이더리움 7개'
이런 식으로 기록이 된다. 이때 기록은 “A의 잔액은 이더리움 7개가 되었다”처럼 계정 상태를 직접 변경한다.

요약하자면 각 계정의 숫자 곧 잔액을 바로 바꾼다라고 보면 된다.


5. 블록체인의 장점과 한계점, 실제활용사례

그렇다면 이렇게 머리 아프고 복잡한 블록체인의 장점은 어떤 게 있을까?
1. 투명성: 누구나 거래 기록을 조회할 수 있어 신뢰가 높아진다.
2. 불변성: 한번 기록된 데이터는 변경이 사실상 불가능하다.
3. 탈중앙화: 중앙통제나 관리자가 없어도 시스템이 운영되어 특정 기관의 장악 위험이 줄어든다.
4. 자동화: 스마트 계약으로 중개 없이 자동 실행되는 시스템을 만들 수 있다.

하지만 완벽해 보이는 이러한 블록체인에도 한계와 문제점이 존재한다.
1. 확장성 문제: 많은 사용자가 동시에 사용하면 처리 속도가 느려지고 수수료가 증가한다.
2. 에너지 소비: PoW 기반 블록체인은 기본적인 전력 소비가 매우 크다.
3. 프라이버시 취약성: 거래 기록이 공개되어 버리면 개인 정보나 거버넌스가 노출될 수 있다.
4. 코드 리스크: 스마트 계약에 버그가 있으면 큰 손실이 날 수 있다. 이때 탈중앙화 구조라서 책임 소재가 모호해진다.
5. 법적·규제 문제: 각 국가의 규제에 따라 사용이 제한될 수 있다.

하지만 잘 사용한다면 편리하고 유용하게 사용할 수 있을 것이다.
블록체인의 실제 활용 사례는 다음과 같다.
1. 금융(디파이): 중개자 없이 예금, 대출, 교환을 자동화한 서비스가 등장했다.
2. 공급망(물류 추적): 상품 이동 기록을 블록체인에 남겨 투명성과 신뢰를 높인다.
3. 의료 기록: 환자 데이터 관리에 블록체인을 도입해 무결성 보장과 접근 통제를 구현한다.
4. 디지털 자산(NFT): 예술 작품·디지털 아이템의 소유권을 증명하고 거래할 수 있다.
5. 전자투표·신원증명: 투표 기록의 위변조 방지와 신원 확인에 활용 가능하다.

 

이처럼 블록체인은 중앙기관 없이도 사람들이 서로 신뢰할 수 있도록 기록을 분산 저장하고 암호와 합의 규칙으로 보호하는 디지털 장부 시스템이며, 이 기술은 현재 우리가 살아가고 있는 경제의 다양한 분야의 패러다임을 바꿀 잠재력을 지니고 있다.

 

반응형