GGmon

P2P 네트워크 알아보기 본문

IT

P2P 네트워크 알아보기

꿀몬z 2023. 3. 26. 09:00
728x90
반응형

피어 투 피어(P2P)란 무엇입니까?

컴퓨터 과학에서 P2P(Peer-to-Peer) 네트워크는 파일을 집합적으로 저장하고 공유하는 장치 그룹으로 구성됩니다. 각 참여자( 노드 )는 개별 피어 역할을 합니다. 일반적으로 모든 노드는 동일한 권한을 가지며 동일한 작업을 수행합니다.

 

금융 기술에서 P2P라는 용어는 일반적으로 분산 네트워크를 통한 암호화폐 또는 디지털 자산의 교환을 의미합니다. P2P 플랫폼을 통해 구매자와 판매자는 중개자 없이 거래를 실행할 수 있습니다. 경우에 따라 웹사이트는 대금업자와 대출자를 연결하는 P2P 환경을 제공할 수도 있습니다.

 

P2P 아키텍처는 다양한 사용 사례에 적합할 수 있지만 최초의 파일 공유 프로그램이 만들어졌던 1990년대에 특히 인기를 얻었습니다. 오늘날 P2P 네트워크는 블록체인 산업의 상당 부분을 차지하는 대부분의 암호화폐의 핵심입니다. 그러나 웹 검색 엔진, 스트리밍 플랫폼, 온라인 시장 및 IPFS(InterPlanetary File System) 웹 프로토콜을 비롯한 다른 분산 컴퓨팅 응용 프로그램에서도 활용됩니다.

IPFS(InterPlanetary File System)는 분산 파일 시스템으로, 파일의 저장과 검색에 사용되는 P2P 프로토콜입니다. IPFS는 중앙 집중화된 서버가 필요 없으며, 파일을 작은 조각으로 분할하여 여러 컴퓨터에 저장함으로써, 높은 신뢰성, 보안성, 이용성, 속도 등을 제공합니다.

 

IPFS는 모든 파일에 고유한 해시 값을 부여하며, 파일을 저장할 때 이 해시 값을 사용합니다. 이를 통해 파일의 신원을 보호하고, 불필요한 파일 중복을 제거할 수 있습니다. IPFS는 또한 중앙 집중화된 서버 대신, 네트워크의 참여자가 서로 파일을 공유하는 방식으로 작동합니다. 이러한 방식으로 IPFS는 높은 신뢰성과 안정성을 보장하며, 분산 네트워크에서 파일 검색 및 공유를 더욱 효율적으로 처리할 수 있습니다.

 

IPFS는 파일을 저장하고 공유하는 데에 사용될 뿐만 아니라, 웹 사이트를 호스팅 하는 데에도 사용될 수 있습니다. IPFS를 사용하여 웹 사이트를 호스팅 할 경우, 중앙 집중화된 서버가 필요 없기 때문에, DDoS 공격 등과 같은 공격으로부터 보다 안전하고, 웹 사이트 로딩 속도도 더욱 빨라집니다.

 

IPFS는 블록체인과 연계되어, 블록체인에서 사용되는 스마트 컨트랙트와 함께 사용될 수 있습니다. 블록체인에서는 IPFS를 통해 저장된 파일에 대한 신뢰성과 무결성을 보장하고, 저장된 파일에 대한 검증을 수행할 수 있습니다.

IPFS는 현재 많은 분산 저장소 및 파일 공유 프로젝트에서 사용되고 있으며, 블록체인을 비롯한 분산 시스템에서도 널리 사용되고 있습니다.

 

P2P는 어떻게 작동합니까?

본질적으로 P2P 시스템은 분산된 사용자 네트워크에 의해 유지됩니다. 일반적으로 각 노드는 파일 사본을 보유하고 다른 노드에 대한 클라이언트 및 서버 역할을 하기 때문에 중앙 관리자나 서버가 없습니다. 따라서 각 노드는 다른 노드에서 파일을 다운로드하거나 다른 노드에 파일을 업로드할 수 있습니다. 이것이 클라이언트 장치가 중앙 집중식 서버에서 파일을 다운로드하는 보다 전통적인 클라이언트-서버 시스템과 P2P 네트워크를 구별하는 것입니다.

 

P2P 네트워크에서 연결된 장치는 하드 드라이브에 저장된 파일을 공유합니다. 데이터 공유를 조정하도록 설계된 소프트웨어 애플리케이션을 사용하여 사용자는 네트워크의 다른 장치에 쿼리 하여 파일을 찾고 다운로드할 수 있습니다. 사용자가 지정된 파일을 다운로드하면 해당 파일의 소스 역할을 할 수 있습니다.

