본문 바로가기
IT인터넷상식

비트코인 채굴할 때 왜 그래픽카드가 좋아야 하나요?

by moongon 2024. 3. 12.
반응형

비트코인 채굴에 그래픽카드가 하는 역할은 무엇입니까?

컴퓨터로 게임을 즐기려고 고성능 그래픽카드를 구입하려 했는데 비트코인 이더리움과 같은 가상 암호화폐를 채굴하는 사람들이 채굴용으로 독점해 버려 구할 수 없는 품귀현상이 생겨버렸습니다. 도대체 왜 그래픽카드는 나오는 즉시 코인 채굴자들이 싹쓸이해 버리는 걸까요?

그 이유는 의외로 간단합니다.
여러분이 인터넷쇼핑몰에서 노트북을 100만원 주고 샀다고 생각해 봅시다. 현금을 사용하기 힘들기에 대부분 신용카드나 삼성 또는 애플페이를 사용하게 될 겁니다.
그러면 실제 현금이 인터넷쇼핑몰에 직접 전달되는 게 아니라 은행 계좌에 100만원이라는 숫자만 입력되고 카드 청구서에 카드값으로 100만원이 청구된 약속만으로 거래가 성립되고 며칠 후 노트북을 받을 수 있을 겁니다. 그런데 이 거래에는 실제 돈이 오고 간 것이 아니라 은행 또는 카드회사가 거래 기록을 중앙 서버에 안전하게 보관 관리를 하고 있기에 거래가 이루어진 것입니다. 중요한 건 거래가 기록이 된다는 것입니다.
그런데 해커가 중앙서버에 침투해서 거래기록을 200만원이라고 수정해버리면 여러분은 200만원을 카드값으로 지불해야 하는 억울한 일이 생기게 될 겁니다. 이럴 때 은행 또는 카드회사가 해커가 수정하기 전에 원본 거래 기록을 가지고 있다면 이 문제는 해결이 될 겁니다. 은행 또는 카드회사는 믿을 수 있는 좋은 중재자가 되는 것입니다. 그런데 만약에 믿을만한 중재자가 없이 안전한 거래를 하려면 어떻게 해야 할까요? 이 질문에서 해결책 중 하나로 비트코인, 이더리움 같은 암호 화폐가 등장한 것입니다. 은행이나 카드회사 없이 거래하기 위해 거래기록을 사람들에게 모두 복사를 해줍니다. 
해커가 거래기록 하나를 조작하더라도 다른 기록을 살펴보면 문제를 간단히 해결할 수 있으니 믿을 수 있습니다.
만약 비트코인으로 물건을 구매했다면 그 기록이 SHA-256이라는 표준 해시(hash)값으로 바뀌어서 기록됩니다. 비트코인은 전 세계 모든 거래 기록을 10분마다 기록하는데 이 거래기록을 블록(Block)이라고 부르고 이 블록을 연결해 놓은 것을 블록체인(Block Chain)이라고 합니다. 이런 구조로 되어있어서 해커가 하나의 블록을 조작하더라도 10분 안에 조작해야 하고 만약 조작하더라도 체인으로 연결된 블록들도 자동으로 변경이 되어 시스템에서는 이상함을 감지해서 블랙리스트로 처리해 무시해 버립니다. 그리고 나머지 정상적인 거래에 대한 유효한 블록들은 10분마다 가장 정확하고 빠르게 블랙리스트를 작성하고 유효한 블록을 제공한 컴퓨터를 뽑습니다. 그 공로로 그 컴퓨터에 있는 전자지갑으로 비트코인을 보상으로 주어집니다. 이것을 채굴(Mining)이라고 합니다. 그런데 이 보상으로 주어지는 비트코인 때문에 채굴업자가 등장하고 채굴 시 풀어야 하는 수학 문제를 빨리 풀기 위해 고성능 그래픽카드를 사용하면 매우 빨리 풀 수 있기 때문에 고성능 그래픽카드를 독점해 버리는 문제가 생긴 겁니다.
여기서 수학 문제를 푼다고 했는데 그 수학 문제에 대해서 잠시 살펴보겠습니다. 수학 문제는 블록에서 정해진 값보다 작은 해시(hash)값을 찾는 것입니다. 10분 동안 거래된 기록에는 이전 정보 등 다양한 기록들이 들어 있습니다. 이 값들은 채굴하는 사람들에게 대부분 주어져 있는 정보입니다. 그런데 딱 하나의 값이 정해져 있지 않습니다. 
이것을 Nonce라고 합니다. 이 값은 0~42억까지 숫자 중 하나가 정답입니다. 해결 방법은 정답을 하나씩 입력해서 해시 함수를 풀어보는 것입니다. 10분이라는 제한된 시간에 정답을 맞히기 위해서는 될 때까지 무한 반복하는 방법으로 해야 하기 때문만 사람이 직접 하는 것은 불가능합니다. 그래서 이 불가능한 작업을 컴퓨터가 대신 해주면 가능합니다. 
반복적인 계산을 잘하는 컴퓨터 CPU(Central Processing Unit)에는 ALU(arithmetic and logical unit, 산술 논리 장치)라는 연산 처리 장치가 있습니다. 사칙연산이나 조건문 연산 등 논리연산을 담당하는 거라고 보시면 됩니다.
채굴을 가능하게 하는 해시 함수 역시 이 사칙연산이나 조건문 연산 등 논리연산으로 되어있기 때문에 ALU를 이용해서 계산할 수 있습니다. 초기 채굴에는 CPU로 주로 했었습니다.
그런데 이 CPU의 ALU는 연산을 위한 크고 복잡한 ALU 몇 개만 있습니다. 그래픽 카드에는 GPU(Graphic Processing Unit)에는 디스플레이 화면의 많은 수의 픽셀을 빠르게 처리하기 위해 덜 복잡한 ALU가 엄청나게 많이 박혀있습니다. 
그러다 보니 비교적 단순한 해시 함수 문제를 동시에 여러 개의 문제를 빨리 풀 수 있는 겁니다.
결론은 CPU보다는 GPU를 통해서 계산하는 편이 훨씬 빠르다는 것입니다.
그러니 고성능 그래픽카드를 장착한 컴퓨터라면 빠른 속도로 계산해서 정답을 맞히고 보상을 받을 수 있을 겁니다.
따라서 채굴에는 고성능 그래픽카드가 절대적으로 필요한 것입니다.

