SlideShare una empresa de Scribd logo
1 de 21
블록체인 구조 및
Hyperledger Fabric 개요
- 블록체인 구조와 이론 예제로 배우는 핀테크 핵심기술 발췌 -
김병준
2018.8.27
목차
1. 블록체인 기술
2. P2P 네트워크
3. 합의 알고리즘
4. 전자 서명, 해시
요약
블록체인에 대한 기본 개념과 블록 체인 기술 구성에 대해서 알아본다. 기술 구성
에는 P2P네트워크, Smart Contract, 전자서명과 해시, 합의 알고리즘이 있다. 각 구
성 요소들이 하는 역할과 목적, 어떻게 작동하는 지에 대해서 알아본다. 그리고
Hyperledger Fabric의 개요에 대해서 살펴본다.
블록체인 기술
Smart Contract
전자 서명, 해시 함수
합의 알고리즘
P2P Network
Ledger
블록체인 기술
분산된 네트워크 환경에서 오직 하나의 정보를 공유하고 그 정보를 바탕으로 어떤 처리를 한다.
USER1 USER3
USER2
Ledger
Ledger
Ledger
Ledger
Ledger
USER4
블록체인 기술
블록체인 기술 구성 요소
블록체인 기술
P2P Network
Smart Contract
전자 서명, 해시 함수
합의 알고리즘
블록체인에서 동작하는 프로그램이다.
블록체인 기반 기술에서 가장 자유도
가 높은 프로그램을 만들 수 있다.
트랜잭션을 발생시킨 사람의 정당성을
보증하거나 거래, 블록체인 변조 방지,
암호화 등 보안과 관련된 기능이다.
P2P 네트워크와 같은 분산 네트워크에
서 합의 형성을 수행하기 위한 알고리
즘이다. 블록체인을 여러 노드에서 공
유하기 위한 가장 중요한 구조이다.
컴퓨터끼리 같은 목적으로 연결해 네
트워크를 형성하는 방식이다. 어떤 컴
퓨터도 같은 처리를 할 수 있기 때문
에 1대가 정지해도 시스템 전체에는
영향을 주지 않는다.
P2P 네트워크
P2P Network Client-Server
Server
P2P형 시스템과 클라이언트,서버형 시스템의 차이
P2P 네트워크
Server
2. 파일교환(P2P 통신)
1. 인덱스 정보
하이브리드 P2P
각 노드가 보유한 데이터의 정보가
인덱스 서버에 기록된다. 노드는 자
신이 요구하는 데이터의 소유자를 인
덱스 서버에 질의하고 해당 데이터를
가진 노드 정보를 받은 뒤 직접 노드
에 연결해 데이터를 교환한다.
각 노드가 직접 데이터를 주고받는
것은 P2P 형태이지만 인덱스 서버에
요청하는 부분은 클라이언트 서버형
시스템의 형태다.
단점
인덱스 서버가 노드 검색 기능을 담당
하기에 설계와 관리가 용이하지만 내결
함성과 확장성이 떨어진다.
P2P 네트워크
퓨어 P2P
인덱스 서버 없이 자신이 원하는 데이
터를 검색하는 기능도 노드 그룹에 의
해 자율적으로 이루어진다. 데이터 검
색은 P2P 네트워크 내의 노드사이에
서 메시지 전송을 통해 이루어진다.
장점
P2P의 장점을 최대한 활용해 확정성과
내결함성이 높다.
단점
노드 검색을 위한 알고리즘을 구현
P2P 네트워크
비구조화 오버레이 네트워크
오버레이 네트워크 : 퓨터 P2P형 시스템과 같이 중앙 서버 없이 노드 탐색을 실현하기 위해 응용 프로그램 수준의 네트워크이
다.
'슈퍼 노드’라는 개념을 도입했다. 일부 노드
를 다른 일반 노드보다 상위 노드로 만든다. 슈
퍼 노드는 다수의 일반 노드를 자기 밑에 놓고
메시지의 전파는 슈퍼 노드끼리 구축된 네트워
크에서 이루어진다.
각 노드별로 연결할 상대가 미리 정해져 있으며 네트워크
토폴로지도 엄격하게 설계된 오버레이 네트워크이다. 각 노
드에는 ID가 할당되고 그 ID에 따라 연결할 상대가 결정된
다. 그 결과 링크형 또는 트리형 같은 구조를 가진 오버레이
네트워크가 구축된다.
구조화 오버레이 네트워크
장점 : 메시지 도착 가능성과 확장성이 높다.
메시지를 주변 노드로 전파해 나가는 비구조화 오버레이
는 목적지 노드에 메시지가 도달하는 것을 보장할 수 없고,
확정성에도 문제가 있다.
구조화 오버레이는 메시지를 전파하지 않고 목적지 ID를
향해 효율적으로 메시지를 보내며, 목적지 노드가 네트워
크에 존재하고 있다면 반드시 메시지를 전달하도록 설계
됐다.
네트워크 토폴로지도 엄격하기 때문에 노드 수가 증가해
도 전송 횟수는 크게 늘어나지 않는다.
P2P 네트워크
P2P 네트워크에 따른 블록체인의 동작
① 블록체인을 구성하는 P2P 네트워크에서 한 노드X가 거래 데이터(트랜잭션)을 보
낸다. 아직 이 시점에서 거래 자체는 실행되지 않았다.
② 노드X로부터 P2P네트워크로 전달된 트랜잭션은 네트워크에 참가하는 모든 노드
로 전파된다. 이처럼 자신이 작성한 거래 데이터를 블록체인 네트워크에 전송하고
모든 참가 노드에 전파시키는 것을 ‘브로드캐스트’라고한다.
③ 트랜잭션을 받은 모든 노드가 마이닝을 실시해 조건에 맞는 해시값을 발견하면
기존의 블록체인에 새로운 블록을 추가한다. 이것을 Proof of Work(PoW)라고 한
다.
④ 새로운 블록을 추가한 노드 Y는 블록을 P2P네트워크에 브로드캐스트한다.
⑤ 블록을 받은 각 노드는 블록이 올바른 것인지 검증하고, 문제가 없다면 해당 블록
을 받아들여 자신이 가지고 있는 블록체인을 업데이트한다. 그리고 이 시점에 거
래가 성립된다.
합의 알고리즘
합의 알고리즘 : P2P 네트워크와 같이 정보 도달에 시간차가 있는 네트워크에서 참가자가 하나의 결과
에 대한 합의를 얻기 위한 알고리즘이다. 블록체인은 각 노드에서 만든 블록의 정당성 을 검토하고 네
트워크 전체에서 공유하는 블록체인에 반영하기 위해 이 합의 알고리 즘을 사용한다.
목적 : P2P 네트워크에서는 정보의 지연과 미도달이라는 사태를 피할 수 없다. 따라서 데이터를 변조
할 의도가 없다 해도 이중 송신에 따른 처리 중복이나 잘못된 정보에 의한 오작동 등의 위험이
있기 때문에 정확한 정보를 공유하기 어렵다. 이 문제점을 해결하는 것이 합의 알고리즘의 목적
이다.
합의 알고리즘의 종류
Proof of Work
(PoW)
Proof of Stake
(PoS)
Paxos RAFTPBFT
Bitcoin, 이더리움 Ethereum mijin Google Chubby
Hyperledger
Fabric
RAMCloud
합의 알고리즘
PoW(Proof of Work)
블록을 만들어 배포한 후
많은 참가자가 사용하는 것
을 올바른 블록으로 정의하
기 때문에 참가자 수에 영
향을 받지 않고 얼마든지
참가자를 늘릴 수 있다. 반
면 네트워크 상태에 따라
일부분에 불일치가 생긴 경
우 파이널리티가 불확실하
게 되는 점이나 성능이 나
오지 않는다는 단점이 있다.
PoS(Proof of Stake)
화폐량을 더 많이 소유하고
있는 승인자가 우선하여 블
록을 생성할 수 있는 특징
이 있다. 이것은 ‘대량 통화
를 소유하고 있는 참가자는
그 통화 가치를 지기키 위
해 시스템의 신뢰성을 손실
하지 않을 것이다’라는 전
제를 바탕으로 하고 있다.
기본적인 구조는 PoW와
다르지 않지만 화폐량에 따
라 해시 계산의 난이도가
낮아지기 때문에 PoW와
비교해 자원 소비가 작아지
는 장점이 있다.
PBFT
(Pratical Byzantine
Fault Tolerance)
PBFT는 네트워크의 모든
참가자를 미리 알 고 있어
야한다. 참가자 중 1명이
프라이머리가 되고 자신을
포함한 모든 참가자에게 요
청을 보낸다. 그 요청에 대
한 결과를 집계한 뒤 다수
의 값을 사용해 블록을 확
정한다. 부정한 노드 수를 f
개라고 하면 노드 수는
3f+1개여야 하며, 확정에는
f+1개 이상의 노드가 필요
하다 PoW/PoS는 남은 1개
에서도 동작을 계속하지만
PBFT는 필요 수를 충족하
지 못하면 정지한다.
전자 서명과 해시
전자 서명 개요
보내는 사람 받는 사람
1. 키 쌍 작성
3. 전자 서명 작성
보내는 사람의 비밀키 보내는 사람의 공개키 보내는 사람의 공개키
2. 공개키 전송
전자 데이터
(원본)
보내는 사람의 비밀키
전자 데이터
(복호화 결과)
보내는 사람의 공개키
4. 전자 데이터와
전자 서명 전송
5. 전자 서명의 암호화
6. 비교
전자 서명
전자 데이터
(원본)
전자 서명
전자 서명과 해시
해시 개요
해시 : 전자 서명과 마찬가지로 전자 데이터로부터 생성되는 값이다. 전자 서명과의 차이점은 생성된 해시
는 다시 원래 데이터로 변환할 수 없다는 것이다. 전자 데이터로부터 해시를 만들 수 는 있지만 해시로부터
원본 전자 데이터를 만들어내는 것은 불가능하다.
해시 함수 특성
• 전자 데이터의 고유한 해시를 생성한다.
• 전자 데이터의 길이와 상관없이 고정된
크기의 해시를 생성한다.
• 전자 데이터가 1비트라도 변하면 완전히
다른 해시가 만들어진다.
전자 데이터A
전자 데이터A’
전자 데이터 A의
해시값
전자 데이터 A’의
해시값
해시
함수
해시
함수
내용 변경
동일한 해시
함수
일치하지 않음
전자 서명과 해시
위조 및 변조했을 때의 해시 재계산
블록 A
거래 내용
거래 내용의 위조
및 변조
이전 블록에서
계산한 해시값
블록 A
거래 내용
이전 블록에서
계산한 해시값
블록 A
거래 내용
이전 블록에서
계산한 해시값
블록 A
거래 내용
이전 블록에서
계산한 해시값
블록 A’
위조 및 변조된
거래 내용
이전 블록에서
계산한 해시값
블록 A’
거래 내용
이전 블록에서
계산한 해시값
블록 A’
거래 내용
이전 블록에서
계산한 해시값
블록 A’
거래 내용
이전 블록에서
계산한 해시값
Hyperledger Fabric
Hyperledger Fabric : Fabric은 HLP(Hyperledger Project)가 개발하고 있는 블록체인 소프트웨어
이다. 기업에서의 사용을 감당할 수 있는 분산 대장 프로임워크를 개발하기 위한 오픈 소스 프로
젝트이다.
Fabric의 코드는 Apache License Version 2에 기반한 오픈 소스 소프트웨어로 공개된다. Fabric은
IBM이 Open Blockchain으로 개발하던 것이지만 Hyperledger Project에 합쳐졌다.
Hyperledger Fabric
멤버쉽 서비스
Fabric은 비트코인이나 이더리움 같은 퍼블릭형 네트워크가 아니라 권한형 네트워크를 전제로
한다. 권한형 네트워크는 누구라도 Fabric 네트워크에 참가할 수 있는 것이 아니다. 네트워크에
참가하는 모든 노드나 네트워크에 처리를 요구하는 사용자는 미리 등록해야한다.
참가자 정보를 관리하기 위한 멤버십 서비스가 있다. 멤버십 서비스는 사용자 등록뿐만 아니라
참여 기관 인증서를 증명하기 위한 참가자 인증서 발행, 거래 익명성을 확보하기 위한 거래 인증
서 발행, 통신 암호화에 사용하는 TLS 인증서 발행을 수행한다.
합의 알고리즘
Fabric은 데이터 갱신 시 네트워크 참여기관 합의를 얻기 위해 합의 알고리즘을 이용해 데이터의
일관성을 확보한다. 권한형 네트워크에서는 참여기관을 알고 있기 때문에 참여기관들이 거래 결
과에 대해 투표를 실시해 합의를 얻을 수 있다.
Fabric에서 사용하는 합의 알고리즘은 현재 PBFT가 있다. PBFT는 여러 컴퓨터가 있는 상태에서
컴퓨터가 고장 나거나 네트워크에 장애가 발생해도 정상적으로 작동하도록 설계돼 있다. 여러 참
여기관이 각각 컴퓨터를 보유하고 그 중에서 일부가 거짓말을 해도 문제가 없도록 하는 단순한
이중화와는 다른 방식을 채택하고 있다.
Hyperledger Fabric
Ledger
Fabric의 데이터는 ledger라고 한다. Ledger에는 블록체인 뿐만 아니라 ‘world state’도 포함된다.
World state는 키 밸류 스토어라는 데이터베이스의 한 종류이며 트랜잭션 처리 결과를 포함한
다. 어떤 거래가 종료된 시점의 상태를 world state에 보존한다.
블록
타임 스탬프
트랜잭션
World state 해시
직전 블록의 해시
트랜잭션 종류(배포, 실행, 조회등)
체인코드 ID
페이로드(트랜잭션 실행에 필요한 정보, 함수의
인수등)
UUID
타임스탬프
해답(nonce. 보안을 위해)
트랜잭션 증명서
전자 서명
Hyperledger Fabric
체인 코드
Fabric은 거래를 실행하기 위해 체인 코드라는 프로그램이 필요하다. 체인 코드는 Init(초기화),
Inovoke(거래 실행), Query(조회)의 3가지 처리를 구현한다. Init과 Invoke는 world state를 갱신한다.
실행 결과는 블록에 기록된다. Query는 world state 상태 등을 참고할 뿐 정보를 갱신하지 않으므로
Query와 관련된 블록은 생성되지 않는다.
Fabric 네트워크에는 여러 체인 코드를 배포할 수 있다. 체인 코드를 식별하기 위해 트랜잭션을 실행
할 때 체인 코드 ID를 지정한다. 체인 코드 ID는 배포시 발행된다.
Validating Peer
Fabric에서 블록체인의 블록을 만드는 것은 Validating Peer라는 노드다. Validating Peer는 트랜잭션
을 만들고 그것을 검증한다. 그리고 트랜잭션의 내용을 바탕으로 체인을 실행하고 그 결과를 다른
Validating Peer와 합의한 뒤 블록체인과 world state의 ledger에 갱신한다. 체인 코드는 Validating
Peer가 직접 실행하지 않고 Validating Peer와 다른 프로세스로 실행된다.
Non-validating Peer라는 노드도 있다. 이것은 합의 프로세스에 참가하지 않고 원장의 복사본도 가
지지 않는다. 다수의 참가자가 합의를 내릴 때는 통신의 부하나 계산량이 커지므로 외부의 응용프로
그램으로부터 요청을 받기 위한 노드로 Non-Validating Peer를 준비하기도 한다.
Hyperledger Fabric
Hyperledger Fabric에서 트랜잭션의 흐름
Validating Peer
Docker 컨테이너
체인 코드
프로세스
Ledger
블록 체인
World State
(키 밸류 스토어)
Peer 프로세스
체인 코드
실행
원장 갱신
멤버십 서비스
Validating Peer
원장
Validating Peer
원장
Validating Peer
원장
Validating
Peer간 합의
도출
증명, 증명서의
발행
Non-Validating Peer
트랜잭션을 만들어
Validating Peer에
송신
클라이언트 처리 요청
출처
블록체인 구조와 이론 - 예제로 배우는 핀테크 핵심기술 아카하네 요시하루, 아이케이 마나부 지음/ 위키북스

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

