초보자를 위한 메인넷과 노드 설명

0Xkong
DOKDO DAO
8 min readApr 14, 2022

--

0. 들어가며

블록체인은 거래내역에 해당하는 블록을 체인으로 이어 그 복사본을 참여자들이 각자 소유하는 방식으로 이루어집니다. 거래내역의 복사본을 모든 참여자가 갖고 있기 때문에 해커가 거래내역을 변조하는 것을 불가능에 가깝게 만드는 것이 핵심이 됩니다. 그리고, 이러한 블록체인의 특성은 흔히 ‘코인’이라 말하는 암호화폐가 필요로 하는 특성이기 때문에 코인을 만들기 위해서는 블록체인이 핵심이 됩니다.

하지만, 우리는 이런저런 코인을 갖고 있으면서도 블록이나 체인을 관리하는 프로그램을 갖고 있지도, 사용하고 있지도 않습니다. 코인=블록체인이라면, 어째서 코인을 갖고 있는 우리는 블록체인의 구성원이 되어 체인을 관리하거나 소유하고 있지 않을까요? 정답은, “이더리움이나 비트코인 같은 코인들은 메인넷을 가지고 있고, 메인넷을 구성하는 노드들이 체인을 관리하고 있기 때문”이지만, 도대체 메인넷은 뭐고 노드는 무엇일까요?

블록체인의 개념은 일종의 교과서에 나올법한 내용입니다. 중요한 개념이지만 현실에 그대로 적용시켜 보기에는 현실과 맞지 않습니다. 메인넷과 노드는 실전에 해당하는 내용입니다. 블록체인의 개념은 메인넷과 노드라는 형태로 현실에서 사용되고 있고, 그렇기 때문에 우리가 알고 있는 블록체인 개념을 현실에 적용시켜 보기 위해서는 메인넷과 노드에 대해 이해할 필요가 있습니다. 이 글에서는 교과서적인 내용인 블록체인의 개념을 메인넷과 노드라는 단어를 통해 현실에 적용시키는 것을 최대한 쉽게 설명하고자 합니다.

1. 메인넷이란?

메인넷메인+넷이 합쳐진 말입니다. 메인(Main)은 말 그대로 중심이 되고, 기본이 된다는 뜻입니다. 은 인터넷, 넷플릭스, 넷마블 등에서 친숙히 봐왔던 단어로, 네트워크(Network)의 줄임말입니다. 즉, 메인넷이란 기본이 되는 네트워크란 뜻입니다. 기본이 된다는 말은 매우 쉬운 말이지만, 네트워크라는 단어는 그렇지 않기에 메인넷이 무엇인지 이해하려면 네트워크가 무엇인지를 이해하는 것이 중요합니다.

네트워크

네트워크란, 여러 대의 컴퓨터가 서로 정보를 주고 받을 수 있게 연결해놓은 것입니다. 블록체인에서의 네트워크란, 블록체인에 참여하는 컴퓨터들이 서로 정보를 주고 받을 수 있게 연결되어있는 것을 의미합니다. 블록체인 네트워크에 속한 컴퓨터는 새로운 블록을 만들거나, 다른 사람의 체인과 자신의 체인을 비교하여 체인에 문제가 없는지 검토하는 등, 블록체인의 기능을 사용합니다.​

블록체인 네트워크에 속해있는 컴퓨터들이 블록체인의 기능을 수행한다

이처럼 블록을 만들고 체인을 관리하는 블록체인의 기능은 블록체인 네트워크에 속한 컴퓨터들에 의해 이루어집니다. 즉, 블록체인이란 개념을 실제로 사용하기 위해 실제 컴퓨터들에 프로그램을 설치하고, 인터넷으로 서로 연결해놓은 것이 블록체인에서의 네트워크입니다.

메인넷

블록체인을 위한 네트워크를 구성하는 것은 결국 시간과 돈의 문제입니다. 누구나 개발자를 몇 명 데려다 놓고 네트워크를 형성할 컴퓨터들만 준비하면, 생각보다 손쉽게 새로운 블록체인 네트워크를 만들 수도 있습니다. 하지만 하나의 코인이 사용하는 블록체인 네트워크의 수가 너무 많아진다면, 블록체인을 이용해 운영되는 코인에 있어서는 오히려 독이 됩니다. 이를 위해 간단한 예시를 들어보겠습니다.​

네트워크가 여러 개 있을 때

네트워크가 A~I까지, 총 9개가 있다고 한다면 각 네트워크마다 체인을 갖고 있을 것입니다. 만약 A에서 45를 찾으라고 한다면, 누구나 금방 찾을 수 있을 것입니다. 만약 A~C 중에 있는 57을 찾으라고 한다면, 조금 더 걸리긴 하지만 아직은 찾기 쉬울 것입니다. 그럼 A~I 중에 있는 51을 찾으라고 하면 어떨까요?

​정답은, “그 어디에도 51은 없다”입니다. 살펴봐야할 네트워크가 많기 때문에 51이 없다는 것을 눈치채는 것은 A에서 45를 찾을 때보다 훨씬 더 오래 걸릴 수 밖에 없었을 것입니다. 즉, 하나의 코인을 위해 여러 개의 네트워크를 사용한다면 필요한 정보를 찾는 일이 쓸데없이 복잡해집니다. 일이 복잡해진다면, 그만큼 코인을 거래하는 시간은 길어지게 됩니다.

