avatar
Published on

비트코인 작업증명의 올바른 가격

Author
  • avatar
    Name
    yceffort

The fair cost of Bitcoin proof of work

원문

블록체인

2009년 사토시 나카모토라는 익명의 개발자가 시작한 디지털 통화인 비트코인은, 신뢰할 수 없는 사람들 사이에서 제3의 중개자, 또는 신뢰가 필요한 권한이 없어도 인터넷을 통해 가치를 교환할 수 있음을 보여주었다. 비트코인은 100억달러 이상의 자본화에 도달했고, 이 시스템은 지금까지도 심각한 공격에 의해 도전 받지 않고도 수만건의 거래를 처리하고 있다. 블록체인은 비트코인의 주요 기술이다. 비트코인 네트워크에 참여하는 모든 사람이 사용할 수 있는 분산원장이다. 네트워크에서 비트코인 트랜잭션은 공개되며, 유효한 트랜잭션은 시가나 순대로 원장에 등록된다. 트랜잭션의 유효성은 네트워크 참가자들이 확인하고, 유효한 트랜갲션은 평균 10분 마다 암호화되며, 이전에 블록에 붙게 된다. 블록은 연대순으로 구성된다. 그래서 블록체인이다.

합의 메커니즘

비트코인 블록체인의 기초는 블록을 결합시키는 검증, 그리고 암호화 메커니즘이다. 비트코인에서 이 메커니즘은 다수결이다. 비트코인에서 노드의 상당부분이 트랜잭션 목록과, 이전블록에 있는 정보에서 주어진 난이도 수준보다 작은 해시 번호 (난스)를 생성하는 확인 프로세스에 관여 한다. 해싱은 임의의 길이의 입력사이에 지정된 길이 (비트코인의 경우 256비트)를 매핑하는 함수다.

자격d을 갖춘 다수를 차지하기위해 암호화 프로세스는 우연히 주어진 값보다 작은 해시번호를 생성해야 하는 매우 계산 집중적인 작업을 하게 된다. 이 아이디어는 '한개의 CPU당 1개의 투표'라는 말을 빌려, 계산능력을 보여주도록 함으로써 잘못된 중복을 피하기 위한 것이다. 이문제를 해결하는 첫번째 노드 (작업증명)은 비트코인에서 보상을 받는다. 이것이 새로운 비트코인이 생성되는 원리다.

![estimated-hash-rates-and-associated energy-consumption](../images/estimated-hash-rates-and-associated energy-consumption.png)
하드웨어별 비트코인 마이닝에 걸리는 해시레이트와 에너지 소비량. 현재는 더 이상 CPU와 GPU는 사용되지 않는다.

작업 증명의 비용

현재 비트코인 작업 증명은 매우 비싸다. 전세계 마이너들은 매초마다 수십억 해시를 생성해 내고 있다. 해싱은 비교적 효율적인 작업이지만, 현재 10억개의 해시를 만들어내면서 10억 와트가 매초마다 세계적으로 소비되고 있다. 전세계 전기가격은 변하고 가격은 많은 요인에 좌우되지만, 이 에너지는 대략 시간당 5만달러를 차지할 것으로 보인다.

시스템이 현재 시간당 10,000개 미만의 트랜잭션을 처리하고 있다는 점을 고려하면, 트랜잭션당 약 5달러를 초과하는 비용이 발생한다. 이 비용은 사용자가 지불하지 않고, 새로 만들어진 비트코인이 수락되는 보상으로 마이너가 차지하게 된다. 현재 가장 빠른 마이너에게 주어지는 보상은 (가격 변동에 따라 달라지지만) 15,000달러에 해당하는 25비트코인이다. 이전 추정치에 따르면, 마이너는 10분 마다 평균약 5만달러 / 6 =8,333 달러의 전기를 소비하여 블록을 생산하고, 하드웨어 기반 구조에 따라서 상당한 이익을 가져다주고 있다. 흥미롭게도, 이 보수는 곧 절반인 12.5 비트코인으로 줄어들게 되면 더 적은 마진이 남게 된다.

비트코인 채굴 1년간 총 전기료는 4억달러가 넘는 엄청난 비용이며, 이는 어찌되었건 엄청난 낭비다. 반면에, 작업 증명이라는 거래의 유효성을 검증하기 위해 경쟁하는, 그리고 공격에 값비싼 대가를 치르게 하기 위한 블록체인을 순수하게 유지하기 위하는 메커니즘이다. 과연 이 비용은 정당할까?

작업증명의 정당한 비용

비트코인 작업 증명의 정당한 비용은 얼마일까? 내 견해로는, 이중 지출 공격을 수익성있지 않게 하는 가격이 올바른 작업증명 비용이라고 생각한다. 이 원칙내에서, 작업 증명의 공정한 비용을 추정하는 것은 상대적으로 간단하다.

