채굴
전제 조건
이 페이지를 더 잘 이해하려면 먼저 트랜잭션, 블록 및 작업증명 (PoW)에 대해 읽어보시기를 권장합니다.
이더리움 채굴이란 무엇인가요?
채굴은 현재는 사용되지 않는 이더리움의 작업증명 아키텍처에서 이더리움 블록체인에 추가될 트랜잭션 블록을 생성하는 과정입니다.
채굴이라는 단어는 암호화폐를 금에 비유하는 맥락에서 유래했습니다. 금이나 귀금속이 희소한 것처럼 디지털 토큰도 희소하며, 작업증명 시스템에서 총량을 늘리는 유일한 방법은 채굴뿐입니다. 작업증명 이더리움에서 유일한 발행 방식은 채굴을 통한 것이었습니다. 그러나 금이나 귀금속과 달리, 이더리움 채굴은 블록체인에서 블록을 생성, 검증, 게시 및 전파하여 네트워크를 보호하는 방법이기도 했습니다.
이더 채굴 = 네트워크 보호
채굴은 모든 작업증명 블록체인의 생명선입니다. 소프트웨어를 실행하는 컴퓨터인 이더리움 채굴자들은 지분 증명으로 전환하기 전까지 트랜잭션을 처리하고 블록을 생성하는 데 자신들의 시간과 컴퓨팅 파워를 사용했습니다.
채굴자는 왜 존재하나요?
이더리움과 같은 탈중앙화된 시스템에서는 모든 사람이 트랜잭션 순서에 동의하도록 보장해야 합니다. 채굴자들은 계산적으로 어려운 퍼즐을 풀어 블록을 생성함으로써 이를 돕고, 공격으로부터 네트워크를 보호했습니다.
이전에는 누구나 자신의 컴퓨터를 사용하여 이더리움 네트워크에서 채굴할 수 있었습니다. 하지만 모든 사람이 이더(ETH)를 수익성 있게 채굴할 수 있는 것은 아니었습니다. 대부분의 경우, 채굴자들은 전용 컴퓨터 하드웨어를 구매하고 저렴한 에너지원에 접근할 수 있어야 했습니다. 일반적인 컴퓨터로는 채굴과 관련된 비용을 충당할 만큼 충분한 블록 보상을 얻기 어려웠습니다.
채굴 비용
- 채굴기를 구축하고 유지하는 데 필요한 하드웨어의 잠재적 비용
- 채굴기를 가동하는 데 드는 전기 비용
- 풀(pool)에서 채굴하는 경우, 이러한 풀은 일반적으로 풀에서 생성된 각 블록에 대해 고정된 비율(%)의 수수료를 부과했습니다.
- 채굴기를 지원하기 위한 장비의 잠재적 비용 (환기, 에너지 모니터링, 전기 배선 등)
채굴 수익성을 더 자세히 알아보려면 Etherscan (opens in a new tab)에서 제공하는 것과 같은 채굴 계산기를 사용해 보세요.
이더리움 트랜잭션이 채굴된 방법
다음은 이더리움 작업증명에서 트랜잭션이 어떻게 채굴되었는지에 대한 개요를 제공합니다. 이더리움 지분 증명에 대한 이 과정의 유사한 설명은 여기에서 찾을 수 있습니다.
- 사용자가 특정 계정의 개인 키로 트랜잭션 요청을 작성하고 서명합니다.
- 사용자는 특정 노드에서 전체 이더리움 네트워크로 트랜잭션 요청을 브로드캐스트합니다.
- 새로운 트랜잭션 요청을 수신하면, 이더리움 네트워크의 각 노드는 해당 요청을 로컬 멤풀에 추가합니다. 멤풀은 수신했지만 아직 블록체인의 블록에 커밋되지 않은 모든 트랜잭션 요청의 목록입니다.
- 어느 시점에서 채굴 노드는 수십 또는 수백 개의 트랜잭션 요청을 잠재적인 블록으로 집계합니다. 이때 블록 가스 한도를 초과하지 않으면서 자신이 얻는 트랜잭션 수수료를 극대화하는 방식으로 진행합니다. 그런 다음 채굴 노드는 다음을 수행합니다.
- 각 트랜잭션 요청의 유효성을 검증하고(예: 서명하지 않은 계정에서 이더를 전송하려고 시도하지 않는지, 요청 형식이 잘못되지 않았는지 등), 요청의 코드를 실행하여 로컬 EVM 복사본의 상태를 변경합니다. 채굴자는 이러한 각 트랜잭션 요청에 대한 트랜잭션 수수료를 자신의 계정에 부여합니다.
- 블록 내의 모든 트랜잭션 요청이 로컬 EVM 복사본에서 검증되고 실행되면, 잠재적 블록에 대한 작업증명 "적법성 증명서(certificate of legitimacy)"를 생성하는 과정을 시작합니다.
- 결국 채굴자는 우리의 특정 트랜잭션 요청이 포함된 블록에 대한 증명서 생성을 완료하게 됩니다. 그런 다음 채굴자는 증명서와 주장하는 새로운 EVM 상태의 체크섬이 포함된 완성된 블록을 브로드캐스트합니다.
- 다른 노드들은 새로운 블록에 대해 수신합니다. 이들은 증명서를 검증하고, 블록의 모든 트랜잭션을 직접 실행하며(사용자가 원래 브로드캐스트한 트랜잭션 포함), 모든 트랜잭션 실행 후 새로운 EVM 상태의 체크섬이 채굴자의 블록이 주장하는 상태의 체크섬과 일치하는지 확인합니다. 그런 다음에야 이 노드들은 이 블록을 자신들의 블록체인 끝에 추가하고, 새로운 EVM 상태를 정식 상태로 수락합니다.
- 각 노드는 미처리 트랜잭션 요청의 로컬 멤풀에서 새 블록에 포함된 모든 트랜잭션을 제거합니다.
- 네트워크에 새로 참여하는 노드들은 우리가 관심 있는 트랜잭션이 포함된 블록을 포함하여 모든 블록을 순서대로 다운로드합니다. 이들은 로컬 EVM 복사본(빈 상태의 EVM으로 시작)을 초기화한 다음, 로컬 EVM 복사본 위에서 모든 블록의 모든 트랜잭션을 실행하는 과정을 거치며, 그 과정에서 각 블록의 상태 체크섬을 검증합니다.
모든 트랜잭션은 한 번 채굴되지만(새 블록에 포함되어 처음으로 전파됨), 정식 EVM 상태를 진행하는 과정에서 모든 참여자에 의해 실행되고 검증됩니다. 이는 블록체인의 핵심 만트라 중 하나를 강조합니다: 신뢰하지 말고, 검증하라(Don’t trust, verify).
오머 (엉클) 블록
작업증명에서의 블록 채굴은 확률적이었으며, 이는 네트워크 지연으로 인해 때때로 두 개의 유효한 블록이 동시에 게시될 수 있음을 의미했습니다. 이 경우 프로토콜은 가장 긴(따라서 가장 "유효한") 체인을 결정하는 동시에, 제안되었으나 포함되지 않은 유효한 블록에 부분적으로 보상을 제공하여 채굴자에 대한 공정성을 보장해야 했습니다. 이는 더 큰 지연에 직면할 수 있는 소규모 채굴자들도 보상을 통해 수익을 창출할 수 있게 함으로써 네트워크의 탈중앙화를 더욱 촉진했습니다.
"오머(ommer)"라는 용어는 부모 블록의 형제 블록을 지칭하는 성중립적인 용어로 선호되지만, 때로는 "엉클(uncle)"이라고도 불립니다. 이더리움이 지분 증명으로 전환한 이후, 각 슬롯에서 단 한 명의 제안자만 선출되므로 오머 (엉클) 블록은 더 이상 채굴되지 않습니다. 채굴된 오머 (엉클) 블록의 과거 차트 (opens in a new tab)를 보면 이러한 변화를 확인할 수 있습니다.
시각적 데모
Austin이 채굴과 작업증명 블록체인에 대해 설명하는 영상을 시청해 보세요.
채굴 알고리즘
이더리움 메인넷은 오직 하나의 채굴 알고리즘인 '이더해시'만을 사용했습니다. 이더해시는 'Dagger-Hashimoto'로 알려진 초기 R&D 알고리즘의 후속 버전이었습니다.