하이퍼레저 패브릭 데이터 구조
하이퍼레저 패브릭 데이터 구조하이퍼레저 패브릭 데이터 구조
하이퍼레저 패브릭 데이터 구조
 
세션1. block chain as a platform
세션1. block chain as a platform세션1. block chain as a platform
세션1. block chain as a platform
 
코어 이더리움
코어 이더리움 코어 이더리움
코어 이더리움
 
Blockchain Study(5) - Smart Contract(스마트 계약)
Blockchain Study(5) - Smart Contract(스마트 계약)Blockchain Study(5) - Smart Contract(스마트 계약)
Blockchain Study(5) - Smart Contract(스마트 계약)
 
이더리움의 현황, 한계점 및 개선노력
이더리움의 현황, 한계점 및 개선노력 이더리움의 현황, 한계점 및 개선노력
이더리움의 현황, 한계점 및 개선노력
 
Oracle Blockchain_JaeHo Park_CTO
Oracle Blockchain_JaeHo Park_CTOOracle Blockchain_JaeHo Park_CTO
Oracle Blockchain_JaeHo Park_CTO
 
Cosmos&tendermint (kr,en) by jeon chang suk
Cosmos&tendermint (kr,en) by jeon chang sukCosmos&tendermint (kr,en) by jeon chang suk
Cosmos&tendermint (kr,en) by jeon chang suk
 
