Hopr 기본 파헤치기: 릴레이 증명

이 글은 HOPR의 기본에 대해 알아보는 시리즈의 여섯번째 에피소드입니다. 이전 에피소드에 대한 링크는 글의 끝에 찾아보실 수 있습니다.

인센티브형 믹스넷을 구축하는 일의 중심에는 모순이 있습니다: 인센티브만 챙기고 작업을 수행하지 않을 수 있는데, 노드가 데이터를 릴레이하는 작업을 제대로 수행하는지 어떻게 확실히 할 수 있을까요?

HOPR의 솔루션은 바로 릴레이 증명이며, 이 에피소드에서 이 작업이 어떻게 수행되는지 알아볼 것입니다.

무신뢰 프라이버시
규칙을 따르는 것이 옳다는 이유만으로 사람들이 그 규칙을 온전히 따를 것을 기대할 수는 없습니다. 이에 따라 규칙을 따르는 일이 합리적이며 유익한 일로 만들어야 합니다. 이것은 많은 암호화 시스템의 초석이며, 시스템을 무신뢰로 만드는 것입니다(시스템을 만든 그 누구도 신뢰하지 않아도 되기 때문에 오히려 시스템이 신뢰 가능하다는, 조금은 헷갈릴 수 있는 개념입니다). 기본적으로 시스템이 원하는 여러분의 행동 방식이 바로 여러분의 가장 이기적인 행동 방식일 때, 우리는 친절하게 대해주는 그 누구에게도 기대지 않아도 됩니다.

HOPR의 경우 우리는 모두가 공정하게 보상을 확실하게 받을 방법이 필요한데, 이는 단지 그들이 데이터를 릴레이한 다음의 경우에만 해당합니다. 이 메커니즘은 공개적으로 모두를 추적하고 확인하지 않아도 모두가 정직함을 보장해야 하며, 그렇지 않은 경우 믹스넷을 설계하는데 들어간 모든 프라이버시 작업이 무용지물이 됩니다.

노드를 정직하게 유지
지난 에피소드에서 우리는 사용자가 네트워크를 통해 전체 경로에 대한 결제를 미리 로드하고 노드 러너가 자신의 몫을 챙기고 나머지를 체인을 통해 전달하는 다소 순진한 결제 방식에 대한 접근을 살펴봤습니다.

이것의 문제는 바로 보장된 것이 없다는 점입니다. 돈만 챙기고 데이터는 전달하지 않는 경우가 발생할 수 있지 않을까요? HOPR 네트워크의 익명성은 노드들로 하여금 그들의 릴레이 작업을 수행하지 않고 시스템으로부터 돈을 훔칠 수 있게 만들 가능성이 있습니다. 기억해야 할 점은 오직 발신자만이 데이터 패킷이 통과해야 하는 전체 경로를 알 뿐이며, 여기에 믹싱이 더해진다는 것은 데이터 경로가 어느 지점에서 실패했는지 추적할 길이 없다는 뜻입니다.

따라서 우리는 노드가 그들의 릴레이잉 작업을 수행 완료한 경우에만 지불을 받는 방법을 찾아야 합니다. 이것은 직관적인 솔루션입니다. 결국 사람들은 일을 한 후에 돈을 받지, 일을 하기 전 돈을 받지 않습니다. 하지만 여기서는 어떻게 그것을 달성할 수 있을까요?

단순한 접근의 한 예로는 체인 내 각 노드가 직전 노드에게 돈을 지불하게 만드는 방법이 있습니다. 따라서 만약 Dmytro가 Chāo로부터 데이터를 수신한다면, 그가 Chāo의 임금을 보상으로 보내는 방식입니다. 그런데 이렇게 하면 결국 같은 문제를 다시 마주하게 됩니다. Dmytro가 왜 굳이 그래야 할까요? 굳이 그렇게 하지 않고 돈을 전송하지 않는 경우 어떡할까요? 다시 말하지만 네트워크의 프라이버시로 인해 이것을 적발해낼 방법이 없습니다.

