반응형
Recent Posts
Recent Comments
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

Bbaktaeho

[Blockchain] #1 블록체인이란? (What is Blockchain?) 본문

개발 (Develop)/블록체인 (Blockchain)

[Blockchain] #1 블록체인이란? (What is Blockchain?)

Bbaktaeho 2021. 7. 3. 21:29
반응형

들어가며

이 글은 블록체인에 대해 아무것도 몰랐던 내가 블록체인 개발자로 취업하게 되어 뛰어난 일원들과 함께 하기 위해 1주일간 공부했던 내용을 바탕으로 작성되었습니다. 따라서 오타가 많거나 설명이 부족할 수 있습니다.
또한 저처럼 블록체인 단어 자체만 들어본 사람들이 기술적으로 이해할 수 있도록 조금이나마 도움을 주고 싶어서 작성하게 되었습니다.
블록체인을 이해하기 전에 기본적으로 알아야 할 사전 지식을 먼저 이해하고 다음 시리즈에서 본격적으로 들어가도록 하겠습니다.

블록체인 관련 글의 첫 시작입니다. 앞으로 시리즈로 제작될 예정입니다.
피드백은 언제나 환영입니다!

노드(Node)와 피어(Peer)

먼저 이 글에서 자주 등장하는 노드, 피어에 대해 설명하겠습니다.

노드란(node.js 아님), 전기통신망에서 노드는 재분배 지점 또는 통신 종단점이라고 위키백과에서 설명하고 있습니다.
좀 더 쉽게 말하면 노드는 어떠한 시스템에 참여한 컴퓨터라고 말할 수도 있습니다. 보통 시스템 내의 한 요소를 뜻합니다.

피어란, 해석하면 '동료'라는 뜻을 가지는데 네트워크 시스템에서는 동등한 권리와 역할을 가지는 노드라고 말할 수 있습니다.

물론 어떤 시스템에 사용되느냐에 따라 의미는 달라질 수 있지만 크게 볼 땐 노드와 피어는 동일하게 이해해도 무방합니다.

시스템 아키텍처

다음으로 시스템 아키텍처입니다.

시스템 아키텍처란, 구성요소를 구조화하고 구성요소 간 관계를 설정하는 방식을 의미한다.
- 위키백과

시스템 아키텍처는 두 가지 방식이 있습니다.
바로 중앙 통제 방식과 분산 방식입니다.

왼쪽)중앙 통제 방식  오른쪽)분산 방식

중앙 통제 방식(centralized)은 노드들이 모두 중앙의 한 요소와 연결되며 중앙의 요소가 시스템을 통제하거나 조정하는 것입니다.
반면 분산 방식(distributed)중앙에서 통제하거나 조정하는 요소 없이 서로 연결된 네트워크 구조를 형성합니다.

블록체인은 탈중앙화(decentralized)이므로 분산 방식 시스템입니다.

분산 시스템의 장단점

분산 시스템의 장단점을 이해하고 있다면 블록체인을 이해하는 데 좀 더 수월할 것입니다.

장단점을 대표적으로 3가지만 다뤄보겠습니다.


먼저 장점입니다.

장점 첫 번째 - 비용의 절감
여러 대의 컴퓨터로 구성되므로 초기 구성 비용은 개별 컴퓨터보다 더 많이 듭니다.
그러나 유지, 운영하는 비용에서 개별 컴퓨터가 교체될 때 전체 시스템에 큰 영향을 끼치지 않는다는 점까지 고려하면 비용이 적다고 할 수 있습니다.


장점 두 번째 - 안정적
개별 컴퓨터가 고장 나더라도 전체 네트워크는 문제없이 잘 작동합니다.
하나의 구성 요소가 오작동하면 나머지 구성 요소들이 그 일을 대신하기 때문입니다.
따라서 분산 시스템은 더 안정적이라 할 수 있습니다.


장점 세 번째 - 자연스러운 확장
분산 시스템은 개별 컴퓨터가 합쳐진 시스템으로 시스템에 컴퓨터를 추가하면 손쉽게 전체 계산 능력을 높일 수도 있습니다.
다시 말해, 계산 능력을 점진적으로 더 높일 수 있어서 요구량이 점점 더 증가하는 조직에 적용하기 좋다고 합니다.

다음은 분산 시스템의 단점입니다.

역시나 여러 단점이 있을 수 있지만 세 가지만 추려봤습니다.

단점 첫 번째 - 통신 오버헤드
분산 시스템 내 각 컴퓨터들은 서로 통신을 주고받습니다.
이로 인해 계산 능력의 일부가 통신 프로토콜 지원과 메시지의 송수신 및 처리에 소모되게 됩니다.


단점 두 번째 - 높은 네트워크 의존도
분산 시스템의 컴퓨터들은 네트워크를 통해 통신이 이루어집니다.
그러나 모든 네트워크에는 자체적인 결함과 장애 가능성이 내재되어 있기 마련이고, 이 점은 분산 시스템을 구성하는 컴퓨터 사이의 통신과 조정에 영향을 끼치게 됩니다.
그럼에도 네트워크가 없다면 분산 시스템도, 통신도, 노드 간 협력도 없기 때문에 네트워크에 대한 의존도가 높은 편입니다.