CPU와 GPU는 뭔가요?

CPU(Central Processing Unit)는 중앙 처리 장치라고 하는데 연산, 해석, 기억, 제어라는 4대 기능을 관할 합니다. 컴퓨터의 두뇌 역할을 한다고 보시면 됩니다. 소수의 고급 두뇌 인력으로 구성된 조직개념입니다. 인텔 코어 i시리즈와 AMD 라이젠 시리즈로 두종류의 회사가 제작 판매합니다.
GPU(Graphic Processing Unit)는 그래픽 처리 장치라고 하는데 컴퓨터 시스템에서 그래픽 연산을 빠르게 처리하고 그 결괏값을 모니터에 출력(격자형으로 배치된 각 픽셀에 숫자를 채워 넣은)하는 연산 장치입니다. 다수의 단순노동 인력 조직개념으로 보시면 됩니다. 그리고 대량 단순 연산을 병렬로 처리합니다. 그래픽 처리의 주된 작업은 이렇게 픽셀에 들어가는 숫자들을 단순히 계산하는  겁니다. 이 작업을 위해 대량의 단순 계산에 특화된 것이 바로 GPU인 것입니다.
그래픽카드를 제조하는 회사는 여러 업체가 있는데 대표적으로 요즘 주목받는 젠슨 황 CEO가 이끄는 NVIDIA가 있습니다. 그리고 경쟁업체로 리사 수 CEO가 이끄는 AMD(Advanced Micro Devices)가 있습니다.
CPU는 비교적 복잡한 계산을 하고 GPU는 단순한 계산을 한다고 생각하시면 됩니다.
참고로 예를 들어서 이야기하면 인텔 스카이레이크 4코어라는 CPU에 비해 엔비디아 지포스 1070 GPU의 정수연산 능력은 무려 40배가 뛰어납니다. 대신 GPU는 CPU처럼 조건문 연산을 잘 처리하지 못합니다. 
대부분의 프로그래밍 알고리즘이 조건문 연산으로 구성되는 것을 생각하면 GPU의 역할은 오랫동안 제한적이었습니다. 
그렇기 때문에 복잡한 조건문 연산도 잘 처리하는 CPU의 코어들이 소수의 전문인력이라면 GPU는 여러 명의 단순노동 인력 집합이라고 생각하시는 게 이해가 빠릅니다.

반응형
  • 네이버 블러그 공유하기
  • 페이스북 공유하기
  • 트위터 공유하기
  • 구글 플러스 공유하기
  • 카카오톡 공유하기
  • 카카오스토리 공유하기