안녕하세요.
블록체인이 제대로 작동하기 위해서는 기본적으로 네트워크가 반드시 필요합니다.
블록체인은 피투피 네트워크를 사용합니다. 그 피투피 네트워크의 방식과 개념을 알아보도록 하겠습니다.
우선, 피투피 네트워크를 설명하기 전에, 일반적인 네트워크를 먼저 설명하겠습니다.
인터넷으로 검색하고 메일을 보내고 하는 것을 서비스라고 합니다.
이런 서비스를 제공해 주는 컴퓨터들이 있는 데, 이런 컴퓨터를 써버라고 합니다.
그리고, 이런 서비스를 요청하기 위해서는 스마트폰이나 노트북 같은 컴퓨터를 사용하게 됩니다.
인터넷 검색을 위해서 검색어를 입력하고, 메일을 써서 보내고 하는 컴퓨터나 스마트폰을 클라이언트하고 합니다.
이런 방식으로, 인터넷은 서비스를 요청하는 클라이언트와 서비스를 제공해 주는 써버로 구성되어 있습니다.
예를 들어, 인터넷에서 검색을 하는 것은, 클라이언트에 설치되어 있는 크롬 같은 웹브라우저에서 검색어를 입력해서 써버로 보내는 것입니다.
그러면 써버에 설치되어 있는 웹서버가 그 검색어를 받아서 검색한 결과를 클라이언트 쪽으로 보내주게 됩니다.
그러면 클라이언트에서 검색결과를 볼 수 있는 것입니다.
일반적으로, 하나의 서버에 여러대의 클라이언트가 연결됩니다. 수 많은 클라이언트에서 서비스 요청이 들어오게 됩니다.
그래서, 써버는 용량이 크고 빠른 컴퓨터로 만들어야만 합니다.
다음은 피투피 네트워크에 대해서 설명하도록 하겠습니다.
피어라는 것은 써버와 클라이언트 역할을 모두 할 수 있습니다.
그래서 피어는 서로가 요청을 보내기도 하고 답변을 보내기도 합니다.
요청을 보낼 때는 클라이언트 역할을, 답변을 보낼 때는 써버 역할을 하는 것입니다.
이러한 피어로 구성된 네트워크를 피어 끼리 통신한다는 의미에서 피어 투 피어 네트워크라고 합니다.
피어 투 피어 네트워크를 줄여서 주로 피투피 네트워크라고 합니다.
피투피 네트워크는 새로운 피어가 추가되는 방식으로 무한하게 네트워크를 확장해 갈 수 있습니다.
피어는 근처의 피어와 연결되고, 다시 그 피어는 다른 피어와 연결되어 전체 네트워크가 형성되는 방식입니다.
피어는 네트워크를 구성하는 요소라는 의미에서 노드라고도 합니다.
피투피 네트워크는 사람들 간의 연결된 모습과 닮았습니다.
사람이 하나의 피어라고 할 수 있고, 사람들 간에 서로 대화하는 것이, 마치 피어 간에 요청과 답변이 오가는 모습과 비슷하다고 볼 수 있습니다.
써버와 클라이언트 네트워크는 써버에 서비스가 집중되기 때문에 전체 네트워크를 설계하고 유지하기가 쉬운 편입니다.
그래서 새로운 기능을 추가하거나, 오류를 수정하는 것 같은 관리가 쉽습니다.
하지만 서버에 장애나 문제가 생기면, 네트워크 전체가 중단될 수 있다는 단점이 있습니다.
그에 반해서, 피투피 네트워크는 서버를 준비할 필요가 없습니다.
각 노드들이 각각 서버 및 클라이언트 역할을 하기 때문에 네트워크 전체의 부담을 분산시켜 줍니다.
새로운 노드가 추가되더라도 서비스를 유지하기가 쉬워서 확장성이 좋다고 할 수 있겠습니다.
하지만, 새로운 기능을 추가하거나 업데이트를 하려면 모든 노드를 수정해야 하므로 관리가 어려운 편이고,
네트워크 전송 시간 차이 때문에 노드들 간의 정보가 일치하지 않을 수 있고, 또한 전체 네크워크 속도가 느려지는 현상이 발생할 수 있는 단점도 있습니다.
맨 앞에서, 블록체인은 피투피네트워크를 사용한다고 말씀드렸는데요.
그것은 블록체인이 분산된 장부로 구성되기 때문입니다.
그리고, 분산된 장부는 하나의 서버에 의존하지 않는 분산된 네트워크를 필요로 하고,
분산된 네트워크에는 피투피 네트워크 방식이 좀더 보다 적합하다고 하겠습니다.
분산된 장부에 대해서는 다음 동영상에서 설명하도록 하겠습니다.
고맙습니다.
출처 : http://bombook.com