[블록체인] 블록체인 입문_블록체인 기초 & 비트코인

NAEMAMDAEROG·2022년 2월 4일
0

1. 블록체인

블록체인은 관리 대상 데이터를 '블록'이라고 하는 자료 구조에 저장하여 체인의 형태를 이룬 것.
데이터를 분산 데이터 환경에 저장함으로써 누구라도 임의로 수정할 수 없고 누구나 변경의 결과를 열람할 수 있도록 하는 분산컴퓨팅 기반의 원장 관리 기술.

1-1. 분산 원장

모든 거래 참여자가 거래 장부를 각각 소유하고 이를 분산하여 갖고 있는 것.
제 3자가 포함되지 않은 채 거래 당사자끼리만 통신하는 것을 Peer-to-Peer 또는 P2P 방식이라고 하며 모든 거래를 블록과 체인 형태로 저장하고 있기에 블록체인이라 부르게 된다.

1-2. 블록체인 위조, 변경 어려운 이유

블록체인 내에 연결되어 있는 중간 블록 하나 만을 다른 블록으로 바꾸는 것은 불가능하기 때문에 이후에 있는 블록을 모두 바꿔줘야 한다. 따라서 블록체인을 위조하거나 수정하는 것이 거의 불가능하다.

2. 비트 코인

블록체인 기술을 이용해 구현한 첫 암호화폐.
기존의 화폐는 통화의 발행을 담당하는 기관이 국가 별로 별도로 존재한다. 하지만 비트코인의 경우 어느 국가나 정부, 또는 중앙은행이나 기관 등 누구도 비트코인의 발행에 관여하지 않는다. 또한 비트코인은 총 발행량이 정해져 있는 시스템이다. 비트코인은 시스템적으로 2100만 개만이 발행되도록 정해져 있다. 이는 누구도 바꿀 수 없는 수치이며, 일정한 주기에 따라 발행량이 절반씩 감소하고 있다.
비트코인은 탈중앙화가 되었고, 익명성을 보장하고, 투명성을 제공하며, 빠른 속도로 트랜섹션이 처리되고 한 번 기록된 내용은 수정이 불가능한 특징을 갖고 있다.

2-1. 비트코인 채굴(Mining)

  1. 블록체인에 추가할 새로운 블록을 생성한다.
  2. 비트코인이라는 암호화폐를 생성한다.
    -> 비트코인 네트워크에서는 일련의 과정을 거쳐 기존의 블록체인에 추가할 블록을 생성하게 되고, 블록 생성의 결과로 새로운 비트코인이 생성되게 된다.
    새로운 블록과 비트코인을 생성하는 과정을 채굴(Mining) 이라고 한다. 비트코인을 채굴하는 사람들은 채굴자(Miner)라고 부른다.

2-2. 비트코인 채굴 과정

비트코인을 채굴하는 과정은 일종의 퍼즐 풀기와 같다. 시간과 컴퓨팅 파워를 소모해서 퍼즐을 풀 수 있는 값을 찾는다. 퍼즐을 풀 수 있는 퍼즐 조각을 찾으면 비로소 새로운 블록을 생성할 수 있게 되고, 새롭게 생성된 블록은 기존의 블록체인에 연결된다. 이 때 퍼즐의 난이도는 퍼즐을 완성하는 시간이 10분 정도가 소요되게끔 시스템에서 정해져 있다. 하나의 퍼즐을 풀어 블록을 생성하고 나면, 새로운 블록을 생성하기까지 다시 10분이 소요되는 것이다. 실제로는 새로운 블록을 생성하는데 10분 이상이 걸릴 수도, 더 짧게 소요되는 경우도 있지만 보통 10분이 소요되게끔 주기적으로 퍼즐의 난이도를 조절해준다.

퍼즐의 난이도를 의미하는 특정 목표 값이 있고, 0부터 1씩 점차적으로 증가하는 nonce라고 하는 값이 있다. 이 nonce 값은 hash 함수라고 하는 일종의 퍼즐 조각 생성기를 거쳐 임의의 값을 만들어낸다. 이 임의의 값이 목표 값보다 작은 값을 가질 때까지 계속해서 퍼즐 조각을 생성한다. 같은 과정을 반복하다가 목표값보다 작은 값을 가지는 퍼즐 조각을 발견한다면, 퍼즐을 완성할 수 있게 되고, 비로소 블록을 생성할 수 있는 권한을 가지게 된다.

