본문 바로가기
Block Chain/블록체인 구조와 기술

[블록체인] 6장, 블록체인 구조

by Y06 2021. 2. 15.

6.1 비트코인 구조

6.1.1 비트코인의 목적

비트코인의 목적은 은행과 같은 중앙 기관을 경유하지 않고 P2P 네트워크에서 1대1 교환이 가능한 전자 화폐 시스템을 구현하는 것이었다. 이 구조는 P2P 기술과 공개키 암호 및 해시 함수 등 암호 기술로 구현됐다.

 

비트코인은 특정 역할을 집중해 담당하는 서버 같은 존재는 없다. 비트코인 네트워크의 참가자는 소유한 컴퓨터의 CPU 자원 등 하드웨어 자원을 서로 제공해 네트워크에서 마치 하나의 시스템의 일부인 거처럼 작동한다. 이런 시스템 방식을 '분산형 시스템'이라고 한다.

 

6.1.2 비트코인 구현 방법

전자화폐의 교환이란 결국 이전 소유자에게서 다른 소유자로 명의를 변경하는 거래다. 따라서 온라인상에서 거래를 실현하기 위해서는 이전 소유자의 본인 보증과 부인 방지를 구현해야 하기 때문에 전자 서명이라는 방법을 이용한다.

 

하지만 전자화폐는 받은 화폐가 과거에 이중으로 사용된 것이 아닌지를 증명하는 것이 힘들다. 비트코인은 중안은행과 같은 기관이 없고, 화폐의 발행과 거래는 모두 P2P 네트워크에서 일어난다. 과거의 모든 이력을 검증할 수 있게 해서 이중 사용 문제를 해결했다. 제삼자 기관이 담보하는 보증 행위를 네트워크 참가자 전원이 담당하는 것이다.

 

하지만 데이터를 모두와 공유한다고 해서 변조위험을 막을 수는 없다. 따라서 거래를 '블록'이라는 단위로 결합해 앞의 블록 정보를 포함해 해시로 만들어 불가역 데이터를 만든다. 블록은 앞의 블록 정보를 포함하기 때문에 결과적으로 사슬 모양 데이터를 만들게 된다. 이것이 블록체인이다.

 

블록체인

블록을 간단히 만들 수 있다면 블록체인 전체를 위조해 조작할 수 있게 된다. 그래서 비트코인은 새로운 블록을 만들기 위해 계산량이 큰 문제를 푸는 방식을 도입하고 있다. 문제는 10분 정도에 풀 수 있도록 난이도 조장이 자동으로 이루어지기 때문에 나중에 블록을 변조해 부정한 거래를 성립시키는 것은 불가능하다.

 

  • 어떤 거래를 위조했다면 그 블록의 해시가 변경되기 때문에 보수 계산을 다시 해야 한다. 그리고 해시가 변경되면 다음 블록에 있는 이전 블록의 해시도 변경된다. 그러면 보수 계산을 다시 하게 되기 때문에 채광을 재실행해야 하며 이 작업은 연속적으로 발생하게 된다.
  • 이렇게 블록이 과거의 정보를 보유한 상태에서 연결되기 때문에 블록체인에서 부정한 거래를 성립시키기 위해서는 제대로 생성되는 블록보다 빠른 블록을 만들어내거나 과거 블록을 변조해야 한다.                                          → 변조는 시스템 성능상 불가능한 구조

[ 해결해야 할 문제 두 가지 ]

 

1. 블록을 만드는 데 막대한 CPU 파워가 필요하다.

2. P2P 네트워크에서는 블록 생성과 네트워크 전파 시점에 따라 블록체인이 분기하는 상황이 일어난다.

 

→ 해결방법

  • 막대한 CPU 파워: 블록을 만든 사람에게 보상으로 새로운 비트코인을 발행해 CPU 사용에 대한 인센티브를 제공
  • 블록체인 분기: 가장 긴 블록체인을 채택

6.1.3 비잔티움 장군 문제

전자 화폐 시스템을 P2P 네트워크에서 실현하는 경우 다음과 같은 문제가 발생할 가능성이 있다.

 

  1. 악의적인 참가자에 의한 부정 º 변조: 누구나 참가할 수 있는 네트워크에는 악의적인 참가자가 존재할 가능성이 있다. 의도적으로 부정 거래를 만들어내거나 거래 결과를 자신에게 유리하게 변조할 수 있다.
  2. 정보 전달의 지연으로 인한 불일치: 구체적으로는 실시된 거래 전달이 늦어져 다른 사람이 이중으로 처리하게 돼 이중 지불과 같은 불일치 상태가 발생할 수 있다.
  3. 네트워크를 자율적으로 유지 º 운영하기 위한 추진력: 누구나 참여할 수 있다는 것은 반대로 말하면 책임을 지는 관리자가 없다는 것이므로 시스템 품질(복원성 º 가용성)을 유지하면서 운영해 나갈 수 있는 추진력이 없다.

