이번엔 블록체인에 쓰이고 있는 핵심 기술 중 하나인 P2P에 대해 설명하고자 합니다.
P2P가 무엇일까요?
일반적으로 회사에서 제공되는 서비스는 중앙의 서버를 구성하고 운영하는 Client Service (C/S) 구조이며
Client가 서버에 연결되어 있는 모습을 띄고 있습니다.
C/S는 시스템의 설계 및 유지가 쉽고 기능 추가와 버그 수정 등의 업데이트가 쉬운 장점이 있지만
서버 장애 등이 발생할 경우 서비스 전체가 중단될 수도 있습니다.
P2P는 중앙 관리가 없이 사람과 사람 간의 직접적인 연결이 가능한 기술입니다.
대표적인 예로 토렌트라는 파일 공유 시스템이 이 P2P 방식을 이용하고 있습니다.
P2P는 각 노드들이 트래픽과 자원을 할당해 부하를 분산시켜 높은 확장성을 갖고 있는 장점이 있지만
네트워크 전송 시간 때문에 노드 간 정보 불일치로 인한 성능 저하가 발생하기 쉽습니다.
그렇다면 P2P 네트워크에 따른 블록체인은 어떻게 동작하게 될까요?
블록체인을 구성하는 P2P 네트워크에서 노드 A가 존재한다고 가정하고 설명하겠습니다.
1. 노드 A가 트랜잭션을 보내면 노드 A로부터 P2P 네트워크로 전달된 트랜잭션이 네트워크에 참여하고
있는 모든 노드로 전파를 시작하게 됩니다.
2. 이 때 노드 A로부터 트랜잭션을 받은 모든 노드가 조건에 맞는 해시 값을 발견하면 기존에 블록체인에
새로운 블록을 추가하게 됩니다.
3. 새로운 블록을 추가한 발행자를 노드 B라고 하면 노드 B는 해당 내용을 P2P 네트워크에 보냅니다.
4. 블록을 받은 각 노드들이 블록이 올바른 것인지 검증하고 문제가 없다면 해당 블록을 받아들이고
자신이 가지고 있는 블록체인을 업데이트 하게 됩니다.
많은 장점이 있는 블록체인 기술은 트랜잭션을 추가하려면 상당한 수준의 연산 능력이 필요하며
확장성과 광범위한 채택이 어렵다는 한계점도 존재합니다.
읽어주셔서 감사합니다.
최근댓글