새로운 블록을 생성하기 위해 수학문제를 풀기 위해서 채굴자들은 시간과 많은 비용을 소모하게 된다. 아무런 보상이 없다면 아무도 수학 문제를 풀려는 노력을 하지 않을 것이다. 따라서 블록을 채굴하는 채굴자들은 블록을 생성한 노력에 대해 두 가지 형태의 보상을 받는다.

  1. 새로운 블록으로부터 새로운 코인을 생성해서 얻는 보상이다. 블록을 생성하면 현재는 6.25 비트코인을 받게 된다. 블록을 생성함으로써 생성되는 비트코인 발행량은 일정하지 않다. 비트코인 총 발행량이 2100만 개로 정해져있기 때문에 채굴이 계속됨에 따라 채굴 보상을 줄어들게 된다. 보통 21만 개의 블록이 새로 생성될 때마다 새롭게 생성되는 비트코인 양이 절반으로 줄어들고, 이 시기를 반감기라고 한다.

  2. 두 번째 보상은 이체 수수료 또는 거래 수수료이다. 예를 들어 A가 B에게 3 BTC를 보낸다고 가정하자. (A와 B는 각각 10 BTC를 가지고 있다.) 비트코인은 잔액의 개념이 없고 덩어리로 존재한다. 따라서 B에게는 10 BTC와 3 BTC를 갖게 되고 A는 남은 7 BTC를 자기 자신에게 전송해야만 7 BTC를 가질 수 있게 된다. 이 때 7 BTC를 보내지 않으면 모두 이체 수수료로 쓰인다. 이 이체 수수료가 블록을 채굴한 채굴자에게 전달되는 두 번째 보상이다. 이체 수수료는 송신자가 비트코인을 전송할 때, 얼마를 상대에게 보내고, 얼마를 자신이 되돌려 받을지를 명시해줌으로써 얼마의 이체 수수료를 지불할지 결정할 수 있다. 따라서 누군가에게 비트코인을 전송하려고 할 때에는, 상대에게 보낼 비트코인 양과 이체를 위해 사용할 수수료를 제외한 나머지 금액을 자신의 주소로 되돌려 보내는 것이 일반적이다.

2-3. 비트코인의 한계

1. 실시간성이 낮다.
퍼즐을 풀기 위한 난이도가 10분 정도로 정해져 있기에 거래가 완료될 때까지 최소 10분을 대기해야 한다는 특징이 있다. 이는 이체 수수료에 따라 더 길어질 수 있기 때문에 거래의 완료를 바로 확인할 수 없다는 단점이 있다.

2. 확장성 문제.
비트코인의 초당 거래량은 초당 약 7개 정도로 매우 적다. Visa 신용카드의 초당 거래량이 4천개 정도인 것과 비교하면 굉장히 느리다는 것을 알 수 있다.

3. 에너지 소모 문제.
수학 문제를 푸는 과정에서 발생하는 에너지 소모량이 엄청나게 많다.

4. 미비한 스마트 계약 기능.
비트코인은 화폐로서의 역할에 집중하도록 고안되었기 때문에 아주 간단한 계약 외에는 스마트 컨트랙트를 적용할 수 없다.

3. 이더리움

이더리움은 비트코인 이후로 출시된 여러 블록체인 기반의 플랫폼들 중 하나.

비트코인 소프트웨어의 소스코드를 이용해서 파생된 여러 블록체인 플랫폼들이 있다. 그 중에서 대표적으로 라이트코인과 네임코인이 있다.
라이트코인은 비트코인과 동일하게 개인들간에 직접 주고 받을 수 있는 암호화폐를 위한 플랫폼이고, 비트코인보다 처리속도가 빠르고 화폐 유동성이 좋다.
네임코인은 처음으로 탈중앙화된 DNS(Domain Name System)를 구현한 플랫폼이다.
이외에도 비트코인 오픈소스에서 파생된 많은 프로젝트들이 있지만, 대부분 화폐의 저장수단으로만 블록체인을 이용하고 있다. 이들 모두 1세대 블록체인 플랫폼이다.

비탈릭 부테린은 화폐 거래 기록뿐 아니라 계약서 등의 추가 정보와 프로세스를 기록할 수 있다는 점에 착안하여, 전 세계 수많은 사용자들이 보유하고 있는 컴퓨팅 자원을 활용해 분산 네트워크를 구성하고, 이 플랫폼을 이용하여 SNS, 이메일, 전자투표 등 다양한 정보를 기록하는 시스템을 창안했다. 그래서 이더리움은 비트코인의 블록체인 기술을 기반으로 설계되었으며, 정확히 프로그래밍한대로 동작하는 스마트 계약을 실행시키는 분산 컴퓨팅 플랫폼으로 탄생했다.

3-1. 비트코인과 이더리움의 차이점

'스마트 계약'의 유무

