블로그 : 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 : 에스크로 격리.
- ...
- Payment
- 리블 원장
- 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 생성완료
- 목표 :
- Ledger 구조
-끝-
'IT 서적 & 강좌' 카테고리의 다른 글
[웨비나] AWS AI/ML (0) | 2020.04.30 |
---|---|
[코테] 문제풀이 (0) | 2019.11.06 |
[강좌] IBM DevDay 2018 (0) | 2019.11.04 |
[서적] 하이퍼레저 패브릭으로 배우는 블록체인 (0) | 2019.09.14 |
[강좌] 박승철의 정보통신과블록체인 : 하이퍼레저 패브릭 (0) | 2019.09.14 |