메인 콘텐츠로 건너뛰기
Change page

채굴 알고리즘

페이지 마지막 업데이트됨: 2025년 10월 22일

이더리움 채굴은 Ethash라는 알고리즘을 사용했습니다. 이 알고리즘의 근본적 아이디어는 채굴자가 브루트 포스 계산-무작위 대입-을 통해 논스 입력값을 알아내려고 시도하여 그 결과 해쉬값이, 계산 난이도에 의해 결정된 임계값보다 작아지게 만드는 것입니다. 이 난이도는 동적으로 조절되어, 블록 생성이 일정한 주기로 이루어지도록 합니다.

필수 구성 요소

이 페이지를 더 잘 이해하려면 먼저 작업 증명 합의채굴에 대해 읽어보는 것을 권장합니다.

대거-해시모토

대거-하시모토 알고리즘은 이더리움 채굴에 있어서 Ethash가 대체한 선행적 검색 알고리즘이었습니다. 두 개의 서로 다른 알고리즘: 대거와 하시모토의 결합이었습니다. 그것은 단지 연구 구현이었고 이더리움 메인넷이 출시되었을 때는 Ethash로 대체되었습니다.

Dagger (opens in a new tab)방향성 비순환 그래프(Directed Acyclic Graph) (opens in a new tab)를 생성하고, 이 그래프의 임의의 조각들을 함께 해시하는 과정을 포함합니다. 핵심 원칙은 각 논스값은 오직 거대한 전체 데이터 트리의 일부만 필요로 한다는 것입니다. 논스 값 각각에 대한 서브트리를 다시 계산하는 것은 채굴에 매우 부담이 되므로, 트리를 저장할 필요가 있습니다. 하지만 단일 논스 값에 대한 검증 작업으로는 재계산이 충분히 가능합니다. 대거 알고리즘은 메모리 집약적이지만 메모리 부담이 안전한 수준으로 증가하면 검증하기 어려운 기존의 Scrypt 알고리즘의 대안으로 설계되었습니다. 하지만 대거 알고리즘은 공유 메모리 하드웨어 가속에 취약하여 다른 연구 방향들이 선호됨에 따라 사용이 감소했습니다.

Hashimoto (opens in a new tab)는 I/O 바운드(즉, 메모리 읽기가 채굴 과정의 제한 요소가 됨) 방식을 통해 ASIC 저항성을 추가하는 알고리즘입니다. 그 이론은 RAM이 계산보다 더 쉽게 이용 가능하다는 것입니다. 이미 수십억 달러 가치의 연구가 다양한 목적을 위해 RAM을 최적화하는 방법을 조사해왔으며, 이들 연구는 종종 거의 무작위 접근 패턴(따라서 ‘랜덤 액세스 메모리’)을 포함합니다. 그 결과로, 기존의 RAM은 알고리즘을 평가하는 데 있어 상당히 최적에 가까운 상태라고 할 수 있습니다. 하시모토 알고리즘은 블록체인을 데이터 소스로 사용하면서 위에 있는 (1)과 (3)을 동시에 만족합니다.

대거 하시모토 알고리즘은 대거 및 하시모토의 변경된 버전을 사용했습니다. 대거-하시모토 알고리즘과 하시모토 알고리즘의 차이점은, 하시모토 알고리즘이 블록체인을 데이터 소스로 사용하는 반면에, 대거-하시모토 알고리즘은 맞춤형으로 생성된 데이터 세트를 사용한다는 점입니다. 이 맞춤형 데이터 세트는 매 N개의 블록이 쌓일 때마다 블록 데이터에 기반하여 업데이트됩니다. 이 데이터 세트는 대거 알고리즘을 활용해 생성되고, 라이트 클라이언트 검증 알고리즘 검증 시 모든 논스값의 특정한 서브셋을 효율적으로 계산합니다. 대거-해시모토와 대거의 차이점은 기존 대거와 달리, 블록을 쿼리하는 데 사용되는 데이터 세트가 반영구적이며 간헐적인 간격(예: 주 1회)으로만 업데이트된다는 것입니다. 이는 데이터 세트를 생성하는 데 들어가는 노력이 거의 없다는 것을 의미하며, 이에 따라 공유 메모리 속도 향상과 관련한 세르지오 레르너의 주장은 크게 약화됩니다.

대거-해시모토에 대해 더 알아보기.

Ethash

Ethash는 현재는 더 이상 사용되지 않는 작업 증명-PoW- 방식 하에서, 실제 이더리움 메인넷에서 사용된 채굴 알고리즘이었습니다. Ethash는 이전 버전의 기본 원칙을 계승하면서도, 알고리즘이 상당히 업데이트된 후 대거-하시모토 알고리즘의 특정한 버전으로써 새로운 이름이 붙여졌습니다. 이더리움 메인넷은 Ethash만 사용했습니다. 대거-해시모토는 채굴 알고리즘의 R&D 버전이었으며, 이더리움 메인넷에서 채굴이 시작되기 전에 대체되었습니다.

Ethash에 대해 더 알아보기.

더 읽어보기

도움이 되었던 커뮤니티 참고 자료를 알고 계신가요? 이 페이지를 편집해서 추가하세요!

이 문서가 도움이 되셨나요?