학습 개요
- 블록 체인을 기반으로 하는 가상 화폐 및 전자 결제 서비스는 가장 대표적인 분산 데이터 처리 사례이며, 기존 산업의 제품 및 서비스의 생산 · 소비 · 유통 · 관리 측면에서 다양한 변화를 가능하게 해 주고 있음
- 특히 금융 부문의 블록 체인 플랫폼은 피할 수 없는 미래 서비스 기술로 인정받고 있음
- 블록 체인의 개념과 정의, 블록 체인 플랫폼의 형태 및 합의 알고리즘을 알아보고 블록 체인의 구조에 대해서 이해함
학습 목표
- 분산형 디지털 장부 기술을 대표하는 블록 체인의 정의 및 특징을 이해할 수 있음
- 다양한 블록 체인 플랫폼을 이해하고 장단점을 설명할 수 있음
- 블록 체인의 기술적 구조와 처리 기법(합의 알고리즘)을 이해할 수 있음
강의록
블록 체인의 정의
블록 체인의 개념
- 기존 국가 중심의 화폐 및 결제 시스템은 아마존이나 알리 마켓 같이 국경의 한계를 벗어나 전 세계를 대상으로 하는 시장에는 적합하지 않았음
- 전자 화폐 혹은 암호 화폐에 대한 수요가 증가하였고, 이를 현실화하기 위한 많은 시도와 연구가 이루어졌음
- 블록 체인이 시장성과 대중성을 함께 지니게 된 것은 2008년 나카모토 사토시라는 가공의 인물이 발표한 “Bitcoin: A Peer-to-Peer Electronic Cash System” 이라는 논문을 통해 비트 코인이라는 전자 화폐를 처음 소개하였고, 2009년에는 “Bitcoin Core” 프로그램을 공개하였음
- 블록 체인 기술을 활용한 Bitcoin은 중앙 집중형 구조에서 벗어나서 Bitcoin 네트워크에 참여하는 모든 노드가 암호 화폐에 대한 데이터와 거래 기록을 소유하며, 발생하는 거래의 내용을 검증하고 합의함
- 분산형 시스템을 통한 안전한 화폐 거래 가능
- 블록 체인은 일정 시간마다 새로운 거래 내역을 담은 신규 블록이 생성되고 이에 대한 합의가 이루어지면 기존 블록에 연결되는 데이터 구조
- 계속적으로 이루어지는 개인과 개인 사이의 거래 정보를 블록 단위로 저장하고, 구성원들에게 전송된 해당 블록의 유효성이 검증되면 기존 블록 체인에 추가되는 방식으로 관리 됨
- 블록 체인에서 데이터는 연결 고리 형태의 분산 저장 환경에 저장되므로 이미 블록으로 연결되었다면 임의의 수정이 불가능하고 거래 기록은 모두에게 공개 됨
- 블록 체인은 중앙에서 전체를 통제하고 데이터를 중앙 서버에 저장하는 중앙 집중형 서버가 존재하지 않고 분산 P2P 네트워크 방식으로 운영 됨
- 네트워크에 참여하는 참여자가 모두 같은 블록 데이터를 가지게 하는 분산 합의 알고리즘을 기반으로 관리되고 운영 됨
- 네트워크 참여자는 다음과 같음
- 채굴자(miner)
- 네트워크 내에서 보상을 얻는 참여자 노드
- 일반 참여자
- 블록 체인 일부분의 데이터만 저장하는 라이트 노드가 있음
- 채굴자(miner)
- 모든 네트워크 노드(참여자)
- 블록 체인에 대한 분산 합의에 참여하여 블록 체인의 데이터 순수성을 보장함
- 블록 체인을 기반으로 발생하는 모든 거래 정보 등의 데이터를 저장하고 저장된 데이터에 대한 합의 알고리즘에 참여함
- 블록 체인의 합의 알고리즘
- 기본적으로 모든 참여자가 보유한 거래 내용을 비교하고 확인함
- 블록 체인은 네트워크에 참여한 모든 참여자가 각자 가지고 있는 데이터를 이용하여 서로의 데이터를 검증하고 저장하기 때문에 임의적인 조작이 불가능함
블록 체인 플랫폼의 특징
- 분산형 장부 관리
- 중앙 통제 기능을 갖고 있지 않음
- 거래 기록이 담긴 원장을 분산 된 형태로 관리하고 저장함
- 정부 기관이나 특정 조직과 같은 제 3자(관리자)에게 관리와 통제를 맡기지 않음
- 다수의 참여자가 직접 내용에 대한 검증, 승인, 합의에 참여함
- 모든 참여자에 분산 되어 저장된 블록은 과거의 블록과 연결되어 관리되므로 거래 데이터의 위조를 방지할 수 있음
- 자산과 그것들을 보유하는 존재를 연결함으로써 이중 이용을 방지하고 누구에게 양도 되었는 지를 정확하게 관리할 수 있음
- 중앙의 서버가 아닌 다수의 컴퓨터에서 같은 데이터를 분산 관리하여 어느 1개의 데이터가 상실되더라도 다른 참가자의 컴퓨터가 가동되고 있으면 시스템을 유지하는 것이 가능함
- 불변성
- 새롭게 생성된 블록은 선행 블록의 해시(암호)가 이용되기 때문에 블록 사이의 순서가 고정 됨
- 중간에 있는 특정 블록의 수정이나 삭제 작업을 위해서는 모든 참여자의 블록 내용을 모두 삭제하거나 수정해야 하기 때문에 블록에 기록 된 거래 데이터에 대한 삭제나 수정 작업은 불가능함
- 참여자가 많을수록 수정하거나 삭제해야 할 블록도 증가하므로 임의의 변경(해킹)이 불가능함
- 가용성
- 블록 체인 플랫폼의 모든 참여자는 분산 저장된 블록의 거래 데이터의 일부 노드에 문제가 발생하더라도 합의 검증을 통해 거래 데이터의 순수성이 유지되며 24시간 중단되지 않고 접근할 수 있음
- 전체 블록 체인 플랫폼에서 하나, 혹은 소수의 노드가 잘못되더라도 나머지 노드에 검증된 다른 거래 데이터가 존재하므로 블록 체인 서비스는 중단되지 않고 지속될 수 있음
- 투명성
- 새롭게 생성된 블록은 전체 참여자에게 동시에 공유되기 때문에 블록의 거래 데이터는 참여자들에게 공개되므로, 이중 이용을 방지할 수 있고 양도 및 거래도 정확하게 관리될 수 있음
- 블록 체인을 통해 참여자 간의 상호 검증이 가능하고 거래 데이터에 대한 투명성을 보장하면서도 참여자의 정보는 공개되지 않아 익명성도 함께 제공함
블록 체인의 유형과 구조
블록 체인의 유형
- 블록 체인의 블록은 데이터를 저장하며, 헤더(header)와 몸체 부분(body)으로 구성 됨
- 비트 코인은 일정 시간마다 생성되는 거래 데이터의 단위를 블록(블록들의 순서는 해시 값으로 연결)이라 정의함
- 블록 체인 관련 알고리즘은
- 암호화 기술(Cryptography)
- 전자 서명(Digital Signature)
- 해시 함수(Hash Function) 등이 있음
- 분산 P2P 네트워크를 기반으로 다양한 응용 서비스를 제공할 수 있는 플랫폼을 제공함
- 해시 함수
- 입력 데이터를 일정한 길이의 해시 값으로 생성하는 기술이며, 데이터의 무결성 검증 및 메시지 인증에 사용 됨
- 전자 서명
- 작성자가 그 전자 문서를 작성하였다는 사실과 작성 내용이 송, 수신 과정에서 위 변조 되지 않았다는 것을 증명하는 기술
- 블록 체인은 참여자의 특성과 권한 범위, 참여자들의 네트워크 참여 방식과 활용에 따라 아래처럼 분류 됨
- 퍼블릭 블록 체인
프라이빗 블록 체인
- 하이브리드 블록 체인
- 컨소시엄 블록 체인
- 퍼블릭 블록 체인(Public Blockchain)
- 관리자나 권위 있는 조직의 승인 없이 조건을 갖춘 참여자는 누구나 참여할 수 있는 공개 된 블록 체인 플랫폼을 의미함
- 모든 참여자의 자유로운 거래 데이터 열람과 거래가 허용 됨
- 각 참여자들은 블록 체인에 저장된 데이터를 복사하고 저장할 수 있음
- 해시 연산을 통해 새로운 블록의 생성에 참여할 수 있음
- 참여자들은 언제든지 자유롭게 블록 체인 플랫폼에 참여하거나 탈퇴할 수 있음
- 작업 증명(Proof-of-Work), 지분 증명(Proof-of-Stake) 등 합의 알고리즘을 기반으로 분산 처리 방식의 거래가 이루어짐
- 다수의 참여자가 참여하기 때문에 고도화 된 암호화 검증이 필요 함
- 트랜잭션 처리 속도 및 데이터 처리 속도가 느려질 수 있음
- 충분한 크기의 블록 체인을 구성하지 못했을 경우 대규모 악성 봇넷을 블록 체인 네트워크에 가입시켜 데이터를 변경하는 51% 공격이 발생할 수 있음
- 비트코인, 이더리움 등 대표적인 암호 화폐가 퍼블릭 블록 체인의 유형에 속함
- 프라이빗 블록 체인(Private Blockchain)
- 승인 된 참여자만 참여할 수 있는 폐쇄형 블록체인 플랫폼임
- 블록 체인 네트워크에 참여자를 추가하기 위한 규칙과 규정을 만들고, 규칙과 규정에 따라 참여자에 대한 승인이 이루어지므로 참여자의 인원수에 대한 제한도 가능함
- 퍼블릭 블록 체인에 비해 트랜잭션 처리 속도 및 데이터 처리 속도가 빠름
- 네트워크 확장이 용이하여 사용자가 원하는 형태로 구축할 수 있음
- 블록 체인 내에서 접근을 컨트롤러 노드가 담당하기 때문에 신뢰성 문제가 발생할 수 있음
- 참여자가 블록을 직접 생성하고 관리하는 방식이기 때문에 참여자가 블록체인 시스템을 직접 관리하고자 하는 경우에 적합함
- 컨소시엄 블록 체인(Consortium Blockchain)
- 같은 목적을 갖는 참여자가 컨소시엄(블록 체인 네트워크)을 구성하여 블록을 생성할 수 있는 연합형 블록 체인임
- 승인된 참여자로 구성되므로 프라이빗 블록 체인으로 분류될 수도 있지만, 각 신뢰성을 갖춘 참여자들이 퍼블릭 블록 체인을 구성할 수 있어 하이브리드 블록 체인으로 분류될 수도 있음
- 분산형 네트워크를 유지하면서 제한 된 참여를 통해 보안을 강화할 수 있음
- 퍼블릭 블록 체인에서 제기된 느린 데이터 처리 속도와 네트워크 확장성의 문제도 해소해 줌
- 네트워크에서 향상 된 사용자 정의 및 자원 제어 기능을 제공함
- 퍼블릭 블록 체인에 비해 안전하고 높은 확장성을 제공할 수 있음
- 신뢰 받는 참여자가 감염될 경우, 일부 네트워크 전체에 문제가 발생하여 핵심 노드에 대한 추가적인 보안 정책이 필요함
- 하이브리드 블록 체인(Hybrid Blockchain)
- 퍼블릭 블록 체인과 프라이빗 블록 체인의 단점은 보완하고 장점을 활용하려는 혼합된 모델임
- 투명성, 불변성, 탈 중앙화 등 퍼블릭 블록 체인의 중요 기능을 제공함
- 프라이빗 블록 체인과 유사하게 블록 체인 네트워크를 구성하려는 목적에 따라 규칙을 변경할 수 있음
- 네트워크에 참여한 사용자의 정보를 외부에서 확인할 수 없는 익명성을 제공하기 때문에 회사나 기관의 정보가 유출되는 것을 방지할 수 있음
- 권한을 가진 노드가 퍼블릭 블록 체인에서 트랜잭션을 쉽게 검증할 수 있으나 노드의 투명성을 보장하지 못하고, 내부 노드에 대한 검증이 없어 보안에 취약할 수 있음
블록 체인의 구조
- 블록 체인의 블록은 각 블록 체인 플랫폼에 따라 구조적으로 다름
- 블록 체인을 유지하고 서비스를 제공하기 위해 공통적으로 가지고 있는 블록의 구조와 데이터가 있음
- 새롭게 생성된 블록은 선행 블록에 대한 해시 값을 포함하고 있고 선행 블록은 그 자신의 선행 블록에 대한 해시 값을 포함함
- 블록 데이터를 통해 블록의 연결성이 만들어지고, 기존 거래 데이터에 대한 블록 체인의 안정성이 확보되며, 블록은 계속적으로 연결된 체인 구조를 가지게 됨
- 각각의 블록은 선행 블록에 대한 해시 값을 통해 블록 체인의 링크 구조를 유지함
- 제네시스 블록(genesis block)
- 블록 체인에서의 첫 번째 블록
- 블록에는 거래나 부모 블록으로 이어지는 해시 값 등의 정보가 저장됨
블록의 구조는 다음과 같음
필드 필드 크기(바이트) 내용 블록 크기(Block Size) 4 다음 필드부터 블록 끝까지의 데이터 크기(바이트) 블록 헤더(Block Header) 80 블록 헤더 정보 트랜잭션 카운터(Transaction Counter) 1 ~ 9 블록에 포함된 트랜잭션의 수 트랜잭션(Transactions) 4 가변적 크기의 트랜잭션 목록 블록 헤더의 구조는 다음과 같음
필드 필드 크기(바이트) 내용 버전(Version) 4 소프트웨어 혹은 프로토콜 버전 정보 부모 블록 해시(Previous Block Hash) 32 부모 블록의 해시값 머클 루트(Merkle Root) 32 머클 트리 루트의 해시값 생성 시간(Timestamp) 4 블록을 생성한 시간(Unix time) 난이도(Difficulty Target) 4 블록을 생성할 때 작업증명의 난이도 논스(Nonce) 4 작업 증명에서 사용하는 카운터 - 블록 체인 플랫폼에서 특정 블록을 찾기 위해서는 식별자가 필요함
- 블록의 식별자는 블록 해시 값과 블록 높이 값으로 정의됨
- 블록 해시 값
- 블록 헤더를 암호화 알고리즘인 SHA-256 알고리즘을 이용하여 얻어낸 해시 값임
- 블록 높이
- 블록 체인에서의 블록의 위치를 의미함
- 제니시스 블록의 블록 높이 값은 0임
후행 블록이 덧붙을 때마다 1씩 증가함
- 블록 체인의 블록은 일반적으로 1MB의 크기이며, 길이는 계속적으로 증가하고 있음
- 과거의 모든 블록을 저장하거나 관리하는 것은 많은 컴퓨팅 자원의 부하를 발생 시킴
- 만일 과거의 모든 블록을 포함한다면 블록 체인의 크기는 매우 커질 것임
- 참여자가 스마트폰이나 태블릿 컴퓨터를 사용한다면 저장 용량이 부족하여 모든 블록을 저장할 수 없게 됨
- 저장 용량을 고려하여 트랜잭션을 직접 저장하는 블록은 저장하지 않고 블록 헤더만 저장하는 노드를 SPV(Simple Payment Verification node) 노드라고 함
- 과거의 모든 블록에 저장 된 트랜잭션을 저장하는 전체 블록 체인을 풀블록 체인(Full Blockchain)이라 함
- 풀 블록 체인을 저장하는 노드를 풀 노드(Full Node)라고 함
블록 체인의 합의 알고리즘
- 블록 체인의 참여자들은 생성 된 트랜잭션을 검증하여 블록을 생성, 공유, 저장함
- 트랜잭션의 검증 방법으로 합의 알고리즘(Consensus Algorithm)을 사용함
- 블록 체인에서 사용하는 일반적인 합의 알고리즘
- 작업 증명 합의 알고리즘
- 지분 증명 합의 알고리즘
- 프랙티컬 비잔틴 장애 허용 합의 알고리즘
- 작업 증명 합의 알고리즘 Proof-of-Wok
- 특정 해시 값을 만드는 입력 값을 찾아내기 어렵다는 점을 이용함
- 블록 체인 참여자들이 특정 범위를 만족하는 해시 값을 만드는 Nonce 값을 무작위 대입하여 찾아냄
- Nonce 값을 찾아낸 참여자가 Nonce 값과 거래 데이터를 포함하는 블록을 생성함
- 블록의 거래 데이터가 검증을 받은 후 블록으로 생성되기까지 시간이 오래 걸리기 때문에 1초 당 트랜잭션 처리 수(TPS; Transaction per Second)가 낮음
- 블록 체인의 작업 증명 합의에 참여하는 전체 컴퓨팅 자원의 51% 이상을 가진 참여자들이 동시에 공격을 받게 되면 위조 된 거래 데이터가 블록으로 생성 될 수 있음
- 지분 증명 합의 알고리즘 Proof-of-Stake
- 많은 지분을 가진 참여자가 블록 검증에 더 많은 영향력을 행사할 수 있도록 함
- 작업 증명 합의 알고리즘에 비해 훨씬 적은 연산 량이 요구되고, 비교적 높은 TPS를 가짐
- 작업 증명 합의 알고리즘과 비슷하게 블록 체인에 존재하는 지분의 51% 이상을 소유하는 참여자들이 공격을 받게 되면 위조 된 데이터가 블록으로 생성될 수 있음
- 프랙티컬 비잔틴 장애 허용 합의 알고리즘
- PBFT; Practical Byzantine Fault Tolerance
- 블록 체인 참여자가 발생 된 트랜잭션에 대해 각자 검증함
- 검증 결과에 대해 참여자의 3분의 2 이상이 동의하면 그 트랜잭션을 신뢰할 수 있다고 결정하고 블록을 생성하여 저장함
- 모든 참여자가 블록을 검증하고 그 결과를 공유하기 때문에 노드가 많아질수록 통신량이 급격히 증가하고 TPS가 감소하게 됨
블록 체인과 핀테크
블록 체인 적용 분야
- 블록 체인 플랫폼과 이를 기반으로 하는 가상 화폐 및 전자 결제 서비스는 기존 산업의 제품 및 서비스의 생산, 소비, 유통, 관리 측면에서 다양한 변화를 선도하고 있음
- 적용 분야 측면
- 금융, 제조, 유통 등과 같은 산업 전반에 걸쳐 파생 효과를 보여주고 있음
- 업종이나 민간, 공공에 대한 제한이 없이 대부분의 사회 영역에 걸쳐 적용될 것으로 전망되고 있음
블록 체인 금융 부분
- 금융 부분의 블록 체인 기술 적용은 가장 많은 파생 서비스를 만들어내고 있음
- 현재 블록 체인 기반의 정보 통신 서비스 중에서 기존의 정보 통신 서비스와 차별화 되는 가장 큰 특징은 여러 기업과 기관들이 컨소시엄 형태의 블록 체인 기술을 이용한 솔루션을 개발하려는 것임
- 블록 체인 솔루션 개발에 대한 컨소시엄 형태의 접근은
- 금융 서비스
- Bass(Blockchain-as-a-Service) 형태의 솔루션
- 보험 컨소시엄 등이 있음
블록 체인 공공 분야
- 공공 분야에서는 전자 공문서의 관리, 전자 투표, 개별 사용자 인증 등과 같은 분야에서 적용되고 있음
- 블록 체인 기술은 분산 장부 기술(DLT; Distributed Ledger Technology)로서 안전성과 효율성을 인정 받으려 그 범위를 넓히고 있으며, 가상 화폐 뿐만 아니라 사물 인터넷, 전자 서명과 인증, 물류 등의 다방면에 걸쳐 적용되고 있음
정리 하기
- 블록 체인은 일정 시간마다 새로운 거래 내역을 담은 신규 블록이 생성되고, 이에 대한 합의가 이루어지면 기존 블록에 연결(chain)되는 데이터 구조임
- 핀테크는 ’금융’과 ‘기술’이 결합한 서비스 또는 그런 서비스를 하는 회사를 가리키는 말임
연습 문제
블록 체인의 특징이 아닌 것은 무엇인가?
a. 자동성
- 블록 체인의 특징
- 분산형 장부 관리
- 투명성
- 가용성
- 블록 체인의 특징
승인된 참여자만 참여할 수 있는 폐쇄형 블록 체인 플랫폼은 무엇인가?
a. 프라이빗 블록체인
다음 빈칸에 알맞은 것은 무엇인가?
1
블록체인 플랫폼에서 특정 블록을 찾기 위해서는 식별자가 필요하며, 블록의 식별자는 ( )과 ( )으로 정의된다.
a. 블록 해시 값, 블록 높이 값
정리 하기
- 블록 체인
- 블록 체인은 일정 시간마다 새로운 거래 내역을 담은 신규 블록이 생성되고 이에 대한 합의가 이루어지면 기존 블록에 연결되는 데이터 구조
- 계속적으로 이루어지는 개인과 개인 사이의 거래 정보를 블록 단위로 저장하고, 구성원들에게 전송된 해당 블록의 유효성이 검증되면 기존 블록 체인에 추가되는 방식으로 관리됨
- 네트워크 참여자
- 채굴자(miner)
- 네트워크 내에서 보상을 얻는 참여자 노드
- 일반 참여자
- 블록 체인 일부분의 데이터만 저장하는 라이트 노드
- 채굴자(miner)
- 블록 체인 플랫폼의 특징
- 분산형 장부 관리
- 불변성
- 가용성
- 투명성
- 블록 체인은 블록 체인의 블록은 데이터를 저장하며, 헤더(header)와 몸체 부분(body)으로 구성 됨
- 각각의 블록은 선행 블록에 대한 해시 값을 통해 블록 체인의 링크 구조를 유지함
- 블록의 식별자는 블록 해시 값(블록 헤더를 암호화 알고리즘인 SHA-256 알고리즘을 이용하여 얻어 낸 해시 값)과 블록 높이 값(블록 체인에서 블록의 위치)으로 정의됨
- 블록 체인은 참여자의 특성과 권한 범위, 참여자들의 네트워크 참여 방식과 활용에 따라 분류됨
- 퍼블릭 블록 체인
- 프라이빗 블록 체인
- 하이브리드 블록 체인
- 컨소시엄 블록 체인
- 블록 체인에서 사용하는 일반적인 합의 알고리즘
- 작업 증명 합의 알고리즘
- 지분 증명 합의 알고리즘
- 프랙티컬비잔틴 장애 허용 합의 알고리즘