블록체인 16강,17강

리플

Posted by 동식이 블로그 on June 14, 2019

블록체인과 리플 레저 | 하이퍼레저패브릭의 개요

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 구성
  • 합의 과정
    1. 각 검증 노드는 수신된 거래들을 검증한 후 모아서 Proposal을 작성하고 UNL의 검증 노드들에게 전달
    2. 다른 노드가 전송한 Proposal들을 분석하여 50% 이상의 노드들에 의해 검증된 거래들로 새로운 Proposal 생성 및 전달
    3. 60%, 70%, 80%로 합의 노드들의 비율을 높이면서 반복
    4. 80% 이상의 노드들이 동의한 거래들로 최종 Proposal 생성 및 전파
    5. 80% 이상의 노드들이 생성한 최종 Proposal이 동일하면 Proposal의 거래들을 이전 Leder에 적용하여 검증하고 결과를 모든 노드에 전달
    6. 80% 이상의 노드들의 검증 결과가 동일하면 레저 버전 생성 완료
  • 수신된 거래들을 검증한 후 모아서 Proposal을 작성하고 UNL의 검증 노드들에게 전달ㅍ

17강 블록체인과 하이퍼레저패브릭 개요

  • 하이퍼레저 프로젝트
    • 기존 블록체인 시스템 : 낮은 성능, 신원 확인 결여, 무한 경쟁에 따른 과다한 자원 소모
    • 기존 블록체인 시스템들에 비해 높은 성능, 신뢰성, 자원 효율성, 그리고 참여자 관리 등 비즈니스 응용의 요구사항을 충족시킬 수 있는 블록체인과 분산 원장 개발에 산업계의 협력 촉진
  • 패브릭(Fabric)
    • 모듈 구조를 가지는 분산 응용 플랫폼 개발
  • 하이퍼레저 패브릭
    • 하이퍼레저 프로젝트들 중에 가장 먼저 제안
    • IBM이 개발을 주도
    • 엑센추어, 인텔, 히다찌, 시스코 금융서비스 업체들의 블록체인 컴소시엄인 R3등
    • 목표
      • 알려진 참가자를 대상으로 하는 비즈니스 응용 환경에 맞는 블록체인 개발
      • 서로 다른 요구사항을 가지는 다양한 분산 응용 개발을 효율적으로 지운할 수 있는 플랫폼 개발
      • 모듈 구조를 가지는 분산 응용 플랫폼 개발 -> 합의 프로토콜, 멤버십 서비스 등의 모듈을 필요에 따라 교체 가능
    • 특징
      • 허가형 블록체인
      • 일반 프로그래밍 언어 사용
      • 내부 가상통화 부재
      • 높은 성능
      • 교체 가능한 모듈 구조
      • 멀티 블록체인 지원
  • 허가형(permissioned) 블록체인
    • 멤버십 관리 서비스를 통해 허가된 참여자만 접글을 허용
    • 참여자의 블록체인 접근 권한을 제어 가능
    • 참여자 행위에 대한 책임성 확인의 요구사항을 반영
    • 작업 증명 기반의 합의 알고리즘을 사용하는 대신 보다 효율적인 합의 알고리즘을 사용 가능
    • 높은 거래 완료성(transaction finality)
  • 일반 프로그래밍 언어 사용
    • 체인코드 : 하이퍼레지 패브릭의 스마트 계약 프로그램
    • 이더리움 : 모든 피어의 블록체인에서 실행된 스마트 계약의 결과가 항상 동일한 것을 보장하기 위해 결정적 프로그래밍 언어를 특별히 개발하여 사용
    • 하이퍼레저 패브릭 : Go, Java 등 일반적인 프로그래밍 언어 사용
  • 내부 가상통화 부재
    • 내부 가상통화가 필요한 이유
      • 거래 수수료 지불
      • DoS 공격 방지
    • 비작업 증명 방식의 합의 : 수수료 불필요
    • 지정된 보증 피어만 체인 코드 실행
    • DoS 공격은 해당 보증 피어들에만 영향
    • 보증 피어가 내부 정책을 통해 체인코드 실행 포기 시점 결정 가능 -> 무한한 체인코드 실행방지
  • 높은 성능
    • 서로 다른 보증 피어들을 통해 체인코드를 실행하는 다수의 거래들을 동시 처리 가능 -> 높은성능
    • 정보 이름에 해당하는 키의 버전 관리를 통해 동시처리에 따른 비결정적 실행 문제 해결
  • 교체 가능한 모듈 구조
    • 하이퍼레저 패브릭은 전체 시스템을 모듈 구조로 설계하고, 합의 알고리즘 등 응용에 따라 요구사항에 차이가 큰 모듈을 필요에 따라 교체 가능
    • 합의 프로토콜 : SOLO, Kafaka, PBFT 등
  • 멀티 블록체인 지원
    • 전체 시스템을 다수의 채널로 구분
    • 채널별로 별도의 독립적인 블록체인 유지 가능
    • 참여자는 특정 채널에 가입합으로써 공유할 블록체인을 선택할 수 있고, 다수의 채널에 가입가능
  • 하이퍼레저 패브릭 시스템 구조
    • 피어 노드(peer node)
      • 피어 노드는 거래를 확정
      • 거래 정보를 저장하는 레저와 거래 실행 결과에 따른 상태 정보를 저장하는 상태 저장소로 구성되는 블록체인 유지
      • 순서화 서비스 노드로부터 블록 형태로 거래와 상태 갱신 정보 수신
      • 일부 피어 노드는 추가적으로 보증 노드 역할을 수행
    • 멤버십 서비스 제공자(MSP)
      • 하이퍼레저 패브릭에 접속하는 노드의 신원 확인 후 네트워크에 접속할 수 있는 권한을 표시하는 자격증명을 발급
      • PKI 기반의 인증기관을 통해 서비스에 맞는 공개키 인증서와 대응되는 개인키를 자격증명으로 발급