MCNL

🔬 연구 목적 및 필요성

<aside> 💡

내 개인 과제 — 테스트 프로그램을 구현하여 이론 검증

</aside>

연구목적 — Hp2p의 성능 개선을 위한 네트워크 프로토콜 개발

하이브리드 p2p라는 것은 검증노드와 피어노드로 이루어집니다.

노드 간 정보를 전달하는 방식은 p2p이나, 그 이전에 검증노드를 거친다는 점에서 일종의 서버-클라이언트와도 비슷한 모습입니다. 그렇기 때문에 하이브리드 p2p라고 부르는 것입니다.

검증노드는 피어노드에게 상대 노드의 정보를 전달해주는 데, 이때 이 정보를 최대한 빨리 전달해줄 필요가 있습니다. 네트워크라는 거대한 점 그래프에서, 최단 거리 경로를 찾아 전해준다면 시간비용이 줄어 hp2p의 성능 자체를 높일 수 있을 것입니다. 아래 사진처럼 노드 간의 거리와 이런 것들을 그래프로 표현하면, 우리가 흔히 아는 ‘최단 거리 알고리즘’ 문제와도 같습니다.

그러나 이를 위해서는 간 노드 간 걸리는 비용(거리)를 모두 파악하고 있어야만 합니다. 그렇지만 그것은 현실적으로 매우 힘듭니다. 예를 들어 3만개의 노드가 있다고 했을 때, 모든 노드가 자신과 2만9999개의 노드 사이의 비용을 모두 계산해 알아내야하니까요.

그러니 모든 노드가 아닌, 몇 개의 참조 포인트만으로도 저런 비용을 추정할 수 있다면 정말 좋을 것입니다.

출처 : https://m.blog.naver.com/kks227/220796029558

출처 : https://m.blog.naver.com/kks227/220796029558

이는 가상의 n차원 좌표계를 구축해 해결할 수 있습니다.

ping했을 때 나오는 서로 간의 rtt delay를 거리로 가정해, 몇 개의 참조포인트들과 자신의 거리(delay)를 기반으로 수식을 통해 자신의 좌표를 구합니다. 이렇게 구한 노드 a의 좌표와 노드 b의 좌표가 있다면, 언제든지 그 좌표 간 거리를 수학적으로 계산해 서로 간의 거리 비용을 추정할 수 있어 매우 효율적입니다.

hp2p의 네트워크 성능(속도)을 개선시키는 프로토콜을 만드는 게 포스텍MCNL 연구실에서 진행 중인 전체적인 연구의 목적이며, 저는 이 연구에서 그 중 일부인 좌표계 프로그램 구현을 맡았습니다.

네트워크 쪽에서만해도 최단 거리 알고리즘, 라우팅 알고리즘, 거리 확인 알고리즘(delay 기반 좌표계) 등의 여러 알고리즘이 구현되어야하는데, 저는 그 중 일부인 거리 확인 알고리즘을 구현한 셈입니다.

(참고로, hp2p의 성능을 개선하기 위해서는 통신 측 뿐만 아니라 블록체인 쪽에서도 개선할만한 이슈가 있습니다. 따라서 이러한 부분들은 다른 연구실과 협력하여 프로젝트를 나눠 수행 중이라고 합니다)


구현 목표