댓글 달려서 검색중..
이더리움이 각광받는 이유가 ASIC-resistance 인가?
검색하다 보니 이더리움 채굴하려면 3G 그래픽 카드로도 어렵다 라는 이기가 나오는데
[링크 : https://www.ddengle.com/mining/1842637]
[링크 : https://www.ddengle.com/miningbitcoin_voted/1842874]
Ethash DAG
Ethash는 PoW 시스템이다.(Proof of Work인가?). DAG(Dagger Hashimoto라고 알려진 )라 알려진 데이터 셋으로 1GB 정도 요구한다. 생성하고 기억하려는데 몇 시간이 소요된다.
[링크 : https://github.com/ethereum/wiki/wiki/Ethash-DAG]
[링크 : https://github.com/ethereumproject/ECIPs/issues/6]
번역이 안되서 의역..
ASIC 방어 : 알고리즘을 위해 최적화 된 하드웨어의 개발로 얻어지는 이득은 최소화 해야 한다. 이상적으로 여분의 CPU 성능을 이용하여 채굴하는 평범한 사용자들을 위해 ASIC들이 개발되더라도 근소하게 적은 속도 향상이 있어야 한다.
IntroductionDagger Hashimoto is a proposed spec for the mining algorithm for Ethereum 1.0. Dagger Hashimoto aims to simultaneously satisfy two goals: - ASIC-resistance: the benefit from creating specialized hardware for the algorithm should be as small as possible, ideally to the point that even in an economy where ASICs have been developed the speedup is sufficiently small that it is still marginally profitable for users on ordinary computers to mine with spare CPU power.
- Light client verifiability: a block should be relatively efficiently verifiable by a light client.
|
Thaddeus Dryja의 Hashimoto 알고리즘은 IO-bound에 의해 ASIC 방어를 구현한다 (예를들어 마이닝 프로세스에서 메모리 읽도록 강요하는 것은 성능을 제한하는 요소가 됩니다).
-> 알고리즘의 중요요소는 공간 복잡도와 계산복잡도로 나누어지는데,
간단하게 램을 졸라 쳐먹어 대면서 빠르게 계산할래? 아니면 램 조금 쓰고 cpu 졸라 갈궈댈래가 됨.
이더리움은 램 졸라 사용하여 성능 향상하게 해놨으니 ASIC이 추구하는 작은 시스템에는 방어가 가능할 것으로 보임
라는 의미가 되는건가?
반대로.. 그 알고리즘을 메모리 조금쓰고 CPU갈구는 알고리즘으로 치환이 가능하다면
Hashimoto 알고리즘 자체를 무효화 함으로서 구현 가능할지도 모르겠다.
Dagger Hashimoto builds on two key pieces of previous work: - Hashimoto, an algorithm by Thaddeus Dryja which intends to achieve ASIC resistance by being IO-bound, ie. making memory reads the limiting factor in the mining process. The theory is that RAM is in principle inherently a much more generic ingredient than computation, and billions of dollars of research already go into optimizing it for different use cases which often involve near-random access patterns (hence "random access memory"); hence, existing RAM is likely to be moderately close to optimal for evaluating the algorithm. Hashimoto uses the blockchain as a source of data, simultaneously satisfying (1) and (3) above.
- Dagger, an algorithm by Vitalik Buterin which uses directed acyclic graphs to simultaneously achieve memory-hard computation but memory-easy validation. The core principle is that each individual nonce only requires a small portion of a large total data tree, and recomputing the subtree for each nonce is prohibitive for mining - hence the need to store the tree - but okay for a single nonce's worth of verification. Dagger was meant to be an alternative to existing memory-hard algorithms like Scrypt, which are memory-hard but are also very hard to verify when their memory-hardness is increased to genuinely secure levels. However, Dagger was proven to be vulnerable to shared memory hardware acceleration by Sergio Lerner and was then dropped in favor of other avenues of research.
|
[링크 : https://github.com/ethereum/wiki/blob/master/Dagger-Hashimoto.md]
다르게 생각하면
ASIC에 DDR 램 8기가씩 박아대고 돌리면 제작은 가능하나,
램 특성상 IO 성능에 한계가 생겨 ASIC을 통해 빠르게 연산을 할 수 있도록 하여도
DDR SDRAM의 I/O 성능의 한계가 실제 연산 가능한 한계치로 수렴하게 되고
즉, 모든 채굴시스템의 성능적 한계는 메모리 대역폭으로 제한되게 된다.
그렇기에 ASIC도 FPGA도 CPU도 GPGPU도 모두 어느정도 공평하게 하향평준화(!) 되어 공정성을 유지한다
인가?
다만 near random 이라고 하니 충분히 큰 SRAM을 이용하여 cache를 구현한 다음
DDR <-> SRAM(SDRAM 아님) <-> ASIC 구조로 간다면 성능 향상도 일부 가능하겠지만
그렇게 복잡한 구조로 가면 이래저래 ASIC으로 구현하는게 투자비용 대비 채산성이 떨어지니
의도한 대로 어느정도는 작동이 가능할 것으로 보인다.
단, 메모리 대역폭에 제한되므로, 상상치도 못한 고속 메모리가 나온다면
혹은 PC에서 하기 힘든 멀티채널 메모리를 ASIC에서 구현해서 대역폭을 끌어 올린다면
승산이 있을지도 모르겠다.