블록체인 입문 - (1) 블록체인 기초

BLANC·2022년 1월 6일
1

블록체인

목록 보기
1/11
post-thumbnail

• 본 게시글은 K-MOOC 묶음강좌 '블록체인 암호화폐:입문부터 심화까지' 강의를 수강하고 공부하며 정리한 내용입니다.

블록체인

블록체인은 ‘블록’이라는 소규모 데이터를 체인 형태의 연결 기반 분산 데이터 저장 환경에 저장하여 누구도 임의로 수정할 수 없고 변경의 결과를 열람할 수 있는 분산 컴퓨팅 기술 기반의 원장관리 기술 입니다.

가상화폐

가상화폐는 지폐, 동전과 같은 실물 없이 네트워크로 연결된 특정한 가상 공간에서 사용되는 디지털 화폐 또는 전자화폐를 이야기합니다. 특히 블록체인 기술을 기반으로 만들어진 가상 화폐를 '암호 화폐'라고 부릅니다.

암호 화폐

암호화폐는 분산장부에서 공개키 암호화를 통해 안전하게 전송하고 해시 함수를 이용하여 소유권을 쉽게 증명해낼 수 있는 디지털 자산을 이야기합니다. 쉽게 말해서, 블록체인을 기반으로 한 디지털 자산 입니다.
비트코인, 이더리움 등이 '암호 화폐 (Cryptocurrency)'에 해당하며 최근에 한국에서는 이러한 암호화폐를 '가상자산'으로 부르고 있습니다.

비트코인 (Bitcoin)

비트코인은 2008년 10월 '사토시 나카모토'라는 익명의 개발자에 의해 'Bitcoin: A Peer-to-Peer Electronic Cash System'라는 논문으로 2009년 1월 3일 처음 발행된 암호화폐입니다.

블록체인 기술을 기반으로 만들어진 최초의 암호화폐로, 1세대 블록체인이라고 부릅니다.

이후 글에서도 다루겠지만 비트코인(Bitcoin)은 SHA-256 해시 알고리즘 기반의 작업증명(PoW) 방식의 합의 알고리즘을 채택하여 채굴이 진행되고 있습니다.

채굴 (Mining)

채굴은 블록체인 네트워크에 추가할 새로운 블록과 비트코인을 생성하는 것으로, 시간과 컴퓨팅 파워를 소모하여 암호를 해독하는 일련의 과정으로 진행됩니다.

채굴 과정

난이도에 해당하는 특정 목표값(Difficulty)과 0부터 1씩 증가하는 nonce라는 값이 존재합니다.
nonce를 hash 함수를 통해 임의의 hash값으로 만들어내고, 이 hash값이 목표값보다 작은 값을 가질 때까지 nonce값을 1씩 증가시키면서 반복합니다.
조건이 만족되면 채굴이 완료되고 채굴에 대한 보상을 받습니다.

채굴 보상

채굴자들은 시간과 컴퓨팅 파워의 비용 소모에 대해, 두가지 형태의 보상을 받게 됩니다.

  • 새로운 블록으로부터 새로운 코인을 생성해서 얻는 보상
    이 때, 생성되는 보상은 발행량이 정해져있으므로 채굴이 지속됨에 따라 점점 줄어듬(반감기).
  • 이체 수수료
    비트코인은 덩어리로 존재하여 이체시 상대에게 보낼 비트코인과 이체를 위해 사용할 수수료를 제외한 나머지 금액을 다시 자신의 주소로 되돌려 보냄.
    이 때, 채굴자들이 이체 수수료가 높은 블록을 선택할 확률이 높기 때문에 이체 수수료가 높을 수록 더 빨리 블록 체인에 저장되는 경향이 있음.

비트코인의 한계

  • 낮은 실시간성
    블록의 생성주기가 10분정도로 정해져있어 발생한 거래가 블록체인에 연결되기까지 최소 10분 이상이 걸림
  • 확장성
    비트코인의 초당 거래량: 7개 (Visa 신용카드의 초당 거래량: 4000개)
  • 에너지 소모
    블록채굴을 위해 소모되는 전력량이 매우 높음
  • 미비한 스마트 계약
    비트코인은 화폐로서의 역할에 집중하도록 고안되어 아주 간단한 계약 외 스마트 컨트랙트를 적용할 수 없음

1세대 블록체인

  • 비트코인
  • 라이트코인
    비트코인과 동일하게 개인들간에 직접 주고 받을 수 있는 암호화폐를 위한 플랫폼으로, 비트코인보다 처리속도가 빠르고 화폐 유동성이 좋음.
  • 네임코인
    처음으로 탈중앙화된 DNS(Domain Name System)을 구현한 플랫폼

이더리움 (Ethereum)

블록체인 기술을 기반으로 스마트 컨트랙트 기능을 구현하기 위한 분산 컴퓨팅 플랫폼

비트코인의 핵심 기술인 블록체인에 계약서 등의 추가 정보를 기록할 수 있는 점을 더하여, SNS, Email, 전자 투표 등 다양한 정보를 기록하는 시스템을 만들 수 있도록 한 플랫폼

