개발 공부
블록체인 핵심 컨셉
게으른 제이
2025. 7. 7. 10:39
Blockchain
- 블록체인은 말 그대로 블록(Block)을 체인(Chain)처럼 연결한 것
- 블록은 거래 기록인 트랜잭션(Transaction)이 담긴 묶음
- 이 블록들이 암호화 기술로 안전하게 연결되어 체인을 이룸
- 블록체인의 중요한 특징은, 이 체인이 별도의 중앙 관리자 없이 여러 컴퓨터에 분산되어 저장되고 한 번 기록되면 수정하거나 삭제하기 매우 어렵다는 점
분산 원장 (Distributed Ledger)
- 원장(Ledger)은 거래 기록이 담긴 장부를 의미함
- 블록체인에서는 이 장부가 물리적으로 특정한 한 위치에 있는 것이 아니라, 네트워크에 참여하는 모든 컴퓨터(노드)에 똑같이 복사되어 분산 저장됨
- 마을 사람들이 모두 똑같은 거래 장부를 갖고 있고, 새로운 거래가 발생하면 모든 사람이 각자의 장부에 동시에 기록하고 서로 확인하는 것과 같음
탈중앙화 (Decentralization)
- 결정이나 기록의 검증이 노드에 의해 분산되어 이루어지므로 중앙에서 모든 것을 통제하는 주체(은행, 정부, 대기업 서버)가 없다는 뜻
- 따라서 특정 주체의 독점이나 검열, 해킹 위험이 줄어듬
블록 (Block)
- 일정 시간 동안 발생한 여러 개의 트랜잭션(거래 기록)들을 모아놓은 묶음
- 각 블록에는 고유한 식별자인 해시값이 부여됨
블록의 구성
- 트랜잭션 데이터: 실제 거래 내용들
- 이전 블록의 해시값: 바로 전 블록의 고유한 해시값을 포함하여 블록들이 연결되도록 함
- 자신의 고유한 해시값: 이 블록 자체의 고유한 식별자인 해시값
블록은 마치 연결 리스트처럼 연결되어 있음
체인 (Chain)
- 각 블록이 이전 블록의 해시값을 포함하고 있기 때문에, 블록들은 마치 사슬처럼 연결됨
- 이 연결고리가 끊어지면 블록체인의 무결성이 깨지게 됨
- 따라서 한 번 연결된 블록은 수정하기 매우 어려움, 중간의 블록 하나를 수정하려면 해당 블록과 연관되어 있는 모든 블록의 해시값을 변경해야 하는데 이는 사실상 불가능에 가깝다.
트랜잭션 (Transaction)
- 블록체인 네트워크에서 발생하는 모든 종류의 거래 또는 활동을 의미함
- 비트코인을 보내거나, NFT를 발행하거나, 스마트 컨트랙트를 실행하는 것 등
- 모든 트랜잭션은 사용자의 개인 키(Private Key)로 서명되어야 유효함
해시 (Hash)
- 어떤 데이터를 입력하면, 그 데이터를 고유하고 일정한 길이의 짧은 문자열로 변환해주는 암호화 기술, 입력 값이 조금만 달라져도 해시값이 완전히 달라짐### 블록 연결
- 각 블록은 이전 블록의 해시값을 포함하여 체인을 형성데이터 무결성 검증
- 데이터가 위변조되었는지 확인하는 데 사용됨 (해시값이 다르면 데이터가 변경된 것, 프로그래밍 언어들에서도 사용하는 해시 알고리즘과 동일함)
트랜잭션 식별
- 각 트랜잭션도 고유한 해시값을 가짐
노드 (Node)
- 블록체인 네트워크에 참여하는 모든 컴퓨터를 노드라고 부름
- 이 노드들이 블록체인의 복사본을 가지고 있고, 트랜잭션을 검증하고 전파하는 역할을 함
합의 알고리즘 (Consensus Algorithm)
- 분산된 네트워크에서 모든 노드가 새로운 블록을 추가하는 것에 대해 '동의'하고 '합의'하는 방식
작업 증명 (Proof of Work, PoW)
- 비트코인에서 사용하는 방식
- 복잡한 수학 문제를 가장 먼저 풀어서 증명한 노드가 블록을 추가할 권한을 얻음 (채굴)
지분 증명 (Proof of Stake, PoS)
- 이더리움 2.0 등에서 사용하는 방식
- 더 많은 암호화폐를 가지고 있는 (지분이 높은) 노드가 블록을 추가할 권한을 얻을 확률이 높아짐
블록체인 기술의 핵심 가치는 탈중앙화인데, 지분 증명 방식은 탈중앙화라는 개념과 충돌함.
만약 한 노드가 99.9%의 지분을 확보한다면, 사실상 그 노드가 블록체인 네트워크를 독점적으로 통제할 수 있게 되지 않을까?
검증 (Validation)
- 검증은 블록체인 네트워크의 모든 노드(풀 노드)가 수행하는 필수 작업
- 채굴자나 검증자도 블록을 생성하기 전에 트랜잭션을 먼저 검증하고, 다른 노드들도 새로운 블록을 수신하면 그 블록의 유효성을 검증함
- 검증은 트랜잭션의 유효성과 블록의 유효성을 확인하는 과정임
트랜잭션 검증
- 서명 확인: 트랜잭션을 보낸 사람이 해당 지갑의 개인 키로 올바르게 서명했는지 확인함
- 잔액 확인: 송금하려는 코인이나 자산이 보내는 사람의 지갑에 충분히 있는지 확인함
- 형식 확인: 트랜잭션이 블록체인 프로토콜이 정한 규칙에 따라 올바른 형식으로 구성되었는지 확인함
- 논스(Nonce) 확인: 트랜잭션이 이전에 처리된 적 없는 고유한 트랜잭션인지 확인함
- 수수료 확인: 트랜잭션에 적절한 수수료가 포함되어 있는지 확인함
블록 검증
- 트랜잭션 유효성: 블록 안에 포함된 모든 트랜잭션이 위에서 설명한 트랜잭션 검증 규칙을 통과했는지 확인함
- 이전 블록 연결: 현재 블록이 이전 블록의 해시값을 올바르게 포함하고 있는지 확인하여 체인의 무결성을 검증함
- 합의 규칙 준수:
- PoW의 경우: 블록이 채굴 난이도 조건을 만족하는 유효한 해시값을 가지고 있는지 확인함
- PoS의 경우: 블록을 제안한 검증자가 합의 알고리즘에 따라 올바르게 선택되었고, 필요한 지분을 스테이킹 했으며, 악의적인 행동을 하지 않았는지 확인함
검증자에게 왜 보상을 주는가?
- 검증자들은 자신의 컴퓨팅 자원이나 자본을 투입하여 네트워크를 유지하고, 트랜잭션을 검증하며, 새로운 블록을 생성하는데 기여한다. 이들의 노력이 없으면 블록체인 네트워크는 작동할 수 없다.
자원 소모 및 기회비용에 대한 보상
- PoW 채굴자: 고가의 채굴 장비 구매(컴퓨팅 파워를 위해)와 막대한 전기료 등 실제 비용을 지불한다. 이 비용을 보상해주지 않으면 아무도 새로운 코인이 생성되는 채굴에 참여하지 않을 것이다.
- PoS 검증자: 자신의 암호화폐를 스테이킹(지분 보관)하여 묶어두는 기회비용이 발생한다. 이 자본을 다른 곳에 투자하여 얻을 수 있는 수익을 포기하는 것에 대한 보상이 필요하다. 마찬가지로 보상해주지 않으면 아무도 검증하려 하지 않을 것이다.
블록체인 시스템 구성 순서
- 목표 및 비전 설정
- 블록체인 프로토콜 설계
- 일반적으로 토큰 경제(Tokenomics) 설계를 통해 네이티브 암호화폐를 발행한다.
- 총 발행량, 발행 주기, 분배 방식, 인플레이션과 디플레이션 모델 설계
- 거래 수수료(Gas) 책정
- 트랜잭션 검증자에게 어떤 보상을 주는지 등
- 일반적으로 토큰 경제(Tokenomics) 설계를 통해 네이티브 암호화폐를 발행한다.
- 블록체인 소프트웨어 개발
- 설계한 블록체인 프로토콜에 따라 트랜잭션 처리, 블록 생성, 합의 알고리즘 구현, P2P 통신 기능등을 포함한 소프트웨어 개발
- 네트워크 론칭 및 초기 노드 확보
- 블록체인의 첫 번째 블록인 제네시스 블록(Genesis Block)을 생성
- 개발팀 또는 초기 참여자들이 노드 소프트웨어를 실행하여 네트워크를 시작
- 생태계 구축 및 사용자 유치
- 사용자들이 코인을 보관하고 트랜잭션을 생성할 수 있는 지갑 소프트웨어를 개발
- 네트워크의 모든 트랜잭션과 블록 데이터를 투명하게 조회할 수 있는 웹사이트인 블록체인 탐색기(Blockchain Explorer) 개발 등