[Blockchan A-Z] 분산 P2P 네트워크

bolee·2022년 7월 10일
0

Blockchan A-Z

목록 보기
4/33

MODULE 1 - BLOCKCHAIN INTUITION
04. DISTRIBUTED P2P NETWORK

여기에서는 분산 P2P 네트워크에 관해 살펴볼 것이다.

블록체인 시스템의 불변 원장에서 아래와 같은 의문점이 남아있다.

  • 실제로 임의로 블록을 변경할 수 없는 이유?
  • 누군가의 입력 오류같은 시스템 오류의 경우에는 어떤 일이 일어날까?
  • 시스템 상의 모든 블록 해시를 바꿀 경우?
  • 원본 데이터 복구 방법?

이러한 의문점들을 분산 P2P 네트워크가 해결해 준다.

분산 P2P 네트워크 (Distributed P2P Network)

<그림 1>

분산 P2P 시스템에는 많은 컴퓨터가 상호 연결되어 있고, 많이 연결될 수록 더 좋아진다.
하지만 지속적으로 모든 컴퓨터를 연결할 수는 없으며, 멀리 있는 컴퓨터는 서로 덜 연결되는 식이다.

분산 P2P 네트워크와 블록체인

<그림 2>

블록체인은 실제로 모든 컴퓨터에 복사된다.

블록체인 시스템을 사용한 부동산의 예를 생각해보자.
정부 컴퓨터의 한 시스템에 보관하는 대신 수천 대의 컴퓨터에 복사된다.
물론, 그 안에는 이름이 없으며, 모든 것은 암호 키와 같은 것으로 연결되어 있고 그래서 식별자를 통하지 않으면 정확한 이름을 얻을 수 없다.
하지만 모든 컴퓨터에 있는 모든 트랜잭션에 관한 정보는 누구나 컴퓨터로 변경하고 싶으면 변경할 수 있고 변경하기 싫으면 변경하지 않을 수 있다.

<그림 3>
<그림 4>
<그림 5>

이것이 바로 블록체인이 분산되는 방식이다.
그래서 한 번 블록이 추가되면 네트워크를 통해 정보가 전달되고 모든 컴퓨터가 이 블록을 가질 때까지 네트워크를 통해 계속 추가된다.
큰 네트워크의 경우 시간이 걸릴 수 있다.

<그림 6>

그리고 시간이 지나면 트랜잭션도 많아지고 비슷한 방식으로 블록체인에 추가된다.

<그림 7>

이때 누군가 엔트리 해킹을 시도했고 엔트리에 오류가 발생했다고 하자
누군가 침입해 고의적으로 엔트리를 공격하고 집을 뺏으려 한다.

하지만 동시에 블록들 사이의 암호화 링크가 문제가 될 것을 알고 있다.
그 블록 뒤의 모든 블록이 갑자기 유효하지 않게 되고 모든 블록을 통과해야 하기 때문이다.

<그림 8>

모든 블록에서 해당 블록의 해시를 변경해서 각 블록의 해시를 일일이 계산해 모두 다시 기록하고 새로운 정보를 입력하는 게 나을 수도 있고 그렇게 성공적으로 블록체인을 변경했다고 가정하자

분산 P2P 네트워크가 없다면 거기서 끝났을 수도 있다.
하지만 분산 P2P 네트워크에서는 모두 끊임없이 동기화된다. 즉, 네트워크에서 계속 확인한다는 것이다.

<그림 9>

블록체인이 끊임없이 피어가 일치하는지 확인한다. 그래서 즉각적으로 피어가 블록체인끼리 일치하지 않는 문제를 확인한다.
문제가 확인될 경우 해당 컴퓨터에 있는 블록체인에 신호를 보낸다.
그러면 해당 블록체인은 다른 블록체인과 일치하지 않고 해킹 당한 블록체인은 주변 블록체인의 대다수가 해당 블록체인과는 다른 같은 블록체인을 가지기로 합의했다는 것을 알게 될 것이다.
즉, 해킹 당했다는 것을 이해하게 될 거라는 의미이다.

<그림 10>

그리고 자동적으로 여기 4가지 값 중에서 1가지가 다르다는 것을 확인하고 기존 값으로 복사할 것이다.
그래서 아주 빠르게 모든 값이 복사돼서 블록체인은 기존 값으로 복구되는 것이다.

이 경우 해커는 한 컴퓨터나 블록체인을 해킹할 수 없고 값도 변경할 수 없다.
따라서 블록체인을 해킹하려면 모든 블록체인을 동시에 공격해야 가능하다.
하지만 공격하려면 블록체인 복구되기 전 블록체인의 구조에 따라 몇 초에서 최대 몇 분 안에 빠르게 해킹을 시도 해야 한다.

또한 해킹에 성공하려면 전체 피어를 공격하지 않고 체인을 성공적으로 교체하기 위해 50% 이상의 컴퓨터를 동시에 공격해야 한다. 이것이 블록체인에 해킹하는 유일한 방법이다.
따라서 컴퓨터가 많을 수록 블록체인에 피어가 많아져서 더 어려워진다.
만약 10,000대의 컴퓨터가 있다면 5,000대의 컴퓨터를 동시에 해킹해야 하는데 몇 분 또는 1분 안에 해야 하며 블록체인의 구조에 따라서는 최대 몇 분 안에 해야 한다. 즉, 사실상 불가능하다.

또한 추가적인 보안은 블록체인 내에서 데이터가 식별자로 표시된다는 것이다.
그런 방식으로 표시된다면 다른 컴퓨터에 데이터가 있어도 상관 없어진다.

그렇게 신뢰가 없는 환경에 신뢰를 쌓게 된다.
일반적인 경우 이 체인에서 그 누구도 서로 알지 못한다면 서로 신뢰하지 않을 것이다.
하지만 다수가 합의한 상황이기 때문에 서로를 신뢰하게 된다.
분산 P2P 네트워크은 신뢰할 수 없는 프레임 워크에 신뢰를 가져와서 서로 거래할 수 있도록 한다.
이것이 바로 블록체인에서의 분산 P2P 네트워크의 장점이다.

탈중앙화에 대한 읽을거리
Vitalik Buterin, (2017), The Meaning of Decentralization

0개의 댓글