즉, 노드가 클라이언트 역할을 할 때 다른 네트워크 노드에서 파일을 다운로드합니다. 그러나 서버로 작동할 때는 다른 노드가 파일을 다운로드할 수 있는 소스입니다. 하지만 실제로는 두 기능을 동시에 실행할 수 있습니다(예: 파일 A 다운로드 및 파일 B 업로드).

 

모든 노드가 파일을 저장, 전송 및 수신하기 때문에 P2P 네트워크는 사용자 기반이 커질수록 더 빠르고 효율적입니다. 또한 그들의 분산 아키텍처는 P2P 시스템이 사이버 공격에 매우 강하도록 만듭니다. 기존 모델과 달리 P2P 네트워크에는 단일 실패 지점이 없습니다.

 

아키텍처에 따라 P2P 시스템을 분류할 수 있습니다. 세 가지 주요 유형은 비정형, 정형 및 하이브리드 P2P 네트워크라고 합니다.

 

구조화되지 않은 P2P 네트워크

구조화되지 않은 P2P 네트워크는 노드의 특정 조직을 나타내지 않습니다. 참가자들은 무작위로 서로 통신합니다. 이러한 시스템은 높은 이탈 활동(즉, 여러 노드가 네트워크에 자주 합류 및 이탈)에 대해 강력한 것으로 간주됩니다.

 

구축하기는 쉽지만 구조화되지 않은 P2P 네트워크는 검색 쿼리가 가능한 가장 많은 수의 피어에게 전송되기 때문에 더 높은 CPU 및 메모리 사용량이 필요할 수 있습니다. 이것은 특히 적은 수의 노드가 원하는 콘텐츠를 제공하는 경우 네트워크에 쿼리가 넘쳐나는 경향이 있습니다.

 

구조화된 P2P 네트워크

대조적으로 구조화된 P2P 네트워크는 조직화된 아키텍처를 제공하므로 콘텐츠가 널리 사용되지 않는 경우에도 노드가 파일을 효율적으로 검색할 수 있습니다. 대부분의 경우 이것은 데이터베이스 조회를 용이하게 하는 해시 함수를 사용하여 달성됩니다.

 

구조화된 네트워크가 더 효율적일 수 있지만 더 높은 수준의 중앙 집중화를 나타내는 경향이 있으며 일반적으로 더 높은 설정 및 유지 관리 비용이 필요합니다. 그 외에 구조화된 네트워크는 높은 이탈률에 직면했을 때 덜 강력합니다.

 

해시 함수는 다양한 분야에서 사용되며, 암호학, 데이터베이스, 검색엔진, 네트워크 등에서 널리 활용됩니다. 이를 이용하면 데이터를 안전하게 저장하고 검색할 수 있으며, 데이터의 무결성을 보장할 수 있습니다.

대표적인 해시 함수로는 다음과 같은 것들이 있습니다.

  • MD5 (Message-Digest Algorithm 5)
  • SHA (Secure Hash Algorithm)
  • SHA-256
  • SHA-512
  • RIPEMD (RACE Integrity Primitives Evaluation Message Digest)

이 중에서 SHA-256은 현재 가장 많이 사용되는 해시 함수 중 하나이며, 블록체인에서도 많이 사용됩니다. 해시 함수는 입력값에 대해 고유한 출력 값을 제공하므로, 블록체인에서는 거래 정보를 블록에 저장할 때, 각 블록의 고유한 해시 값을 생성하여, 블록체인의 무결성과 보안성을 유지하는 데에 활용됩니다.

 

하이브리드 P2P 네트워크

하이브리드 P2P 네트워크는 기존의 클라이언트-서버 모델을 P2P 아키텍처의 일부 측면과 결합합니다. 예를 들어, 해당 디자인에는 피어 간의 연결을 용이하게 하는 중앙 서버가 포함될 수 있습니다.

 

다른 두 가지 유형과 비교할 때 하이브리드 모델은 전반적으로 향상된 성능을 나타내는 경향이 있습니다. 그들은 일반적으로 각 접근 방식의 주요 이점 중 일부를 결합하여 상당한 수준의 효율성과 분산화를 동시에 달성합니다.

 

분산 대 탈중앙화

P2P 아키텍처는 본질적으로 분산되어 있지만 탈중앙화의 정도는 다양하다는 점에 유의해야 합니다. 따라서 모든 P2P 네트워크가 분산된 것은 아닙니다. 

 

