리플에 대해 공부를 해보려고 하는데 Blockchainers에서 강의한 내용을 참고하여 정리를 해보도록 한다.


( https://www.youtube.com/watch?v=KEdqYNp5jnU 에서 해당 강의 영상을 보실 수 있습니다.)





4. 리플 합의 알고리즘과 단점




분산 결제 시스템이 가지는 문제: 비잔틴 장군 문제



○ 비잔틴 장군 문제란?


비잔틴 제국 장군들의 딜레마는 1982년 레슬리 램포트 등 3명의 컴퓨터 공학자들이 마이크로소프트 의뢰를 받아 수행한 연구의 논문 발표를 통해 처음으로 정식화 되었다. 비잔틴 제국 장군들이 봉착한 딜레마는 실제 역사적 사건이 아니라 분산 컴퓨팅에서 발생할 수 있는 신뢰와 합의의 문제를 함축한 우화다.


내용은 다음과 같다. 


1. 비잔틴 군대의 여러 사단이 적군의 도시 바깥에 진을 치고 있다.


2. 각 사단은 장군이 통솔하고 있다.


3. 장군들은 오로지 전령을 통해서만 서로 연락할 수 있다. 적군을 관측한 다음, 그들은 공동의 행동계획에 결정해야 한다.


4. 그렇지만, 장군들 가운데에는 배신자가 섞여 있을 수도 있고, 그들은 다른 장군들이 협의에 이르지 못하게 하려 한다.


5. 배신자는 규칙을 충실히 따르는 충직한 지휘관들과 달리 규칙에 얽매이지 않고 마음대로 행동할 수 있다.


Q. 이 때 배신자의 존재에도 불구하고 지휘관들이 동일한 공격 계획을 세우기 위해선 충직한 지휘관이 얼마 있어야 하며, 이 지휘관들이 어떤 규칙을 따라 교신해야 하는지에 대한 문제가 비잔티움 장군 문제다.


다수의 노드(PC)들이 참여하는 분산 네트워크에서 합의와 의사결정은 핵심적인 문제였다. 이 문제를 비트코인은 POW를 사용하여 해결하였다.

처음엔 누가 배신자(중복 사용)인지 모른 채 노드들은 채굴에 나선다. 그러나 다수의 노드가 참여한 블록에서 먼저 채굴이 이뤄지고 결국 배신자인 중복으로 사용된 거래는 자동 폐기된다.  과반수의 충성스럽고 정직한 장군들이 협업(채굴)하면 거짓 정보는 자연스럽게 소멸하는 셈이다.


부정한 세력이 비트코인 네트워크에 참여하는 전체 컴퓨터의 51%를 제어한다면 거짓 정보를 만들 수 있다. 그러나 비트코인 네트워크의 아주 초기 단계에서나 가능할지 몰라도 네트워크가 커지면 커질수록 어렵게 된다. 사토시 나카모토도 논문에서 “이런 상황을 예상할 수는 있지만, 부정한 세력이 그렇게 할만한 유인이 없다”고 밝히고 있다.



○ 비잔틴 장군 문제에 대한 해결 분야 3가지


1. 정확성(Correctness)


- 거래가 정상인지 비정상인지 판별하는 작업으로써 과거에는 기관간 신뢰와 암호화 서명을 통해서 특정 기관에서 한 서명이란 것을 증명하였다.


2. 동의(Agreement)


- 탈중앙화 회계 시스템은 단일 글로벌 사실에 동의할 수 있는가?

- 정확성과 동의는 다른 문제이다. 이에 대한 대표적인 문제가 이중 지불 문제이다. A가 같은 화폐를 B와 C에게 보낼 때 이 거래는 정확성 측면에서 본다면 정상적인 거래이다. 하지만 동의 측면에서 이 두 거래를 모두 동의하면 안되는 문제이다.


3. 실용성(Utility)


- 속도(빠른 네트워크 속도(latency)로 Data를 전송하고 수신), 정확성과 합의에 참여하기 위한 연산능력(채굴에 얼마나 많은 사람들이 참여할 수 있는지) 또는 네트워크를 원활히 사용하기 위해 사용자가(end user) 갖춰야 하는 기술력(낮은 사양에서도 정상적으로 사용할 수 있는지)을 말한다.



리플 프로토콜의 개별 요소


- 합의 (Consensus) = 정확성 + 동의 + 실용성 :  이 3가지가 갖추어져야 합의로 인정된다.


- 서버 (Server): 클라이언트 : 클라이언트 소프트웨어가 아닌 서버 소프트웨어를 실행하는 주체, 합의에 참여


- 원장 (ledger): 합의 과정을 거친 거래로 지속적으로 업데이트 되는 네트워크에 기록된다. 


- Last-Closed Ledger: 합의 과정을 거친 최신원장; 네트워크의 현 상태를 나타내며 다시 바뀌지 않는다.(리플의 특징으로 이더리움의 State와 비슷한 개념으로 생각할 수 있다.)


- Open Ledger: 노드의 현 운영상태 (각 노드마다 Open Ledger를 유지한다); 특정 서버 사용자의 결제는 그 서버 Open Ledger에 적용은 되나 합의 절차 전 까지 거래는 Final하지 않고 합의가 이루어지는 시점에 Open Ledger -> Last-closed Ledger 가 된다.


- Unique Node List(UNL): 각 서버 S는 UNL을 가지고 잇고 UNL은 S가 합의를 할 때 Query하여 합의가 가능한지 합의를 같이하는 S가 신뢰하는 서버들이다. 합의를 도출하기 위해 S의 UNL만 고려되며(네트워크의 모든 노드 X); UNL은 S가 네트워크 안에서 공모하지 않을 것이라고 신뢰하는 집합이다.(S는 UNL각 멤버를 신뢰할 필요는 없다. 여러 멤버들이 모여있는 멤버 집합을 신뢰하는 것이다.)


- Proposer: 합의 절차에 포함되기 위해 모든 서버는 거래를 전파할 수 있으며 새 합의 라운드가 시작되면 모든 서버는 유효한 거래를 포함하기 위해 노력한다. 하지만 S는 합의 과정에서 S의 UNL에 포함된 서버의 Proposal만 고려한다.




기존 합의 알고리즘 ( %는 잘못을 해도 괜찮은 노드의 비율, 비트코인의 경우 51%가 잘못하면 문제가 발생한다.)


- BFT: 33%; 디지털 서명을 요구하지는 않음


- FaB Paxos: 20%


- Attiya, Doyev, Gill: 25%


- BFT-CUP: 33%



리플 합의 알고리즘 (RPCA: Ripple Protocol Consensus Algorithm)


- Byzantine failure이 있더라도 ledger-close에 합의 도달할 수 있다. (모든 거래가 거부되는 합의도 포함한다.)

 UNL에 한 서버가 계속 스팸 Transaction을 발행할 경우 다른 서버들이 해당 서버를 무시하자고 하는 합의도 포함한다.


- 네트워크 각 노드는 그 노드의 UNL의 Probpsal에만 투표를 하지만 (노드별 UNL은 다르다.) UNL membership이 달라도 합의 도달

-> 때문에 fork가 일어나지 않는다. (노드가 2개 이상의 집합으로 나눠지고 각각 합의하고 각 노드 집합의 노드들이 서로 다른 2개 last-closed ledger을 목격하는 것을 fork라고 한다.) 


- 노드 실패율이 20% 이하이면 합의가 가능하다.



RPCA의 1라운드(합의에 도달하기 위하여 진행되는 과정으로 계속해서 라운드가 반복된다.)


1. 각 서버는 이번 합의 라운드가 전에 목격했으나 적용되지 않은 유효한 Tx을 '후보집합'으로 공개한다. 각 서버마다 목격했던 Tx들을 이 거래들을 후보로 추천하고자 공개를 한다.


2. 각 서버는 자신의 UNL에 있는 모든 서버들의 후보집합을 모아서 그 후보집합에 있는 Tx의 유효성에 대한 투표를 진행한다.


3. 최소한의 'yes' 투표(최소한의 기준은 각 round마다 설정이 된다.)를 받은 Tx는 다음 라운드로 진행한다. 받지 못한 Tx는 영구 제외되거나 다음 원장의 합의 과정이 시작될 때 후보로 포함된다.


4. 1,2,3번 과정이 반복되어 계속 진행되다가 UNL상의 서버들의 최소 80%가 Tx에 대해 동의를 한다면 원장에 기록되고 이는 최신 Last-closed ledger가 된다.



정확성(Correctness)


- UNL에서 20% 미만이 Bad하다면 정확하다. 즉, 80%이상이 정상적인 노드일 경우 정확하다.


- UNL은 대부분 신뢰할 수 있는 것이기 때문에 크게 문제가 되지 않고 전체적으로 보면 '공모하는 카르텔'이 문제가 된다. (UNL에서 서버 10개중에 3개가 조작하고자 공모하는 경우)


- 하지만, 이에 따른 Ripple에서 얘기하는 대책은 UNL은 임의적이 아니라 20% 미만으로 유지할 수 있도록 선별한다는 것이다. 즉, 익명이 아니여서 암호학으로 식별할 수 있기에 다양한 대륙, 국가, 산업, 이념 등에서 신뢰할 수 있는 노드 UNL만 선별하면 20%보다 훨씬 적은 확률이 가능하다고 한다. 즉 Ripple은 이론적인 해결책이 아닌 현실적인 해결책으로 접근하였다.




위의 그림은 Ripple Whitepaper에 있는 그림을 가져온 것이다.


옆에 Pc들은 공모할 사람들의 percentage를 나타낸다. X축은 UNL의 크기로 UNL이 몇개가 있는지를 나타낸다. Y축은 카르텔이 합의에 도달하는 가능성, 즉 Fork에 성공할 가능성에 대한 확률을 나타낸다


공모할 사람들이 0.05 퍼센트일 경우(Pc = 0.05), 노란선을 보게되면 Fork에 성공할 가능성은 거의 0%에 가깝게 된다.

표에서 공모할 사람들이 가장 많은 20 퍼센트인 경우(Pc = 0.20), 파란색 선을 보게되면 UNL Size가 10에서는 약 35%이고 UNL Size가 증가할 수록 확률은 증가한다. 하지만 결정적으로 50%의 확률을 넘지 못한다. 50%의 확률이 넘어야 합의에 도달할 수 있기 때문에 안전하다고 주장한다.




동의(Agreement)


- 정직하고 Error-free한 노드들(Non-faulty)이 UNL과 상관없이 동일한 거래집합에 대해 합의를 볼 수 있다.


- 만약 UNL 멤버쉽에 다른 제한이 없고 악의적인 UNL들의 수가 전체 UNL의 20%라면 fork는 가능하다.


- 파벌이 덜 하다면 즉, 각 서버들의 UNL의 교집합이 적다면, 모든 노드 UNL topography가 더 복잡하기 때문에 fork는 더 힘들어진다.


- 동의는 노드 교차점 크기와 연관이 있고 Non-faulty 노드 교차점과는 연관이 없다. 아래에 그림에 설명이 나와있다.



그림을 보면 왼쪽 위의 육각형의 UNL clique(파벌) 부분을 보면 각 노드는 5명을 신뢰하고 있다. 이 육각형에서 한 노드를 보면 붉은색의 다른 UNL clique와 연결되어 있다. 즉, 해당 노드는 다른 UNL Clique에 있는 노드까지 포함하여 총 6개의 UNL을 가지고 있다. 이렇게 다른 UNL Clique와 연결되어 있는 노드를 교차점이라고 한다. 


교차하는 노드가 Faulty한지 Non-Faulty한지는 중요하지 않고 교차하는 노드의 수가 많은지가 중요하다고 한다.






실용성(Utility)


- 정확성과 동의가 보장 된다면 네트워크 속도만 보장이 됐을 때 Convergence는 보장된다. 노드 반응시간을 모니터 하고 특정 시간보다 반응이 느린 노드는 모든 UNL에서 제외된다.


- 모든 노드의 초기 UNL이 조건(각각의 노드들은 처음부터 UNL을 가지고 시작한다.)을 충족하다가 특정 Node가 반응이 느리거나 없어 제외된다면 새로운 UNL로 정확성과 동의가 충족 되어야 한다.


- "A latency bound heuristic is enforced on all nodes in the Ripple Network to guarantee that the consensus algorithm will converge"


- 노드가 악의적인 행동을 한다면 네트워크에서 제외(악의적인 행동의 예: 매 거래마다 'no' 투표, 합의에 의해 검증되지 않는 거래를 지속적으로 제안)


- 기본적으로 큐레이션된 UNL을 모든 유저에게 제공해서 공모하는 확률을 낮춘다. 순진한 유저도 합의 알고리즘에 참여 가능


- 포크를 예방하기 위해 네트워크 분열 탐지 알고리즘 사용. 노드는 UNL에 활성화된 멤버 수를 모니터 하고 만약 수가 급격하게 정해진 수치 이하로 떨어진다면 포크가 발생했을 가능성이 크다. 이런 경우 노드는 Tx를 처리하거나 투표는 안해도 참여하고 있다는 것을 'partial validation'으로 표시


- RPCA는 합의 라운드에 적용되지 않고 합의 최소 기준점이 최대 80%까지 증가하는데에 적용. 수 라운드를 통해 네트워크 거래률을 저하하는 노드 탐지가 가능하다. 이런 불량 노드는 첫 몇 라운드는 괜찮지만 합의 기준점이 증가함에 따라 제외된다. 80%에 해당되는 Tx는 의외로 몇개 없어 느린 노드도 합의를 볼 수 있을 수 있음.


- 블록 생성시간은 수 초이다.




문제점 및 지적(리플의 문제점을 다룬 논문과 비트코인 core개발자가 Ripple의 코드 및 구조를 보고 문제점 지적한 내용이 주로 있음)


- SCP 이전 Stellar 대 RPCA


- Validator UNL 교집합이 최대 UNL 교집합 40%가 (과거 20%)되어야지 Fork가 없음


- 리플 기술 문서는 따로 '블록체인'을 언급 하지 않음; '블록의 체인' - 왜 각 블록이 특별한가? 


- 서명된 메시지 자체는 임의적으로 만들면 되기에 신뢰대상이 되지 않음. 리플의 신뢰는 UNL과 서명된 메시지가 일치하기 때문이다. 리플은 reorg가 없을 것이라고 가정하는 듯 하다. reorg 위험이 없다면 이는 중앙화 시스템이 아닌가?


- 리플 현재 UNL 교차점은 100%이지만 자원하는 사람이 없다. (UNL 8개에서 더 이상 증가하지 않는다. Validator역할에 대해 보상도 없으며 법적 책임을 가져야 하기 때문에 아무도 하려고 하지 않는다. )


- 비트코인: 경제적 합의. 허가없이 경제적 유인 때문에 채굴자가 된다.

- 리플: 경제적 유인 없음. Validator이라는 이유로 UNL에 자동 포함 되지 않고 UNL에 포함이 되기 위해 리플에 문의를 하고 허가를 받아야 함. Validator는 각종 법적 책임을 쳐야함(태만에 의한 소송, 금융 범죄 방조) 


- 만약 리플에 포크가 발생한다면 이중 지불 및 금전적 피해가 발생할 것이며 진 체인은 기록 일부 또는 모든 기록을 포기해야 함 - 리플 소프트웨어는 이게 불가능 하다고 가정. 만약 발생한다면 바로 소송


- UNL 기록이 100% 교차하는 것이 교차 하지 않는 것에 비해 유리. 그럼 누가 왜 100+ 개의 고유 노드나 UNL을 사용할까? 

결론은 사용하지 않는다.


- KYC/ AML (리플은 거의 실명제)


- 리플은 모든 validator는 원장을 가지고 있어야 한다 - 확장성 문제


- 만약 거래기록을 가지고 있기에 법적 책임을 져야 한다면 은행이 왜 서로를 위해 Validator가 될까? 


- 중앙화 시스템이 가지고 있는 문제 및 공격 vector


- XRP는 스팸 공격 대비해 존재하나 스팸 공격은 악의가 없다는 식으로 진행 될 수 있다. 리플회사가 이와 같은 경우 XRP를 팔지 않을 경제적 유인은 없다. 스팸공격에도 결국 XRP가 필요하고 공격시 XRP를 태우기 때문에 결국 XRP의 가격이 올라가기 때문이다.




질문


- 이론 vs 실천, 시행착오의 역할, Open source VS Closed source


-> 이론상에서 좋은것이 반드시 실천에서 승리하는 것은 아니다. 실패 후에 잘될 수 있기 때문에 시행착오를 거치면서 강화될 때 Open Source가 좋은지 Closed source가 좋은지.(비트코인은 Open source, 리플은 Closed source)


- 중앙화 - 분산화 - 탈중앙화?


-> 리플은 조직 자체는 중앙화에 가깝다.



- 가치 이전 VS 자산이전


-> 비트코인은 실제로 BTC가 옮겨지지만 XRP는 가치를 이전하기 위한 수수료 같은 개념 



- 리플의 첫 의도 및 방향성과 현재 의도 및 방향성


-> 개인에게 가치이전할 수 있는 방향성을 주려고 하였으나 방향성이 바뀌어서 은행에서 사용하는 방향으로 변경되었다.



- 역사적 시선으로 XRP 바라보기(사기체인)


-> 역사적으로 개발자들이 ICO를 진행하면서 모든 코인을 풀지 않고 숨겨두었다가 ICO후 가격이 오르면 팔아서 이익을 챙기는 일이 많았는데 때문에 리플은 XRP를 내세우지 않았다.



- 규제와 Bitcoin-neutrality


-> Bitcoin-neutrality(비트코인 중립성): 비트코인은 화폐라고 정의하면 다른 용도로 사용하는 비트코인에 다른 사용 방법들은 제외가 된다. (Internet-neutrality: 인터넷은 메일을 위한 시스템이라고 정의하면 인터넷은 발전하지 못했다.)


- 블록체인의 정의


리플에 대해 공부를 해보려고 하는데 Blockchainers에서 강의한 내용을 참고하여 정리를 해보도록 한다.


( https://www.youtube.com/watch?v=lTOt2-YA_w4 에서 해당 강의 영상을 보실 수 있습니다.)





3. 리플 핵심 기능



기능 1. 노드별 역할에 따른 기능


○ Ripple 노드가 할 수 있는 역할


1. Users : 유저로써 결제를 받거나 하는 역할을 수행한다.


2. Market makers : Trade Enabler, 자산의 거래를 가능하게 할 수 있는 역할로써 Gateway도 이 역할을 담당한다.


3. Validating servers : 시스템에서 발생하는 모든 거래 내역 검증을 하기 위해 합의 프로토콜 실행하는 역할로써 비트코인같은 경우에는 Miner가 담당하는 부분이다.




기능 2. 결제 Path finding / Matchmaking System.


○ 결제하는 방법


1. XRP를 사용 : 거래를 암호학적으로 서명하여 실제로 토큰이 사용되는 방법이다.


2. XRP를 사용하지 않는 non-XRP : 하왈라 시스템이나 리플이 가고자 하는 방향과 비슷하다. 결제는 강요할 수 없으며 IOU/ 재매입 계약서를 기록하는 방식과 비슷해진다(분산 신용 시스템). - IOU는 기본 기축통화인 달러의 속도제약을 극복하기 위해 사용한다. 


- 그렇다면 IOU란 무엇인가? IOU는 " I OWE YOU" 라는 발음을 약자로 일종의 빚을 진다는 뜻이다.



○ 위의 그림은 A가 B에게 $100를 non-XRP로 전송하는 그림이다. 위의 그림에서 Trust라고 되어있는 것은 신뢰 관계를 나타내는 것으로 U1은 A에게 최대$250 만큼의 신뢰를 주는 것이다. 따라서 이 신뢰 관계를 따라 가면서 거래가 진행되어 최종적으로 A-> U1 -> U2 -> U4 -> B 의 순서로 송금이 이루어진다. 이 신용 최대 한도까지 거래가 이루어질 수 있기 때문에 U1 -> U3로 $100 전송은 불가능하다. 


○ 따라서 Ripple은 결국, 결제 Pathfinding / Matchmaking System이다. Trustline, 지불 경로는 시스템에서 즉각적으로 판단이 가능하여 거래 가능여부가 바로 결정된다.


○ 만약 신용라인이 최대한도에 달했다면 즉 위의 그림에서 A가 U1에게 이미 $250 만큼을 IOU한 상태라면 다른 네트워크에서 자유롭게 거래를 하지 못한다. (상실 제한 및 책임 한도)


○ 따라서 신뢰측면에서 항상 본인이 신뢰할만 하다고 판단하는 대상을 선택하여야 한다.


○ 내가 신뢰하지 않기로 결정한 대상 때문에 돈을 잃을 수는 없지만 내가 신뢰하는 대상에게서는 신뢰를 잃는 것이 가능하다.

이 말은 내가 신뢰하지 않는 사람이 나에게 100만원을 빌려달라 할 경우 돈을 빌려주지 않기 때문에 돈을 잃는 일은 없지만 신뢰하는 사람이 100만원 을 빌려달라고 하여 빌려주고 빌린사람이 갚지 않는 경우 나와 그 사람의 신뢰관계가 악화된다. 이것을 보면 실제 세상과 흡사한 구조같다.


○ 환전은 즉각적이지 않을 수 있다. 이 말은 환전을 하기위해서는 게이트웨이를 거쳐야 하는데 이 게이트 웨이는 수요와 공급에 따라 환율을 설정한다. 따라서 환전하기 위해 게이트웨이의 설정을 받아들이면 환전이 가능하지만 받아 들이지 않으면 환전이 되지 않는다. 


○ 그렇다면 왜 굳이 XRP를 사용하여야 하는가? 라는 질문이 생길 수 있다. 굳이 XRP를 사용하지 않아도 거래는 가능하지만 유동성 측면에서는 XRP가 도움이 된다. 전혀 연결이 없는 곳끼리 서로 환전을 하는 경우 XRP를 사용하면 실제 현물이 거래되기 때문에 이러한 XRP가 신뢰역할을 해주기 때문에 거래를 더 빠르게 할 수 있다.




기능 3. 내가 가지고 있는 어떠한 가치를 원하는 어떠한 가치로 누구에게나 전송이 가능하게 하는 프로토콜


○ 리플은 결국 거래하고자 하는 화폐에 대해 선택의 자유를 가능하게 한다. 기본적으로 가치와 가치를 거래하고 가치의 종류는 본인이 선택할 수 있기 때문이다. 


○ 비트코인의 결제속도인 1시간에 비해 빠른 결제속도를 가지고 있다. 


○ 대다수 결제 input은 한 계좌로 제한된다(가명이지만 1인당 1계좌로 제한). 만약 신분을 숨기면 할 수 있는 기능이 제한적이다. 

- 예를 들면, 만약 내가 가지고 있는 XRP를 USD로 환전을 하고 싶은 경우 은행의 Gateway를 거쳐야 한다고 할 경우 은행에서 나의 개인정보를 요구한다면 익명성 기능은 제한될 수 밖에 없다. 




결론. 탈중앙화가 아닌 중앙화 시스템.


○ 결론적으로 결국 Ripple은 중앙화이다. 

- 대다수 Validating 서버는 리플회사가 관리한다. 다른 사람이 운영하는 서버도 있으나 기본 목록에 있는 서버는 모두 리플 회사의 서버이다. 또한 이 Ripple 시스템에서 발생하는 모든 거래 보안은 리플 회사의 책임이다. 즉, 탈중앙화가 아닌 중앙화 환경이라 볼 수 있다.



리플에 대해 공부를 해보려고 하는데 Blockchainers에서 강의한 내용을 참고하여 정리를 해보도록 한다.


( https://www.youtube.com/watch?v=lTOt2-YA_w4 에서 해당 강의 영상을 보실 수 있습니다.)





2. 리플 핵심 개념



○ Ripplepay의 실패 원인


- 1. 아예 모르는 다른 유저와 나 사이 신용 라인이 생성이 불가능하다. 참여를 하기 위해서는 기존 네트워크에 지인이 있어야 하기 때문에 고립되어 따로 노는 소규모 커뮤니티로 발전하지 못하였다.


- 2. 소프트웨어 자체는 중앙화, 신용 라인과 잔고를 기록하는 장부는 여전히 중앙 통제됨



○ Ripple의 해결책


- 1. XRP. BTC와 흡사하게 주소에서 다른 주소로 송금 가능. 신뢰 네트워크 일원이 아니여도 송금이 가능하다. 환전은 내장되어 있는 탈중앙화 가치 교환 절차를 통해 가능. 가치 교환은 장부의 일부임


- 2. 게이트웨이. 희박한 유저 문제 해결. 일종의 허브로 서로 연결하여 기존 리플을 사용하는 사용자를 모를 때 사용할 수 있고 신용 중개인 역할 맡는 상업 서비스 + 지인을 통해 연결하기 보다는 전문 상업 서비스로 연결되기를 선호할 때 사용. 사용자가 돈을 보낼 때 사용자와 받는 사람 사이 신뢰 체인의 첫 연결고리 및 돈을 받을 때 마지막 연결고리. 사용자는 동시에 다수 게이트웨이 신뢰 가능. 채굴장과 비슷한 탈중앙화 유지. 게이트웨이 자격 요건은 없음. 리플 프로토콜은 다양한 네트워크 토폴리지의 연결성 수용가능(현대 중앙 은행부터 P2P 체계까지). 초기에는 게이트웨이에 의존. 하지만 시장 점유율이 증가하면서 오리지널 리플 프로젝트의 P2P 구조로 변경



○ 특징 및 문제점


1. 게이트웨이 : 신뢰된 3자를 믿어야 하기에 채무불이행을 방지 가능한 방법이 없음 (Counterparty Risk). 암호학으로 신뢰 문제 해결책을 제시하지 않음


2. XRP : XRP는 스팸방지를 위해 만들어진 수수료이고 거래시 Burn됨. 수수료가 없을 경우 사람들이 마구 거래를 진행하면 네트워크에 무리가 발생할 수 있다. 때문에 Paypal과 동일하게 거래는 수수료를 요구함. Burn된 수수료를 통해 Ripple사가 보유한 XRP 가치가 상승. Ripple사가 발행인이기에 발행량/ 시기를 자유자재로 결정. 프로젝트 자금 제공을 위해 만들어 졌으나 개발자 신뢰 저하. 1000억개에서 시작, 이후 디플레이션


3. 합의 : 작업 증명이나 채굴 없이 합의가 이루어짐. 체인분할과 노드 Sybil 공격을 방지하기 위해 Unique Node List (UNL) 제공. 개인 노드가 Byzantine해서 이중지불을 시도하더라도 공모해서 다수 합의 이상을 보지 않을 노드. 이상적으로는 대기업, 다양한 커뮤니티 멤버, 게이트웨이와 다양한 비영리 단체가 이에 포함. 페북 함께 아는 친구와 동일. UNL이 연결되어 있는 이상 합의에 신속히 도달(BTC 확장성 및 거래 속도와 상반)

-> 8 개 이상 제공되지 않고 추가적 UNL은 없고 경제적 유인도 없음.



○ Ripple이 우리에게 제시하는 질문


- 게이트웨이가 있다면 어떠한 가치도 거래 및 교환 가능 (USD, 10센트, 항공사 마일리지, BTC 등) = > 가치란 무엇인가?


- 리플이 강조하는 자유로운 자산의 유동성은 중요한가?


- 중앙화 -> 탈중앙화는 가능한가? 탈중앙화란 무엇인가? 사용자에게 이게 중요한가? 한번에 바뀌는가 점차 바뀌는가?


- 우리는 왜 암호화 화폐를 사용하는가? (자유, 프라이버시, 암호학이 보장하는 보안, 낮은 수수료, 국경을 초월, Trustless(비신뢰성), Censorship-free(검열에서 자유로움), Permissionless(비허가성) 등)





리플에 대해 공부를 해보려고 하는데 Blockchainers에서 강의한 내용을 참고하여 정리를 해보도록 한다.


https://www.youtube.com/watch?v=2cvBwd-OIdw 에서 해당 강의 영상을 보실 수 있습니다.





1. 개요



(1) Ripplepay


○ 2004년 Ryan Fugger에 의해 개발된 하왈라 시스템이다.


- 하왈라 시스템은 아는사람의 아는사람으로 연결되어 있는 일종의 무슬림 P2P네트워크이다. 위의 그림으로 설명한다. 파란선은 신뢰나 정보, 붉은선은 돈을 의미한다.


1 - A라는 사람이 다른 지역에 있는 B에게 돈을 송금하기 위해 X라는 중개인에게 돈을 주고 암호를 알려준다.

2a - A는 B에게 암호를 알려주고 중계인에게서 돈을 가져가라고 한다.

2b - 중계인 X는 해당 지역의 중계인 M에게 B라는 사람이 와서 해당 암호를 얘기하면 얼마를 내어주라고 전달한다.

3a - B는 M에게 가서 암호를 얘기하고 돈을 요구한다.

3b - M은 B에게 돈을 주고 장부에 기록한다. 나중에 X에게 돈을 받는다.


○  이 과정에서 거래 장부만 기록되지 실제 다른 지역에게 현물이 전달되지는 않는다.


○ 탈중앙화(내 지역사람만 믿으면 됨), 확장성 보장(사람이 더 늘어날 수록 확장됨), P2P 신뢰모델(작은 신뢰들이 쌓여서 큰 신뢰를 구축함)이다.


○ SNS처럼 사용자의 수에 따라 성공하는 모델이다.



(2) Ripple


○ Jed McCaleb(eDonkey, Mt.Gox, Stellar), Arthur Britto, David Schwartz, Chris Larsen 4명에 의해 주로 개발


○ 비트코인 같이 채굴에 의한 합의가 아닌 네트워크간 합의에 의한 화폐 시스템


○ 중앙 거래소 의존 감소, 전기 절약, 비트코인보다 빠른 거래속도가 장점이다.


○ RTXP, Ripple Labs, XRP 등으로 은행이 비트코인과 경쟁을 할 수 있도록 하는 도구 및 전자 자산(비트코인과 비교해서 은행의 경쟁성이 너무 없어 보였다고 한다.)


- RTXP : Ripple Transaction Protocol

- Ripple Labs : 회사 이름

- XRP : RTXP 위의 토큰, 실제로 거래되는 화폐를 의미



○ 리플이 해결하고자 하는 문제


- 결제 스택(제일 위에 Application Layer부터 결제가 이루어지는 절차)이 너무 복잡


- 가치가 정보같이 이동할 수 있나?


- 어플레이어


- 인프라는 과거와 동일 (은행을 대체하는 것이 아닌 은행을 위한 내부 플랫폼)


- SWIFT를 탈중앙화로 대체(대표적으로 AirBnB는 2008년 8월 시작된 세계 최대의 숙박 공유 서비스이다. 자신의 방이나 집, 별장 등 사람이 지낼 수 있는 모든 공간을 임대할 수 있다. 실제로 이용자는 자신의 화폐로 지불하고, 제공자에게는 또 환전해서 그 나라의 화폐로 지급해준다. 때문에 1년에 100억원 이상을 이 환전하는 수수료로 소모하고 있다고 한다.)


-인프라 리셋(인프라를 보았을 때 Application Service는 데이터베이스 같이 하위 계층은 너무 노후화 되어있어서 이 하위 계층에서 일어나는 작업을 효율적으로 리셋하고자 한다.)


- Ripple은 무료 Paypal이라고 한다.


○ Ripple의 시사점


- 은행은 미래에 여전히 사라지지 않을 것이고 여전히 힘을 행사할 것인가? (현재는 신뢰받는 제 3자가 필요할 때가 있지만 미래에도 그럴 것 인가?)

- 은행의 가장 큰 라이벌은 BIG 5와 신기술인가?(Google, Microsoft, Facebook, Apple, Amazon의 결제 시스템으로 업무를 진행하기 때문에 은행들이 위협을 받을 수 있다.)

- BIG 5 회사는 결제 시스템을 제공할 것인가? (Apple Pay 등)

- Ripple의 다른 라이벌은 다른 암호 화폐인가? (무료 PayPal)



+ Recent posts