Blockchain Study(4) - Geth & Smart Contract
Blockchain Study(4) - Geth & Smart ContractBlockchain Study(4) - Geth & Smart Contract
Blockchain Study(4) - Geth & Smart Contract
 
Dapp시연 150214
Dapp시연 150214Dapp시연 150214
Dapp시연 150214
 
if kakao dev 2019_Ground X_Session 02
if kakao dev 2019_Ground X_Session 02if kakao dev 2019_Ground X_Session 02
if kakao dev 2019_Ground X_Session 02
 
if kakao dev 2019_Ground X_Session 01
if kakao dev 2019_Ground X_Session 01if kakao dev 2019_Ground X_Session 01
if kakao dev 2019_Ground X_Session 01
 
TXGX 2019_Jesse_Klaytn API Service
TXGX 2019_Jesse_Klaytn API ServiceTXGX 2019_Jesse_Klaytn API Service
TXGX 2019_Jesse_Klaytn API Service
 
SDDC(software defined data center)에서 NFV의 역할과 관리도구 (세미나 발표 자료)
SDDC(software defined data center)에서 NFV의 역할과 관리도구 (세미나 발표 자료)SDDC(software defined data center)에서 NFV의 역할과 관리도구 (세미나 발표 자료)
SDDC(software defined data center)에서 NFV의 역할과 관리도구 (세미나 발표 자료)
 
