블록체인과 리플 레저 | 하이퍼레저패브릭의 개요
16강 블록체인과리블제3강 리플 레저
리플 레저
-
헤더 구조
필드 설명 ledger-index 레저의 순서 번호 Ledger-hash 레저 헤더의 해시값 Account-hash State-tree의 해시값 Close-time 레더 생성 시간 Parent-hash 직전 레저의 해시값 Torl-colns 모든 계좌의 XRP Drop의 전체량 Transaction-hash Transaction-tree의 해시값 -
레저 생성
- 생성 간격 : 2~6초
- 리플 합의 프로토콜 수행 결과에 따라 달라짐
- 합의 프로토콜 수행 결과 레저 버전 생성이 완료되어 최종 폐쇄 원장(Last Closed Leder)로 확정되면 변경 불가
리플 합의 프로토콜
- 목표
- 정상적인 장애 환경 + 비진틴 장애 환경(공격 등에 의한 장애)에서
- 20%까지 장애 노드가 존재하는 경우에도 전체 검증 노드들의 합의에 의한 레저 버전(ledger version) 생성
- 기본 개념
- 각 검증 노드가 신뢰하는 검증 노드들의 집합인 UNL(Unique Node List)의 검증 노드들과 합의 과정 수행
- 절대 다수(80% 이상)가 검증한 거래들로 구성된 레저버전 생성
- 검증 노드에 대한 인증 정보 공표
- UNL간에 20% 이상의 노드가 공유되도록 UNL 구성
- 합의 과정
- 각 검증 노드는 수신된 거래들을 검증한 후 모아서 Proposal을 작성하고 UNL의 검증 노드들에게 전달
- 다른 노드가 전송한 Proposal들을 분석하여 50% 이상의 노드들에 의해 검증된 거래들로 새로운 Proposal 생성 및 전달
- 60%, 70%, 80%로 합의 노드들의 비율을 높이면서 반복
- 80% 이상의 노드들이 동의한 거래들로 최종 Proposal 생성 및 전파
- 80% 이상의 노드들이 생성한 최종 Proposal이 동일하면 Proposal의 거래들을 이전 Leder에 적용하여 검증하고 결과를 모든 노드에 전달
- 80% 이상의 노드들의 검증 결과가 동일하면 레저 버전 생성 완료
- 수신된 거래들을 검증한 후 모아서 Proposal을 작성하고 UNL의 검증 노드들에게 전달ㅍ
17강 블록체인과 하이퍼레저패브릭 개요
-
하이퍼레저 프로젝트
- 기존 블록체인 시스템 : 낮은 성능, 신원 확인 결여, 무한 경쟁에 따른 과다한 자원 소모
- 기존 블록체인 시스템들에 비해 높은 성능, 신뢰성, 자원 효율성, 그리고 참여자 관리 등 비즈니스 응용의 요구사항을 충족시킬 수 있는 블록체인과 분산 원장 개발에 산업계의 협력 촉진
-
패브릭(Fabric)
- 모듈 구조를 가지는 분산 응용 플랫폼 개발
-
하이퍼레저 패브릭
- 하이퍼레저 프로젝트들 중에 가장 먼저 제안
- IBM이 개발을 주도
- 엑센추어, 인텔, 히다찌, 시스코 금융서비스 업체들의 블록체인 컴소시엄인 R3등
- 목표
- 알려진 참가자를 대상으로 하는 비즈니스 응용 환경에 맞는 블록체인 개발
- 서로 다른 요구사항을 가지는 다양한 분산 응용 개발을 효율적으로 지운할 수 있는 플랫폼 개발
- 모듈 구조를 가지는 분산 응용 플랫폼 개발 -> 합의 프로토콜, 멤버십 서비스 등의 모듈을 필요에 따라 교체 가능
- 특징
- 허가형 블록체인
- 일반 프로그래밍 언어 사용
- 내부 가상통화 부재
- 높은 성능
- 교체 가능한 모듈 구조
- 멀티 블록체인 지원
-
허가형(permissioned) 블록체인
- 멤버십 관리 서비스를 통해 허가된 참여자만 접글을 허용
- 참여자의 블록체인 접근 권한을 제어 가능
- 참여자 행위에 대한 책임성 확인의 요구사항을 반영
- 작업 증명 기반의 합의 알고리즘을 사용하는 대신 보다 효율적인 합의 알고리즘을 사용 가능
- 높은 거래 완료성(transaction finality)
-
일반 프로그래밍 언어 사용
- 체인코드 : 하이퍼레지 패브릭의 스마트 계약 프로그램
- 이더리움 : 모든 피어의 블록체인에서 실행된 스마트 계약의 결과가 항상 동일한 것을 보장하기 위해 결정적 프로그래밍 언어를 특별히 개발하여 사용
- 하이퍼레저 패브릭 : Go, Java 등 일반적인 프로그래밍 언어 사용
-
내부 가상통화 부재
- 내부 가상통화가 필요한 이유
- 거래 수수료 지불
- DoS 공격 방지
- 비작업 증명 방식의 합의 : 수수료 불필요
- 지정된 보증 피어만 체인 코드 실행
- DoS 공격은 해당 보증 피어들에만 영향
- 보증 피어가 내부 정책을 통해 체인코드 실행 포기 시점 결정 가능 -> 무한한 체인코드 실행방지
- 내부 가상통화가 필요한 이유
-
높은 성능
- 서로 다른 보증 피어들을 통해 체인코드를 실행하는 다수의 거래들을 동시 처리 가능 -> 높은성능
- 정보 이름에 해당하는 키의 버전 관리를 통해 동시처리에 따른 비결정적 실행 문제 해결
-
교체 가능한 모듈 구조
- 하이퍼레저 패브릭은 전체 시스템을 모듈 구조로 설계하고, 합의 알고리즘 등 응용에 따라 요구사항에 차이가 큰 모듈을 필요에 따라 교체 가능
- 합의 프로토콜 : SOLO, Kafaka, PBFT 등
-
멀티 블록체인 지원
- 전체 시스템을 다수의 채널로 구분
- 채널별로 별도의 독립적인 블록체인 유지 가능
- 참여자는 특정 채널에 가입합으로써 공유할 블록체인을 선택할 수 있고, 다수의 채널에 가입가능
-
하이퍼레저 패브릭 시스템 구조
- 피어 노드(peer node)
- 피어 노드는 거래를 확정
- 거래 정보를 저장하는 레저와 거래 실행 결과에 따른 상태 정보를 저장하는 상태 저장소로 구성되는 블록체인 유지
- 순서화 서비스 노드로부터 블록 형태로 거래와 상태 갱신 정보 수신
- 일부 피어 노드는 추가적으로 보증 노드 역할을 수행
- 멤버십 서비스 제공자(MSP)
- 하이퍼레저 패브릭에 접속하는 노드의 신원 확인 후 네트워크에 접속할 수 있는 권한을 표시하는 자격증명을 발급
- PKI 기반의 인증기관을 통해 서비스에 맞는 공개키 인증서와 대응되는 개인키를 자격증명으로 발급
- 피어 노드(peer node)