p2p는 대체 무엇인걸까? 왜 블록체인의 설명에서 보이는걸까?

p2p는 대체 무엇인걸까? 왜 블록체인의 설명에서 보이는걸까?

"블록체인에서 많이 언급되는 P2P에 대하여"

p2p는 대체 무엇인걸까? 왜 블록체인의 설명에서 보이는걸까?

지금까지 블록체인에 대한 글을 쓰면서 가장 많이 봤던 단어는 P2P이다. 이것은 무엇이고, 얼마나 중요한 역할을 하고있기에 모든 글에서 무조건 한번은 언급되고 있는지 알아보았다.

p2p의 정의

P2P 시스템은 과거 많은 응용 프로그램 도메인에서 사용되었지만, 이 개념은 음악 공유 응용 프로그램 냅스터와 같은 파일 공유 시스템을 통해 보급되었습니다. P2P의 이동으로 수백만 명의 누리꾼이 "직접 그룹을 형성하고 공동 작업을 하며 사용자가 작성한 검색엔진, 가상 슈퍼컴퓨터 및 파일 시스템이 될 것"이 가능해졌습니다. P2P 컴퓨팅의 기본개념은 이전의 소프트웨어 시스템과 네트워킹 논의에 상정되어 설명되었던 원칙으로 거슬러 올라갑니다. 첫 번째 Request for Comments, RFC1입니다. TimBerners-Lee의 월드와이드웹에 대한 비전은 웹의 각 사용자가 적극적인 편집자와 투고자이며, 콘텐츠를 작성하고 링크함으로써 링크의 '웹'을 형성한다는 점에서 P2P 네트워크에 가까운 것이었습니다. 초기 인터넷은 방화벽 등의 보안 대책 없이도 인터넷에 연결된 두 대의 기기가 패킷을 서로 전송할 수 있게 된 오늘날보다 개방적이었습니다. 이는 오랜 세월 발전해온 웹의 방송 구조와 대조적입니다. 인터넷의 선두주자로서 ARPANET은 '모든 참여 노드가 콘텐츠를 요구하고 제공할 수 있는' 성공한 클라이언트/서버 네트워크였다. 그러나 ARPANET은 자체 조직화되어 있지 않아 "단순한 주소 기반 라우팅을 초과하는 컨텍스트 기반 라우팅 또는 콘텐츠 기반 라우팅 수단을 제공하는" 기능이 없었습니다. 따라서 초기 P2P 아키텍처로 자주 설명되는 분산 메시징 시스템 Usenet가 구축되었습니다. 1979년에 분산 제어 모델을 실시하는 시스템으로서 개발되었습니다. 기본모델은 뉴스그룹 서버에 대한 자기조직화 접근방식을 제공하는 사용자 또는 클라인언트의 관점에서 본 클라이언트/서버 모델입니다. 그러나 뉴스서버는 피어로서 서로 통신하며 Usenet 뉴스기사를 네트워크 서버 그룹 전체에 전파했습니다. 메일 전송 에이전트의 핵심적인 전자 메일 릴레이 네트워크는 피어 투 피어 특성을 가지고 있으며 전자 메일 클라이언트와 그 직접 접속은 엄밀하게는 클라이언트와 서버의 관계라는 점에서 SMTP 전자 메일에도 동일한 고려 사항이 적용됩니다. 1999년 5월 수백만 명의 사람들이 인터넷에 접속했고 숀 패닝은 냅스터라는 음악과 파일 공유 애플리케이션을 도입했습니다. Napster는 PeatoPer 네트워크의 시작이며 오늘날 Pearo Per 네트워크에서는 "참여 사용자는 관리 권한이나 제한에 따르지 않고 물리 네트워크로부터 완전히 독립된 가상 네트워크를 확립합니다."

구조화되지 않은 네트워크

비구조화 피어투피어 네트워크는 오버레이 네트워크에 특정 구조를 강제하는 것이 아니라 서로 랜덤하게 접속을 형성하는 노드에 의해 형성됩니다.(Gnutella, Gossip 및 Kazaaa는 비구조화 P2P 프로토콜의 예입니다.) 비구조화 네트워크는 글로벌하게 강제되는 구조가 없기 때문에 구축이 용이하며 오버레이의 다양한 영역에 대해 현지화 되어 최적화가 가능합니다. 또, 네트워크에 있어서의 모든 피어의 역할은 같기 때문에 비구조화 네트워크는 높은 레이트의 [churn]에 직면해도 매우 견고합니다. 즉, 다수의 피어가 네트워크에 자주 가입하거나 네트워크에서 탈퇴하는 경우입니다. 단 비구조화 네트워크의 주된 제한사항은 이러한 구조의 결여로부터도 발생합니다. 특히 피어가 네트워크 내에서 필요한 데이터를 검색할 때는 검색 쿼리를 네트워크를 통해 플래딩하여 데이터를 공유할 수 있는 한 많은 피어를 검색해야 합니다. 플래딩은 네트워크 내에서 대량의 시그널링 트래픽을 일으켜 (모든 피어에게 모든 검색 쿼리 처리를 요구함으로써) 더 많은 CPU/메모리를 사용합니다. 또한 검색 쿼리가 항상 해결되는 것은 아닙니다. 게다가 피어와 피어에 의해서 관리되는 컨텐츠와의 사이에는 상관관계가 없기 때문에, 플래딩에 의해서 목적의 데이터를 가지는 피어가 발견되는 보증은 없습니다. 일반적인 콘텐츠는 여러 개의 피어로 이용할 수 있는 가능성이 높고 이를 검색하고 있는 피어에서도 같은 것을 찾을 가능성이 있습니다. 단, 피어가 다른 소수의 피어와 공유하는 희귀한 데이터만 찾고 있는 경우는 검색이 성공할 가능성이 매우 낮아집니다.

아키텍처는 무엇일까?

아키텍처는 다음과 같습니다. P2P 네트워크는 네트워크상의 다른 노드에 대해 '클라이언트'와 '서버'로 동시에 기능하는 동등한 P2P 노드라는 개념으로 설계되어 있습니다. 이 네트워크 배치 모델은 일반적으로 중앙 서버와의 사이에서 통신을 실시하는 클라이언트/서버 모델과는 다릅니다. 클라이언트/서버 모델을 사용하는 파일 전송의 전형적인 예는 클라이언트와 서버 프로그램이 다른 File Transfer Protocol(FTP;파일 전송 프로토콜) 서비스입니다. 클라이언트는 전송을 시작하고 서버는 이러한 요구를 충족시킵니다.

라우팅 및 리소스 검출

통상적으로 P2P 네트워크는 어떤 형태의 가상 오버레이 네트워크를 물리 네트워크 topology의 상부에 구현합니다. 오버레이 내의 노드는 물리 네트워크 내의 노드 서브셋을 형성합니다. 데이터는 여전히 기초가 되는 TCP/IP 네트워크를 개입시켜 직접 교환됩니다만, 애플리케이션층의 피어는 논리 오버레이 링크(각각이 기초가 되는 물리 네트워크를 통과하는 패스에 대응)를 개입시켜 직접 서로 통신할 수 있습니다. 오버레이는 인덱스화와 피어 디스커버리에 사용되며 P2P 시스템을 물리 네트워크 토폴로지로부터 독립시킵니다. 오버레이 네트워크 내에서의 노드간 링크방법 및 리소스의 인덱스 부여와 위치에 기초하여 네트워크를 비구조화 또는 구조화(또는 양자의 하이브리드)로 분류할 수 있습니다.

from http://yesornox.tistory.com/26 by ccl(A) rewrite - 2021-12-19 21:01:14