쉽게 풀어쓴 블록체인과 이더리움
쉽게 풀어쓴 블록체인과 이더리움쉽게 풀어쓴 블록체인과 이더리움
쉽게 풀어쓴 블록체인과 이더리움
 
세션3. geth 클라이언트 실습 및 모니터링과 시각화
세션3. geth 클라이언트 실습 및 모니터링과 시각화세션3. geth 클라이언트 실습 및 모니터링과 시각화
세션3. geth 클라이언트 실습 및 모니터링과 시각화
 
if kakao dev 2019_Ground X_Session 04
if kakao dev 2019_Ground X_Session 04if kakao dev 2019_Ground X_Session 04
if kakao dev 2019_Ground X_Session 04
 
Blockchain 2nd ethereum_core
Blockchain 2nd ethereum_coreBlockchain 2nd ethereum_core
Blockchain 2nd ethereum_core
 
802.1X 적용 사례(차세대 정보보안을 위한 동적 네트워크 환경 구성과 접근통제)
802.1X 적용 사례(차세대 정보보안을 위한 동적 네트워크 환경 구성과 접근통제)802.1X 적용 사례(차세대 정보보안을 위한 동적 네트워크 환경 구성과 접근통제)
802.1X 적용 사례(차세대 정보보안을 위한 동적 네트워크 환경 구성과 접근통제)
 
Mastering ethereum(smart contract)
Mastering ethereum(smart contract)Mastering ethereum(smart contract)
Mastering ethereum(smart contract)
 
블록체인 한 번에 이해하기
블록체인 한 번에 이해하기블록체인 한 번에 이해하기
블록체인 한 번에 이해하기
 

Similar a Block chain architecture and hyperledger fabric overview

너무블록체인 :2024년 블록체인 개발 동향.pdf
너무블록체인 :2024년 블록체인 개발 동향.pdf너무블록체인 :2024년 블록체인 개발 동향.pdf
너무블록체인 :2024년 블록체인 개발 동향.pdf
너무 블록체인
 

Similar a Block chain architecture and hyperledger fabric overview (20)

V SYSTEMS Whitepaper_KR
V SYSTEMS Whitepaper_KRV SYSTEMS Whitepaper_KR
V SYSTEMS Whitepaper_KR
 
