블록체인 14강,15강

리플

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

블록체인과 리플의 개요 및 거래

14강 블록체인과 리플 1 리플 개요

  • 리플 시스템의 목표
    • 통화 비구속적(currency agnostic) 시스템
      • 어떤 통화, 어떤 자산도 P2P 방식으로 거래 가능
    • 통화간의 보편적 교환 시스템
      • 임의의 통화를 사용하여 임의의 다른 통화로 지불
    • 실시간 결제 시스템
      • 수초 이내에 거래 승인
      • 승인 즉시 결제 완료
    • 기존 규제 체제 지원 시스템
      • 자금 세탁(Anti-Money Laundering) 방지법
      • 금융 실명제등
    • 저비용 블록체인 시스템
      • 작업 증명 대신 투표에 의한 합의 방식
    • 안전성과 가용성 지원 시스템
      • 투명하고 안전한 블록체인 기술
      • 내부 통화 기반의 DoS 공격 방지
  • 리플 현황
    • 전자 화폐 발행
      • 단위 : XRP, Drop(1XRP = 1,000,000Drops)
      • 선발행 : Ripple 프로젝트 시작 시에 100 Billion XRP 선발생, 이후 추가적인 화폐 발행 없음
    • 분배
      • 20% Ripple Labs 설립자에게 배정
      • 나머지 80%는 Ripple Labs에 양도
      • 연구 개발 프로젝트를 통해 XRP 외부 공급
      • 2017년 5월 55 Billion XRP 에스크로 예치 -> 1개월당 최대 1Billion XRP 이내에서 사용허용
  • 내부 화폐 XRP의 용도
    • 브릿지 통화(Bridge Currency)
      • 두 통화간에 직접 교환이 불가할 때 XRP와의 교환을 통해 상호 교환 지원
      • 특정 외부 통화에 대해 최소한 XRP와의 교환 지원
    • DoS 공격 방지
      • Ripple 계좌 개설에 20 XRP 예치
      • 거래 실행에 소액을 태움(파기)
      • 대량 거래 실행을 통한 DoS 공격 방지
  • 리플의 응용
    • 국제 외환 송금
      • 기존의 SWIFTNet등 국제 금융 거래 네트워크 경유 없이 리플 네트워크의 외부 통화 창구인 게이트웨이를 통해 P2P 방식으로 외환 송금 서비스 제공
    • 금융 기관간의 직거래 네트워크
      • 금융 기관관의 복잡한 결제 네트워크를 리플 네트워크로 대체
    • 통화 독립적인 상거래 서비스
      • 자신이 보유한 통화로 다른 통화를 수용하는 상대방과 상거래 지원
  • 시스템 구성
    • 서비스 관점의 구분
      • 서비스 사용자
        • 리플 네트워크에 계좌를 개설하고 거래를 송수신하는 주체
      • 게이트웨이
        • 외부 통화에 대해 리플 계좌에 신용 잔고 발행(IOU) - 외부 통화 지불의 신용 원천
        • 통화코드.게이트웨이(KRW.KG1) 형태로 통화 잔고 발행
        • 사용자에 대한 규제 창구 역할
      • 시장 생성자
        • 통화 간의 교환서비스 제공
        • 외부 통화를 리플 네트워크로 공급하는 역할(게이트웨이 공유)
        • 통화 교환 오퍼 거래를 리플 네트워크에 포스팅
        • 최적의 교환 오퍼간의 매칭을 통해 교환 실현
    • 네트워크 노드 관점의 구분
      • 클라이언트 응용
        • 리플 네트워크에 대한 사용자 인터페이스를 제공하는 응용 S/W
      • 트래킹 노드
      • 검증 노드
        • 기본적으로 트래킹 노드로 참여
        • 추가로 리플 레저 생성에 참여
        • 새로운 레저 버전에 대한 합의 프로토콜 수행
  • 리플 거래
    • 거래의 유형
      • Payment : 특정 계좌에서 다른 계좌로 자금 송신
      • OfferCreate : 통화 교환 주문 제출
      • TrustSet : 특정 외부 통화에 대한 신뢰 라인 설정
      • CheckCreate : 추후 수신자의 지불 요구가 있을 때 까지 연기된 지불
      • EscrowCreate : 조건이 충족될 때 까지 자금 격리

