블로그 : https://blog.naver.com/scpark640303/221285949399

유튜브 : https://youtu.be/RVSiZeky-9g


  • 컨셉
    • 1) Currency Agnostic System : 어떤 통화 및 자산도 P2P 방식의 거래 할 수 있게하는 시스템.
    • 2) 통화간 보편적 교환 : '임의의 통화'를 지불 해야 할 떄, '다른 임의의 통화'로도 지불 가능.
    • 3) 실시간 결제 : (수초 이내에) 거래 승인 및 완료 가능.
    • 4) 기존 금융규제 지원 : "금융 실명제" 및 "자금세탁 방지법" 등의 기존 체제를 당연히 준수 가능.
    • 5) 저비용 블록체인 : 고비용의 작업증명방식(PoW) 대신, 투표에 의한 합의 알고리즘 채택.
    • 6) 안정성 및 가용성 : 블록체인 및 내부코인 기술기반으로 제공.
  • 개발 및 설립 및 운영
    • 2012년에 개발 ~> 2013년 9월에 "Ripple Labs" 설립되어 운영함.
    • 기존의 수많은 글로벌 은행들과 제휴하여... 아주 반짝 저세상 까지 떴다가... 음... // 리또속?
    • 천억(100 Billion) XRP을 선발행하고, 추가발행은 없음. (1XRP = 1,000,000 Drops)
    • "Ripple Labs"가 80%의 XRP를 양도받아서, 각종 R&D 프로젝트를 통해~ 시중에 공급이 되는 구조.
    • (2017년 5월 55 Billion XRP가 에스크로 예치 되었고, 1개월당 최대 1 Billion XRP 이내에서만 인출 가능)
  • XRP 용도
    • Bridge Currency 역할 : 두 통화간의 직접적인 교환라인이 없을때, XRP가 연결고리 역할. ( \ <-> XRP <-> $ )
    • DoS 공격 방지
      • : Ripple 계좌개설에 20 XRP가 예치 되있어야하고, transaction시 10 Drops 만큼 소각됨.
      • : 따라서, 공격자가 다수의 계좌개설을 통해서~ 공격을 하지 못하도록 함.
      • : (XRP 소각은 내부적으로 즈그들이 적절히? 알아서? 관리 됨으로, 전체가 다 불태워지는 걱정X)
  • 상용 서비스
    • 국제외화 송금
      • : 기존의 SWIFT Net 등을 경유하는 방식은.. 수수료도 비싸고 느리다.
      • : Ripple 네크워크를 통해서, P2P 방식으로 혁신을 할 수 도(?) 있다는 주장.
      •  

    • 금융기관간의 내부직거래
      • : 사실 기존의 금융기관간 거래는 생각보다 아주 복잡하게 되어있다.
      • : 시중 어떤 금융기관들도 서로간에 합의가 되는 Ledger으로, 상호좋은 거래가 가능하도록~
    • (통화 독립적인) 인터넷 상거래
      • : ex) 집구석에서 편안하게 원화(\)로~ 미쿸 애리조나 카우보이 Shop의 달러($)를 결제 가능...
  • 시스템 구성
    • 서비스 관점의 구성
      • User : Ripple 네트워크에 계좌를 개설하고, transaction을 송신 및 수신 하는 사용자.
      • Gateway
        • : 은행 역할
        • : 기존통화에 대해 신용 잔고발행(IOU balance issuance)하여, 기존통화 지불신용의 원천이 됨.
        • : IOU(I Owe You) == 나 은행이야 너에게 빗을 져줄께. == 은행이 내게 빗진 돈을 잔고로 발행.
        • : KRW.ShinHan 형태로, Ripple 계좌에 통화를 발행함. (당연히, 해당은행의 신용도가 가치에 반영!!!)
        • : 즉, 시중 대형은행이냐? 지방 저축금고냐? 각자가 자신의 신용을 근거로~ 통화를 유통 하는것.
        • : User들에게 기존의 금융정책 창구 서비스도 당연히 해야함.
      • MarketMaker
        • : 통화 유통 브로커 역할
        • : (User들이 환전 할때) Ripple 네크워크에 "\ -> $ 오퍼 포스팅"을 하게되고, 
        • : 최적의 매칭을 찾아서~ MM들이 교환을 하게 되는 식이다. (블록체인 Ledger에 다 기록 됨)
    • 네트워크 관점의 구성
      • Client Application : User의 Wallet, Gateway, MarketMaker 을 Application으로 제공.
      • Tracking-Node
        • : Ripple 네트워크의 Ledger를 유지만하는 노드.
        • : ClientApp 으로부터 transaction을 네트워크에 분배.
        • : 대부분의 참여하는 GW 및 MM 들이 구축 및 운영 함.
      • Validating-Node
        • : Ripple 네크워크의 Ledger를 유지 및 검증 및 생성하는 노드.
        • : Ledger의 새로운 버젼에 관해서~ 합의 프로토콜 수행함.
      • 예)
        • ClientApp <-> [ (T-Node) <-> (V-Node) <-> (T-Node) ] <-> ClientApp
  • 리플 거래
    • (Smart-Contract 개념은 없고) 'Ripple 계좌'에 변동을 만드는~ 여러가지에 transaction이 제공 된다.
    • Ripple 계좌
      • : 'Account주소'는 public-key 와 연계되어 식별되고, 대응되는 private-key 를 통해~ 서명한다.
      • : (통상적인 인증서 응용방식)
      • : 20 XRP를 새로운 'Account주소'으로 Payment 하면, 해당 "새로운 Ripple 계좌"가 개설 된다.
      • : (20 XRP가 없으면, 해당 transaction 검증시에 거부됨)
      • : 특정 'Ripple 계좌'에서 transaction을 일으킬때마다, 보유한 XRP가 조금씩 소각되는 구조.
      • : 오직! XRP만 Account에 실존하는것 이고, 나머지 통화들은~ 각 GW와의 Trust-Line으로써 유지되는것.
      • : 즉, Ripple 네크워크의 Ledger에는 Account의 XRP 및 각 Trust-Line 의 잔고가 기록되는것이다.
    • Trust-Line
      • : 특정 GW에게 특정 통화의 "IOU 잔고발행"에 관한, 신용한도를 정한것.
      • : 동일한 통화에 관해서, Trust-Line 조건이 만족면~ 그 한도에 맞게 P2P 이체가 가능 해지는것.
      • 예) usr1 --(천)--> GW1 --(억)--> GW2 <--(백)-- usr2
        • usr1은 GW1을 믿고 천만원 맡김. (천만원 IOU 잔고)
        • usr2은 GW2을 백만원까지 밑음. 
        • GW1은 GW2을 몇억까지 믿음.
        • usr1는 GW1의 IOU 잔고 천만원중, 백만원을 GW2의 IOU 잔고로 교환 요구.
        • GW1는 GW2에게 백만원 맡기고, 해당 IOU 잔고 받아 전달. (GW1은 빗중 백만원을 GW2에게 갚은거)
        • usr1은 교환전달받은 GW2의 IOU 잔고를 usr2에게 이체.
        • usr2는 GW2의 IOU 잔고를... 해당 통화로 인출.
      • 단방향이든 양뱡향이는 Trust-Path가 형성되면, 그때부터는 P2P로 다이렉트(굳이GW안거침)가 되는것!!!
    • 거래 종류
      • Payment
        • : 특정 Account 에서 -> 다른 Account 으로, XRP 및 통화를 이체.
        • : XRP는 언제든지 당연히 되는것이고, 통화는 Trust-Line 조건하에 IOU가 이체되는것!!!
        • : 리플링(물결) == Trust-Line에 따라 해당 잔고의 상호변화로 물결치듯... 처리함.
      • OfferCreate
        • : MarketMaker가 "특정GW의 특정통화"와 "또다른GW의 또다른통화"에 환전오퍼를 포스팅.
        • 동일하지 않은 통화에 관해서는, MM의 중계를 기반으로 Trust-Path가 형성 될 수 있는것 이다.
        • 'Ripple 네트워크'에는 각 'Ripple 계좌'간 다양한 통화의 수요와/공급이 이루어지고,
        • 자유시장의 논리에 따라~ 각각에 MM들이 오퍼를 하면... 최적의 환율을 찾아서 자동매칭을 해준다 한다고 함.
        • MarketMaker가 중계할 두 GW의 신용도를 판단하며, 결정을 하게 됨.
        • (결국, 다양한 통화의 흐름은 주식시장처럼 갈겨먹히며~ 유통이 다 되게 될껄)
      • TrustSet : 특정 GW에 특정 통화의 Trust-Line 신용한도 설정.
      • CheckCreate : 수표 발행.
      • EscrowCreate : 에스크로 격리.
      • ...
  • 리블 원장
    • Ledger 구조
      • N번 블록 + (새로운 transaction들) -> (검증노드 합의) -> N+1번 블록
    • 합의 프로토콜
      • 목표 :
        • 전체 검증노드의 20% 까지 문제있어도,
        • Crash-Fault Tolerance 및 Byzantine-Fault Tolerance 모두 갖추어~
        • 새로운 Ledger Version 생성을 할 수 있도록 함.
      • 방식 : 
        • 인증된 검증노드들의 투표로 이루어짐. (Decentralization는 아님! 인증을 담당하는 기관 위원회?)
        • 각 검증노드가 신뢰하는 리스트(Unique Node List)와 합의를 하는 과정.
        • UNL의 80%가 검증한 transaction을 Ledger에 반영 함.
        • UNL간에는 20% 이상의 노드가 교집합 되도록 구성 함.
      • 과정
        • 1) 새로운 transaction들 -> 검증노드 -> 모아서 proposal 작성 -> UNL 전달
        • 2) 각 proposal -> 각 UNL 검증노드 -> 50%이상 검증된 proposal만 다시 모음 -> UNL 전달
        • 3) 60% -> 70% -> 80%이상 검증된 proposal만 모으도록 반복
        • 4) 80%이상 검증된 proposal만 최종 모음 -> 최종 UNL 전달
        • 5) 각 최종 proposal가 동일하면, 해당 transaction들을 Ledger에 적용 및 검증 -> 전체 노드 전달
        • 6) Ledger에 적용 및 검증 결과가 80%이상 동일하면, 각 전체 노들의 New Ledger Version 생성완료

-끝-

+ Recent posts