[정보] 쉽게 이해하는 블록체인 기술(2)

* 이전 내용

쉽게 이해하는 블록체인 기술(1): https://steemit.com/kr/@loum/1


이전 강의에서는 암호화폐가 암호 + P2P 네트워크로 구성된다는 것을 배웠습니다.
그리고, P2P 네트워크의 구성은 1) 권한이 같은 다수의 피어(노드)들이 2) 그 중에서 일부의 피어들과 연결된다는 것을 알았습니다.

실제로, 비트코인은 최대 8개(?)의 피어와 이더리움의 패리티는 25개의 피어와 연결이 됩니다.

이와 같이, p2p 네트워크에서 다수의 피어들이 하나의 블록체인(DB)를 유지하는 것이 블록체인 기술이라고 했습니다.

이 다수의 피어, 더 구체적으로는 체굴자들이 하나의 블록체인을 P2P 네트워크에서 유지하기 하기 위해서, 채굴자들이 서로 합의를 해야 한다는 것도 알았습니다.

사실, 암호화폐에서 합의 알고리즘이 가장 어렵습니다.


두번재 강의는 블록체인의 구성과 채굴에 대해서 간단히 알아보겠습니다.

이번 강의는 비트코인의 블록체인에 대한 것입니다.

아래의 그림과 같이, 블록체인은 블록 + 체인으로 이루어져 있습니다.

아래의 블록체인에 대한 그림을 주의 깊게 보시기 바랍니다.

블록체인의 특징은 첫번째로 추가전용(append only)의 DB이고 또는 로그 DB입니다.

즉, 내용을 추가만 할 수 있고, 삭제 기능은 없습니다.

두번째로 블록을 주기적으로 생성하고 이를 체인으로 연결하는 것이 특징입니다.

이 방법은 좀 구식방법이죠! 왜냐하면, 기존 서버는 거래(이벤트)를 즉시 처리를 하기 때문입니다.

그러면 왜 이런 구식 방법을 사용할까요?

이는 p2p 네트워크 때문이고, 다수의 피어(채굴자)들이 블록을 누가 만들 것인가를 합의를 해야 하기 때문입니다.

이 때문에, 즉시 처리가 불가능하고, (평균적인) 일정한 시간동안 거래(데이터)를 모아서 거래를 처리하는 방법을 사용합니다.

구체적으로, 블록은N'거래의 모음'으로 1) 소유권 이전 기록, 즉 거래 기록을 포함하고, 또한 2) 거래 위조 방지 등을 위한 헤더부를 더 포함합니다.

1.png

아래의 그림은 블록체인을 보여주고 있습니다.

블록은 세부분으로 구성됩니다.

즉 1) 거래부 2) 헤더부와 3) 블록해시(블록 ID)로 이루어집니다.

먼저 거래부는 다수의 거래 기록을 포함합니다.

두번째 헤더부는 보안용 추가 데이터를 포함합니다.

마지막으로 블록 해시는 해더부에 있는 모든 데이터를 넣어서 만들어집니다.

이 때문에, 헤더부에 어떤 변화가 생기면 당연히 블록 해시가 변하게 됩니다.

비트코인의 헤더부는 6개로 구성이 되어있습니다.

당연히 이 6개 중 하나라도 변하면, 블록해시가 변합니다.

하지만, 이중에서 4개는 반드시 알아야 하며, 암기해 두시면 상당히 도움이 됩니다.

먼저 prev_hash는 체인을 만듭니다.

아래 그림과 같이 block1은 block0의 블록해시, 즉 A를 포함하며, 이것을 이전해시인 prev_hash라고 합니다.

이것에 의해, 아래 그림과 같이 블록이 체인으로 연결되는 것입니다.

즉, 현재 블록에 이전 블록의 블록해시가 반드시 포함되기 때문에 블록이 체인으로 연결되어 블록체인이 되는 것입니다.

mrkl_root는 머클 루트(merkle root)로 이진 머클 트리를 가리키는 것이고, 여기서 알아야 할 것은 거래부에 포함된 거래가 하나라도 바뀌면 머클 루트가 변한다는 것입니다.

이때문에 이것은 거래의 위조 방지 기능을 가집니다.

bits는 이것을 통해서 타겟과 난이도를 구합니다.

타겟을 구하는 수식에 비츠(bits)를 넣으면, 바로 타겟을 구할 수 있습니다.

bits과 nonce은 합의 알고리즘인 작업증명(PoW)을 위한 것입니다.

PoW 합의 알고리즘은 아래와 같습니다.

먼저, 비츠로 타겟을 구하고, 난스(nonce)를 0부터 +1씩 증가시키면서 블록해시를 구하고, 이것이 타켓과 같거나 작은지를 검사를 합니다. 만일 같거나 작으면 원하는 블록해시를 찾은 것이고 아니면, 난스를 +1해서 다시 원하는 블록해시를 찾는 과정을 반복합니다.

만일 블록해시를 찾으면, 채굴자는 다음 블록을 다시 찾게 됩니다.

참고로, 비트코인의 경우 현재 약 2^60 정도를 계산해야 겨우 블록해시를 찾을 수 있다고 합니다.

2.png

이번에는 채굴에 대해서 알아보겠습니다.

채굴은 블록체인 생성과정을 말합니다.

이것은 금속의 채굴과 비슷하게 PoW에서 블록을 생성하는 것이 마치 채굴과 비슷하기 때문에 붙여진 이름입니다.