어느정도의 비트코인을 소유하고 있으며, 이를 여러 사용자에게 같은 비트코인을 사용하려는 공격, 즉 이중 지출 공격을 가정해 보자. 탐욕스러운 공격자는 가능한 가장 많은 한 양의 비트코인을 두배로 소비하려고 시도하지만, 현재 블록 당 거래액이 약 백만달러 수준에서 제한되고 있다. 블록의 일반적인 총 트랜잭션 값보다 훨씬 더 큰 비트코인을 가지고 있는 트랜잭션은 네트워크에서 원치않는 어그로를 끌 수 있다. 때문에 이중 지출 금액을 약 백만달러로 제한한다. 물론, 복제 또는 병렬, 연속적으로 반복될 수도 있지만, 곧 알 수 있듯이 현재 계산의 결과에는 영향을 미치지 않는다. 어쨌든, 공격자가 백만달러의 잠재적인 이익을 얻을 수 있다. 성공하기 위해서는 공격자는 중복된 트랜잭션에 대해 모두 유효성 검사를 해야 하며, 이전 블록에 두 블록이 연결된 포크를 생성해야 한다. 공격자가 충분한 컴퓨팅 파워를 가지고 있다고 가정했을때, 두 개의 유효한 해시를 생성하여 두 블록을 암호화 하고 두거래가 모두 확인되었다고 해야 한다. 그러나 거래의 최종 완성을 위해, 통상적으로 6번의 확인이 필요하다. 따라서 공격자는 이중 지출 거래가 해결된 것으로 간주되기전에, 6개의 유효한 해시를 생성하기 위해 컴퓨팅 파워를 사용해야 한다. 두 포크 중 하나만 공격자가 인위적으로 검증해야 하며, 다른 하나는 시스템에 유효한 것으로 간주되어 다른 마이너들에게 전파 될 수 있다. 공격자는 이를 전파 함과 동시에 이에 대해서도 보상으로 보상받을 수 있다. 물론, 그렇게 오랫동안 포크를 전파하는 것을 아무도 모른다는 것은 비현실적이지만, 단순한 가설로 삼자. 포크의 인공적인 전파에는 작업증명 비용 * 6이 필요하다. 이 비용이 이득보다 열등하다면, 공격자는 이익을 얻을 것이다. 요약하자면, 매우 간단한 공식을 만들 수 있다.

equilibrium fair cost of proof of work per block=duplicated action of the value of a blocknumber of blocks required for setting\textrm{equilibrium fair cost of proof of work per block} = \frac{\textrm{duplicated action of the value of a block}}{\textrm{number of blocks required for setting}}
블록당 작업 증명 비용=블록에 대한 중복 작업체인 정착에 필요한 블록의 수\textrm{블록당 작업 증명 비용} = \frac{\textrm{블록에 대한 중복 작업}}{\textrm{체인 정착에 필요한 블록의 수}}

현재 값과 계산을 정확하게 하기 위해, 공격자는 블록의 일반적인 가치 60% (60만달러)를 이중 지출 공격에 사용한다고 가정할 수 있다. 블록체인에 성공적으로 정착하기 위해서는, 6블록을 요구하는 현재 상태에서 다음과 같은 추정치가 나올 수 있다.

equilibrium fair cost of proof of work per block$10,000\textrm{equilibrium fair cost of proof of work per block} \approx \$10,000

이 계산은 블록 값의 작은 부분에 대한 공격이 먼저 선행되어야 하며, 모든 블록이 검증되지 않은 상태에서 한 시간 이상 긴 포크가 전파되지 않을 가능성은 매우 낮기 때문에 이 비용은 과대 평가 되었다고 불 수 있다. 따라서 위 비용의 10% 정도도 공격자에게 충분한 억제 효과가 발생할 수 있다. 이는 비트코인에서 작업증명을 위한 현재 전력 비용 정도의 규모다.

따라서 우리는 비트코인의 작업증명에 대한 현재 비용이 크고 낭비적이지만, 필요하다고 결론 내릴 수 있다. 이러한 비용 절감은 정착에 필요한 블록수를 늘리거나, 초기단계에서 포크를 자동으로 감지하고 차단하여 만들어 낼 수 있다. 반면에 공격자는 전기를 훔치거나 (-_-;) 마이닝 풀을 해킹하여 비용을 줄일 수 있다.

모든 기능을 하는 다수결의, 저렴한 메커니즘을 구현할 수 있을까? 블록체인은 계산 집약적인 작업증명이 필요하지 않은 몇가지 다른 메커니즘을 통해 구성될 수 있다. 실제로 작업증명은 익명의 신뢰할 수 없는 당사자들 간 시스템에서 자격을 갖춘 '유권자'를 배출하기 위해 만들어진 메커니즘이다. 유권자의 신원을 확인할 수 있거나, 통제 되지 않는 유권자의 중복을 피할 수 있는 메커니즘이 있다면, 이러한 비용을 줄이거나 없앨 수도 있다. 그러나 이러한 다른 매커니즘도 익명성, 개방성 또는 평등한 분산 검증과 같은 일부 다른 속성도 완화해야 한다.