[Blockchain] 블록체인이란 ? (블록 & 체인 & 트랜잭션)
개요
과거 나는,
예금(돈)과 관련하여 이것을 디지털로 관리 해 보면 어떨까 ?
라는 생각을 해 본적이 있었다
혹은,
기존의 방식이 아닌
새로운 방식의 금융 시스템 위에서 적용해 보는건 어떨까 ?
라는 나와 같은 생각을 가진 사용자들이 모여
만들어진 개념을 블록체인 이라고 한다
블록체인이란 ?
블록체인은 말 그대로
블록들이 이어진 체인(Chain)의 형태를 띄고 있으며,
블록에는 거래 내역이 담기게 되고,
체인에는 [? 에서 ? 까지 연결된다] 라는 규칙이 정해져 있다
해당 블록체인 네트워크 노드(=컴퓨터) 간에 공유되는 분산 DB 이다
블록체인의 핵심은
인터넷 상에 있는 모든 사람들과 동일한 데이터를 가지는 것 이다
- 누구나 데이터를 추가할 수 있다.
- 데이터는 한 번 추가되면, 수정하거나 삭제할 수 없다.
- 개인이나 단체가 데이터를 관리하는 것이 아니라,
블록체인 네트워크에 있는 모든 살마들이 함께 관리한다.
분산 DB 란?
가장 유명한 예로 비트토렌트가 있는 P2P 사이트 혹은 IPFS 등이 있다
P2P 란?
Peer to Peer의 줄임말로
중앙 서버를 거치지 않은 채
사용자끼리 (클라이언트 컴퓨터끼리) 직접 통신하는 방식을 말한다.
블록 (Block)
블록은 데이터를 저장하는 공간을 말한다
블록에는 자산에 대한 정보를 담거나,
개인 정보를 암호화 하여 담는 등의 다양한 유형의 정보를 담을 수 있다
블록의 구성은 어떤 종류의 데이터를 저장하느냐에 따라 결정
트랜잭션 (Transaction)
비트코인과 같은 일반적인 암호화폐에서는
블록에 거래기록을 저장한다
블록체인에서는 이 거래기록을 트랜잭션 (Transaction) 이라고 부른다
ex) A 가 B 에게 0.01 비트코인을 이체(전송)하였다면,
‘A 가 B 에게 0.01 비트코인을 전송했음’ 의 투명한 형태로 기록되며,
이러한 이체(거래) 내역을 트랜잭션 이라 부른다.
Web 2.0 의 관점으로 바라보면,
예금을 송금하게 되면 이체 내역에는
송금자의 정보, 계좌 잔액, 보내려는 금액, 수신자의 계좌, 보낸 시간 등이 기록됨을 알 수 있다.
마찬가지로
블록에 들어가는 트랜잭션에도 이와 같은 정보가 들어가는데,
블록체인에서는 사용자가 직접 자신의 자산에 대한 소유권을 증명하기 위한
디지털 서명 (Digital Signatures) 를 추가한다.
체인 (Chain)
블록 하나에 모든 사람들의 거래 내역을 기록한다면,
블록의 크기는 아마 가늠이 되지 않을 정도일 것이다
또한,
네트워크에 있는 참여자가 동시에 하나의 블록에 무언가를 기록하려한다면
이는 너무 비 효율적일 것이라 예상할 수 있다
이와 같은 문제를 해소하기 위해
체인 이라는 개념이 등장하였다.
- 트랜잭션 발생
- 네트워크 참여자가 하나의 블록에 일정한 개수의 트랜잭션을 넣어 네트워크에 공유
- 다른 사용자는 새로운 블록을 만들고, 새로 생성한 트랜잭션을 블록에 저장
- 이때, 새로운 블록에는
이전 블록을 지칭하는 데이터(주소값)를 함께 넣어 직전의 블록과 연결한다
이후 일정량의 트랜잭션이 생길 때 마다
해당 트랜잭션들을 블록에 넣고,
이전 블록을 가리키는 주소값을 함께 넣는 것을 반복하게 된다.
우리는 이러한 모양이
체인처럼 연결되어 있다고 해서 이를 블록체인 이라고 부르기로 했다