2023년 04월 03일 06:56

[비트코인 트랜드] #1. 비트코인의 개념과 확장성 문제

이화여자대학교 블록체인학회 이화체인 기초리서치 1팀에서 비트코인의 개념과 기술, 확장성 등 한계과 솔루션, 오디널즈 NFT까지 시리즈 아티클을 연재합니다.

Author: 11기 김민영, 송윤진, 이예진, 최소이

Reviewer: 7기 이주원

본 글은 시리즈의 1편으로 비트코인의 개념과 확장성 문제 솔루션에 대해 다룹니다. 다른 편을 읽고 싶으시다면 아래의 리스트를 확인해주십시오.

1편: 비트코인의 개념과 확장성 문제

2편: 시장 동향과 오디널즈 프로토콜

TL;DR

1. 2008년 사토시 나카모토가 제시한 비트코인은 공개 키 암호 방식과 보상 제공을 이용한 모든 참여자들간에 거래 내역을 공유하는 P2P기반 분산 시스템인 블록체인 기술을 기반으로 한다.

2. 비트코인은 블록체인 기술을 기반으로 하여 탈중앙성과 투명성 등을 보장할 수 있다는 의의를 가지지만 누적되는 데이터들을 한 번에 처리하지 못하는 확장성 문제로 한계를 가진다.

3. 비트코인의 확장성 문제를 해결하기 위해 외부 네트워크를 통한 트랜잭션을 이용한 오프체인 방식으로 별개의 노드를 생성하는 사이드 체인이 대표적으로 사용되고 있다.

2008년 사토시 나카모토가 블록체인 기술을 기반으로 만들어진 새로운 전자화폐 비트코인을 소개했다. 이는 사용자의 금융 정보 등을 보호하고 중앙 정부의 통제로부터 벗어날 수 있는 방법과 모든 사람이 모든 거래 내역을 공유하는 분산화 거래 시스템이다.

비트코인이 발행된 2009년 1월 이후, 암호화폐 시장의 성장과 함께 약 700개가 넘는 암호화폐들이 생겨났으며 현재는 금융권 뿐만 아니라 비금융권, 정부기관 등 다양한 곳에서 블록체인 기술을 도입하고 있다.

1. 비트코인 기초

비트코인을 이해하기 위해 필요한 개념을 먼저 알아보고자 한다.

노드
블록체인의 사본을 가지고 있으며 새로운 *블록에 대한 검증을 하는 컴퓨터이다. 즉 사용자(블록체인 네트워크 참여자)를 노드라 생각하면 된다.

작업증명(Proof of Work)
블록체인 최초의 증명 방식이며 채굴이라고도 한다. 블록을 생성하기 위해 블록생성자가 블록을 생성하기 위해 해결해야 하는 수학문제에 대입되는 임의의 논스값을 1씩 증가시키며 특정한 난이도의 해시값(정답)을 찾는 방식이다. 채굴자는 수학문제를 컴퓨터 처리능력을 이용하여 해결하고 블록 생성의 대가로 비트코인을 얻는다.

채굴 보상 알고리즘
채굴 보상이란 쉽게 말해 채굴 성공자에게 인센티브를 제공해 주는 것이다. 비트코인은 수십년에 걸쳐 2,100만개 코인이 발행되도록 설계되었으며 매 ~10분마다 블록이 생성되고 블록 생산자에게 보상이 제공된다. 이때 보상은 채굴보상과 채굴 수수료로 이루어져 있다. 채굴 보상은 코인 발행(네트워크 내의 유통량을 늘리는 역할)과 네트워크를 유지하는데 기여한 노드에 대한 보상을 주는 역할을 한다. 거래 수수료는 혼잡도에 따라 계산되는 소량의 보상이며 채굴 보상이 종료되면 블록체인을 유지하는 보상이다.

해싱
단 방향 암호화 기법으로 해시 함수를 이용하여 키 값을 256bit 길이의 이진 문자열로 암호화하는 것이다. 입력값이 수정되면 출력값은 불규칙적으로 변화되어 위조 및 변조 방지에 뛰어나다. 비트코인은 작업 증명에 SHA-256 함수를 사용한다.

거래 (트랜잭션)
비트코인의 원리를 파악하기 위해 간단한 거래가 어떻게 체결되는지 알아보자.

