블록체인에 대한 기본 개념과 블록 체인 기술 구성에 대해서 알아본다. 기술 구성에는 P2P네트워크, Smart Contract, 전자서명과 해시, 합의 알고리즘이 있다. 각 구성 요소들이 하는 역할과 목적, 어떻게 작동하는 지에 대해서 알아본다. 그리고 Hyperledger Fabric의 개요에 대해서 살펴본다.
본 발표자료에서는 이더리움 플랫폼의 상세 아키텍쳐와 기반 기술, 그리고 스마트 컨트랙과 이를 기반한 Dapp의 개발 방안에 대해 소개한다. 이더리움은 블록체인 기반 기술하에 암호 화폐의 생성 , 전송 등 라이프사이클 관리외에 스마트 컨트랙을 지원한다. 스마트컨트랙은 서로 모르는 당사자간의 계약을 준수하도록 강제할 수 있는 응용 프로그램이다. 컨트랙 프로그램은 바이트코드로 컴파일된 후 블록체인을 통해 배포되고 , 로컬 로드상에서 실행되는 일종의 에이전트라 볼 수 있다. 이렇게 개바된 스마트컨트랙은 기존 웹 인터페이스를 통해 접근하고 활용할 수 있으며 이렇게 스마트 컨트랙 기반하에 개발된 응용 서비스를 Dapp이라 한다.
Klaytn 플랫폼 및 SDK 소개
Ground X가 주도하여 개발한 Public Blockchain 플랫폼인 Klaytn의 아키텍처와 SDK에 대해 소개합니다. Klaytn은 엔터프라이즈와 서비스를 지향하는 블록체인 플랫폼으로 1초의 블록 생성 및 확정 시간과 4000 TPS의 성능을 달성한 고성능의 블록체인 플랫폼입니다. 본 발표에서는 Klaytn의 네트워크 구조와 블록 생성 및 검증을 담당하는 Governance Council, 그리고 플랫폼의 전반적인 아키텍처에 대해서 설명합니다. 그리고 Klaytn에서 블록체인 애플리케이션을 개발할 때 사용할 수 있는 SDK인 caver-js와 caver-java에 대해서도 소개합니다. 마지막으로 Klaytn을 개발하고 메인넷 Cypress를 런칭하기까지의 개발 후기에 대해서도 공유할 예정입니다.
블록체인 제품 생태계를 구성해보자
Ground X가 블록체인을 통해 세상에 기여하고 싶은 메세지가 있습니다. 그것을 이뤄내기 위해 어떤 제품들을 기획했고, 1년반동안 제품을 만들면서 PM/Designer/Data scientist/Engineer 들과 어떻게 협업을 하였는지 공유하고자 합니다. 그리고 메인넷을 출시한 다음에 어떤 제품로드맵과 방향을 가지고 있는지 공유할 예정입니다.
Klaytn API Service
Klaytn 플랫폼에서 BApp을 개발하기 위해서는 서비스 개발 회사들이 직접 Klaytn Node를 운영하는 것을 요구하게 됩니다. 이는 서비스 본질에 집중하고 싶은 개발사의 목적과 부합하지 않고 다소 전문적인 인력/기술이 필요하다는 문제가 발생할 수 있습니다. 이러한 문제점을 해결하기 위해 Ground X가 개발중인 Klaytn API Service에 대해 소개합니다.
Klaytn 성능 향상 대장정 - 1000만 account 극복기
블록체인은 네트워크 상에서 상태가 합의를 이루고 복제되어야하는 제한 조건 때문에 전통적인 데이터베이스에 비해 떨어지는 성능을 보인다. 또한 Klaytn에서는 각 어카운트의 정보를 저장하기 위해 Merkle Partricia Trie를 사용하는데, Merkle Partricia Trie의 성능은 전체 어카운트 개수가 늘어날수록 떨어진다. 1000만개 이상의 어카운트가 존재할 때에도 성능 저하를 최소화 하기 위해 1) 일반적인 성능 향상과 더불어 2) 어카운트 개수 증가에 의한 성능 저하를 최소화하는 작업을 동시에 진행하였다. 본 세션에서는 블록체인의 성능 병목 구간에 대한 설명과 더불어 1) Consensus Layer, 2) In-memory Layer, 3) Persistent Layer 의 각 레이어 별로 적용한 최적화 기법들, 그리고 그 사이에 마주친 문제들에 대해 공유하는 시간을 갖는다.
802.1X 적용 사례(차세대 정보보안을 위한 동적 네트워크 환경 구성과 접근통제)MinChoul Lee
2015년 9월 7일 ISEC에서 발표한 802.1X 사례 발표자료입니다.
802.1X 적용을 고려하고 있는 분들은 참고하세요~
발표자료에 대한 구체적인 구현 방법은 "네트워크 접근통제 시스템 구축"과 "무선 네트워크 리모델링"을 참고해주세요.
- 네트워크 접근통제 시스템 구축: http://www.yes24.com/24/goods/15899949?scode=032&OzSrank=1
- 무선 네트워크 리모델링: http://www.yes24.com/24/Goods/38467332?Acode=101
본 발표자료에서는 이더리움 플랫폼의 상세 아키텍쳐와 기반 기술, 그리고 스마트 컨트랙과 이를 기반한 Dapp의 개발 방안에 대해 소개한다. 이더리움은 블록체인 기반 기술하에 암호 화폐의 생성 , 전송 등 라이프사이클 관리외에 스마트 컨트랙을 지원한다. 스마트컨트랙은 서로 모르는 당사자간의 계약을 준수하도록 강제할 수 있는 응용 프로그램이다. 컨트랙 프로그램은 바이트코드로 컴파일된 후 블록체인을 통해 배포되고 , 로컬 로드상에서 실행되는 일종의 에이전트라 볼 수 있다. 이렇게 개바된 스마트컨트랙은 기존 웹 인터페이스를 통해 접근하고 활용할 수 있으며 이렇게 스마트 컨트랙 기반하에 개발된 응용 서비스를 Dapp이라 한다.
Klaytn 플랫폼 및 SDK 소개
Ground X가 주도하여 개발한 Public Blockchain 플랫폼인 Klaytn의 아키텍처와 SDK에 대해 소개합니다. Klaytn은 엔터프라이즈와 서비스를 지향하는 블록체인 플랫폼으로 1초의 블록 생성 및 확정 시간과 4000 TPS의 성능을 달성한 고성능의 블록체인 플랫폼입니다. 본 발표에서는 Klaytn의 네트워크 구조와 블록 생성 및 검증을 담당하는 Governance Council, 그리고 플랫폼의 전반적인 아키텍처에 대해서 설명합니다. 그리고 Klaytn에서 블록체인 애플리케이션을 개발할 때 사용할 수 있는 SDK인 caver-js와 caver-java에 대해서도 소개합니다. 마지막으로 Klaytn을 개발하고 메인넷 Cypress를 런칭하기까지의 개발 후기에 대해서도 공유할 예정입니다.
블록체인 제품 생태계를 구성해보자
Ground X가 블록체인을 통해 세상에 기여하고 싶은 메세지가 있습니다. 그것을 이뤄내기 위해 어떤 제품들을 기획했고, 1년반동안 제품을 만들면서 PM/Designer/Data scientist/Engineer 들과 어떻게 협업을 하였는지 공유하고자 합니다. 그리고 메인넷을 출시한 다음에 어떤 제품로드맵과 방향을 가지고 있는지 공유할 예정입니다.
Klaytn API Service
Klaytn 플랫폼에서 BApp을 개발하기 위해서는 서비스 개발 회사들이 직접 Klaytn Node를 운영하는 것을 요구하게 됩니다. 이는 서비스 본질에 집중하고 싶은 개발사의 목적과 부합하지 않고 다소 전문적인 인력/기술이 필요하다는 문제가 발생할 수 있습니다. 이러한 문제점을 해결하기 위해 Ground X가 개발중인 Klaytn API Service에 대해 소개합니다.
Klaytn 성능 향상 대장정 - 1000만 account 극복기
블록체인은 네트워크 상에서 상태가 합의를 이루고 복제되어야하는 제한 조건 때문에 전통적인 데이터베이스에 비해 떨어지는 성능을 보인다. 또한 Klaytn에서는 각 어카운트의 정보를 저장하기 위해 Merkle Partricia Trie를 사용하는데, Merkle Partricia Trie의 성능은 전체 어카운트 개수가 늘어날수록 떨어진다. 1000만개 이상의 어카운트가 존재할 때에도 성능 저하를 최소화 하기 위해 1) 일반적인 성능 향상과 더불어 2) 어카운트 개수 증가에 의한 성능 저하를 최소화하는 작업을 동시에 진행하였다. 본 세션에서는 블록체인의 성능 병목 구간에 대한 설명과 더불어 1) Consensus Layer, 2) In-memory Layer, 3) Persistent Layer 의 각 레이어 별로 적용한 최적화 기법들, 그리고 그 사이에 마주친 문제들에 대해 공유하는 시간을 갖는다.
802.1X 적용 사례(차세대 정보보안을 위한 동적 네트워크 환경 구성과 접근통제)MinChoul Lee
2015년 9월 7일 ISEC에서 발표한 802.1X 사례 발표자료입니다.
802.1X 적용을 고려하고 있는 분들은 참고하세요~
발표자료에 대한 구체적인 구현 방법은 "네트워크 접근통제 시스템 구축"과 "무선 네트워크 리모델링"을 참고해주세요.
- 네트워크 접근통제 시스템 구축: http://www.yes24.com/24/goods/15899949?scode=032&OzSrank=1
- 무선 네트워크 리모델링: http://www.yes24.com/24/Goods/38467332?Acode=101
3.고객을 연결하는 블록체인 (4차산업혁명: 고객과의 소통 신기술의 진화)doo rip choi
4차 산업혁명의 기술들은 소통을 위한 진화 기술로 발전되어 가고 있다.
비즈니스 영역마다 고객과의 소통이 필요하고 신기술을 활용한
고객의 니즈에 맞는 서비스 역량을 가져야 할 것이다.
고객과의 소통을 주제로 3개의 시리즈 물로 발표 자료를 공유 합니다.
고객과의 소통 신기술의 진화,
1. 고객을 이해하는 빅데이터
(The big data platform to understand customers.)
2. 고객과 소통하는 인공지능
( Artificial intelligence to communicate with customers)
3. 고객을 연결하는 블록체인
(Block chain to connect with customer)
Blockchain techonologies and smart city 블록체인기술과 스마트시티Byounghee Kim
At a glance of blockchain technologies and smart city.
1. What is a Blockchain technology?
2. Making use of blockchain technologies
3. Blockchain market
4. Blockchain and Smart-City
5. Conclusion
블록체인기술과 스마트시티
1. 블록체인이란 무엇인가?
2. 블록체인 기술 활용
3. 블록체인 시장 현황
4. 블록체인과 스마트시티
5. 끝맺음
블록체인 기술은 웹 3.0 시대를 여는 혁명적인 혁신입니다. 보다 개방적이고 투명하며 분산화된 인터넷 시대를 달성하기 위해 실제 응용 프로그램에서 블록체인 기술의 가능성과 과제를 이해합니다. 클라우드 서비스 제공자는 서버 제공자일 뿐만 아니라 통합 클라이언트를 통해 블록을 채굴하고 생성할 수도 있습니다. 채굴 과정에서 클라우드 서비스 제공업체는 토큰을 스테이킹하여 채굴 성공 가능성을 높일 수 있습니다.
2024년 블록체인의 발전 추세는 다음과 같은 측면에서 반영될 수 있습니다.
금융 분야에서 블록체인 적용 심화: 탈중앙화 금융(DeFi)의 급속한 발전으로 탈중앙화 거래소, 대출, 금융, 보험 등 블록체인 기술을 기반으로 한 금융 애플리케이션이 더욱 풍부해지며 금융 운영이 더욱 활발해질 것입니다. 더욱 투명하고 효율적입니다. 또한 더 많은 디지털 통화와 스테이블코인이 등장하고 더 많은 기관이 블록체인 기술을 받아들이고 채택하는 것을 볼 수 있습니다.
개인 정보 보호 기술의 광범위한 적용: 데이터 보안 및 개인 정보 보호 문제가 점점 더 많은 관심을 받게 되면서, 영지식 증명 및 링 서명과 같은 개인 정보 보호 기술이 사용자 개인 정보를 보호하기 위해 블록체인 네트워크에서 더 많이 사용될 수 있습니다. 및 데이터 보안.
크로스체인 기술의 혁신: 서로 다른 블록체인 간의 상호 운용성을 달성하는 것은 2024년 블록체인 분야에서 중요한 돌파구가 될 수 있습니다. 이는 서로 다른 블록체인 네트워크 간의 고립을 깨고 서로 다른 네트워크 간에 정보와 가치가 자유롭게 흐르도록 허용하여 효율성과 효율성을 향상시킵니다. 블록체인 네트워크의 가용성.
지속 가능성 향상: 블록체인의 에너지 소비 문제는 항상 대중의 관심의 초점이었습니다. 2024년에는 더 많은 블록체인 네트워크가 지분 증명(PoS)과 같은 친환경 합의 메커니즘을 사용하거나 에너지 소비를 줄이고 지속 가능성을 높이기 위해 에너지 효율적인 다른 기술 솔루션을 채택하는 것을 볼 수 있습니다.
W3C HTML5 컨퍼런스 2020 - 웹 환경에서 블록체인 노드와 통신 및 신원인증 (DID)Benjamin Oh
W3C HTML5 컨퍼런스 2020에 대한 정보는 다음에서 확인 가능합니다.
- https://www.openbooth.space/exhibition/html5
SSI Meetup Korea에서 번역 활동 참여 경험 및 DID 관련 프로젝트 진행에 대한 경험을 살려 W3C HTML5 컨퍼런스에서 블록체인 상의 DID 구현에 대한 발표를 하였습니다.
블록체인 기술은 최근 몇 년간 등장하여 많은 산업 분야에서 인용되고 있는 신흥 기술입니다. 특히 금융 분야는 널리 논의되는 응용 분야 중 하나입니다.Web3.0 새로운 블록체인 기술로 제공되는 서비스.너무i는 블록체인 기술을 기반으로 한 분산형 클라우드 네트워크로, Yintai에 공식적인 조건을 충족하는 서버를 제공하는 역할을 합니다. 이러한 서버는 인터넷 네트워크에 가입하기 전에 유효성 검사기에 의해 확인되어야 합니다.
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대가 정지해도 시스템 전체에는
영향을 주지 않는다.
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. 출처
블록체인 구조와 이론 - 예제로 배우는 핀테크 핵심기술 아카하네 요시하루, 아이케이 마나부 지음/ 위키북스