Monero, CPU 채굴을 지향하는 RandomX의 비밀

by DD
1개월 전
조회수 8

Monero는 ASIC(Application-Specific Integrated Circuit) 채굴을 방지하기 위해 CPU 친화적인 RandomX를 도입함

RandomX는 가상 머신(VM) 기반의 랜덤 코드 실행을 통해 일반 CPU의 강점을 활용하도록 설계됨

RandomX는 메모리 접근(Memory Access)과 CPU 연산(CPU Operation)을 모두 요구하여 ASIC 제작을 어렵게 만듦

커뮤니티에서는 RandomX의 성공 여부와 에너지 소비량(Energy Consumption)에 대한 의문 제기

RandomX의 핵심 원리: CPU 자원 활용

RandomX는 CPU의 다양한 기능(Multiple Cache Levels, Integer Units, Floating-Point Units)을 활용하도록 설계되었다. 특히, 메모리 접근(Memory Access)과 CPU 연산(CPU Operation)을 혼합하여 ASIC(Application-Specific Integrated Circuit) 제작을 어렵게 만든다. RandomX는 2GB 이상의 데이터셋(Dataset)을 사용하여 DRAM 접근을 강제하고, 캐시 크기의 스크래치패드(Scratchpad)를 통해 로컬 메모리를 활용한다. 이러한 설계는 ASIC이 특정 연산에 최적화되는 것을 방지하고, 일반 CPU의 강점을 최대한 활용하도록 유도한다.

RandomX의 기술적 세부 사항: 가상 머신(VM)과 명령어

RandomX는 가상 머신(VM) 기반으로, 256개의 랜덤 명령어(Random Instructions)로 구성된 프로그램을 실행한다. 이 명령어들은 정수 연산, 부동 소수점 연산, 벡터 연산, 메모리 로드 및 저장, 그리고 분기(Branch)를 포함한다. 특히, 분기(Branch) 명령어는 하드웨어 최적화를 어렵게 만들어 ASIC 제작을 더욱 까다롭게 한다. 각 명령어는 8바이트로 구성되며, 8개의 프로그램이 체인 형태로 연결되어 있어, 채굴 과정의 무결성을 보장한다.

RandomX의 채굴 방식: Fast Mode vs Light Mode

RandomX는 채굴(Mining)을 위한 Fast Mode와 검증(Verification)을 위한 Light Mode를 제공한다. Fast Mode는 2GB 이상의 데이터셋(Dataset)을 사용하고, Light Mode는 256MB 캐시를 사용하여 데이터셋 항목을 즉석에서 계산한다. 이러한 이중 모드는 검증의 효율성을 높이는 동시에, 채굴의 난이도를 적절하게 유지한다. Light Mode는 메모리-시간 트레이드오프(Memory-Time Tradeoff)를 통해 검증의 실용성을 확보하고, 채굴의 경쟁력을 유지한다.

커뮤니티의 반응: 성공 여부와 에너지 소비

커뮤니티에서는 RandomX의 성공 여부에 대한 다양한 의견이 존재한다. 일부에서는 RandomX가 ASIC 저항성을 성공적으로 달성했는지에 대한 의문을 제기하며, 채굴 하드웨어의 분산 정도에 대한 질문도 제기한다. 또한, RandomX가 사용하는 에너지 소비량(Energy Consumption)에 대한 우려도 제기되며, 지속 가능한 채굴 방식에 대한 논의가 필요하다는 의견이 제시된다. RandomX의 CPU 친화적인 설계는 에너지 효율성을 높이는 데 기여할 수 있지만, 여전히 개선의 여지가 있다는 평가가 나온다.

How Monero’s proof of work works