우선 비트코인 지갑을 생성해야 한다. 이때 지갑을 만들면 개인키와 공개키가 생성되고 , 비트코인 주소가 만들어진다. 이때 비트코인 주소는 은행 계좌와 같은 역할을 한다. 이는 개인키와 공개키를 만드는 것에서부터 시작되는데 공개키는 해시함수에 통과시켜 만든다.

A가 B에게 비트코인을 송금하였다고 하면, 이 비트코인에는 B의 주소(공개키)와 B에게 보내는 거래 정보의 해시값이 있다. B가 이 비트코인을 사용하기위해서는 자신의 개인키를 이용하여 소유자가 본인임을 서명해야 한다. 그리고 다른 사람 ,C에게 송금하기 위해서는 C의 공개키로 거래정보를 암호화하여 브로드캐스트 (전파)한다. 송금자는 비트코인에 전자서명을 하여 소유권을 넘기게 되는데, 이때, 수금자의 계좌정보를 이용해 수금자의 공개키로 암호화 하여 전달한다. 여기서 C역시도 자신의 개인키로 서명함으로써 비트코인을 소유할 수 있고 다음 거래를 할 수 있게 된다.

추가적 개념들
* 개인키(private)Key: 특정 비트코인 지갑의 비트코인을 소비를 허용해주는 키

* 지갑: 비트코인 네트워크 안에서 사용되는 지갑, 블록체인 안에서 개인키를 저장하는 것

* 블록: 거래를 보관하고 승인하는 블록체인 내의 기록

* 주소: 계좌번호처럼 지갑에 부여되는 고유한 주소

* Cryptography: 보안을 제공하는 수학적 증명 = 암호화

* P2P: 개개인이 각각 다른 사람들과 상호작용하는 것

* 서명: 암호 작성화된 서명은 누군가 소유권을 증명할 수 있도록 하는 방법

* 해시함수: 해싱을 하기 위해 사용한 함수

비트코인 블록의 구성
블록헤더(block header)는 블록을 구성하는 요소를 구분한 단위 중 하나이다. 각각의 블록은 머리와 몸이라고 할 수 있는 블록헤더와 블록바디로 구성되어 있다. 블록헤더와 블록바디는 서로의 정보를 비교하면서 위변조 가능성을확인하며 무결성을 높인다. 비트코인의 블록헤더에는 현재 블록과 이전 블록의 해시값, 해당 블록을 만든 비트코인의 버전, 머클루트, 타임스탬프, 현재 채굴난이도, 논스가 포함되어 있다.

0*aaTJ58qeDZd808Ju

비트코인 작동방식
본격적인 비트코인의 작동방식을 알아보는 데 앞서 ‘블록체인’에 대해 알아보자.

블록체인은 비트코인(Bitcoin)이 등장하면서 기반기술로 소개되었다. P2P 참여자들의 검증을 통해 공인된 제3자가 없이도 개인 간의 가치를 거래 할 수 있게 하는 혁신적인 기술이다. 블록체인은 데이터를 말하는 블록(Block) 과 검증된 연결을 의미하는 체인(Chain)의 합성어이다. 다시 말해서 블록체인은 데이터를 보관하고 처리하는 구조가 블록의 연결로 이루어 져 있고, 분산 데이터베이스의 한 형태이다.

일정한 시간 간격을 기준으로 기존의 블록체인에 새로운 거래내역을 포함하는 블록이 연결되는 데이터베이스 구조이며 거래 내역이 중앙기관 서버에 저장 및 관리되는 시스템이 아니라 거래내역 이 포함된 블록을 모든 참여자가 공유할 수 있는 시스템이다. 거래가 이루어질 때 마다 해당블록이 생성되어 체인에 연결되며, 모든 참여자에게 공유되어 거래의 유효성이 허가되는 방식으로 작동한다. 허가 방식은 작업증명(Proof of Work)이라는 단계를거치게 된다. 작업증명을 통해 유효성이 인증된 블록은 이전 블록을 반영하고 있으므로 새로운 블록체인으로 결합한다.

그러면 이러한 블록체인 기술을 바탕으로 비트 코인의 거래과정이 어떻게 일어나는지에 대해서 알아보자.

이해를 쉽게 하기 위해 Bob과 Alice, John이 비트코인 네트워크에 참여한 상황을 생각해보자.

0*09tvqP0jjxq1xLGQ

