간결한 암호화폐 PoW 채굴 원리 및 도전 과제 해석
이 글은 11월 26일 공공 계정 암호화 골에서 발표되었으며, 저자는 Jerry Qi입니다.
제가 7학년 학생일 때, 저는 이미 암호화폐의 세계에 매료되었습니다. 처음에는 제 노트북이 바람처럼 빠르게 Crypto-mining 소프트웨어를 실행하면 무료로 암호화폐를 생성할 수 있는 무료 화폐 생성기라고 생각했습니다.
결국 제 노트북은 암호화폐를 생성했지만, 그 양은 매우 매우 적었습니다.
제가 제 노트북으로 한 일은 본질적으로 "암호화 채굴"입니다.
출처: btcwires
"채굴"
당신은 암호화폐 비트코인에 대해 들어봤을 것이고, 이와 관련된 "채굴"이라는 용어에 대해서도 들어봤을 것입니다.
암호화폐 채굴은 간단히 말해, 채굴자 또는 개인이 장비를 사용하여 블록체인 네트워크를 지원하는 "작업"을 수행하여 암호화폐 보상을 받는 과정입니다.
Onenote의 소형 P2P 네트워크 스케치
블록체인: 이는 네트워크에서 사람들의 행동을 기록하는 분산된 기록 또는 분산 원장입니다. 따라서 암호화폐의 블록체인 네트워크에서 블록체인의 기능은 네트워크에서 개인의 거래를 기록하는 것입니다.
이 글에서는 비트코인을 예로 들어 채굴의 의미를 해석하겠습니다.
채굴자의 "작업"이라는 주제로 돌아가 보겠습니다. 채굴자가 비트코인 보상을 받기 위해 해야 할 간단한 "작업"은 비트코인 블록체인에서 거래를 검증하는 것입니다.
검증할 때, 채굴자는 할당된 거래가 합법적인지 확인하고 거래 참여자가 동일한 양의 암호화폐를 두 번 지불하지 않도록 하기 위해 일련의 검사를 수행합니다. 예를 들어, Joe가 Brandon에게 12개의 비트코인을 보냈고, Brandon이 Tony에게 7개의 비트코인과 Max에게 8개의 비트코인을 보내려고 한다면, 이는 사기 거래로 간주됩니다. 왜냐하면 7+8>12이기 때문입니다. 제가 방금 제시한 상황은 "이중 지출 문제"의 한 예입니다: Brandon이 동일한 비트코인을 두 번 소비하려고 시도하는 것입니다.
채굴자가 0-4 메가바이트 사이의 비트코인 거래(약 1500-3000건)를 검증하면, 이는 하나의 블록의 대략적인 최대 크기에 해당합니다. 그들은 비트코인 보상을 받기 위해 비교적 쉬운 작업의 절반을 완료했습니다. 그러나 검증 이전의 작업은 가장 복잡하여 채굴자가 거래를 검증할 자격을 갖추게 합니다.
채굴 산업의 운
문자열 시퀀스를 먼저 해결함으로써, 즉 소위 작업 증명(Proof of Work)을 생성하는 것입니다. 작업 증명(Proof of Work)을 생성하는 것은 채굴자들이 가장 많은 계산 능력을 필요로 하는 과정입니다. (아래에서 후속 장에서 작업 증명(Proof of Work)이라고 불리는 이유를 설명하겠습니다.)
작업 증명(Proof of Work) 알고리즘을 이해하려면, 먼저 블록체인에서 "해시"라는 용어에 익숙해져야 합니다.
네트워크가 블록체인에서 블록의 변조를 감지하는 방법은 해시 값을 통해서입니다; 이는 블록 내의 정보로 정의된 숫자와 문자로 구성된 긴 문자열입니다. 데이터를 해시 함수에 통과시키면, 예를 들어 비트코인이 사용하는 SHA-256을 사용하여 특정 입력에 대한 시퀀스가 생성됩니다. 즉, 입력 데이터가 하나의 문자를 변경하더라도 출력의 해시 값은 완전히 변경됩니다. 또한, 해시는 암호화 가능하지만 복호화할 수 없는 결과이므로, 원래 데이터를 얻는 데 사용할 수 없고, 해시의 입력 데이터가 동일한지 검증하는 방법으로만 사용될 수 있습니다.
작업 증명(Proof of Work)을 생성하기 위해서는 채굴자가 해시 알고리즘을 실행하여 문제의 적절한 답을 "추측"해야 합니다. 비트코인 블록체인 네트워크의 경우, 채굴자는 특정 요구 사항을 충족하는 해시 값을 먼저 생성해야 하며, 이 해시 값은 "목표 해시"라고 불립니다.
목표 해시를 추측하는 데 필요한 정보는 새 블록의 블록 헤더에 존재합니다. 포함된 내용: 블록 버전 번호, 타임스탬프, 이전 블록의 해시 값 및 목표 해시 값.
onenote의 추측 과정 스케치
목표 해시의 답은 이전 블록의 해시 값, 현재 블록의 거래 데이터, 그리고 0-4,294,967,296의 정수(약칭 nonce)를 더한 후 해시 알고리즘에 넣어 생성됩니다.
만약 답이 목표 해시의 요구 사항을 충족하면, 해당 블록은 블록체인에 추가됩니다. 거래를 가장 먼저 검증하고 해당 블록 해시에 추가된 nonce를 찾은 채굴자는 비트코인 보상을 받게 됩니다. 그렇지 않으면 그들은 유효한 목표 값을 찾기 위해 계속 시도해야 합니다.
해시 알고리즘의 무작위성 때문에, 우리는 목표 해시를 충족하는 값을 결정하기 위해 많은 무작위 추측을 해야 합니다.
출처: Investopedia
nonce를 찾는 것이 이미 상당히 어렵고, 같은 네트워크에서 ≥ 백만의 다른 개인과 경쟁하기 때문에, 장치가 비트코인 보상을 받을 확률은 복권에 당첨될 확률과 비슷합니다. 따라서 처리 능력을 높이거나 여러 장치를 사용하여 더 빠른 해시 속도(Hash Rate)를 얻을 수 있습니다. (단위: KH/s, MH/s, GH/s 등)
해시 속도(Hash-rate)라는 용어는 하나 또는 여러 장치가 숫자를 계산하고 거래를 검증하는 속도를 측정하는 양입니다(계산 능력의 척도입니다).
합의 메커니즘
비트코인 블록체인과 같은 탈중앙화 P2P 네트워크는 중심 인물이 없기 때문에 서로 다른 합의 메커니즘에 따라 결정을 내릴 수밖에 없습니다. 합의 메커니즘은 거래 검증과 동시에 채굴의 목적을 정립합니다.
출처: 위키백과
합의 메커니즘은 여러 형태가 있지만, 모두 같은 목표를 가지고 있습니다: "기록의 진실성과 완전성을 검증하고 보장하는 것"(출처: Tech in Asia).
현재 주요한 세 가지 메커니즘이 있습니다: 작업 증명(Proof of Work), 지분 증명(Proof of Stake), 권한 증명(Proof of Authority). 이 글에서는 합의의 작업 증명(Proof of Work) 방법에 중점을 두겠습니다.
채굴에 대해 이야기하자면, 이는 작업 증명(Proof of Work) 모델의 작동 원리를 요약합니다: 개인은 먼저 작업 증명(Proof of Work)을 생성한 다음, 비트코인 거래를 검증하여 블록체인 내의 기록이 진실임을 보장합니다. 그러나 거래를 검증하기 전에 작업 증명(Proof of Work)의 목적에 대해 깊이 이해해 보겠습니다.
작업 증명(Proof of Work)의 역사와 목적
작업 증명(Proof of Work)이라는 개념은 1993년에 이미 등장했으며, Cynthia Dward와 Moni Naor가 논문(스팸 방지를 위한 메모리 바운드 함수에 대한 논문)에서 제안했습니다. 이 논문에서는 스팸을 방지하는 다양한 방법을 설명했습니다. 이 논문의 핵심은 계산 능력을 통해 이메일을 보내는 아이디어입니다.
예를 들어, 당신이 저에게 이메일로 메시지를 보내고 싶다면, 그 메시지를 보내기 위해 30초의 계산 능력을 소비했음을 증명해야 합니다.
현대 컴퓨터의 속도가 매우 빠르기 때문에, 이러한 경우 스팸 메시지/이메일/거래가 큰 문제가 됩니다. 그러나 각 작업에 "작업 가격"을 설정함으로써 스팸 메시지를 크게 줄일 수 있습니다.
onenote에서 근면한 열쇠 예시 검증
간단히 말해, "증명자(prover)"는 "검증자(verifier)"에게 일정한 시간 간격 내에 일정한 계산 능력을 투입했음을 증명합니다.
시간이 지나면서 비트코인 창시자 "사토시 나카모토"는 비트코인 채굴자가 데이터 조각을 생성하는 아이디어를 수정했습니다. 이는 더 어려운 부분입니다. 그리고 네트워크의 다른 사람들은 그것이 실제로 목표 해시 값을 충족하는지 검증하는 것이 매우 쉬워졌습니다. 왜냐하면 그들은 필요한 데이터를 SHA-256 알고리즘을 통해서만 처리하면 되기 때문입니다.
이러한 작업 증명(Proof of Work) 시스템을 통해 블록체인과 같은 시스템의 보안을 보장하고 검증 합의를 구축할 수 있습니다. 왜냐하면 실제로 블록을 검증하는 것은 막대한 계산 능력을 투입한 장치이기 때문입니다. 이는 네트워크가 공정성과 신뢰성을 유지할 수 있는 경제적 이유를 제공합니다.
어떻게 이루어질까요?
예를 들어, 사기 거래가 발생하고 승인된다면, 사용자는 "주저하게" 되어 다른 암호화폐를 사용하고 가격을 낮출 것입니다. 경제적으로 볼 때, 채굴자, 즉 비트코인 "생산"을 하는 사람들은 가격 하락으로 인해 불행해질 것입니다. 동시에, 사기성 검증을 촉발할 수 있는 충분한 계산 능력을 가진 것은 오직 채굴자뿐입니다. 따라서 채굴자들의 작업 동기는 거래를 보호하여 가격이 하락하지 않도록 하는 방향으로 전환될 것입니다.
작업 증명(Proof of Work) 메커니즘의 단점
작업 증명(Proof of Work)은 비트코인, 이더리움 등 일부 가장 큰 암호화폐에 사용되지만, 이것이 가장 효율적이고 안전한 시스템이라는 것을 의미하지는 않습니다.
출처: BBC
전력 소모
작업 증명(Proof of Work) 과정은 많은 작업을 소모합니다. 컴퓨터는 모든 가능성을 통해 정답을 추측하는 원시적인 방법으로 작동하기 때문입니다. 이 방식은 많은 전력과 자원을 낭비합니다. 더 큰 범위에서 생각해보면, 전 세계의 모든 채굴자가 비트코인 보상을 얻기 위해 "채굴"을 시도하면서 자원을 낭비하고 있다면, nonce를 먼저 추측하지 않는 한 네트워크에 기여하지 못합니다.
탈중앙화의 원칙을 위반
채굴이 많은 전기 비용을 소모해야 하므로, 채굴자들은 중앙 채굴장을 세워 대부분의 블록 검증을 통제하게 되었습니다. 이는 P2P 탈중앙화의 아이디어를 거의 무의미하게 만들며, 이는 오직 채굴자만이 네트워크를 공격하는 데 동의할 수 있음을 의미합니다.
전기 비용은 또한 채굴자들이 전기 비용이 낮고 이익이 높은 지역에 집중하게 만듭니다. 중앙 집중적인 의사 결정이 이루어집니다.
작업 증명(Proof of Work)의 대안
앞서 언급한 바와 같이, PoW를 대체할 수 있는 다른 합의 메커니즘이 있습니다. 예를 들어: 지분 증명(Proof of Stake), 권한 증명(Proof of Authority), 능력 증명(Proof of Capacity) 등이 있습니다.
지분 증명(Proof of Stake)은 검증자의 지갑에 있는 화폐의 수량을 통해 거래 검증자를 결정합니다.
예를 들어, 복권을 사는 사람들을 상상해 보십시오. 가장 많은 복권을 사는 사람은 당첨될 확률이 더 높습니다. 이는 지분 증명과 유사하며, 지갑에 가장 많은 암호화폐가 있는 경우 검증자가 되고 보상을 받을 확률이 가장 높습니다.
권한 증명(Proof of Authority)은 개인의 "신뢰성"을 통해 거래 검증자를 결정합니다.
상상해보세요, 몇몇 가장 신뢰할 수 있는 사람들을 선택하여 거래의 유효성을 검증하도록 하는 것입니다.
능력 증명(Proof of Capacity)은 개인이 네트워크 메모리 공간에 기여한 정도에 따라 검증자를 결정합니다.
이 메커니즘은 네트워크의 기여 노드가 메모리 공간을 공유할 수 있도록 하며, 기여한 장치가 더 많은 메모리를 가질수록 검증자가 되고 보상을 받을 가능성이 커집니다.
위의 방법들은 필요한 계산량을 크게 줄여 거래 검증에서 더 적은 전력을 소모할 수 있습니다.
요약
채굴 행위는 작업 증명(Proof of Work)을 검증하고 생성하는 과정입니다.
작업 증명(Proof of Work)을 생성하면 채굴자가 거래를 검증할 수 있습니다.
작업 증명(Proof of Work)을 생성하는 것은 숫자 추측과 강제적인 과정입니다.
작업 증명은 전기를 낭비합니다(Proof of Work wastes electricity). 작업 증명(Proof of Work) 외에도 지분 증명(Proof of Stake), 능력 증명(Proof of Capacity), 권한 증명(Proof of Authority)과 같은 다른 방법이 있습니다.