비트코인 플랫폼에서는 스마트계약이 블록체인에 저장되지 않고, 참가자들이 만들어내는 거래에는 BTC를 보내고 받는 내용만 있다.
반면에 이더리움에는 블록체인에 암호화폐인 이더(ETH) 뿐만 아니라 '스마트 계약'도 저장될 수 있다. 거래(트랜잭션)에 암호화폐인 이더 뿐만 아니라 스마트 계약 정보와 스마트 계약을 이용하기 위한 데이터 등 다양한 정보들이 포함되어 전달된다.
비트코인 플랫폼에서는 BTC를 '사용했다' 또는 '안했다' 두 가지의 상태만 표현할 수 있지만, 반면에 이더리움에선는 스마트 계약을 통해서 여러가지 상태를 만들어 낼 수 있다. 예를 들어 '거래중', '입금확인', '거래완료' 등등의 상태로 더 세분화될 수 있다.

계정기반 유무

비트코인은 덩어리로 이루어져 있고 비트코인을 보내기 위해서는 해당 금액만큼 쪼개져서 보내진다. 실제 비트코인은 계정기반으로 설계되지 않았기 때문에 사용자는 단순히 비트코인 주소만 가지고 있고, 사용자에 대한 어떤 정보도 블록체인에 저장되어 있지 않다. 비트코인 지갑에서 사용자의 잔액을 보여주는 것은 실제 그 정보가 저장되어 있는 것이 아니라, 지갑 소프트웨어가 블록체인에 저장된 사용자가 사용할 수 있는 덩어리들을 모두 합하여 보여주는 것이다.

이더리움은 계정기반으로 설계되었다. 이더리움에는 그 계정과 관련된 정보들이 블록체인에 저장되는데, 예를 들어 실제 해당 계정이 얼만큼의 이더를 가지고 있는지도 저장된다. 예를 들어 A가 B에게 3 ETH를 보낸다면, 비트코인처럼 덩어리로 쪼개서 보내는 것이 아니라, 이더리움 계정 안에 있는 잔액 상태를 직접 변경하며 보내게 된다.

4. 스마트 계약 (Smart Contract)

스마트 계약 : 디지털 방식으로 특정한 계약을 수립, 검증, 실행하기 위한 컴퓨터 프로토콜
이는 제 3자 없이 신뢰할 수 있는 거래의 수행을 가능하게 하며, 거래들은 추적할 수 있고 되돌릴 수 없게 된다. 스마트 컨트랙트는 디지털 명령어로 계약을 작성하면 조건에 따라 계약 내용을 자동으로 실행할 수 있다. 디지털로 된 계약서는 조건에 따른 계약 결과가 명확하고, 계약 내용을 즉각 이행할 수 있다는 장점이 있다.

DApp : Decentralized Application의 줄임말. 탈중앙화된 어플리케이션.
DApp은 블록체인 위에서 동작하면서 중앙 서버 없이 정보를 분산하여 저장하고 블록체인에 저장된 스마트 계약을 통해서 서비스를 제공한다.

DApp과 기존 app의 차이

디앱은 정보를 블록체인에 저장하기 때문에 분산 저장되어 해킹이 어렵고, 삭제가 불가능하며, 정보의 투명성을 제공한다. 기존 앱은 모든 정보를 중앙 데이터 베이스에 저장하기 때문에 해킹 위험이 높고, 정보를 삭제할 수 있으며 관리자 외 데이터베이스에 접근할 수 없어서 정보의 투명성이 결여되어 있다.
디앱은 블록체인을 구성하고 있는 몇몇의 노드들에 문제가 발생해도 다른 노드들이 동일한 정보를 가지고 있기 때문에 운영하는데 영향을 받지 않지만, 기존 앱은 서버가 다운되면 서비스를 제공할 수 없다.
디앱의 서비스를 사용자가 이용하기 위해서는 일종의 메시지를 생성하기 위해 비용(수수료)이 요구되며 보통 이것은 코인이나 토큰으로 지불된다. 반면에 기존 앱에서는 사용자가 서비스를 이용하는 것 자체는 무료로 비용이 들지 않는다.
디앱은 블록체인마다 속도에 차이가 있지만 보통 전통적인 앱보다 비교적 느리다. 구동방식에서 디앱은 스마트 계약을 사용하여 요청이 들어왔을 때 스마트 계약의 규칙에 따라서 처리되는 반면에 기존 앱은 서버에서 프로그래밍된대로 동작한다.

출처 : K-MOOC 블록체인 입문 - 홍원기 교수님
http://www.kmooc.kr/courses/course-v1:POSTECHk+CSED490U1+2020_1/course/

profile
Blockchain & Programming 공부 기록

0개의 댓글