사실, 많은 시스템은 네트워크 활동을 안내하는 중앙 기관에 의존하여 어느 정도 중앙 집중화됩니다. 예를 들어 일부 P2P 파일 공유 시스템에서는 사용자가 다른 사용자의 파일을 검색하고 다운로드할 수 있지만 검색어 관리와 같은 다른 프로세스에는 참여할 수 없습니다.

 

또한 공유 목표를 가진 제한된 사용자 기반에 의해 제어되는 소규모 네트워크는 중앙 집중식 네트워크 인프라가 부족함에도 불구하고 더 높은 수준의 중앙 집중화를 가지고 있다고 말할 수 있습니다.

 

블록체인에서 P2P의 역할

Bitcoin의 초기 단계에서 Satoshi Nakamoto는 이를 "Peer-to-Peer 전자 현금 시스템"으로 정의했습니다. 비트코인은 디지털 형태의 돈으로 만들어졌습니다. 블록체인 이라는 분산 원장을 관리하는 P2P 네트워크를 통해 한 사용자에서 다른 사용자로 전송할 수 있습니다.

 

이러한 맥락에서 블록체인 기술에 내재된 P2P 아키텍처는 중개자나 중앙 서버 없이 비트코인 ​​및 기타 암호화폐를 전 세계로 전송할 수 있도록 합니다. 또한 블록을 검증하고 검증하는 과정에 참여하고 싶다면 누구나 비트코인 ​​노드를 설정할 수 있습니다.

 

따라서 비트코인 ​​네트워크에는 트랜잭션을 처리하거나 기록하는 은행이 없습니다. 대신 블록체인은 모든 활동을 공개적으로 기록하는 디지털 원장 역할을 합니다. 기본적으로 각 노드는 블록체인 사본을 보유하고 있으며 데이터가 정확한지 확인하기 위해 다른 노드와 비교합니다. 네트워크는 악의적인 활동이나 부정확성을 신속하게 거부합니다.

 

암호화폐 블록체인의 맥락에서 노드는 다양한 역할을 맡을 수 있습니다. 예를 들어 전체 노드는 시스템의 합의 규칙에 대해 트랜잭션을 확인하여 네트워크에 보안을 제공하는 노드입니다.

 

각 전체 노드는 블록체인의 완전하고 업데이트된 사본을 유지 관리하므로 분산 원장의 실제 상태를 확인하는 공동 작업에 참여할 수 있습니다. 그러나 모든 전체 검증 노드가 마이너인 것은 아니라는 점에 유의할 가치가 있습니다..

 

장점

블록체인의 P2P 아키텍처는 많은 이점을 제공합니다. 가장 중요한 것은 P2P 네트워크가 기존의 클라이언트-서버 배열보다 더 강력한 보안을 제공한다는 사실입니다. 많은 수의 노드에 블록체인을 배포하면 수많은 시스템을 괴롭히는 서비스 거부(DoS) 공격에 거의 면역이 됩니다.

 

DoS(Denial-of-Service)는 컴퓨터 시스템 또는 네트워크에 과도한 데이터 트래픽이나 연결 요청을 보내는 공격으로, 시스템 또는 네트워크가 일시적 또는 영구적으로 마비될 수 있도록 하는 것을 의미합니다.

 

DoS 공격은 공격자가 목표 시스템에 대량의 데이터 패킷을 보내는 것으로, 공격 대상 시스템은 이러한 데이터 패킷을 처리하고 응답해야 합니다. 이때 공격자는 응답을 기다리지 않고, 계속해서 대량의 데이터 패킷을 보내어 시스템의 자원을 소모시키게 됩니다. 이렇게 되면, 시스템은 요청에 대한 응답을 제공할 수 없게 되며, 불편을 겪게 됩니다.

 

DoS 공격은 다양한 방법으로 수행될 수 있습니다. 예를 들어, 일반적인 DoS 공격에서는 송신자가 대량의 가짜 패킷을 보내어 네트워크 대역폭을 차지하게 만들고, DDoS(분산 서비스 거부) 공격에서는 여러 대의 컴퓨터를 이용하여 공격을 수행합니다.

 