단점 세 번째 - 복잡한 프로그램
분산 시스템의 모든 소프트웨어는 단일 시스템에서는 필요 없는 조정, 통신, 네트워크 이용에 관련된 추가적인 문제를 해결해야 합니다.
그러다 보니 소프트웨어가 복잡해지게 됩니다.

P2P (Peer to Peer)

P2P 시스템은 여러 노드들로 구성된 분산 소프트웨어 시스템으로 한 노드의 자원을 다른 노드들이 직접 사용할 수 있다는 특징을 지닙니다.
P2P 시스템에 참여하면 사용자의 컴퓨터는 시스템의 노드로 전환되고 모든 노드에게는 동등한 권리와 역할이 주어집니다 (Peer 설명).
각각의 사용자별로 공헌할 수 있는 자원은 조금 다를 수 있지만, 시스템의 모든 노드는 동일한 기능과 책임을 가질 수 있습니다. 따라서 모든 사용자의 컴퓨터는 자원의 공급자인 동시에 소비자가 되는 것입니다.

 

P2P 네트워크 사용의 주요 장점은 중앙 액세스 지점이나 스토리지가 없다는 것입니다. 따라서 어느 누구도 단독적으로 통제할 권한을 가지고 있지 않습니다.

그러나 순수 분산 P2P 시스템이 꼭 다 좋은 것은 아닙니다.
악의적인 피어의 참여로 서로의 신뢰가 깨져서 시스템이 완전히 와해될 수도 있습니다. 신뢰성은 곧 시스템의 무결성으로 이어져 신뢰가 깨지면 P2P 시스템의 지속성이 무너지게 됩니다. (서로 믿어야 하는데 말이죠..)

물론 P2P라고 해서 모두 순수 분산 시스템은 아닐 수 있습니다. 중앙의 노드가 P2P 시스템에 참여한 노드들의 상호작용을 중재하고 검색, 유지 관리를 하는 중앙 노드가 있을 수도 있죠. 어느 정도 무결성을 보장하려고 다시 중앙 통제 시스템의 아키텍처를 가져가는 모습입니다.

그래서 P2P랑 블록체인은 어떤 관계인데?

방금 순수 분산 시스템이 아닌 P2P 시스템이 있다고 말씀드렸습니다.
중앙에서 중재하고 관리하는 노드가 P2P 시스템의 무결성을 보장해주는 역할을 담당하는 것인데요.
하지만 이것 역시 탈중앙화 및 탈중개화 네트워크가 아닌 것입니다.
그래서 순수 분산 P2P 시스템에서 블록체인을 활용하면 시스템의 무결성과 탈중앙화를 만족시킬 수 있다는 것입니다.

그래서 블록체인이 뭐야?

블록들이 연결된 Block + Chain 입니다.

일단 블록체인은 어디서 나온 녀석일까요?

ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

블록체인은 2008년 발표된 논문 <bitcoin: a peer-to-peer electronic cash system>에 나온 개념입니다.

이때 나카모토 사토시라는 가명(?)을 사용했는데 2017년쯤에 호주의 어떤 공학자가 자신이 나카모토 사토시라고 정체를 밝혔다고 하는데 저는 자세히 모르겠네요!

 

아무튼 앞서 배운 내용을 토대로 블록체인을 정의해볼 수 있습니다.

블록체인이란, 분산 시스템의 무결성을 확보하고 유지하기 위해 암호화 기법과 보안기술을 이용해 합의하는 알고리즘으로 구성된 소프트웨어 요소를 활용하는 원장의 순수 분산 P2P 시스템을 의미한다.

동일한 원장을 공유하는 네트워크 참여자 (원장(ledger) : 거래가 기록된 장부 또는 집합)

어떤 합의 알고리즘을 통해 중개자 없이도 신뢰성 있는 거래가 가능하게 되는 것이죠.
그리고 중앙에서 중재하지 않기 때문에 관련 데이터들도 노드들이 함께 공유하여 네트워크를 구성하게 됩니다.
따라서 블록체인은 신뢰성과 안정성도 알 수 없는 피어들로 구성된 P2P 시스템의 무결성을 확보하고 유지하는 기술이라고 할 수 있습니다.

여기서 관련 데이터들이 블록(block)으로 만들어지고 만들어진 블록들이 서로 연결(chain)을 이루게 되어 블록체인을 만들고 모두가 가지고 있는 똑같은 원장이 되는 겁니다.


블록체인에는 핵심 구성 요소가 있습니다.

  • 암호화 해시 함수 (Cryptographic hash function)
  • 분산 원장 (Distributed ledger)
  • 스마트 계약 (Smart contract)
  • 합의 알고리즘 (Consensus algorithm)
  • 원장 (ledger)
  • ...

다음으로 블록체인 대해 더욱 심층적으로 다뤄보고 핵심 구성 요소에 대해서도 설명하도록 하겠습니다.

읽어주셔서 감사합니다.

References

https://computernetworktopology.com/distributed-computing/

https://ko.wikipedia.org/wiki/%EC%8B%9C%EC%8A%A4%ED%85%9C_%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98
https://en.wikipedia.org/wiki/Distributed_networking
https://blockchaintrainingalliance.com/pages/glossary-of-blockchain-terms

반응형