컴퓨터, IT 지식/블록체인

블록체인을 이해하기 위한 배경지식 - P2P

게임이 더 좋아 2021. 4. 22. 18:43
반응형
728x170

 

 

분산 네트워크 시스템의 특징을 알아보려고 한다.

블록체인은 분산 시스템을 이용했다.

 

알아보자

 

 


 

분산시스템이란

많은 컴퓨터가 함께 동작하는 시스템을 말한다.

그 중에서 P2P를 알아볼 것이다.

 

2개 이상의 노드가 서로 1:1 (일대일) 통신하는 방법을 바로 P2P라고 한다.

**Peer to Peer 방식으로 영어의 약자에서 2가 들어가면 거의 모두 to를 two로 쓴 것이라고 봐도 된다.

 

P2P 방식으로 연결된 노드가 많이 모이면 P2P 방식으로 연결된 상태의 P2P 분산 네트워크가 형성되는 것이다.

 

 

 


 

P2P 분산 네트워크는 왜 사용하는 걸까?

 

P2P 분산 네트워크에 참여하는 노드는 원칙적으로 같은 역할을 수행한다.

즉, 일부 노드만 특별한 역할을 가진다거나 그럴 수 없다.

때문에 단일 장애점, Single Point Of Failure가 없다.

 

 

일부 노드가 고장나 정지하더라도 전체 네트워크에 영향을 주는 일이 적고, 규모가 커질수록 복원력이 뛰어나서

블록체인을 구현하는 네트워크 구성방법에 알맞다고 할 수 있다.

** 비트코인 네트워크는 아직까지 한 번도 시스템이 중단되지 않았다고 한다.

결국 블록체인 네트워크는 모든 노드가 같은 데이터를 유지해야 한다.

 

 

새로운 노드가 블록체인 네트워크에 참여할 때 같은 데이터를 가지기 위해

다른 노드에서 데이터를 복사해와야 한다.

즉, 블록체인 데이터의 해시 함숫값을 비교하면서 정확하게 복사해야 한다.

** 새로운 노드참가가 네트워크 참여에 오래 걸리는 이유

 

일단 복사를 마친다면 기존의 노드와 같아지면서

불특정 다수의 이용자가 발행하는 거래 데이터를 받아 기록을 남기고

블록체인의 구현 목적을 충실히 실행할 수 있다.

 

** 근데.. 데이터가 늘어날수록 노드참가가 어렵겠는걸..? 

 

 


 

P2P 분산 네트워크는 문제가 있어도 중단되지 않는다고 했다.

그것이 바로 제로 다운타임, Zero Downtime 이라고 한다.

하지만 이것이 장점만 있는 것은 아니다.

 

 

 

물론 P2P 방식으로 설계하면 문제가 생겨도 시스템이 중단되지 않을 확률이 높으니

장기간 안정적인 방식으로 운영을 할 수 있다.

앞서 말한대로 모든 노드가 같은 역할을 하기 때문에

반대로 말하면 어떤 노드가 고장이 나더라도 전체에서는 작은 부분이 불과하다.

P2P는 위 그림처럼 그물망의 모습을 갖고 있고

문제가 생겨 경로가 끊어져도 다른 우회 경로로 전달하면 되기 때문에

전체의 작동에는 문제가 생기지 않는다.

**만약 다수의 노드가 끊어지면 그건.. 문제겠지?

 

하지만 그것보다 압도적으로 많은 노드가 있다면 어느정도가 끊어져도 괜찮을 것이다.

다시 말해서 노드의 수를 늘리는 것만으로도 안전하고 신뢰할 수 있는 시스템을 구축할 수 있다는 것이다.

 

 

단점도 물론 있다.

노드가 많아지면 많아질수록 버킷릴레이 양이 많아지므로 전체 성능은 구려진다.

 

** 멀리 있는 물을 퍼갈 때 양동이 전달전달하는 것을 말한다.

10명이 필요한 곳에 100명이 있으면 더 비효율적인 것과 마찬가지다.

여기서 물은 데이터를 말한다.

 

아까 노드가 참여가 오래걸린다는 말과 일맥상통하다.

 

 

반대로 문제가 생겨도 시스템을 중지하지 못한다는 것은 단점이 되기도 한다.

악의적인 목적을 가진 노드가 P2P 분산 시스템에서 악의적인 데이터를 퍼뜨린다면

해당 데이터를 제거하기가 어려워져서 사고가 발생할 수 있다.

 

 

 

** 물론 이를 방지하고자 노드의 자격을 승인받는 시스템을 따로 두기도 한다.

 

 

반응형
그리드형