DoS 공격은 인터넷 환경에서 매우 흔하게 발생합니다. 공격자는 시스템 또는 네트워크의 서비스를 마비시켜 피해자에게 손해를 입힐 수 있으며, 이러한 공격은 일상생활과 인프라에 큰 영향을 미칠 수 있습니다. 따라서, 이러한 공격에 대한 대비책이 필요하며, 이를 위해 다양한 방법으로 대응하고 있습니다. 이를 통해 시스템과 네트워크의 안전성과 보안성을 높이고, 인터넷 환경에서 안전하고 안정적인 서비스를 제공할 수 있도록 노력하고 있습니다.

 

마찬가지로 데이터가 블록체인에 추가되기 전에 대다수의 노드가 합의를 이루어야 하기 때문에 공격자가 데이터를 변경하는 것은 거의 불가능합니다. 이것은 Bitcoin과 같은 큰 네트워크에 특히 해당됩니다. 소규모 블록체인은 한 사람 또는 그룹이 결국 대부분의 노드를 제어할 수 있기 때문에 공격에 더 취약합니다(이를 51% 공격이라고).

 

결과적으로 다수의 합의 요구 사항과 결합된 분산 P2P 네트워크는 블록체인에 악의적인 활동에 대한 상대적으로 높은 수준의 저항을 제공합니다. P2P 모델은 비트코인(및 기타 블록체인)이 소위 비잔틴 내결함성을 달성할 수 있었던 이유 중 하나입니다.

 

보안 외에도 암호화폐 블록체인에서 P2P 아키텍처를 사용하면 중앙 당국의 검열에 저항할 수 있습니다. 일반 은행 계좌와 달리 암호화폐 지갑은 정부에 의해 동결되거나 고갈될 수 없습니다. 이러한 저항은 개인 지불 처리 및 콘텐츠 플랫폼에 의한 검열 노력에도 적용됩니다. 일부 콘텐츠 제작자와 온라인 판매자는 제3자에 의해 결제가 차단되는 것을 방지하기 위한 방법으로 암호화폐 결제를 채택했습니다.

 

제한 사항

많은 장점에도 불구하고 블록체인에서 P2P 네트워크를 사용하는 데는 특정 제한 사항이 있습니다.

분산 원장은 중앙 서버가 아닌 모든 단일 노드에서 업데이트되어야 하기 때문에 블록체인에 트랜잭션을 추가하려면 엄청난 양의 컴퓨팅 성능이 필요합니다. 이렇게 하면 보안이 강화되지만 효율성이 크게 떨어지고 확장성 및 광범위한 채택에 있어 주요 장애물 중 하나입니다. 그럼에도 불구하고 암호 작성자와 블록체인 개발자는 스케일링 솔루션으로 사용할 수 있는 대안을 조사하고 있습니다. 눈에 띄는 예로는 Lightning Network , Ethereum Plasma Mimblewimble 프로토콜이 있습니다.

 

또 다른 잠재적인 제한은 하드 포크 이벤트 중에 발생할 수 있는 공격과 관련이 있습니다.대부분의 블록체인은 분산형이고 오픈 소스이기 때문에 노드 그룹은 자유롭게 코드를 복사하고 수정할 수 있으며 메인 체인에서 분리되어 새로운 병렬 네트워크를 형성합니다. 하드포크는 완전히 정상적이며 그 자체로는 위협이 되지 않습니다. 그러나 특정 보안 방법이 제대로 채택되지 않으면 두 체인 모두 재생 공격에 취약해질 수 있습니다 .

 

게다가 P2P 네트워크의 분산된 특성으로 인해 블록체인 틈새시장뿐만 아니라 제어 및 규제가 상대적으로 어렵습니다. 여러 P2P 애플리케이션과 회사가 불법 활동 및 저작권 침해에 연루되었습니다.

 

마무리 생각

P2P 아키텍처는 다양한 방식으로 개발되고 사용될 수 있으며 암호화폐를 가능하게 하는 블록체인의 핵심입니다. P2P 아키텍처는 노드의 대규모 네트워크에 트랜잭션 원장을 배포함으로써 보안, 탈중앙화 및 검열 저항을 제공합니다.

 

블록체인 기술에서의 유용성 외에도 P2P 시스템은 파일 공유 네트워크에서 에너지 거래 플랫폼에 이르기까지 다른 분산 컴퓨팅 애플리케이션을 지원할 수 있습니다.

728x90
반응형
LIST

'IT' 카테고리의 다른 글

선행 및 후행 지표 알아보기  (1) 2023.03.27
해싱이란 무엇인가요?  (0) 2023.03.26
재정적 위험이 무엇인지 공부하기  (0) 2023.03.25
시장심리학이란?  (0) 2023.03.25
일목균형표, 일목구름 공부해보기  (0) 2023.03.24
Comments