착한 가상화폐는 블록체인을 살린다

김종현 승인 2019.03.18 13:50 | 최종 수정 2022.01.27 17:23 의견 0

[플랫폼뉴스 김종현 칼럼니스트] 중앙은행의 통제 하에 발행되는 화폐와 달리, 비트코인은 채굴(Mining)을 통해 발행되는가상화폐 유형으로, 평균 10분 주기로 새로운 비트코인이 발행된다. 비트코인의 창시자 사토시 나카모토는 블록체인 네트워크에 참여한 개인들이 비트코인 채굴에 경쟁적으로 참여하게 하기 위해, 정교한 연산작업과 이에 대한 보상으로 비트코인을 수수료를 지급하는 메커니즘을 도입하였다. 채굴작업은 비트코인 네트워크에서 10분마다 새롭게 주어지는 해시캐시(Hashcash) 연산문제의 결과값을 예측하는 과정을 거친다. 이 과정은 해시캐시 문제를 풀면서, 그 동안 발생한 거래를 검증하고, 새로운 블록을 생성하는 권한을 받는 작업증명 (PoW, Proof of Work)으로 불린다.

▲ 사진=픽사베이


착한 가상화폐는 블록체인을 살린다


비트코인 채굴과 수수료

▲ 사진=픽사베이

해시캐시문제는 약 10분동안 발생한 비트코인 송금거래 (Transaction) 정보, 블록구성에 대한 정보인 블록헤더의 값과 넌스 (nonce)값을 조합한 3종류의 정보에 대한 해시(Hash) 값이 특정 값 이하로 되는 넌스값을 찾아야 한다. 즉, 비트코인 송금거래정보, 블록구성에 대한 정보는 공개된 정보이고, 아무도 모르는 무작위 숫자인 넌스 값을 맞추는 참여자가 작업증명(PoW)를 수행한 것으로 인정되고, 비트코인 채굴권한을 부여받는다.