참고)쉽게 설명하는 블록체인, 비트코인 거래의 원리와 과정 — 1 — Steemit


  1. Bob이 Alice에게 1BTC를 주는 거래가 발생했다고 가정하자. 여기서 1BTC를 전송한다는 ‘의사표시’만 한 것이지 아직 실제로 가치가 이동하지는 않았다. 또한 비트코인 거래는 거래를 생성하는 사람과 거래서명을 하는 사람이 같을 필요는 없다.
  2. Bob(CEO) 혹은 John(비서)를 통한 거래 , 이 두 과정 중 어느쪽으로든 거래가 생성되면, 누가 거래를 생성했든 자금원의 소유자(Bob)가해당거래의 서명을 해야 한다. 서명이 완료되면 거래가 유효화 되고 돈의 송금에 필요한 모든 정보가 담긴다.
  3. 이 거래정보는 비트코인 네트워크에 전송되어야 하는데 이것은 수많은 비트코인 노드들중 하나에 이 거래데이터가 도달해야 한다는 것을 의미한다. 비트코인 거래정보는 개인키나 인증서를 포함하지 않아 어떤 네트워크, 어떤 방식으로든(wifi, 블루투스, NFC, 바코드 등, 이 때문에 우주에서도 비트코인거래가 가능함) 하나의 노드에만 전송이 되면 된다. 그렇기 때문에 누구라도 기관에 가입이나 신뢰없이 쉽게 거래를 생성하고 실행을 할 수 있다.
  4. 거래정보가 하나의 노드에 도달하면 이 노드는 비트코인 네트워크 상에 있는 모든 노드에게 이 거래정보를 ‘전파’해야 한다. 비트코인 네트워크는P2P를 기반으로 하기 때문에 모든 노드는 동등한 지위를 가지고 있고 정보 하나를 수천개의 노드에 전파하는데 불과 몇 초도 걸리지 않는다. 이렇게 각각의 노드들이 거래를 유효화하고 각자가 정보 전송의 시발점이 되는 역할을 하기 때문에 공격자는 어느 곳을 공격할지 알 수 없게 되어 보안이 더욱 강화되는조건을 갖추게 된다.
  5. 이렇게 전파되는 과정에서 채굴을 하고있는 노드에 의해 거래가 검증된 후 이 거래정보가 영구적으로 블록에 기록된다. 이때가 돼야 비로소 Bob이 Alice에게 1BTC를 전송했다고 할 수 있다.
  6. 이 거래내역은 과반수의 해시파워가 검증을 했기 때문에 이미 올라간 기록을 다시 바꾸기도 불가능하다. (중앙화된 서버는 합의 없이 분산화 장부보다비교적 훨씬 쉽게 기록 변조 가능) 왜냐하면 다시 그 내역을 위변조 하려는 51%의 해시파워가 있어야하고 51% 해시파워가 있다 하더라도 10분에 하나씩 계속해서 생성되는 기존에 합의되고있는 블록생성 속도보다 위조한 블록을 더 빠르게 연산하고 합의를 봐야하는데 이것이 불가능하기 때문이다.
  7. 여기서 만약 3BTC를 송금했다면 2.9BTC는 실제 지갑으로 들어가는 비트코인 액수이며 0.1BTC는 채굴자에게 보내는 수수료라고 생각하면 된다.

2. 비트코인 기술의 의의와 한계


의의
비트코인은 탈중앙화된 시스템인 블록체인 기술을 기반으로 동작하여 이로 파생된 많은 장점이 존재한다.
  1. 보안성이 보장된다. 블록체인에 한 번 기록된 정보는 다시 수정하거나 삭제 할 수 없는 비가역성과 하나의 체인에 모든 거래 내역이 순차적으로 연결되어있는 등의 특성 상 네트워크 대내외의 공격으로부터 안전하다.
  2. 투명성을 갖기에 모든 거래 내역을 누구나 언제든 공개적으로 실시간으로 확인이 가능하다.
  3. 디지털 화폐로서 온라인을 통해 보유가 가능하기에 휴대성을 가지기에 편리하다.
  4. 통제 가능한 권한과 책임이 특정한 한 주체에 집중이 되지 않는 ‘탈중앙성’을 갖기에 외부기관의 ‘통제’로부터 자유롭다.
  5. 신원 증명 절차 없이 거래가 가능하여 익명성을 유지할 수 있다.