​그렇기 때문에 하나의 코인을 운영하기 위해 기본이 되는 네트워크 하나만을 만들어 두는 것은 코인의 거래 속도를 높이는데 큰 도움이 됩니다. 코인을 운영하기 위해 만들어 둔 기본이 되는 네트워크를 메인넷이라고 부릅니다. 우리가 구매할 수 있는 비트코인이나 이더리움 같은 코인들은 모두 메인넷을 가지고 있으며, 우리는 메인넷을 통해서 해당 코인을 거래하게 됩니다.

한 코인, 여러 네트워크

같은 종류의 코인이라도 여러 네트워크를 갖고 있는 경우가 있습니다. 예를 들어 이더리움의 경우, 이더리움을 만든 이더리움 제단에서 메인넷을 만들었을 것입니다. 거기에 더해, 이더리움을 이용한 서비스를 만드는 사람들이 실제 사용되는 이더리움으로 테스트를 하기에는 부담이 커지므로, 테스트만을 위해 만든 테스트넷이 존재합니다.​

문제는, 바이낸스와 같은 코인 거래소와 같이 해당 코인을 충분히 많이 보유한 기관에서, 남이 만든 메인넷이 아닌 자체적으로 사용하지 않기 위해 직접 만든 네트워크가 존재합니다. 이렇게 직접 사용하기 위해 만든 네트워크는 만든 사람의 의도에 맞게 사용하기 편하지만, 코인에 여러 네트워크가 존재하게 만듭니다. 이로 인해 또 다른 문제가 생기지만, 이는 다른 글에서 다루고 있습니다.

‘지갑주소의 다양성’

▲네트워크 별 지갑주소가 왜 다양한지 정리한 글

2. 노드란?

노드라는 말은 쉽게 말하면 네트워크에 속해있는 컴퓨터를 부르는 별명입니다. 네트워크라는 개념이 만들어질 때, 네트워크에 속해있는 컴퓨터를 노드라고 부르기로 사람들이 정했고, 그렇기에 네트워크에 속한 컴퓨터는 노드라고 부릅니다.

‘하지만, 우리는 이런저런 코인을 갖고 있으면서도 블록이나 체인을 관리하는 프로그램을 갖고 있지도, 사용하지도 있지도 않습니다. 코인=블록체인이라면, 어째서 코인을 갖고 있는 우리는 블록체인의 구성원이 되어 체인을 관리하거나 소유하고 있지 않을까요?’

이 글의 도입부에 썼던 질문의 또 다른 정답은, 우리의 컴퓨터나 스마트폰은 노드가 아니기 때문입니다. 그 이유는 코인을 갖고 있는 모든 컴퓨터나 스마트폰이 노드의 역할을 한다면 여러 문제가 생기기 때문입니다.

첫째, 노드는 충분히 성능이 좋아야한다.

블록체인 네트워크를 구성하는 노드는 새로운 블록과 기존의 체인을 검토하고, 관리하고, 갱신하고, 처리해야합니다. 쉽게 말해, 노드는 해야할 일이 많습니다. 만약 일부 노드가 성능이 나빠서 이러한 일들을 빠르게 처리하지 못한다면, 각각의 노드의 역할이 중요한 블록체인은 제 성능을 내지 못할 것입니다. 코인을 갖고 있는 컴퓨터나 스마트폰의 성능은 본인말고는 그 누구도 알 수 없습니다. 빠를 수도 느릴 수도 있는 각자의 장치를 노드로 활용하는 것은 블록체인에게 있어서는 큰 리스크가 됩니다.

둘째, 노드는 항상 네트워크에 연결되어 있어야한다.

예를 들어 스마트폰의 경우 와이파이나 데이터를 연결하지 않은 상태로 두거나, 전원이 꺼져있을 수도 있습니다. 그럴 경우 다른 노드들은 해당 스마트폰과의 연결이 끊기게 됩니다. 이 때, 만약 스마트폰에 체인의 검증에 있어 중요한 정보가 있었다면 다른 노드들이 체인을 검증하기 어려워질 것입니다. 이렇듯 개인이 갖고 있는 컴퓨터나 스마트폰은 항상 네트워크에 연결되어있을 것이라는 보장을 할 수가 없습니다.

셋째, 노드가 너무 많아도 곤란하다.

메인넷에 대해 설명할 때의 예시처럼, 네트워크가 많아질 수록 필요한 정보를 찾는 것이 복잡해집니다. 마찬가지로, 노드의 수가 너무 많을 경우 체인의 복사본의 수도 같이 많아지기 때문에 검증할 때 살펴봐야할 체인의 수가 너무 많아집니다. 심지어, 위의 두 가지 이유로 살펴봐야할 체인의 수도 많은데 살펴보는 일 자체가 원할하지 않을 수 있습니다.

3. Conclusion

이더리움 메인넷의 노드들

위에서 살펴봤듯, 각각의 사용자가 메인넷을 이루는 노드가 되기에는 현실적인 제약이 있습니다. 그렇기 때문에 메인넷을 구성하기에 충분한 성능을 가진 컴퓨터들이 노드가 되어 메인넷을 구성하고 있습니다. 우리가 코인을 거래를 위해 메인넷 이용할 때는, 이러한 노드들을 통해서 블록체인을 이용하게 됩니다.

​메인넷과 노드에 대해서 얘기를 할 때, 결국 다른 노드를 통해서 거래를 하는 것인데 보안같은 문제가 없는지에 관한 이야기가 나오고는 합니다. 이 글에서는 블록체인의 개념이 실제로는 어떻게 사용되는지 이해하는 것을 목표로 하고 있기 때문에, 이와 관련된 내용은 또 다른 글에서 다루고자 합니다.

--

--