티스토리 뷰
이전 글에서는 해시함수에 대하여 알아보았다. 이번 글은 해시함수를 통한 “작업증명(Proof of Work)”이 어떻게 이루어지는지 알아보자.
작업 증명이란? 새로운 블록(신규 기록)을 생성함에 있어서 일정한 노력이 들어갔음을 보장하는 것
블록체인은 여러 네트워크(Node)가 연결되어 블록을 형성하고 전달하면서 블록을 연결하는 과정인데, 어느 한 노드(Node)에서 새로운 블록이 무분별하게 만들어지고 배포된다면 다른 노드(Node)에서는 이에 대한 확인을 하기가 쉽지 않다. 따라서 블록체인은 새로운 거래기록을 블록으로 만들면서 이에 대한 작업 증명 과정을 거친 이후 블록이 생성되어 다른 노트로 전파되도록 하는 것이다.
작업 증명을 알아보기 전에 먼저 하나의 블록은 어떻게 구성되어 있는지 알아보자. 각각의 블록은 크게 “블록내용”과 “난스(Nounce)”로 나누어진다. “블록내용”에는 거래기록이 들어있고 난스(Nonce)는 컴퓨터가 찾아내야 하는 값으로 알맞은 값을 찾아내기 전까지 계속 증가하는 값이다. 더 세부적으로는 “블록내용”은 “블록헤더” 부분이 분리되어 있다. 블록헤더에는 버전, 이전 블록의 해시값, 머클루트(Merkleroot), 타임스탬프(Timestamp)등으로 구성되어 있다. 머클루트(Merkle root)는 블록의 본문에 어떤 거래가 들어있는지 확인하기 쉽게 작성한 구조의 해시 값이라고 보면 된다. 요약해 보면 블록헤더의 구성은 주요하게는 이전 블록의 해시 값, 현재 블록의 거래 내역의 해시 값, 난스로 이루어졌다고 생각하면 될 것이다.
작업증명의 과정
이렇게 구성된 블록 헤더는 SHA256로 해시가 된다. 여기서 나온 해시 값은 비교 값과 비교를 하는 과정을 거친다. 이 비교 값보다 작은 해시 값이 나오면 블록체인이 블록을 생성하는 “작업증명”을 성공한 것이다. 해시 값이 비교 값보다 큰 값이 나오면 다시 돌아가서 난스를 증가시키고 블록헤더의 내용을 해시하는 과정을 거친다. 즉 비교 값 보다 해시 값이 작은 값이 나올 때까지 해시 값을 찾아내는 과정을 반복적으로 수행하는 것이다. 이때 비교 값에 해당하는 값은 지속적으로 바뀔 수 있다. 컴퓨팅 파워가 증가하여 평균 작업 증명 시간이 단축된다면 채굴 난이도를 조정하여 비교 값을 더 낮추고 평균 작업 증명 시간이 길어진다면 채굴 난이도를 조정하여 비교 값을 더 높여서 알맞은 평균 시간 내에 작업 증명이 가능하도록 조정한다. 비트코인의 경우에는 이를 10분 정도에 새로운 블록이 생성되도록 설정되어 있다.
작업증명 이후의 과정은 다음 글에서 더욱 자세히 설명하겠지만, 채굴 보상에 대한 간단한 설명을 해보겠다. 수많은 네트워크 노드에서 해시 값을 찾아내는 계산 수행을 한다. 이때 작업 증명을 성공한 가장 첫 네트워크에 채굴 보상금이 돌아 간다고 생각하면 된다. 네트워크 노드들이 나눠서 보상금을 가져가는 것이 아니라 한 노드에만 보상금이 돌아가는 구조이다. 비트코인에서는 비트코인과 거래 수수료를 채굴 보상금으로 주고 있다.
이러한 과정은 블록체인 노드의 컴퓨팅 파워를 이용하여 블록 생성이 유의미한 증명을 거치는 과정이라고 할 수 있다. 거래 기록을 블록으로 생성하는 동안 시간, 비용, 컴퓨팅 파워를 사용했으므로 블록에 들어 있는 내용은 보장할 수 있다는 것이다. 작업 증명을 해시 함수를 통해 할 수 있다는 것은 블록체인에서 아주 큰 의미가 있다. 정부나 은행 등의 제 3자에 의한 검증 없이 자체적으로 거래 기록이 검증되는 것이기 때문이다. 작업 증명 과정이 블록체인 네트워크를 통해 널리 퍼져 있는 수많은 노드들에 의해서 이루어지기 때문에 어떤 의미에서는 더욱더 신뢰성이 있는 보증이라고 할 수도 있을 것이다. 이번 글에서는 작업 증명의 원리와 과정에 대한 설명을 하였다. 다음 글에서는 이렇게 작업 증명을 거쳐서 생성된 블록이 어떻게 블록 간에 이어지고 블록체인이 형성되는지에 대하여 알아보자.
2018/01/26 - [과학 트렌트] - 블록체인 기술 알아보기 (블록 연결 과정)
'과학 트렌트' 카테고리의 다른 글
블록체인 기술 알아보기 (거래) (0) | 2018.01.28 |
---|---|
블록체인 기술 알아보기 (블록 연결 과정) (0) | 2018.01.26 |
블록체인 기술 알아보기 (해시함수) (0) | 2018.01.17 |
블록체인? 비트코인? 무엇인가 (0) | 2018.01.13 |
인공지능 트렌트 (0) | 2018.01.10 |