비트코인은 Adam Back이 1997년 고안한 해시캐시 (Hashcash, http://www.hashcash.org) 암호화 알고리즘 (Cryptographic algorithm)을 채택했다. 해시는 입력된 데이터 또는 파일을 고정길이의 문자열 (bit string)으로 변환해주는 함수이다. PoW에서 사용되는 해시캐시 문제는 해시함수 SHA256의 해시값 (256 bit 숫자)이 매 10분마다 동적으로 조정되는 문제의 목표값 (2187, 2016.4월 기준)보다 작아야 되며, 예측불가능한 유사난수 (pseudorandom)함수로 목표값이 2187일 경우, 평균 264번 시도된다.

▲ 사진=픽사베이

Hashcash가 20bit의 POW를 찾는 데 걸리는 시간을 나타낸다. Hashcash는 leading zero bits가 특정조건을 만족할 때까지, 약간씩 바꾸며 지속적으로 Hashing한다. Hashcash가 mining을 시작하고, 완료될 때, 3가지 time fields를 생성하는 데, 그 중에서 user time field는 어느 정도의 hashcash가 사용되었는지를 알려준다. 컴퓨터가 Hashcash하는데 필요한 평균 CPU time은 2초 이지만, Hashcash는 random search로 수행되기 때문에, 10%는 0.1초, 다른 10%는 4초가 걸릴 수 있다.

해시캐시 문제를 성공적으로 푼 채굴자는 작업에 대한 보상으로, 채굴 수수료를 지급한다. 이 채굴 수수료가 새로이 발행되는 비트코인이다. 채굴 수수료는 비트코인이 처음 도입된 2009년부터 2012년까지는 1개 블록이 생성될 때마다, 50 BTC가 지급되었다. 비트코인 총 발행량을 2100만 BTC 제한하기 위해, 채굴수수료를 4년 주기로 반감(1/2씩 감소) 시킨다. 2016년까지 (2013~2016년 기간)는 채굴 건 당 25 BTC, 2020년까지는 12.5 BTC로 감소되어 채굴된다. 매 4년마다 21만개의 블록이 생성되고, 21만개씩 블록이 생성되면, 채굴수수료는 반감된다.

▲ 사진=픽사베이

채굴수수료를 받는 채굴자는 채굴하는 시간동안 (약 10분간격) 발생한 비트코인 거래들을 묶어 새로운 블록을 한 개 생성한다. 이 거래들을 담은 신규블록을 기존의 블록체인에 추가하여 연결한다. 이렇게 체인으로 연결된 블록들은 각 블록 간의 전 후 블록과 연결되어 있어서, 위변조가 불가능하다. 블록의 거래내용을 변환한 해시값을 비교하여, 블록의 위변조 유무를 검증한다.

채굴수수료를 받은 채굴자는 채굴시간 동안 (약 10분) 발생한 비트코인 거래를 검증하고, 새로운 블록에 넣고, 기존의 블록체인에 신규블록을 추가로 연결한다. 새로운 블록 생성 시까지 발생한 거래 중에서, 출력보다 입력금액이 큰 트랜잭션에는 거래에 거래 수수료도 추가로 받는다. 이 때, 거래수수료를 너무 적게 제시하면, 새로운 블록에서 거래가 누락될 위험도 있다. 채굴수수료는 반감규정에 따라, 2040년에는 미리 설정해 둔 2100만 BTC가 모두 채굴되어, 거래 수수료만 채굴에 대한 보상으로 받을 수 있다. 실제로 2017년 초에 2~3천원 수준이던 거래수수료가, 비트코인 거래가 급등한 2017년 말에는 2~3만원으로 수준으로 증가하고 있다. 비트코인이 거래가 활성화되면, 채굴수수료가 없다고 하더라도, 거래수수료만으로도 채굴에 대한 경쟁이 지속될 수 있을 정도로, 비트코인은 스스로 운영되는 매커니즘을 지니고 있다.

▲ 사진=픽사베이

새로운 블록 생성 시까지 발생한 거래 중에서, 출력보다 입력금액이 큰 트랜잭션에는 거래 수수료도 추가로 받는다. 이 때 거래수수료를 너무 적게 제시하면, 새로운 블록에서 거래가 누락될 위험도 있다.

채굴수수료는 반감규정에 따라, 2040년에는 미리 설정해 둔 2100만 BTC가 모두 채굴되어, 거래 수수료만 채굴 수입으로 산정된다. 비트코인은 현재 소수점 8자리까지 분할할 수 있다.

비트코인 송수신을 위한 비트코인 소유상태는 UTXO (Unspent Transaction Outputs)에 의해 표현된다. UTXO는 비트코인에서 소유를 표시하는 “상태 (state)”는 생성되었지만, 사용되지 않은 코인의 집합이다. 코인금액과 이 UTXO의 소유자 (20byte의 주소)의 암호화된 공개키 정보를 포함하고 있다.

트랜잭션은 하나 이상의 입력 및 출력을 포함하는데, 각 입력은 송신자 지갑주소에서 선택된 기존 UTXO에 대한 참조정보와 해당 지갑주소에 해당하는 개인키가 생성한 암호화된 서명이 포함된다. 각 출력은 상태에 추가될 새로운 UTXO정보를 포함한다.

10분 간격으로 채굴이 되도록 채굴난이도(Hash difficulty)를 조정하여, 새로운 블록이 쌓이는 주기를 중앙관리자 없이 자체적으로 관리한다. 10분 간격의 채굴주기를 유지하기 위해, 채굴 난이도 목표 값은 2016개의 블록(약 14일)이 생길 때마다 재조정된다.

즉, 새 블록이 평균 10분마다 생성되도록, 채굴난이도를 지속적으로 조정한다. 2016개의 블록이 생성되는 시간을 20160분으로 나눈 비율을 현재의 채굴난이도에 곱해서, 새로운 채굴난이도를 정한다. 약 2주 동안 2016개 보다 많은 블록이 생성되면 비율이 1보다 커져서 난이도가 높아지고, 2016개 보다 적은 블록이 생성되면 비율이 1보다 작아져서 난이도가 낮아지며, 전체적으로 10분의 채굴주기가 자율적으로 유지되는 정교한 시스템이다.

▲ 사진=픽사베이

사토시 나카모토가 만든 최초의 블록(Genesis Block)에서는 난이도가 1이었다. 이 때는 비트코인이 세상에 널리 알려지지 않고, 채굴경쟁이 낮아서, 쉽게 채굴이 가능했다. 사토시 나카모토는 쵝에 100만 BTC를 채굴한 후, 잠적한 것으로 알려지기도 한다.

2015년 12월 10일의 채굴난이도는 707,408,283 이었고, 12월 21일에는 1,201,411,092로 바뀌었다. 채굴난이도가 점점 높아지는 이유는 거대한 컴퓨팅 파워를 가진 채굴자가 증가하면서, 채굴을 위한 연산작업 시간이 단축되고, 채굴경쟁은 더 치열해지고 있다. 채굴난이도가 높아지면서, 비트코인 채굴을 위해 필요한 해시파워 (Hash Power), 즉, 블럭 1개 생성에 5,000,000 TH/s(1 TH/s=1,000,000,000,000번/초 해시연산) 이상의 해시 파워가 필요하다.

결론적으로 비트코인은 채굴관련 3가지 매커니즘, 즉, 거래 수수료와 채굴난이도 조정에 의해 자율적으로 운영되는 시스템이다. 매 블록 생성을 위해, 해시캐시 문제가 주어지고, 채굴과 거래수수료를 얻기 위해, 해시캐시 문제풀이를 자발적으로 동시에 경쟁적으로 수행하며, 매 10분마다 블록이 생성되도록 주기가 조정되어, 중앙통제없이 P2P 기반으로 화폐가 발행 및 운영되고 있다.

저작권자 ⓒ 플랫폼뉴스, 무단 전재 및 재배포 금지