한계
하지만 중앙 정부가 없는 만큼 책임 주체가 없는 문제, 네트워크가 커질수록 저장공간이나 속도가 부족해지는 확장성 문제, 특정 하드웨어의 독점이나 에너지 낭비로 인하여 지속 불가능한 PoW 합의 매커니즘, 체인 포크을 통한 소프트웨어 해킹 등의 문제도 존재한다. 필자들은 그 중 비트코인의 확장성 문제를 자세히 다뤄보고자 한다.

3. 비트코인의 확장성 문제

확장성이란 사용자의 요구에 맞추기 위해 크기나 용량을 변경해도 그 기능이 잘 동작할 수 있는 능력을 말한다. 비트코인 네트워크의 초창기에는 사용자 수가 많지 않아 처리속도가 10분 안에 한 블록에 모든 거래를 담을 수 있었다.

하지만 사용자 수가 증가함에 따라 처리해야 할 거래량이 많아지게 되었고 한 블록이 생성되는 평균시간인 10분동안 발생한 거래를 다 담을 수 없는 상황이 발생했다. 시간 문제 없이 사용량이 증가하더라도 어떠한 문제없이 전송 처리용량을 증가시킬 수 있는 방안이 필요하게 되었다.

비트코인의 “확장성 문제” 해결방안
암호화폐의 확장성 문제를 해결하기 위해서는 블록에 더 많은 정보를 담거나 노드들 간의 거래 합의 속도를 향상시켜야 한다. 이를 해결하기 위해서는“사이드체인”이라는 방법이 있다. 이에 대한 설명에 앞서 사이드체인의 상위 개념인 오프체인, 그리고 이와 반대되는 온체인 개념에 대해 설명하고자 한다.

(1) 온체인

온체인이란, 블록체인 네트워크 상 발생하는 트랜잭션이다. 온체인 상 거래 정보는 모두 블록에 포함되며, 기록된 거래는 영구적으로 삭제가 불가능하고 높은 안정성을 가지고 있다는 특징을 가진다. 비트코인 또한 온체인 방식으로 자체 네트워크를 구성하고, 모든 거래 내역을 기록하고 공개한다.

그러나 온체인에게만 의존할 경우 다양한 문제가 발생할 가능성이 커진다. 대표적으로 네트워크 상에서 트랜잭션이 확정되기까지 많은 시간이 소요되는 속도 문제(초당 트랜잭션의 수가 줄어든다), 모든 트랜잭션이 모두에게 공개되는 프라이버시 문제, 늘어나는 비용 문제, 빅블록 문제, 확장성 문제가있다.

*빅블록 문제 : 확장성 문제를 해결하기 위해 블록의 크기 자체를 늘리는 “빅블록” 방법에서 발생한 문제들. 빅노드를 채굴가능한 상위급 채굴자원을 보유한소수의 노드만이 작업을 지속하게 되는 채굴의 중앙집권화 문제, 빅블록 전환 시, 필요한 모든 네트워크 구성원들의 하드포크 문제 등

(2) 오프체인

위에서 언급된 문제들을 해결하기 위해 오프체인이 나왔다. 오프체인은 메인 블록체인 시스템 (비트코인)이 아닌, 그 외부 네트워크를 활용한 트랜잭션으로 확장성문제가 해결 가능하다. 핵심 데이터만을 블록체인에 기록하고 나머지 데이터는 블록체인이 아닌 DApp의 중앙 서버에 기록된다. 이 방법은 수수료가 저렴하고, 트랜잭션의 속도가 빠르고 처리량이 많다.

우리가 이번 아티클을 통해 살펴볼 사이드체인은 이러한 오프체인 솔루션 방식 중 하나이다.

비트코인의 사이드체인
사이드체인이란 메인 블록체인과 별개의 블록을 측면에 있는 체인에 생성하지만 메인 체인과 쌍방향으로 이용가능한 체인이다. 사이드 체인은 노드 간의 정보를 공유하기 때문에 참여자가 없어도 기존 노드 수를 근간으로 추가 노드를 생성해 신규 블록체인 플랫폼의 무결성이 낮은 문제를 해결한다. 또한 핵심적으로, 메인 체인 외의 곳에서 트랜잭션을 하는 특성 상 블록체인의 성능(확장성) 향상이 가능하다.

이러한 사이드체인을 이용한 비트코인의 확장성 문제를 해결하는 솔루션들은 대표적으로 3가지가 있다.

