-
블록체인(block chain)이란?
블록체인은 관리 대상 데이터를 블록이라고 하는 소규모 데이터들이 P2P 방식을 기반으로 생성된 체인 형태의 연결고리 기반 분산 데이터 저장환경에 저장되어 누구도 임의로 수정될 수 없고 누구나 변경의 결과를 열람할 수 있는 분산 컴퓨팅 기술 기반의 데이터 위변조 방지 기술입니다. 이는 근본적으로 분산 데이터 저장기술의 한 형태로, 지속적으로 변경되는 데이터를 모든 참여 노드에 기록한 변경 리스트로서 분산 노드의 운영자에 의한 임의 조작이 불가능하도록 고안되었습니다. 잘 알려진 블록체인의 응용 사례는 암호화폐의 거래과정을 기록하는 탈중앙화된 전자장부로서 비트코인이 있습니다. 이 거래 기록은 의무적으로 암호화되고 블록체인 소프트웨어를 실행하는 컴퓨터상에서 운영되고 비트코인을 비롯한 대부분의 암호화폐들이 블록체인 기술 형태에 기반하고 있습니다.
출처: 위키백과
다시말해 블록체인은 데이터 분산 처리 기술입니다. 네트워크에 참여하는 모든 사용자가 모든 거래내역 등의 데이터를 분산하여 저장하는 기술을 뜻합니다. 이렇게 저장된 데이터를 블록이라 칭하며 여러 블록들을 시간의 순서대로 묶는 형태를 가져 블록체인이라 불리게 됩니다. 이 모든 사용자가 거래내역을 보유하고 있어 거래 내역을 확인할 때는 모든 사용자가 보유한 장부를 대조하고 확인해야 합니다. 이러한 이유로 블록체인은 공공거래장부, 분산거래장부 로 불리기도 합니다.
기존 거래와 블록체인의 차이점
출처: SW 중심사회
기존의 거래방식은 중앙기관 즉, 은행에서 모든 거래 내역을 저장하고 있습니다. 개인 간 거래사실을 저장하여 증명 해야 하기 때문입니다.
블록체인은 은행과 다르게 해당 네트워크에 참여한 인원이 거래내역을 나눠서 저장하게 됩니다. 만약 한 네트워크에 100명이 참여하고 있다면 개인간 거래 내역을 100개의 블록을 생성해 100명 모두에게 전송한 뒤 저장을 합니다. 후에 거래내역을 확인할 때는 블록으로 나눠 저장한 데이터들을 연결해 확인합니다.
블록체인 특장점
위에서 말한것 처럼 블록체인은 분산저장을 한다는 점이 특징입니다. 기존 거래방식에서는 데이터를 위,변조 하기 위해선 중앙서버를 공격하면 됐습니다. 그러나 블록체인의 경우 여러 명이 동일한 데이터를 저장하기 때문에 위, 변조가 어렵습니다. 블록체인 네트워크를 위, 변조하기 위해서는 참여자의 거래 데이터를 모두 공격해야 하기 때문에 사실상 해킹이 불가능하다고 여겨집니다.
블록체인은 중앙 관리자가 필요없습니다. 중앙기관이나 관리자 없어도 다수가 데이터를 저장, 증명할 수 있기 때문에 탈중앙이 가능합니다.
블록체인 네트워크 구성
블록체인 네트워크 구성요소는 블록체인 노드와 블록체인 클라이언트입니다.
- 노드 : 트랜잭션 내역 보관, 트랜잭션 승인, 분산합의
- 클라이언트 : 트랜잭션 생성, 거래 내역 확인 (비트코인의 경우 지갑)
블록체인의 노드는 일반적인 서비스의 백엔드(Backend) 역할을 하고 블록체인 클라이언트는 클라이언트 역할을 합니다. 클라이언트가 새로운 트랜잭션을 발생시키면 노드들은 트랜잭션을 분산합의 과정을 통해 공유하고 트랜잭션을 실행하죠. 클라이언트는 트랜잭션의 결과를 확인할 수 있습니다.
블록체인 노드는 두 가지 종류의 데이터베이스를 가지고 있습니다. 올바른 트랜잭션을 모두 보관하는 블록체인 트랜잭션 보관 데이터베이스와 저장된 트랜잭션을 어플리케이션에 적용한 어플리케이션 데이터베이스를 가지고 있습니다.
블록체인 트랜잭션 내역 DB
노드가 가지고 있는 두 가지 DB 중 트랜잭션 목록을 보관하는 DB는 블록체인(Block-chain)이라는 특이한 구조로 되어 있습니다. 이 DB의 특이한 구조가 이제는 전체를 대표하는 명칭이 되었습니다. 트랜잭션 내역 DB는 블록체인이라는 이름처럼 블록이 연결된 구조로 되어 있습니다. 각 블록은 순서가 정해진 트랜잭션 리스트가 있고 각 블록들은 시간의 순서대로 연결되어 있죠(순서가 기재되어 있습니다). 블록체인 자료구조를 이용하면 모든 트랜잭션의 순서를 확정 지을 수 있습니다.
블록체인, 비트코인
비트코인과 같은 암호화폐가 등장한 것도 위에서 설명한 블록체인의 특장점 덕분입니다. 비트코인을 원하는 사람들이 직접 채굴을 통해 발행할 수 있습니다. 일각에서는 블록체인이 중앙기관과 은행을 대체할 것이라는 전망을 보여주기도 하지만 제 생각은 어려울 것으로 보입니다.
암호화폐에서는 이중지불방지를 위해 아래와 같은 다양한 시간표시 방법들을 사용합니다. 이중지불이란 100만원의 잔고에서 돈을 100만원 출금을 한 뒤, 잔고가 0원으로 갱신되기 전 재빨리 100만원을 또 출금하는 시간차 공격을 말합니다.
- 작업증명 (POW : proof-of-work)
- 지분증명 (POS : proof-of-stake)
- 위임지분증명 (DPOS: delegated proof-of-stake)
대표적으로 위와 같은 방법으로 이중지불 문제를 해결하고 있습니다.
암호화폐 간략한 개발과정
비트코인을 시작으로 성능개선, 익멱성, 저장기능과 스마트 컨트랙트 기능 등 다양한 기능들이 개발되었습니다.