너무블록체인 - 5분만에 블록체인 이해하기.pdf
너무블록체인 - 5분만에 블록체인 이해하기.pdf너무블록체인 - 5분만에 블록체인 이해하기.pdf
너무블록체인 - 5분만에 블록체인 이해하기.pdf
 
소켓프로그래밍 기초요약
소켓프로그래밍 기초요약소켓프로그래밍 기초요약
소켓프로그래밍 기초요약
 
3.고객을 연결하는 블록체인 (4차산업혁명: 고객과의 소통 신기술의 진화)
3.고객을 연결하는 블록체인 (4차산업혁명: 고객과의 소통 신기술의 진화)3.고객을 연결하는 블록체인 (4차산업혁명: 고객과의 소통 신기술의 진화)
3.고객을 연결하는 블록체인 (4차산업혁명: 고객과의 소통 신기술의 진화)
 
Blockchain techonologies and smart city 블록체인기술과 스마트시티
Blockchain techonologies and smart city 블록체인기술과 스마트시티Blockchain techonologies and smart city 블록체인기술과 스마트시티
Blockchain techonologies and smart city 블록체인기술과 스마트시티
 
Bitcoin 2.0(blockchain technology 2)
Bitcoin 2.0(blockchain technology 2)Bitcoin 2.0(blockchain technology 2)
Bitcoin 2.0(blockchain technology 2)
 
[Polygon] Bring the World to Ethereum 발표자료
[Polygon] Bring the World to Ethereum 발표자료[Polygon] Bring the World to Ethereum 발표자료
[Polygon] Bring the World to Ethereum 발표자료
 
About the Blockchain_imcloud
About the Blockchain_imcloudAbout the Blockchain_imcloud
About the Blockchain_imcloud
 
V SYSTEMS - Smart Contract and Token System_KR
V SYSTEMS - Smart Contract and Token System_KRV SYSTEMS - Smart Contract and Token System_KR
V SYSTEMS - Smart Contract and Token System_KR
 
Oracle Blockchain Cloud 소개 - 콘솔 화면 포함
Oracle Blockchain Cloud 소개 - 콘솔 화면 포함Oracle Blockchain Cloud 소개 - 콘솔 화면 포함
Oracle Blockchain Cloud 소개 - 콘솔 화면 포함
 
너무블록체인 - 블록체인 web3.0 기술 적용.pdf
너무블록체인 - 블록체인 web3.0 기술 적용.pdf너무블록체인 - 블록체인 web3.0 기술 적용.pdf
너무블록체인 - 블록체인 web3.0 기술 적용.pdf
 
너무블록체인 :2024년 블록체인 개발 동향.pdf
너무블록체인 :2024년 블록체인 개발 동향.pdf너무블록체인 :2024년 블록체인 개발 동향.pdf
너무블록체인 :2024년 블록체인 개발 동향.pdf
 
W3C HTML5 컨퍼런스 2020 - 웹 환경에서 블록체인 노드와 통신 및 신원인증 (DID)
W3C HTML5 컨퍼런스 2020 - 웹 환경에서 블록체인 노드와 통신 및 신원인증 (DID)W3C HTML5 컨퍼런스 2020 - 웹 환경에서 블록체인 노드와 통신 및 신원인증 (DID)
W3C HTML5 컨퍼런스 2020 - 웹 환경에서 블록체인 노드와 통신 및 신원인증 (DID)
 
Web 3.0
Web 3.0Web 3.0
Web 3.0
 
[ETHCon Korea 2019] Kim Taekgyun 김택균
[ETHCon Korea 2019] Kim Taekgyun 김택균[ETHCon Korea 2019] Kim Taekgyun 김택균
[ETHCon Korea 2019] Kim Taekgyun 김택균
 
[Partner TechForum] 금융 서비스를 위한 블록체인 구축사례 소개
[Partner TechForum] 금융 서비스를 위한 블록체인 구축사례 소개[Partner TechForum] 금융 서비스를 위한 블록체인 구축사례 소개
[Partner TechForum] 금융 서비스를 위한 블록체인 구축사례 소개
 
너무블록체인 - 금융분야에 블록체인 적용.pdf
너무블록체인 - 금융분야에 블록체인 적용.pdf너무블록체인 - 금융분야에 블록체인 적용.pdf
너무블록체인 - 금융분야에 블록체인 적용.pdf
 
Blockchain 개념과 현주소
Blockchain 개념과 현주소Blockchain 개념과 현주소
Blockchain 개념과 현주소
 
전자상거래 보안-블록체인(Blockchain) 기술
전자상거래 보안-블록체인(Blockchain) 기술전자상거래 보안-블록체인(Blockchain) 기술
전자상거래 보안-블록체인(Blockchain) 기술
 
[블록체인 기업으로 가는 길] 2일차 블록체인 기술
[블록체인 기업으로 가는 길] 2일차 블록체인 기술[블록체인 기업으로 가는 길] 2일차 블록체인 기술
[블록체인 기업으로 가는 길] 2일차 블록체인 기술
 

