[백서 읽기] 리플 프로토콜 합의 알고리즘 1

Jay Park
Grabity
Published in
7 min readJan 25, 2019

암호화폐에 가치 투자하려면 그 암호화폐가 어디에 쓰이는지 어떻게 쓰일 것인지 정도는 알아야겠죠?

그래서 암호화폐 발행자들은 투자자들을 위해 ‘백서(whitepaper)’형태로 암호화폐에 대한 정보와 기술을 소개합니다.

하지만 백서는 복잡한 알고리즘과 토큰 이코노미를 수학적으로 설명하는 글부터 추상적이거나 비즈니스적 접근을 알수 있는 글까지 다양한 수준의 백서가 있으며, 정해진 형식이 없고 때로는 토큰 판촉용으로 작성 돼 백서를 읽는 투자자의 판단이 중요합니다.

다양한 백서가 있지만 최종적으로 백서를 통해 이 네가지에 대해 정의내릴 수 있다면 프로젝트에 대한 이해도를 바탕으로 가치 투자를 할 수 있을 것입니다.

1.무슨 프로젝트를 진행하나? — 프로젝트를 관통하는 한 문장은 무엇인가.

2.기술이 어떻게 작동하는가? — 메인 기술은 무엇이고 작동은 어떻게 하는가.

3.왜 이 프로젝트가 필요한가? — 현실에서 이 프로젝트가 적용가능한지 혹은 이미 유사한 프로젝트가 있는 것은 아닌가.

4.왜 블록체인인가? — 꼭 블록체인 기술을 기반으로 구축되어야 하는가.

(2019 01 23 기준)

첫번째 백서는 코인마켓캡 비트코인에 이어 시총 2위! 리플입니다.

리플은 실시간결제시스템을 이용하여 핀테크 시장에서 가장 주목받고 있는 결제 프로토콜입니다.

리플은 현재 합의 알고리즘에 관한 백서만 공개한 상태입니다.

[The Ripple Protocol Consensus Algorithm] 이라는 백서인데요.

같이 차근차근 읽어보겠습니다.

[The Ripple Protocol Consensus Algorithm]

리플 프로토콜 합의 알고리즘

문제제기)

it pertains to distributed payment systems, many suffer from high latency induced by the requirement that all nodes within the network communicate synchronously.

비잔틴 장군 문제를 해결하기 위해 몇몇 알고리즘이 있지만, 분산화된 지불 시스템에 적용될 때 전체 노드의 *synchronously(동기적) 커뮤니케이션 때문에 high latency(높은 대기시간)이 발생한다.

* synchronous(동기적) 처리, 코드를 순서대로 처리

<->asynchronous(비동기적) 처리, 코드를 병렬적, 동시에 처리

리플은 높은 대기시간을 해결하기 위해 나왔군요!

해결)

by utilizing collectively-trusted subnetworks within the larger network

큰 네트워크에서 신뢰받는 서브 네트워크를 이용하여 새로운 합의 알고리즘을 만들었다.

신뢰받는 서브 네트워크가 리플 합의 알고리즘의 핵심입니다.

모든 노드가 합의 알고리즘에 참여하는 것이 아닌 선택받아 신뢰할 수 있는 노드들만 합의 알고리즘에 참여시키겠다는 말입니다.

이점)

“trust” required of these subnetworks is in fact minimal and can be further reduced with principled choice of the member nodes.

minimal connectivity is required to maintain agreement throughout the whole network.

원칙에 입각한 선택으로 필요로 하는 ‘신뢰’가 줄어듬

최소의 연결성만으로 전체 네트워크를 유지

결론)

The result is a low-latency consensus algorithm which still maintains robustness in the face of Byzantine failures.

리플은 비잔틴 장군 문제를 견고히 유지하면서도 낮은 대기시간을 갖는 합의 알고리즘이다.

초록만 읽어봐도 리플이 어떤 프로젝트인지 잘 알 수 있습니다.

합의 알고리즘을 개선하여 기존 비트코인이 1시간 걸리던 결제 시간을 단축시키겠다는 것이네요.

이제 본격적으로 합의 알고리즘이 어떻게 구동되는지에 대해 알아보겠습니다.

1. Introduction

we group them into three main categories: correctness, agreement, and utility.

리플은 지불 네트워크의 핵심을 정확성, 동의, 활용성 세가지로 분류하였습니다.

By correctness, we mean that it is necessary for a distributed system to be able to discern the difference between a correct and fraudulent transaction.

ㅁ 정확성 — 분산 시스템이 올바른 거래와 위조된 거래의 차이를 식별할 수 있어야합니다.

In traditional fiduciary settings, this is done through trust between institutions and cryptographic signatures that guarantee a transaction is indeed coming from the institution that it claims to be coming from.

기존 거래는 은행과 같이 거래를 보증하는 기업이 존재했습니다.

In distributed systems, however, there is no such trust, as the identity of any and all members in the network may not even be known. Therefore, alternative methods for correctness must be utilized.

하지만 분산 시스템(블록체인) 위에서는 구성원의 신원이 알려지지 않기 때문에 그러한 신뢰는 존재하지 않습니다.

따라서 정확성이 반드시 활용되어야 합니다.

ㅁ 동의 — 분산화된 회계 시스템에 대하여 하나의 신뢰를 유지해야 합니다.

Thus each transaction by itself is correct, but if executed simultaneously in such a way that the distributed network as a whole is unaware of both, a clear problem arises, commonly referred to as the “Double-Spend Problem”. Thus the agreement problem can be summarized as the requirement that only one set of globally recognized transactions exist in the network.

분산된 네트워크가 두 가지 지불을 인식하지 못한다면 ‘이중지불 문제’가 발생할 수 있습니다.

따라서 네트워크 상에 오직 하나의 거래만이 존재한다는 동의는 필수입니다.

ㅁ 활용성 — 시스템 지연 시간을 낮춰야 합니다.

A distributed system that is both correct and in agreement but which requires one year to process a transaction, for example, is obviously an inviable payment system. Additional aspects of utility may include the level of computing power required to participate in the correctness and agreement processes or the technical proficiency required of an end user to avoid being defrauded in the network.

거래를 처리하는데 긴 시간이 걸린다면 무용한 지불 시스템일 것입니다.

또한 사용자의 컴퓨팅 자원 낭비를 막는 것은 필수적인 기술입니다.

--

--