첫 번째 문제는 '비잔티움 장군 문제'로, 옛날부터 P2P와 같은 분산형 네트워크 시스템을 구축할 때 피할 수 없는 문제였다. 비트코인에서는 앞에 설명한 방법(블록체인, PoW, 전자 서명, 해답 인센티브)을 통해 이 문제에 대한 실용적인 해결책을 제시했다.

 

- 비잔티움 장군 문제: 고대 동 로마 제국(비잔티움 제국)을 비유한 시스템 문제이다. 상호 간에 통신을 통해 어떤 합의를 해야 하는 경우 통신에 문제가 발생하거나 고의로 정보를 변경해 가짜 정보를 전달할 가능성이 있을 때 전체가 올바른 합의를 형성할 수 있는지를 묻는 문제다.

 

6.1.4 비트코인의 처리 흐름

이상이 비트코인을 구현하기 위한 개념이다. 이것만으로는 실제 처리 흐름을 파악하는 것이 어렵기 때문에 트랜잭션이 만들어진 직후부터 확정될 때까지의 처리 흐름을 설명한다.

 

[ 트랜잭션이 블록에 반영되는 모습 ]

 

  1.  블록체인 네트워크 참가자로서 계좌를 사용하는 사용자 A~F와 블록을 만드는 승인자(채굴자)가 있는 구성을 가정한다. 원래 계좌를 이용하는 사용자와 승인자는 겸할 수 있지만, 여기서는 알기 쉽게 사용자와 승인자를 나누고 있다.
  2. 사용자 A,B,E가 송금을 의뢰(트랜잭션)한다. 트랜잭션을 발행할 때 본인 확인을 위해 전자 서명을 첨부한다.
  3. 발행된 트랜잭션은 P2P 네트워크를 통해 참가자 전원에게 브로드캐스트 된다.
  4. 트랜잭션을 받은 승인자는 전자서명을 확인하고 블록을 생성하기 위한 요건을 만족시키는 '해답'을 찾기 시작한다.
  5. 처음 조건을 만족하는 해답을 발견한 승인자는 생성한 블록을 참가자 전원에게 브로드캐스트 한다.
  6. 블록을 받은 각 노드는 정당한 블록인지 검증한다. 구체적으로는 이전 블록 정보 + 해답을 매개변수로 해시값을 구해 조건을 만족하는지 확인한다. 조건을 만족한다면 수신한 블록을 자신의 로컬 디스크에 있는 블록체인에 추가한다.

6.2 블록체인 기술의 구성 요소와 분류

6.2.1 비트코인 이외의 블록체인 기반 기술

비트코인에서 사용되는 블록체인 기술은 실제로 통화 시스템에 특화된 구조가 아니라 '분산된 네트워크 환경에서 오직 하나의 정보를 공유하고 그 정보를 바탕으로 어떤 처리를 하는' 지극히 일반적인 개념을 실용화한 것이라고 할 수 있다.

 

비트코인은 전자 화폐 시스템으로 탄생했기 때문에 역시 데이터 구조나 프로토콜은 화폐 시스템에 특화돼 있다. 시스템 자체는 범용적이지만 그곳에 흐르는 데이터와 처리를 다른 방법으로 사용하는 데는 한계가 있다.

 

처음에는 비트코인을 개조해 특정 업무가 가능하게끔 하는 것이 많았지만, 점차 범용적인 사용자 맞춤 기능을 갑춘 것이 나오게 됐다. 그것이 '스마트 계약'이다.

 

스마트 계약은 '자동 º 자율적으로 계약을 집행한다.'라는 것으로 블록체인과 별로 관계가 업서 보이지만, 기능면으로 본다면 '블록체인에서 동작하는 프로그램'이라고 봐도 무방하다.

 

[ 대표적인 블록체인 기반 기술 ]