(사실 이것은 과도하게 단순화해 말한 것입니다 - 결국, Chāo는 그가 Dmytro에게 데이터 일부를 전송했다는 것을 알고 그로부터 돈을 지급받지 못했다는 사실 또한 알 것입니다. 하지만 Chāo는 그것이 악의적이었다는 것을 증명할 수 없습니다. 네트워크에서는 항상 문제가 발생하고는 합니다! 또, Dmytro가 돈을 전달하지 않는다는 평판이 있더라도, 그는 단순히 네트워크에서 빠져나와 새로운 ID로 다시 시작할 수 있습니다. 다시 말해, 프라이버시는 양날의 검입니다.)

그렇다면 우리는 이 문제를 어떻게 해결해야 할까요?

릴레이 증명
HOPR가 찾은 혁신은 바로 체인 내 연속되는 노드 페어가 서로에게 금액 지불에 있어 의존하게 만드는 것입니다. Chāo는 Dmytro에게 데이터를 릴레이하기 전까지 금액을 청구할 수 없으며, Dmytro 또한 Chāo의 몫을 언락하기 전까지는 자신의 몫을 청구할 수 없습니다.

이것은 암호화 기술을 통해 이루어지지만, 사실 이해하기 간단합니다.

HOPR 네트워크를 통해 데이터가 전송될 때, 체인 내 각 노드에 대한 지불이 생성됩니다. 이것은 암호화 키로 인해 락업됩니다. 키 전체를 갖고 있는 경우 지불을 청구할 수 있습니다. 하지만 그 중 어느 한 부분이라도 빠지면 아무 소용이 없습니다.

이러한 키는 절반으로 나뉘어 여러분은 지불을 청구하기 위해 양쪽 모두를 확보해야만 합니다.

데이터가 체인을 따라 전송될 때, 연속되는 노드 페어는 서로가 가진 키의 반쪽을 스왑합니다. 열쇠를 앞쪽과 뒷쪽 두 쪽으로 나눈다고 가정하겠습니다. Chāo는 Betty가 가진 뒷쪽 키를 확보하기 위해 그가 가진 앞쪽 키를 스왑합니다. 그는 Dmytro가 가진 앞쪽 키를 자신이 가진 뒷쪽 키와 스왑합니다. 이렇게 한 뒤에 그는 지불을 청구할 수 있으며, 이렇게 작업이 진행된다면 데이터는 성공적으로 Betty에서 Chāo에게, 그리고 이어 Dmytro에게 전달되었을 것입니다.

이렇게 하면 모두가 규칙에 따라 작업을 수행하게 만듭니다. 만일 제가 당신으로부터 데이터를 받는 노드라면, 우리 중 그 누구도 키의 반쪽을 스왑하지 않고서는 지불을 청구할 수 없습니다. 책임을 회피하는 것에 대한 베네핏이 전혀 없으며, 돈을 훔칠만한 구멍도 없습니다. 이 경우 가장 이기적인 행동방식이 바로 협업이 되며, 이 말은 모두의 인센티브가 연대한다는 뜻입니다.

프라이버시 보존
간단하지만 강력한 이 혁신은 가능성으로 가득한 또 다른 세계를 열어줍니다. 릴레이 증명과 함께 우리는 드디어 무한히 확장할 수 있는 완전한 인센티브형 프라이빗 믹스넷을 구축할 수 있게 되었으며, 이는 우리가 신뢰할 수 있는 이타적인 사람을 찾을 필요가 없기 때문입니다.

아직 우리는 숲에서 빠져나온 것이 아닙니다. 만일 각 지불이 퍼블릭 블록체인에서 트랜잭션을 만들 경우, 우리는 네트워크에서 일어나는 모든 것에 대한 데이터베이스를 실수로 노출시킬 수 있는 위험성에 가까워집니다. HOPR는 확률적 지불을 이용해 HOPR의 지불 레이어를 메시징 레이어로부터 분리해 프라이버시를 보존합니다. 이것이 어떻게 작동하는지에 대해서는 다음 에피소드를 통해 설명하겠습니다.