본문 바로가기
코딩공부/블록체인 & 하이퍼레저 패브릭

1. 블록체인이란?

by 에반셀린 2023. 8. 9.

https://product.kyobobook.co.kr/detail/S000001916918

 

하이퍼레저 패브릭으로 배우는 블록체인 | 윤대근 - 교보문고

하이퍼레저 패브릭으로 배우는 블록체인 | 프라이빗 블록체인 플랫폼 전문가를 위한 첫걸음! 국내 최초의 하이퍼레저 패브릭 입문서!국내외 많은 기업들이 블록체인 서비스 개발에 하이퍼레저

product.kyobobook.co.kr


블록체인이라는 단어를 이제 우리 일상에서 쉽게 쓰게된 지 꽤 된 것 같다. 비트코인, 이더리움같이 가상화폐의 등장으로 블록체인 기술을 알게 되었다. 이번에 다니는 첫 회사에서 블록체인 개발자로 전향하며 블록체인 기술에 대한 부분이 궁금하게 되어 스터디를 하면서 공부한 부분을 기록하고자 게시글을 적게 되었다.

 

그렇다면 블록체인이 무엇일까?

1. 분산원장(Distributed Ledger)

분산원장(Distributed Ledger)라는 단어를 들어보았는가?

불산원장은 블록체인을 구성하는 가장 중요한 요소중 하나라고 볼 수 있다.

 

블록체인은 중앙화된 시스템에서 탈중앙화 시스템을 이용하는 기술인데 분산원장은 탈중앙화된 시스템으로 만들어 주는 가장 핵심적인 기술이라 볼 수 있다.

 

거래 기록등의 데이터를 저장하는 데이터베이스(원장)를 중앙화된 서버가 소유하는 것이 아니라 블록체인에 참여하는 모든 사람들이 동일한 원장을 소유하고 관리하는 기술을 말한다.

 

블록체인에는 블록체인 사용자 모두 동일한 원장에 비즈니스 정보를 기록하고 관리하는데 예를 들어, A 은행을 이용하는 고객들은 각각의 서로 다른 고유한 계좌(원장)을 가지고 금융 정보를 기록하는 반면, 우리가 알고 있는 비트코인, 이더리움등과 같은 블록체인 플랫폼의 경우 모든 사용자에 대한 거래 기록이 하나의 비트코인 원장에 모두 기록이 된다.

 

하지만 이러한 문제가 프라이버시 문제로 발생할 수 있는데 앞으로 배우게 되는 하이퍼레저 패브릭(HyperLedger Fabric)에서 채널(Channel)이라는 개념을 도입하여 프라이버시 문제를 해결하였다.

 

블록체인 분산원장의 또 다른 특징은 모든 정보가 해시화가 되어 Append-Only 방식으로만 원장에 저장되기 때문에 한번 원장에 기록된 정보들은 절대로 수정할 수 없다.

 

이러한 특징은 불가변성(Immutability)의 특성을 이용하여 블록체인 데이터에 대한 악의적인 변조를 불가능하게 만들어서 데이터에 대한 신뢰도를 향상시켜 주는 역할을 하게 된다.

2. 스마트 컨트랙트

블록체인 참여자는 스마트 컨트랙트(Smart Contract, 스마트 계약)를 통해 분산원장에 정보를 기록하거나 불러올 수 있다. 쉽게 얘기해서 데이터베이스의 CURD의 개념이라고 볼 수 있다. 또한, 스마트 컨트랙트를 이용하여 단순히 거래 정보를 읽고 쓰는 것뿐만 아니라 프로그래밍을 통해 거래 자동화등의 다양한 응용 프로그램을 만들 수도 있다.

 

스마트 컨트랙트를 좀 더 편리하게 사용하기 위해 개발되는 프로그램을 분산 애플리케이션(Decentralized Application, DApp)이라고 한다.

3. 합의

블록체인 참여하는 모든 사람들이 동일한 원장을 소유해야 하는데 이러한 조건을 만족하기 위해 비트코인이나 이더리움에서는 블록체인에 참여한 모든 노드중 암호화된 퍼즐의 답을 가장 먼저 찾아내는 노드의 블록을 최신 블록으로 업데이트하는 PoW(Proof of Work) 방식이 있다.

 

EOS는 블록체인 참여하는 사람이 예를 들어 10명의 블록 생성자를 선출하여 선출된 블록 생성자가 최신 블록을 생성하는 DPoS(Delegated Proof of Stake) 방식을 사용한다.

 

이밖에도 다양한 방식의 합의 과정들이 사용되고 있으며 하이퍼레저 패브릭에서는 조금 다른 관점으로 합의 알고리즘을 정의하고 있다. 하이퍼레저 패브릭의 합의 과정은 PoW, PoS과 다른 합의 과정을 특정 알고리즘에 국한시키지 않고 아래 세 가지의 일련 과정을 통틀어 합의 과정이라고 말한다.

  • 보증 정책 확인
  • 트랜잭션을 정해진 순서에 맞춰 정렬
  • 정렬된 트랜잭션의 유효성 검증 후 최신 블록 업데이트