Block chain architecture and hyperledger fabric overview

  • 1. 블록체인 구조 및 Hyperledger Fabric 개요 - 블록체인 구조와 이론 예제로 배우는 핀테크 핵심기술 발췌 - 김병준 2018.8.27
  • 2. 목차 1. 블록체인 기술 2. P2P 네트워크 3. 합의 알고리즘 4. 전자 서명, 해시
  • 3. 요약 블록체인에 대한 기본 개념과 블록 체인 기술 구성에 대해서 알아본다. 기술 구성 에는 P2P네트워크, Smart Contract, 전자서명과 해시, 합의 알고리즘이 있다. 각 구 성 요소들이 하는 역할과 목적, 어떻게 작동하는 지에 대해서 알아본다. 그리고 Hyperledger Fabric의 개요에 대해서 살펴본다. 블록체인 기술 Smart Contract 전자 서명, 해시 함수 합의 알고리즘 P2P Network
  • 4. Ledger 블록체인 기술 분산된 네트워크 환경에서 오직 하나의 정보를 공유하고 그 정보를 바탕으로 어떤 처리를 한다. USER1 USER3 USER2 Ledger Ledger Ledger Ledger Ledger USER4
  • 5. 블록체인 기술 블록체인 기술 구성 요소 블록체인 기술 P2P Network Smart Contract 전자 서명, 해시 함수 합의 알고리즘 블록체인에서 동작하는 프로그램이다. 블록체인 기반 기술에서 가장 자유도 가 높은 프로그램을 만들 수 있다. 트랜잭션을 발생시킨 사람의 정당성을 보증하거나 거래, 블록체인 변조 방지, 암호화 등 보안과 관련된 기능이다. P2P 네트워크와 같은 분산 네트워크에 서 합의 형성을 수행하기 위한 알고리 즘이다. 블록체인을 여러 노드에서 공 유하기 위한 가장 중요한 구조이다. 컴퓨터끼리 같은 목적으로 연결해 네 트워크를 형성하는 방식이다. 어떤 컴 퓨터도 같은 처리를 할 수 있기 때문 에 1대가 정지해도 시스템 전체에는 영향을 주지 않는다.
  • 6. P2P 네트워크 P2P Network Client-Server Server P2P형 시스템과 클라이언트,서버형 시스템의 차이
  • 7. P2P 네트워크 Server 2. 파일교환(P2P 통신) 1. 인덱스 정보 하이브리드 P2P 각 노드가 보유한 데이터의 정보가 인덱스 서버에 기록된다. 노드는 자 신이 요구하는 데이터의 소유자를 인 덱스 서버에 질의하고 해당 데이터를 가진 노드 정보를 받은 뒤 직접 노드 에 연결해 데이터를 교환한다. 각 노드가 직접 데이터를 주고받는 것은 P2P 형태이지만 인덱스 서버에 요청하는 부분은 클라이언트 서버형 시스템의 형태다. 단점 인덱스 서버가 노드 검색 기능을 담당 하기에 설계와 관리가 용이하지만 내결 함성과 확장성이 떨어진다.
  • 8. P2P 네트워크 퓨어 P2P 인덱스 서버 없이 자신이 원하는 데이 터를 검색하는 기능도 노드 그룹에 의 해 자율적으로 이루어진다. 데이터 검 색은 P2P 네트워크 내의 노드사이에 서 메시지 전송을 통해 이루어진다. 장점 P2P의 장점을 최대한 활용해 확정성과 내결함성이 높다. 단점 노드 검색을 위한 알고리즘을 구현
  • 9. P2P 네트워크 비구조화 오버레이 네트워크 오버레이 네트워크 : 퓨터 P2P형 시스템과 같이 중앙 서버 없이 노드 탐색을 실현하기 위해 응용 프로그램 수준의 네트워크이 다. '슈퍼 노드’라는 개념을 도입했다. 일부 노드 를 다른 일반 노드보다 상위 노드로 만든다. 슈 퍼 노드는 다수의 일반 노드를 자기 밑에 놓고 메시지의 전파는 슈퍼 노드끼리 구축된 네트워 크에서 이루어진다. 각 노드별로 연결할 상대가 미리 정해져 있으며 네트워크 토폴로지도 엄격하게 설계된 오버레이 네트워크이다. 각 노 드에는 ID가 할당되고 그 ID에 따라 연결할 상대가 결정된 다. 그 결과 링크형 또는 트리형 같은 구조를 가진 오버레이 네트워크가 구축된다. 구조화 오버레이 네트워크 장점 : 메시지 도착 가능성과 확장성이 높다. 메시지를 주변 노드로 전파해 나가는 비구조화 오버레이 는 목적지 노드에 메시지가 도달하는 것을 보장할 수 없고, 확정성에도 문제가 있다. 구조화 오버레이는 메시지를 전파하지 않고 목적지 ID를 향해 효율적으로 메시지를 보내며, 목적지 노드가 네트워 크에 존재하고 있다면 반드시 메시지를 전달하도록 설계 됐다. 네트워크 토폴로지도 엄격하기 때문에 노드 수가 증가해 도 전송 횟수는 크게 늘어나지 않는다.
  • 10. P2P 네트워크 P2P 네트워크에 따른 블록체인의 동작 ① 블록체인을 구성하는 P2P 네트워크에서 한 노드X가 거래 데이터(트랜잭션)을 보 낸다. 아직 이 시점에서 거래 자체는 실행되지 않았다. ② 노드X로부터 P2P네트워크로 전달된 트랜잭션은 네트워크에 참가하는 모든 노드 로 전파된다. 이처럼 자신이 작성한 거래 데이터를 블록체인 네트워크에 전송하고 모든 참가 노드에 전파시키는 것을 ‘브로드캐스트’라고한다. ③ 트랜잭션을 받은 모든 노드가 마이닝을 실시해 조건에 맞는 해시값을 발견하면 기존의 블록체인에 새로운 블록을 추가한다. 이것을 Proof of Work(PoW)라고 한 다. ④ 새로운 블록을 추가한 노드 Y는 블록을 P2P네트워크에 브로드캐스트한다. ⑤ 블록을 받은 각 노드는 블록이 올바른 것인지 검증하고, 문제가 없다면 해당 블록 을 받아들여 자신이 가지고 있는 블록체인을 업데이트한다. 그리고 이 시점에 거 래가 성립된다.
  • 11. 합의 알고리즘 합의 알고리즘 : P2P 네트워크와 같이 정보 도달에 시간차가 있는 네트워크에서 참가자가 하나의 결과 에 대한 합의를 얻기 위한 알고리즘이다. 블록체인은 각 노드에서 만든 블록의 정당성 을 검토하고 네 트워크 전체에서 공유하는 블록체인에 반영하기 위해 이 합의 알고리 즘을 사용한다. 목적 : P2P 네트워크에서는 정보의 지연과 미도달이라는 사태를 피할 수 없다. 따라서 데이터를 변조 할 의도가 없다 해도 이중 송신에 따른 처리 중복이나 잘못된 정보에 의한 오작동 등의 위험이 있기 때문에 정확한 정보를 공유하기 어렵다. 이 문제점을 해결하는 것이 합의 알고리즘의 목적 이다. 합의 알고리즘의 종류 Proof of Work (PoW) Proof of Stake (PoS) Paxos RAFTPBFT Bitcoin, 이더리움 Ethereum mijin Google Chubby Hyperledger Fabric RAMCloud
  • 12. 합의 알고리즘 PoW(Proof of Work) 블록을 만들어 배포한 후 많은 참가자가 사용하는 것 을 올바른 블록으로 정의하 기 때문에 참가자 수에 영 향을 받지 않고 얼마든지 참가자를 늘릴 수 있다. 반 면 네트워크 상태에 따라 일부분에 불일치가 생긴 경 우 파이널리티가 불확실하 게 되는 점이나 성능이 나 오지 않는다는 단점이 있다. PoS(Proof of Stake) 화폐량을 더 많이 소유하고 있는 승인자가 우선하여 블 록을 생성할 수 있는 특징 이 있다. 이것은 ‘대량 통화 를 소유하고 있는 참가자는 그 통화 가치를 지기키 위 해 시스템의 신뢰성을 손실 하지 않을 것이다’라는 전 제를 바탕으로 하고 있다. 기본적인 구조는 PoW와 다르지 않지만 화폐량에 따 라 해시 계산의 난이도가 낮아지기 때문에 PoW와 비교해 자원 소비가 작아지 는 장점이 있다. PBFT (Pratical Byzantine Fault Tolerance) PBFT는 네트워크의 모든 참가자를 미리 알 고 있어 야한다. 참가자 중 1명이 프라이머리가 되고 자신을 포함한 모든 참가자에게 요 청을 보낸다. 그 요청에 대 한 결과를 집계한 뒤 다수 의 값을 사용해 블록을 확 정한다. 부정한 노드 수를 f 개라고 하면 노드 수는 3f+1개여야 하며, 확정에는 f+1개 이상의 노드가 필요 하다 PoW/PoS는 남은 1개 에서도 동작을 계속하지만 PBFT는 필요 수를 충족하 지 못하면 정지한다.
  • 13. 전자 서명과 해시 전자 서명 개요 보내는 사람 받는 사람 1. 키 쌍 작성 3. 전자 서명 작성 보내는 사람의 비밀키 보내는 사람의 공개키 보내는 사람의 공개키 2. 공개키 전송 전자 데이터 (원본) 보내는 사람의 비밀키 전자 데이터 (복호화 결과) 보내는 사람의 공개키 4. 전자 데이터와 전자 서명 전송 5. 전자 서명의 암호화 6. 비교 전자 서명 전자 데이터 (원본) 전자 서명
  • 14. 전자 서명과 해시 해시 개요 해시 : 전자 서명과 마찬가지로 전자 데이터로부터 생성되는 값이다. 전자 서명과의 차이점은 생성된 해시 는 다시 원래 데이터로 변환할 수 없다는 것이다. 전자 데이터로부터 해시를 만들 수 는 있지만 해시로부터 원본 전자 데이터를 만들어내는 것은 불가능하다. 해시 함수 특성 • 전자 데이터의 고유한 해시를 생성한다. • 전자 데이터의 길이와 상관없이 고정된 크기의 해시를 생성한다. • 전자 데이터가 1비트라도 변하면 완전히 다른 해시가 만들어진다. 전자 데이터A 전자 데이터A’ 전자 데이터 A의 해시값 전자 데이터 A’의 해시값 해시 함수 해시 함수 내용 변경 동일한 해시 함수 일치하지 않음
  • 15. 전자 서명과 해시 위조 및 변조했을 때의 해시 재계산 블록 A 거래 내용 거래 내용의 위조 및 변조 이전 블록에서 계산한 해시값 블록 A 거래 내용 이전 블록에서 계산한 해시값 블록 A 거래 내용 이전 블록에서 계산한 해시값 블록 A 거래 내용 이전 블록에서 계산한 해시값 블록 A’ 위조 및 변조된 거래 내용 이전 블록에서 계산한 해시값 블록 A’ 거래 내용 이전 블록에서 계산한 해시값 블록 A’ 거래 내용 이전 블록에서 계산한 해시값 블록 A’ 거래 내용 이전 블록에서 계산한 해시값
  • 16. Hyperledger Fabric Hyperledger Fabric : Fabric은 HLP(Hyperledger Project)가 개발하고 있는 블록체인 소프트웨어 이다. 기업에서의 사용을 감당할 수 있는 분산 대장 프로임워크를 개발하기 위한 오픈 소스 프로 젝트이다. Fabric의 코드는 Apache License Version 2에 기반한 오픈 소스 소프트웨어로 공개된다. Fabric은 IBM이 Open Blockchain으로 개발하던 것이지만 Hyperledger Project에 합쳐졌다.
  • 17. Hyperledger Fabric 멤버쉽 서비스 Fabric은 비트코인이나 이더리움 같은 퍼블릭형 네트워크가 아니라 권한형 네트워크를 전제로 한다. 권한형 네트워크는 누구라도 Fabric 네트워크에 참가할 수 있는 것이 아니다. 네트워크에 참가하는 모든 노드나 네트워크에 처리를 요구하는 사용자는 미리 등록해야한다. 참가자 정보를 관리하기 위한 멤버십 서비스가 있다. 멤버십 서비스는 사용자 등록뿐만 아니라 참여 기관 인증서를 증명하기 위한 참가자 인증서 발행, 거래 익명성을 확보하기 위한 거래 인증 서 발행, 통신 암호화에 사용하는 TLS 인증서 발행을 수행한다. 합의 알고리즘 Fabric은 데이터 갱신 시 네트워크 참여기관 합의를 얻기 위해 합의 알고리즘을 이용해 데이터의 일관성을 확보한다. 권한형 네트워크에서는 참여기관을 알고 있기 때문에 참여기관들이 거래 결 과에 대해 투표를 실시해 합의를 얻을 수 있다. Fabric에서 사용하는 합의 알고리즘은 현재 PBFT가 있다. PBFT는 여러 컴퓨터가 있는 상태에서 컴퓨터가 고장 나거나 네트워크에 장애가 발생해도 정상적으로 작동하도록 설계돼 있다. 여러 참 여기관이 각각 컴퓨터를 보유하고 그 중에서 일부가 거짓말을 해도 문제가 없도록 하는 단순한 이중화와는 다른 방식을 채택하고 있다.
  • 18. Hyperledger Fabric Ledger Fabric의 데이터는 ledger라고 한다. Ledger에는 블록체인 뿐만 아니라 ‘world state’도 포함된다. World state는 키 밸류 스토어라는 데이터베이스의 한 종류이며 트랜잭션 처리 결과를 포함한 다. 어떤 거래가 종료된 시점의 상태를 world state에 보존한다. 블록 타임 스탬프 트랜잭션 World state 해시 직전 블록의 해시 트랜잭션 종류(배포, 실행, 조회등) 체인코드 ID 페이로드(트랜잭션 실행에 필요한 정보, 함수의 인수등) UUID 타임스탬프 해답(nonce. 보안을 위해) 트랜잭션 증명서 전자 서명
  • 19. Hyperledger Fabric 체인 코드 Fabric은 거래를 실행하기 위해 체인 코드라는 프로그램이 필요하다. 체인 코드는 Init(초기화), Inovoke(거래 실행), Query(조회)의 3가지 처리를 구현한다. Init과 Invoke는 world state를 갱신한다. 실행 결과는 블록에 기록된다. Query는 world state 상태 등을 참고할 뿐 정보를 갱신하지 않으므로 Query와 관련된 블록은 생성되지 않는다. Fabric 네트워크에는 여러 체인 코드를 배포할 수 있다. 체인 코드를 식별하기 위해 트랜잭션을 실행 할 때 체인 코드 ID를 지정한다. 체인 코드 ID는 배포시 발행된다. Validating Peer Fabric에서 블록체인의 블록을 만드는 것은 Validating Peer라는 노드다. Validating Peer는 트랜잭션 을 만들고 그것을 검증한다. 그리고 트랜잭션의 내용을 바탕으로 체인을 실행하고 그 결과를 다른 Validating Peer와 합의한 뒤 블록체인과 world state의 ledger에 갱신한다. 체인 코드는 Validating Peer가 직접 실행하지 않고 Validating Peer와 다른 프로세스로 실행된다. Non-validating Peer라는 노드도 있다. 이것은 합의 프로세스에 참가하지 않고 원장의 복사본도 가 지지 않는다. 다수의 참가자가 합의를 내릴 때는 통신의 부하나 계산량이 커지므로 외부의 응용프로 그램으로부터 요청을 받기 위한 노드로 Non-Validating Peer를 준비하기도 한다.
  • 20. Hyperledger Fabric Hyperledger Fabric에서 트랜잭션의 흐름 Validating Peer Docker 컨테이너 체인 코드 프로세스 Ledger 블록 체인 World State (키 밸류 스토어) Peer 프로세스 체인 코드 실행 원장 갱신 멤버십 서비스 Validating Peer 원장 Validating Peer 원장 Validating Peer 원장 Validating Peer간 합의 도출 증명, 증명서의 발행 Non-Validating Peer 트랜잭션을 만들어 Validating Peer에 송신 클라이언트 처리 요청
  • 21. 출처 블록체인 구조와 이론 - 예제로 배우는 핀테크 핵심기술 아카하네 요시하루, 아이케이 마나부 지음/ 위키북스