블록체인이란 무엇인가?
블록체인은 누구나 열람 할 수 있는 장부에 거래내역을 저장하고, 이 거래내역을 모든 참여자의 컴퓨터에 복제하여 저장하는 분산 데이터 기술입니다. 다른 말로는 '공공 거래 장부'라고 합니다.
여기서 장부는 블록을 의미합니다. 블록에는 거래내역이 담겨 있는 거래 내역 묶음이고 하나의 데이터 자장 단위입니다.
블록은 거래내용이 담긴 바디와 암호코드가 담겨있는 헤더로 구분됩니다.
그리고 체인은 이전의 블록과 검증한 새로운 블록을 연결합니다.
블록생성 주기는 코인마다 다릅니다. 비트코인의 경우에는 10분에 1블록을 생성하고, 이오스 같은 경우에는 0.5초에 1블록을 생성합니다.
가장 먼저 생성된 블록을 제네시스 블록이라고 합니다. 제네시스 블록은 그 앞에 어떠한 블록도 생성되지 않은 최초의 블록입니다.
블록은 해당 암호화폐가 사용하는 해시함수로 이루어져 있으며 컴퓨터의 연산 능력을 이용해 일일이 맞는 함수를 대입하는 식으로 해시를 찾게 됩니다. 이 과정을 채굴 이라고 합니다. POW 방식에서 채굴 자들은 이러한 방식으로 블록을 생성합니다.
(해시는 하나의 문자열을, 이를 상징하는 더 짧은 길이의 값이나 키로 변환하는 것입니다.)
블록해더에 있는 논스(Nonce) 는 블록의 내용과 함께 해쉬 함수로 들어가 해쉬 함수의 결과를 특정한 목표 값 이하로 만들게 하는 숫자입니다.
새 블록을 만드려면 해쉬값이 특정한 난이도 목표보다 작아야 한다고 하는데요, 이때 해쉬값을 결정하는 숫자 조합이 논스입니다. 논스의 자리에 무작위로 숫자를 넣어 원하는 해쉬값이 나오는지 확인하는 작업이 필요합니다. 알맞은 논스를 찾게 되면 알맞은 해쉬값을 얻게 되고 이를 통해 새로운 블록이 생성되면 이에 대한 보상으로 암호 화폐 비트코인을 보상으로 얻게 됩니다.
거래-> 해시 생성-> 해시함수를 통한 해시 찾아 채굴 (블록생성)
해시함수는 어떤 데이터를 입력하여도 같은 길이의 결과가 도출 됩니다. 도출되는 해시값(결과)이 중복될 가능성이 낮고, 결과값으로 입력 값을 역으로 추정하기 어렵습니다. 이 때문에 헤시값을 비교하면 데이터의 변경이 발생 하였는지 파악 할 수 있습니다.
블록체인은 중앙화 되어 있지 않기 때문에 개개인들의 서버가 모여서 네트워크를 유지하고 관리하게 됩니다. 여기서 개개인의 서버를 노드라고 합니다. 이 노드들중 절반 이상의 동의가 있어야 새로운 블록이 생성됩니다.
우리가 잘 알고 있는 암호화폐는 블록에 금전 거래내역을 저장해서 거래에 참여하는 모든 사용자에게 거래내역을 보내주며 거래를 할 때마다 이를 대조하여 데이터 위조를 막습니다.
비트코인 이더리움과 같이 일반적으로 모두에게 개방되어 있어서 누구나 참여할 수 있는 형태로 되어있는 블록체인을 퍼블릭 블록체인이라고 하며, 기관 또는 기업이 운영하면서 사전에 허가를 받은 사람만이 사용할 수 있는 블록체인을 프라이빗 블록체인이라고 합니다.
주로 우리가 관심을 가지고 있는 것은 퍼블릭 블록체인 입니다.