BlockChain 이란

Updated:

BlockChain

블록체인(영어: block chain, blockchain)은 관리 대상 데이터를 ‘블록’이라고 하는 소규모 데이터들이 P2P 방식을 기반으로 생성된 체인 형태의 연결고리 기반 분산 데이터 저장환경에 저장되어 누구라도 임의로 수정할 수 없고 누구나 변경의 결과를 열람할 수 있는 분산 컴퓨팅 기술 기반의 원장 관리 기술이다.

이는 근본적으로 분산 데이터 저장기술의 한 형태로, 지속적으로 변경되는 데이터를 모든 참여 노드에 기록한 변경 리스트로서 분산 노드의 운영자에 의한 임의 조작이 불가능하도록 고안되었다. 블록체인 기술은 비트코인을 비롯한 대부분의 암호화폐 거래에 사용된다. 암호화폐의 거래과정은 탈중앙화된 전자장부에 쓰이기 때문에 블록체인 소프트웨어를 실행하는 많은 사용자들의 각 컴퓨터에서 서버가 운영되어 중앙은행 없이 개인 간의 자유로운 거래가 가능하다.

기존 거래와 블록체인의 차이점

image

기존의 거래방식은 중앙기관 즉, 은행에서 모든 거래 내역을 저장하고 있습니다. 개인 간 거래사실을 저장 하여 증명 해야 하기 때문입니다.

블록체인은 은행과 다르게 해당 네트워크에 참여한 인원이 거래내역을 나눠서 저장하게 됩니다. 만약 한 네트워크에 100명이 참여하고 있다면 개인간 거래 내역을 100개의 블록을 생성해 100명 모두에게 전송한 뒤 저장을 합니다. 후에 거래내역을 확인할 때는 블록으로 나눠 저장한 데이터들을 연결해 확인합니다.

즉, 증명에 필요한 중앙기관이 필요하지 않다.

BlockChain 구조

블록 구성

거래의 최소 단위는 트랜잭션(transaction) 이다. 트랜잭션이란 더 이상 쪼갤 수 없는 업무 처리의 최소 단위를 말한다. 예를 들어, A라는 사람이 B라는 사람에게 1,000원을 지급하고 B가 그 돈을 받은 경우, 이 거래 기록은 더 이상 작게 쪼갤 수가 없는 하나의 트랜잭션을 구성한다.

인터넷 등 온라인에서 거래가 발생한 경우, 각각의 트랜잭션별로 하나의 거래내역을 구성한다. 이 거래내역은 해시(hash) 함수를 사용하여 암호화된다. 해시 함수란 다양한 길이를 가진 데이터를 고정된 길이를 가진 데이터로 매핑하는 알고리즘이다. 각각의 거래내역을 텍스트로 표시할 경우 그 길이가 각각 다를 수 있지만, 이것을 해시 함수로 변환하면 항상 일정한 길이의 해시값이 나온다.

예를 들어, SHA-256 해시 함수를 사용할 경우, 거래내역이 아무리 짧거나 혹은 길어도 해시값은 항상 2진수로 256자리(즉, 16진수로 64자리)의 고정된 길이를 가진 값으로 표시된다. 이러한 해시 연산 과정을 거쳐 하나의 트랜잭션이 하나의 해시값에 대응하는 1:1 구조를 이루게 된다.

이 해시 알고리즘은 값이 조금만 달라져도 나오는 해시값이 완전히 바뀌게 되므로 해시값을 보고서 원본 값을 알 수 없다.

I have a car -> FA56A67C8DB6C5222ED5ECF4578BCDC6972FED51BFEF33FC5FCA9E7129076AC6
I have a cat -> AA5AC9CEDA18E0629D1745539F0ED89C300DE50423E206361020856B7E77F65D

블록체인에서는 다수의 거래내역을 묶어 하나의 블록을 구성한다. 아래 그림은 블록의 한 예시 입니다.

image

하나의 블록에는 반드시 하나의 루트해시가 존재한다. 만약 거래내역 중 하나라도 위변조할 경우 해당 해시값과 그 상위의 모든 해시값이 변경되어 결과적으로 루트해시가 달라지게 된다. 따라서 블록의 루트해시만 비교해 보면 그 하위에 있는 해시를 일일이 비교 검사하지 않더라도 데이터가 위변조되었는지 즉시 확인할 수 있다.

체인 연결

하나의 새로운 블록을 구성한 경우, 마치 체인처럼 이전부터 이어져 내려오던 블록체인의 맨 끝에 이 새로운 블록을 연결시켜야 한다. 새로운 블록을 기존 블록체인의 끝에 연결시키려면, 해당 블록의 이름에 해당하는 해시값을 찾아내야 한다. 새로운 해시값을 성공적으로 찾아내는 경우 새로운 블록이 생성되어 기존 블록체인에 연결된다.

image

블록체인은 이전 블록의 정보(해시 값), 현재의 거래 정보 및 해시 값 등을 포함하여 블록을 생성하므로 블록의 내용을 조작 할 수 없으며, 거래 정보가 공개되어 있기 때문에 투명하게 관리가 가능합니다.

피투피(P2P) 분산 저장

블록체인은 거래를 처리하고 기록·관리하는 권위 있는 중앙 조직이나 기구·기관이 없이, 네트워크에 연결된 개별 참여자들의 협업에 의해 유지된다.

블록체인은 피투피(P2P) 방식으로 운영된다. 피투피(P2P)란 Peer to Peer의 약자로서, 인터넷에 연결된 다수의 개별 사용자들이 중개기관을 거치지 않고 직접 데이터를 주고받는 것을 말한다.

블록체인에 저장된 데이터는 네트워크에 연결된 모든 노드(node)에 복사되어 분산 저장된다. 블록체인 네트워크 구조에서는 중앙 서버가 존재하지 않으며 네트워크에 참여하는 모든 노드들이 서로 데이터를 복사하여 동일한 자료를 분산 저장하고 있다. 블록체인에 저장된 데이터는 원본과 사본의 구별이 없다. 블록체인 네트워크에 참여하는 개별 노드들은 다른 노드에 있는 데이터를 복사하여 저장함으로써 서로 동일한 데이터를 가지게 된다.

이 때 해당 데이터 전체를 100% 동일하게 복사하여 저장한 노드를 풀 노드(full node) 라고 하고, 전체 데이터의 일부분만 복사하여 저장한 노드를 라이트 노드(light node) 라고 한다.

합의

image

블록체인 네트워크에서 새로운 거래가 발생할 경우 그 내역은 네트워크에 연결된 모든 노드들에게 전파되어 알려진다.

네트워크에 참여한 다른 노드들은 새로 생성된 블록의 유효성을 검사하고 아무런 이상이 없을 경우 해당 블록의 생성을 승인한다. 이런 방식으로 전체 네트워크에 참가한 노드들 중에서 과반수가 새로 생성된 블록을 승인할 경우, 해당 블록은 정식 블록으로 채택되어 블록체인에 추가된다.

만약 서로 다른 거래내역을 가진 블록이 동시에 생성될 경우 네트워크는 약 1시간 정도 기다리면서 지켜보다가 가장 긴 길이를 가진 체인을 선택한다. 이 때 선택되지 않은 다른 블록은 버려져서 고아 블록(orphan block)이 되고 더 긴 길이를 가진 블록체인의 끝에 새로 생성된 블록이 연결된다.

이러한 과정을 통해 블록체인은 거래를 처리하고 승인하는 권위 있는 중앙기관이 없이도 네트워크 참여자들의 협업을 통해 안전하고 신뢰할 수 있는 시스템을 운영할 수 있다.

Leave a comment