15강 블록체인과리플제2강 리플 거래

리플 거래

  • 거래의 정의
    • 리플 네트워크 상에서 참여자(사용자, 게이트웨이, 마켓 메이커)가 리플 계좌에 변동을 만들기 위해 네트워크로 송신하는 정보
    • 송신 계좌와 연계된 서명을 통해 송신자와 거래 인증
  • 거래의 유형
    • Payment : 특정 계좌에서 다른 계좌로 자금 송신
    • OfferCreate : 통화 교환 주문 제출
    • TrustSet : 추후 수신자의 지불 요구가 있을 때까지 연기된 지불
    • EscrowCreate : 조건이 충족될 때까지 자금 격리
  • 계좌(account)
    • 공개키와 연계된 주소로 식별, 주소와 대응되는 개인키로 서명 생성
    • 계좌 유보금(account reserve) 보다 많은 금액의 XRP를 새로운 주소로 지불하는 거래 전송으로 계좌 생성
    • 거래가 송신될 때마다 계좌의 XRP 잔고로부터 수수료만큼 태워 없어짐
    • 계좌의 잔고는 XRP에 대해서만 표시
    • 외부 통화 잔고는 사용자 계좌와 게이트웨이 계좌의 신뢰 라인 잔고 상태 정보 형태로 리블 레저에 유지

신뢰 설정 거래

  • 신뢰 라인(trust line)

    • 상대방 계좌(게이트웨이)의 특정 외부 통화 잔고 발행에 대한 나의 계좌의 신용 한도 설정
    • 리플 계좌의 외부 통화 잔고 허용 : 발행 게이트웨이의 IOU 이행 보증 신뢰
    • 신뢰 라인 한도까지 나의 계좌에 해당 통화 수신 허용
    • U1과 U2간에 G1의 IOU 전송 가능
  • 간접 신뢰 라인 : 신뢰 경로

    • U1은 U2에게 G2의 IOU 전송 가능(동일 통화)

    • {

      “TransactionType” : “TrustSet”,

      1
      2
      3
      4
      5
      
      "Account" : "주소",
      
      "LimitAmount" : {"currency" : "USD", "value" : "1000"},
      
      "issuer" : "주소"
      

      }

지불 거래

  • 직접 지불

    • XRP 전자 화폐 거래 : 계좌 간에 XRP 전송

    • {

      “TransactionType” : “payment”,

      1
      2
      3
      4
      5
      
      "Account" : "주소",
      
          "Destination" : "주소",
      
      "Amount" : "200000000"
      

      }

  • 외부 통화 지불 거래

    • {

      “TransactionType” : “payment”,

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      
      "Account" : "주소",
      
          "Destination" : "주소",
      
      "Amount" : {
      
      			"currency" : "USD",
      
      			"value" : "3",
      
      			"issuer" : "주소"
      
      			}
      

      }

    • IOU 거래

    • 신뢰 라인을 따라 한도내에서 지불

    • 간접 신뢰 라인

    • U2 → U1 : 3 USD.G1 송금

    • 리플링(rippling)

    • 신뢰 라인을 따라 신뢰 라인 잔고를 변경하면서 송금

통화 교환 오퍼 거래

  • 마켓 메이커에 의해 생성되어 송신

  • {

    “TransactionType” : “OfferCreate”,

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    
    "Account" : "주소",
    
        "Destination" : "주소",
    
    "TakerPays" : {
    
    			"currency" : "USD",
    
    			"value" : "100",
    
    			"issuer" : "주소"
    
    			}
    
    "TakerGets" : {
    
    			"currency" : "KRW",
    
    			"value" : "108000",
    
    			"issuer" : "주소"
    
    			}
    

    }

  • 환율

    • TakerGets/TakerPays
  • 오퍼 거래 처리

    • 환율이 높은 오퍼가 우선적으로 채택
    • TakerPays의 액수가 채워지지 않는 경우 레저에 저장
    • 신뢰 라인 설정의 의미를 내포
    • 새로운 오퍼나 지불 경로 구성 과정에서 해당 오퍼를 사용하는 지불 거래에 의해 처리
  • 리플 레저에서 최적의 오퍼들을 자동으로 찾아서 지불 거래 작성