이더리움의 특징

  • 블록체인에 화폐 거래 기록 뿐만이 아닌 계약서 등 추가정보와 프로세스를 기록할수 있도록 하여, SNS, Email, 전자 투표 등 다양한 정보를 기록하는 시스템을 만들 수 있도록 한 플랫폼
  • 스마트 컨트랙트라는 기능을 통해 애플리케이션 제작을 할 수 있음
    2세대 블록체인
  • 2013년 말 백서 공개 → 2014년 재단 구성 및 ICO(Initial Coin Offering) 진행 후 개발팀 구성 → 2015년 7월 공개
  • 이더리움을 모티브로 다양한 언어로 개발된 오픈소스 블록체인 프로젝트들이 개발되고 있음.

비트코인과의 차이점

  • 스마트 컨트랙트 기능의 유무
    비트코인은 금융에 특화되어 화폐기능을 하는데 초점을 맞추고 있는 플랫폼이지만, 이더리움은 스마트 컨트랙트를 저장할 수 있음
  • 계정기반 설계
    비트코인은 사용자에 대한 어떠한 정보도 블록체인에 저장하지 않음. 따라서 지갑이 사용자의 잔액이 아닌 사용할 수 있는 덩어리의 합을 보여줌.
    반면 이더리움에는 계정과 관련된 정보들이 블록체인에 저장되고, 해당 계정이 가지고 있는 이더의 개수 또한 저장되어 비트코인과 달리 계정 안에 있는 잔액 상태를 직접 변경하며 보내게 됨.
    → 기존에 사용자들이 알고 있는 거래 개념과 더 비슷

스마트 컨트랙트

스마트 컨트랙트는 Nick Szabo가 1994년 개념을 제안한 개념으로, 디지털 방식으로 특정한 계약을 수립, 검증, 실행하기 위한 컴퓨터 프로토콜을 말합니다.

비탈릭 부테린은 이 개념을 블록체인에 적용하여 이더리움을 개발하였습니다.

스마트 컨트랙트의 장점

블록체인을 이용한 스마트 컨트랙트는 거래들은 추적할 수 있고 되돌릴 수 없기 때문에 제 3자없이 신뢰할 수 있는 거래의 수행을 가능하게 합니다. 제 3자없이 신뢰할 수 있는 거래를 수행할 수 있으므로 기존 계약 관련 법률보다 우수한 보안성을 제공하고 저렴한 비용으로 계약을 처리할 수 있습니다.

디지털 명령어로 계약을 작성하면 조건에 따라 계약 내용을 자동으로 실행할 수 있고, 디지털로 된 계약서이기 때문에 조건에 따른 계약 결과가 명확하고 내용을 즉각 이행할 수 있습니다.

이더리움은 Solidity(프로그래밍 언어)를 사용하여 스마트 컨트랙트를 작성하고, 작성된 코드를 이더리움 컴퓨터가 이해할 수 있는 코드로 변환하여 블록체인에 저장하여 스마트 컨트랙트를 수행합니다.

스마트 컨트랙트의 단점

스마트 컨트랙트을 작성하는 것은 사람이므로 논리적 결함이 있을 수 있지만, 작성자는 이러한 문제를 곧바로 파악하기 어렵습니다. 이러한 문제로 스마트 컨트랙트가 해킹되어 오작동하는 사례가 발생할 수 있고, 대표적인 사례로 DAO해킹이 있습니다. 원치 않는 작동 혹은 요청이 있더라도 계약이 수행된다는 것을 알아두어야 하고, 따라서 코드를 작성할 때 신중히 작성해야합니다.

DAO 해킹이란?

스마트 컨트랙트에서 코드의 취약점을 이용하여 약 520억원 가량을 중간에서 탈취한 해킹 사건입니다. 해당 사건으로 인해 이더리움 네트워크를 하드포크 하였고, 기존의 이더리움 블록체인을 그대로 유지하는 이더리움 클래식이 만들어졌다.

DApp (Decentralized Application)

DApp은 블록체인 위에서 동작하는 어플리케이션으로, 중앙 서버 없이 정보를 분산하여 저장하고 블록체인을 기반으로 만들어진 스마트 컨트랙트를 통해서 서비스를 제공하여 스마트 컨트랙트의 규칙에 따라 처리됩니다.
현재 암호화폐거래소, 도박, 지갑, 게임, 금융, 미디어, 소셜, 스토리지, 자산, 정부, 개발, 보안, 인증, 에너지, 건강, 보험 등 많은 영역에서 개발되고 있습니다.

DApp의 장점

정보를 블록체인에 저장하여 해킹이 어렵고 삭제가 불가능하며 정보의 투명성을 제공합니다. 즉, 블록체인의 장점을 가집니다.

DApp의 단점

디앱의 서비스를 이용하기 위한 메시지 생성을 위해서 비용(수수료)을 코인이나 토큰으로 지불해야 합니다.
블록체인마다 속도에 차이가 있지만 전통적인 앱보다 비교적 느립니다.

profile
Frontend Engineer

0개의 댓글