Blockchain 개요

Table of contents

  1. 블록체인이란 무엇인가
  2. 블록이란 무엇인가
  3. SHA256 이란 무엇인가
  4. 각각의 블록에는 뭐가 있을까
  5. Proof of Work
  6. 블록체인에서의 노드란
  7. 블록체인을 조작하기 위해서는
  8. 블록체인 전송 프로세스는

블록체인 기술이 발전하고 이를 이용한 여러 활용 서비스가 많아지고 있는 요즘입니다. 이에 블록체인은 과연 무엇이고 어떠한 요소를 가지고 작동하는지의 이해를 돕고자 해당 글을 작성합니다.

블록체인이란 무엇인가

블록체인은 정보를 포함하는 블록들의 체인이라고 정의할 수 있습니다. 시간에 따라 작성된 디지털 문서를 목적으로 하는 것으로서 이러한 블록체인 데이터는 되돌리거나 가공이 불가능하다고 하며, 중복 데이터가 존재하지 않습니다.

블록체인은 은행이나 정부와 같은 third-party 에 의한 요청없이 금전, 자산, 계약 등과 같은 데이터들을 안전하게 전송할 수 있습니다.

블록체인은 Software Protocol 의 일종이며, 인터넷 환경 없이는 불가능합니다. 그러므로 다른 기술 (데이터베이스, 소프트웨어 어플리케이션, 기타 연결 기기 등) 에도 영향을 끼치기 때문에 Meta technology 라고 일컫기도 합니다.

example

블록체인은 비트코인이 아니며, 비트코인을 기반으로하는 기술이라고 할 수 있습니다. 다시 말해, 비트코인은 디지털 토큰이며, 블록체인은 그 디지털 토큰을 추적하기 위한 원장이라고 할 수 있습니다.

블록이란 무엇인가

example

블록체인은 정보를 가지고 있는 여러 블록들에 의해 연결된 것이라고 할 수 있습니다. 각 블록에 저장되는 데이터는 블록체인의 타입에 따라 달라지기도 합니다.

예를 들어, 비트코인 블럭은 Sender, Receiver, Number of Bitcoins 로 구성된 정보들을 가지고 있습니다.

최초의 블럭을 일반적으로 Genesis block 이라고 일컫습니다. 이후 생성되는 각각의 블록들은 이전블록과 체인 형태로 연결되게 됩니다.

SHA256 이란 무엇인가

example

블록은 해쉬정보를 가지고 있습니다. 해당 블록의 데이터를 기반으로 한 해쉬값이 생성되며 이는 유일한 값을 가지고 있습니다.

각각의 블록에는 뭐가 있을까

각 블록은 Data, Hash', Hash of the previouse block 을 가지고 이습니다.

3개로 이루어진 블록체인이 있다고 할 때, 첫번째 블록은 최초 블록이므로 이전 해쉬값이 없으나, 두번째, 세번째 및 이후의 블록들은 이전 블록의 해쉬값을 가지고 있습니다. 블록체인을 보다 완결한 보증을 이루는 기술이라 할 수 있습니다.

example

만약 공격자가 두번째 블록을 가공한다고 할때 해당 블럭의 해쉬값은 변경될 것이며, 이는 세번째, 네번째 등 이후의 해쉬값도 변경됩니다. 그러나 이는 사실 불가능하다고 볼 수 있습니다.

Proof of Work

Hash 는 데이터를 조작을 불가능하게 만드는 최고의 기술이라고 할수 있습니다. 그러나 근래의 컴퓨터들은 초당 수천, 수만 건의 해쉬 계산 능력을 가지고 있어 변경 블록 해쉬 뿐 아니다 모든 블록들을의 해쉬를 계산할 수 있는 능력을 가지고 있지요.

example

이러한 이슈 해결을 위해 블록체인에서는 블록 생성의 속도를 는추는 Proof-of-Work 의 개념을 사용합니다. 비트코인의 경우, 새로운 블록을 추가하는데 10분의 Proof-of-Work 을 요구합니다. 즉, 공격자가 2번 블록의 데이터를 변경한다면 이후 10 분간의 Proof-of-Work 을 수행한 이후에야 3번 블록을 변경할 수 있을 것입니다. 따라서 이러한 HashProof-of-Work 의 기능은 블록체인을 안전으로부터 더욱 강화될 수 있도록 합니다.

블록체인에서의 노드란

example

블록체인의 또 다른 기능 중의 하나는 분산 네트워크 즉, (Distributed P2P Network) 을 구성하고 있다는 점입니다. 기존의 어떠한 중앙 개체에 의해 관리되는 것이 아니라, 분산 네트워크를 이용해서 어느 누구든지 블록체인 네트워크에 기여할 수 있습니다. 각각의 노드는 블록체인의 모든 데이터를 가질 수 있으며, 이러한 각각의 컴푸터를 Node 라 명칭합니다.

특정 노드가 새로운 블록을 생성한다면 이는 블록체인 네트워크에 참여한 모든 노드에게 전송되며, 각각의 노드는 해당 블록을 검증한 이후에 그의 블록체인이 추가를 합니다.

네트워크의 모든 노드는 Consensus 를 구성하고 있어 어떠한 블록이 유효한지 불효한지, 부정합한 블록에 대해서는 거절을 하기도 합니다.

블록체인을 조작하기 위해서는

블록제인 데이터를 변경하기 위해서는

  • 모든 블록에 대해 Proof-of-Work 를 수행
  • 분산네트워크의 50% 이상을 통제
  • 위 두가지를 수행해야 만 블록체인 데이터를 조작할 수 있습니다.

결론은 현실적으로 불가능하며, 이러한 점은 블록체인이 안전하다는 것을 반증한다고 볼 수 잇습니다.

블록체인 전송 프로세스는

example

  1. 특정 사용자가 거래를 요청합니다. 이 때의 거래 데이터는 암호화폐, 계약내용 또는 기록 등의 모든 정보를 가진 데이터라 볼 수 있습니다.
  2. 요청된 거래는 인접 노드에 의해 분산 네트워크로 broadcast 됩니다.
  3. 네트워크 상의 모든 노드는 블록체인의 합의된 알고리즘에 의해 거래 내역을 검증합니다.
  4. 거래가 완료되면, 생성된 블록은 기존의 블록체인에 추가될 것이고, 그러한 방식에 의해 영구적이고, 불가변적인 데이터가 될 수 있습니다.

참고자료