명칭 개발처 내용
Bitcoin Core Bitcoin Foundation 비트코인 레퍼런스 구현
이더러움 Ethereum Foundation 분산형 응용프로그램(Dapps) 구축 플랫폼. 전용 프로그래밍 언어로 계약을 기술할 수 있는 것이 특징.
Hyperledger Fabric Hyperledger Project 리눅스 재단이 주도하는 블록체인 기술/P2P 분산 원장 기술 기반. 성능과 신뢰성 향상을 위해 고유의 합의 알고리즘과 멤버십 관리 기능을 가짐
Corda R3 CEV R3 컨소시엄 주도로 개발된 금융 분산 원장 기반 기술. 합의형성에 초점을 맞추고 있으며, 네트워크 참가자 전원이 모든 데이터를 공유하지 않는 것이 특징.
Chain Open Standard 1 Chain.inc 단시간에 거래 완료 상태를 실현하는 새로운 합의 모델과 블록체인 암호화와 같은 기업 사용을 전제로 한 기능을 가짐.
mijin Tech Bureau 특정 노드만이 참여할 수 있는 '비공개' 블록체인(Permissioned Blockchain)을 구축하는 플랫폼으로 트랜잭션 처리의 고속화를 지향함. 합의 알고리즘으로는 'Proof of Stake'를 채택하고 있음.
Orb1 Orb 정기적으로 거래를 확장시켜 결제 완료성을 확보하고 있음. 또한 운영 주체가 '수퍼 피어'라는 권한을 부여할 수 있어 중앙 집중 형태와 분산형 모델의 장점을 융합할 수 있음.
Eris Eris Industries 이더리움에서 파생된 권한(Permission)형 블록체인. 블록체인을 교한할 수 있는 것이 특징

 

6.2.2 블록체인 기술 구성 요소

블록체인을 구성하는 다음과 같은 요소 기술을 살펴보자.

 

블록체인 기술의 구성 요소

피어 투 피어(P2P) 네트워크

: 컴퓨터끼리 같은 목적으로 연결해 네트워크를 형성하는 방식이다. 어떤 컴퓨터도 같은 처리를 할 수 있기 때문에 1대가 정지해도 시스템 전체에는 영향을 주지 않는 특징을 가진다.

 

합의 알고리즘

P2P 네트워크와 같은 분산 네트워크에서 합의 형성을 수행하기 위한 알고리즘이다. 블록체인을 여러 노드에서 공유하기 위한 가장 중요한 구조라고 할 수 있다.

 

전자 서명 º 해시 함수

트랜잭션(거래)을 발생시킨 사람의 정당성을 보증하더나 거래 º 블록체인 변조 방지, 암호화 등 보안과 관련된 기능이다.

 

스마트 계약

블록체인 네트워크에서 동작하는 프로그램을 가리킨다. 블록체인 기반 기술 중에서 가장 자유도가 높은 프로그램을 만들 수 있다.

 

6.2.3 블록체인 기방 기술의 분류

블록체인은 용도와 적용되는 네트워크 종류에 따라 몇 개의 패턴이 존재한다. 또한 블록체인 기반은 각각 어떤 패턴을 지향하고 있느냐에 따라 대략적인 분류가 가능하다. 우선 크게 나누려면 누구나 참여 가능한가, 신뢰하는 참가자로만 제한 하느냐로 나눌 수 있다. 후자는 블록의 생성(마이닝)이나 블록체인의 참조를 제한할 수 있다.

 

블록체인의 분류

비트코인은 누구나 참가 가능한 형태이기에 공용형으로 분류된다. 엔터프라이즈 영역에서는 개인형이나 컨소시엄형이 되겠지만, 공급망과 같이 여러 기업이 운영하고 신뢰하는 멤버로만 구성하는 컨소시엄형은 엔터프라이즈 영역에서 분산 원장의 강점을 살릴 수 있다.

 

6.3 블록체인 기반 기술 비교

다 같은 블록체인 기반 기술이지만 데이터 구조 및 처리 흐름은 크게 다르다. 각 블록체인 기반 기술은 대상으로 하는 비지니스나 마켓에 따라 설계 콘셉트가 다르기 때문이다. 여기서는 대표적으로 블록체인 기반 기술 중에서 개발 자유도가 높은 이더리움과 Hyperledger Fabric을 다룬다.

 

6.3.1 아키텍처 비교 

Hyperledger Fabric은 비트코인의 상징이라고 할 수 있는 PoW를 사용하지 않고 PBFT라는 알고리즘을 사용해 성능 및 결제 완료를 보장하고 있다. 이더리움은 현재 PoW지만 이후 PoS로 변경할 것이라고 발표했다. PoS는 다른 블록체인 기반에도 도입돼 검증된 알고리즘이다.

 

6.3.2 데이터 모델 비교

이더리움 데이터 모델은 비트코인의 데이터 모델을 많이 답습했다. 스마트 계약에 해당하는 프로그램은 트랜잭션에 포함되는 형태로 처리되어 프로그램 전파나 실행도 블록체인을 통해 이루어진다.

 

반대로 Hyperledger Fabric은 블록체인과 스마트 계약에서 관리되는 데이터를 명확히 분리하고 있다. Hyperledger Fabric은 스마트 계약에 해당하는 체인 코드에서 관리하는 정보를 '월드 스테이트'라는 분산 DB에 저장하고 P2P 네트워크에서 공유한다.

 

 


출처: 블록체인 구조와 이론_아키하네 요시하루, 아이케이 마나부 지음