(1) 하드포크

하드포크란 기존 비트코인 네트워크에서 분기되어 블록 사이즈가 1M보다 큰 새로운 블록체인 네트워크를 만드는 것이다. 하드포크는 하드포크 전 블록과, 하드포크 후 블록 사이에 호환이 되지 않는다는 특징을 가지고 있다.

2017년 8월 1일, 8M까지 블록 사이즈 확장이 가능한 비트코인캐시(BCH)가 탄생했으며 비트코인캐시는 6개월마다 정기적으로 네트워크 업그레이드를위한 하드포크를 진행한다. 2018년 5월 진행된 하드포크에서는 블록 크기를 32MB로 다시 한번 늘렸고, 확장성 및 안정성을 위해 다수의옵코드(OPcode)를 도입했다.

문제는 비트코인캐시가 블록 크기를 8M까지 늘렸다고 해도 비트코인과는 다른 새로운 암호화폐이기 때문에 비트코인 캐시가 비트코인의 확장성을 완전히 해결했다고 할 수는 없다.

(2) 세그윗

세그윗이란 ‘Segregated Witness’의 약자로 블록 내에서 서명 부분을 따로 분리하여 저장하는 것을 의미한다. 서명 부분을 메인 체인이 아닌 사이드체인에 별도로 저장하여 기존 블록의 크기는 1M로 그대로 두는 대신 블록에 담을 수 있는 용량을 평균 2M까지 늘릴 수 있다. 세그윗 업그레이드를 시행할 경우, 비트코인 블록이 거래를 더 많이 처리할 수 있게 될 뿐만 아니라 이중 지불에 대한 보안성 부분도 강화가 된다는 특징을 가지고 있다.

비트코인의 세그윗은 2017년 8월 진행되었는데 비트코인의 거래량을 약 2배 정도 증가시켜주는 정도에 그치기 때문에 비트코인의 확장성에 도움은 주지만, 이 또한 문제를 완전히 해결해 주지 못했다는 점에서 한계가 있다.

(3) 라이트닝 네트워크(Lightning Network)

라이트닝 네트워크란 같은 거래 당사자가 비트코인 블록체인 상에서 수 차례의 거래를 진행할 시, 이 모든 내역이 블록체인에 입력되어 블록의 용량을 차지하고, 사용자들이 높은 수수료를 지불해야하는 단점을 보완하고자 제시된 솔루션이다.

이는 거래 당사자들의 동의 하에 비트코인 블록체인 외부에 새로운 거래 채널을 열어 여러 번의 거래를 진행하는 방식으로 어느 정도 거래 내역이 모이면채널을 닫고 최종 거래 내역을 블록체인 상에 기록한다. 이때, 여러 번의 거래를 진행하더라도 두 번의 거래로 인정되어 수수료를 절약할 수 있고 블록체인상에 거래 내역을 기록할 때 이를 암호화해서 당사자 외에는 거래 기록을 열람할 수 없도록 조치할 수 있다는 특징을 가지고 있다.

또한 소규모 결제 및 다수 간의 거래도 가능하며, 당사자 모두가 승인(서명)을 해야만 거래가 인정된다. 만약 일정 시간이 지나도 블록체인에 거래가 기록되지 않으면 해당 거래를 무효화하고 거래되었던 코인을 원래대로 되돌릴 수 있다.

이러한 장점에도 불구하고 일회적인 거래를 진행하는 경우에는 비트코인 블록체인 상에서 거래를 진행하는 것보다 시간과 수수료를 많이 지불해야 한다는불편함이 있다. 또한 라이트닝 네트워크를 이용하려면 일정량의 암호화폐를 채널 안에 미리 예치해 두어야 한다.

하지만 아직까지 사람들은 암호화폐보다 명목화폐를 더 선호하므로, 코인을 현금화하기 위해 채널을 닫아버릴 가능성이 높다. 그러므로 암호화폐 거래가 보편적이지 않은 현재 시점에서 라이트닝 네트워크를 유지한다는 것은 사실상 어려울 수 있다.

본 글에서는 비트코인에 사용된 기술, 그로 인해 발생한 문제점과 해결방안에 대해 알아보았다. 다음편에서는 비트코인 시장 동향과 일상 생활 속 비트코인, 새로운 아이디어로서 나온 오디널즈 프로토콜에 대해 알아보겠다.

함께 보면 좋은 콘텐츠