본문 바로가기
컴퓨터공학/네트워크

블록체인-브로드캐스팅

by 딩코딩코 2019. 10. 18.

브로드캐스팅

탈 중앙화 시스템에서 거래는 '브로드 캐스팅'을 통해 이루어진다.

중앙화 시스템(우리가 사용하는 은행을 예로들면)에서는 나의 거래 데이터를 중앙 서버에 전송한다.
이에 반해 탈 중앙화 시스템에서는 나의 거래 데이터를 나와 연결된 모든 노드(피어)에게 전송한다.

이렇게 탈 중앙화 시스템에서는 시스템에 참여하는 모든 노드가 서로 데이터를 전송한다.
이론상 모든 노드가 순서는 다르지만 모두 같은 데이터를 가지고 있어야 한다.
하지만 현실에서는 네트워크의 상황이나 네트워크 오류, 피어의 관계 등에 따라(데이터 전달 속도가 다르므로) 특정 시점에 모든 노드가 가지고 있는 데이터는 서로 상의할 수 있다.

이때, 데이터를 가지고 있다고 해당 데이터가 무조건 '기록'되는 것은 아니다.

먼저, '기록'이라는 것은 블록에 데이터를 저장하는 것을 말한다.

그렇다면 누가 '기록'을 할까?
가장 좋은 방법은 '기록'하는 사람을 랜덤으로 결정하는 것이다.
그러나 어떻게 이를 구현할까?
랜덤으로 어떤 노드를 뽑아주는 프로그램을 만든다면, 그 프로그램을 가지고 있는 서버 혹은 노드가 있어야 하는데, 이렇게 되는 순간 탈 중앙화 시스템에서 벗어나게 된다. (특별한 작업을 맡아서 하는 서버(노드)가 생기므로, 이는 공격(해킹)의 대상이 된다.)

때문에 블록 체인에서 '기록'이라는 행위를 위해서는 다음 조건을 만족해야한다.

1. 모든 노드가 '기록'할 수 있어야 한다.
2. 매번 누가 '기록'을 하는지 사전에 예측할 수 없어야 한다.
3. 특정해주는 중앙 서버와 같은 것의 존재가 없어야 한다 


그렇게 해서 나온 것이 다음에 얘기할 '해시 퍼즐'과 '작업 증명'이라는 개념이다.