즉, 엄청나게 계산을 해야 어쩌다가 원하는 블록해시를 발견하고 그 보상이 코인이 주어지기 때문이죠..

앞에서 언급했듯이 암호화폐는 블록을 모아서 주기적으로 생성을 합니다.

비트코인의 블록은 평균 10분마다 생성되며, 약 2500개의 거래를 포함합니다.

3.png

아래는 P2P 네트워크에서 블록생성 과정을 보여줍니다.

그림과 같이 지갑A에서 지갑B로 코인을 보내는 경우를 생각해보겠습니다.

이것을 아래의 P2P네트워크에서 설명을 하면 아래와 같습니다.

빨간색 노드A가 거래를 생성하여 그와 연결된 3개의 이웃 노드에게 이를 전파하고, 이들이 다시 자신과 연결된 이웃 노드에게 전파하는 것을 반복합니다.

그러면 약 1~2초이내에 이 거래가 노드B에 도착을 합니다. 이때는 이 거래가 블록체인에 포함이 안된 상태이며, 이를 unconfirmed transaction(미확인 거래)이라고 합니다.

그 사이 노드(피어)들이 블록해시를 찾으려고 계속 해시 계산을 하고, 이 계산은 블록의 헤더부를 난스를 +1해서 계속 계산합니다. 이 때문에, 비트코인의 계산 능력을 초당 해시 계산능력, 즉 해시레이트(hash rate)로 표시합니다.

그러다가 우연히 보라색 채굴자가 target 과 같거나 작은 블록해시를 찾으면 이를 p2p 네트워크에 전파를 합니다.

블록의 전파는 거래의 전파와 마찬가지로 채굴자와 연결된 이웃 노드에게 전파하고, 이 노드는 다시 자신의 이웃 노드에게 전파를 하여 최종적으로는 이 블록이 거의 전체 노드에 전파됩니다.

이 경우, 지갑A가 거래를 전파했을 때는 아래의 블록체인의 그림과 같이, 블록0과 블록1이로 이루어진 블록체인이 존재했었는데, 이제 보라색의 채굴자가 찾은 블록2가 새로 블록체인에 연결됩니다.

물론, 거래와 블록은 이웃노드에게 전파하기 전에 이를 검증을 하여 이를 통과해야 이를 이웃노드에게 전파를 합니다. 또한 검증을 통과하지 못한 거래 및 블록을 전파한 노드는 불량 노드로 기록되어 여러가지 조치가 취해집니다.

4.png


* 이후의 내용

  1. 합의 알고리즘
  2. 채굴자원문제
  3. EOS 소개
0
0
이 글을 페이스북으로 퍼가기 이 글을 트위터로 퍼가기 이 글을 카카오스토리로 퍼가기 이 글을 밴드로 퍼가기

블록체인 기술

번호 제목 글쓴이 날짜 조회수
40 정보 문과생, 블록체인업체에 취직하다 - (4) "그집 아들, 다단계 회사 다닌다면서요?" icon Work4Block 06-28 2,751
39 정보 문과생, 블록체인업체에 적응하기 - (2) 기자간담회 냐 밋업이냐? icon Work4Block 06-28 2,193
38 정보 문과생, 블록체인업체에 취직하다! - (1) icon Work4Block 06-28 2,356
37 정보 [개념 정리] 온 체인(Onchain), 오프 체인(Offchain)이 무엇인가? icon Work4Block 06-21 3,620
36 정보 비트코인의 원리 PART 5-1: 블록체인 원리 icon Work4Block 06-07 2,892
35 정보 게임계 암호화폐 유나의 옷장과 제도권심사 소식 icon Work4Block 06-07 2,733
34 정보 스마트 컨트랙트의 활용을 알아보자 icon Work4Block 06-07 3,232
33 정보 암호화폐 공공의 적, 51% 공격에 대해 알아볼까? icon Work4Block 05-30 3,402
32 정보 EOS 기반 방치형 RPG게임 제작 #1 icon Work4Block 05-27 3,167
31 정보 나만 몰랐던 블록체인 상식) 스팀잇 데이터는 어디에 저장될까? icon Work4Block 05-26 2,522
30 정보 KEEP!T History: 오스트리아 학파, 탈 중앙화(decentralization)를 선언하다. icon Work4Block 05-24 2,904
29 정보 KEEP!T History: EOS의 경제학적 기반을 세운 학파. icon Work4Block 05-18 2,164
28 정보 EOS(2): 채굴자원 확장문제 icon Work4Block 05-17 2,275
27 정보 EOS(1): 스팸 공격 방어방법 icon Work4Block 05-17 2,524
26 정보 쉽게 이해하는 블록체인 기술(3): 합의 알고리즘 icon Work4Block 05-17 2,690
25 정보 쉽게 이해하는 블록체인 기술(2) icon Work4Block 05-17 2,245
24 정보 쉽게 이해하는 블록체인 기술(1) icon Work4Block 05-17 3,207
23 정보 KEEP!T History: 장기적으로 볼 때 우리는 모두 죽는다 icon Work4Block 05-17 2,951
22 정보 토큰 이코노미 설계의 빅 픽쳐와 행위자(Actor)에 대해 icon Work4Block 05-16 2,815
21 정보 PoW를 다시 생각한다 icon Work4Block 05-09 2,703