SlideShare ist ein Scribd-Unternehmen logo
1 von 21
Downloaden Sie, um offline zu lesen
Ethash
이더리움의 Proof of Work 알고리즘
Bitcoin 의 마이닝 알고리즘과 무엇이 다르고 왜 만들었나?
ASIC(주문형 반도체) 로 인한 Hashrate 독점, 중앙화 문제 해결에 초점
GPU
vs
ASIC
https://compubench.com
https://en.bitcoin.it/wiki/Mining_hardware_comparison
Bitcoin Mining Flow
Bitcoin 의 경우 단순히 SHA256
연산만을 필요로 하므로
일반 CPU, GPU 보다
수천배 이상 빠른 ASIC 제작이 가능
Ethash Mining Flow
단순히 SHA256 연산만을 필요했던
Bitcoin 의 Mining 알고리즘과 달리
Ethash 에서는 DAG 를 통해
미리 알 수, 할 수 없는
순차적 메모리 연산을 요구하여,
ASIC 제작을 어렵게 함
Ethash
• Memory Hard Computation
• Memory Easy Validation
• ASIC ( 주문형 반도체 ) 제작을 힘들게
• 위 같은 목적 달성을 위해 매 3만 블록마다 수 GB 의 DAG(Directed acyclic graph)를
새로 생성하여 해싱에 사용( 점점 사이즈 증가 )
• KECCAK(SHA-3) 사용
• Dagger 와 Hashimoto 알고리즘의 장점을 결합한 Dagger-Hashimoto 의 수정버전
Ethash: DAG data, cache size
• 블록의 헤더들을 스캔하여 Seed 값 추출 가능
• 해당 Seed 를 통해 16MB 의 pseudo random cache 를 계산 가능
• 해당 Cache를 통해 1GB 이상의 Full Dataset 을 생성 가능
• 30,000 Block 단위 별로 Full Dataset 이 완전히 바뀌고, 선형으로 커지도록 설계 됨
• 해당 Full Dataset 의 랜덤한 부분을 마이닝 해싱 작업에 포함 시키도록 함
• 따라서 메모리 읽기 연산, Dataset 저장 공간 등의 제약을 주어
ASIC 제작이 불가능하도록 함
Ethash: DAG Cache Generation
선형 증가하는 소수를 사이즈로 사용
2048 epoch 만큼의 lookup table 이 미리 계산되어 하드코딩 되어 있다.
2017.11 기준 약 450만 블록으로서, 약 150 epoch 이며 DAG 의 사이즈는 2.2GB 정도
Ethash: DAG Cache Generation
Sergio Demian Lerner 의 RandMemoHash Strict Memory Hard Hashing Functions (2014) 알고리즘을 사용하여
연산 시 메모리가 특정 임계치 보다 낮으면 연산 속도가 기하급수적으로 길어지도록 설계,
이를 통해 특정 시간동안 특정양의 메모리가 해당 연산을 위해서만 사용 되었음을 증명 할 수 있게된다.
# 3
# 64
# keccak512
# 30000
Ethash: DAG Full Dataset calculation
# 16 == 64 // 4
# mix[0] = mix[0] xor i
# 256
# keccak512
# xor 의 대체제로 fnv hash 사용 (분산효과)
fnv(a, b): (a * prime) xor b
Hashimoto
# 64
# 64
# 32 == 128 // 4
# 2 == 128 / 64
# to little-endian
# [0, 4, 8, … ]
# for Fetch DAG Page
# Fetch DAG Page from dataset_lookup table
Ethash: Hashimoto, Mining
# zero padding
Hashimoto_light 는 light client 가 1기가 이상의 DAG 를 가지고 연산하기 무거우니
16MB 이상의 cache 만으로 실시간으로 DAG를 연산, 생성하여 사용하도록 한 것
Ethash 정리
• 민주적, 비독점적인 탈중앙 마이닝을 위해 ASIC 제작을 어렵도록 설계
• ASIC 의 경우 오로지 마이닝 용도이므로 (전기료 == 채굴수입) 이 되어 에너지가 낭비됨
• Ethash 계속 확장, 변경되는 DAG 파일을 통한 메모리 연산을 요구함
• 따라서 별도 장비구입 없이 이미 모두가 소유하고있는 일반적인 PC 로 채굴하기 적합
• 하지만 합의 과정을 위해 불필요한 연산을 통한 에너지 소비는 여전하므로
장기적으로 PoS 가 불가피
Appendix
DAG : Directed Acyclic Graph
https://gist.github.com/dongsam/53dfce6262e62957891c7315117d89c2
DAG Cache Generation
Sergio Demian Lerner 의 RandMemoHash
Strict Memory Hard Hashing Functions (2014)
알고리즘을 사용하여
연산 시 메모리가 특정 임계치 보다 낮으면
연산 속도가 기하급수적으로 길어지도록 설계,
이를 통해 특정 시간동안 특정양의 메모리가
해당 연산을 위해서만 사용 되었음을
증명 할 수 있게된다.
SHA-3 ( KECCAK )
FNV hash
Ethash : Ethereum PoW Algorithm

Weitere ähnliche Inhalte

Was ist angesagt?

Design and Simulation Triple-DES
Design and Simulation Triple-DESDesign and Simulation Triple-DES
Design and Simulation Triple-DES
chatsiri
 
1. Ljudska prava (1).pptx
1. Ljudska prava (1).pptx1. Ljudska prava (1).pptx
1. Ljudska prava (1).pptx
Greston1
 
UTF-8: The Secret of Character Encoding
UTF-8: The Secret of Character EncodingUTF-8: The Secret of Character Encoding
UTF-8: The Secret of Character Encoding
Bert Pattyn
 
4. predavanje-uzrocnici promjena_mlijeka
4. predavanje-uzrocnici promjena_mlijeka4. predavanje-uzrocnici promjena_mlijeka
4. predavanje-uzrocnici promjena_mlijeka
Maja Andjelkovic
 
Cs423 raw sockets_bw
Cs423 raw sockets_bwCs423 raw sockets_bw
Cs423 raw sockets_bw
jktjpc
 

Was ist angesagt? (20)

Ljudska prava, kovač i bakek
Ljudska prava, kovač i bakekLjudska prava, kovač i bakek
Ljudska prava, kovač i bakek
 
Uskrs: Narodni običaji
Uskrs: Narodni običajiUskrs: Narodni običaji
Uskrs: Narodni običaji
 
Modified aes algorithm using multiple s boxes
Modified aes algorithm using multiple s boxesModified aes algorithm using multiple s boxes
Modified aes algorithm using multiple s boxes
 
Design and Simulation Triple-DES
Design and Simulation Triple-DESDesign and Simulation Triple-DES
Design and Simulation Triple-DES
 
How2heap
How2heap How2heap
How2heap
 
1. Ljudska prava (1).pptx
1. Ljudska prava (1).pptx1. Ljudska prava (1).pptx
1. Ljudska prava (1).pptx
 
Master Canary Forging by Yuki Koike - CODE BLUE 2015
Master Canary Forging by Yuki Koike - CODE BLUE 2015Master Canary Forging by Yuki Koike - CODE BLUE 2015
Master Canary Forging by Yuki Koike - CODE BLUE 2015
 
UTF-8: The Secret of Character Encoding
UTF-8: The Secret of Character EncodingUTF-8: The Secret of Character Encoding
UTF-8: The Secret of Character Encoding
 
Radna bilježnica "Igraj se i uči: online"
Radna bilježnica "Igraj se i uči: online"Radna bilježnica "Igraj se i uči: online"
Radna bilježnica "Igraj se i uči: online"
 
4. predavanje-uzrocnici promjena_mlijeka
4. predavanje-uzrocnici promjena_mlijeka4. predavanje-uzrocnici promjena_mlijeka
4. predavanje-uzrocnici promjena_mlijeka
 
Porto
PortoPorto
Porto
 
SSL TSL;& SET
SSL TSL;& SETSSL TSL;& SET
SSL TSL;& SET
 
дјечја права
дјечја правадјечја права
дјечја права
 
What is AES? Advanced Encryption Standards
What is AES? Advanced Encryption StandardsWhat is AES? Advanced Encryption Standards
What is AES? Advanced Encryption Standards
 
Matematika u doba renesanse
Matematika u doba renesanseMatematika u doba renesanse
Matematika u doba renesanse
 
Osnove programiranja u Pythonu
Osnove programiranja u PythonuOsnove programiranja u Pythonu
Osnove programiranja u Pythonu
 
Oblici rada
Oblici radaOblici rada
Oblici rada
 
4. Block Ciphers
4. Block Ciphers 4. Block Ciphers
4. Block Ciphers
 
Cs423 raw sockets_bw
Cs423 raw sockets_bwCs423 raw sockets_bw
Cs423 raw sockets_bw
 
ORDEM DE CULTO MÊS DE MISSÕES MUNDIAIS (IG BATISTA).pptx
ORDEM DE CULTO MÊS DE MISSÕES MUNDIAIS (IG BATISTA).pptxORDEM DE CULTO MÊS DE MISSÕES MUNDIAIS (IG BATISTA).pptx
ORDEM DE CULTO MÊS DE MISSÕES MUNDIAIS (IG BATISTA).pptx
 

Ähnlich wie Ethash : Ethereum PoW Algorithm

테슬라 도조 프로젝트 (What is Tesla's Dojo Supercomputer?)
테슬라 도조 프로젝트 (What is Tesla's Dojo Supercomputer?)테슬라 도조 프로젝트 (What is Tesla's Dojo Supercomputer?)
테슬라 도조 프로젝트 (What is Tesla's Dojo Supercomputer?)
BoanLabDKU
 
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
devCAT Studio, NEXON
 
[조진현]Kgc2012 c++amp
[조진현]Kgc2012 c++amp[조진현]Kgc2012 c++amp
[조진현]Kgc2012 c++amp
진현 조
 
Cassandra 멘붕기 | Devon 2012
Cassandra 멘붕기 | Devon 2012Cassandra 멘붕기 | Devon 2012
Cassandra 멘붕기 | Devon 2012
Daum DNA
 
Talk IT_ Oracle_최재규_110823
Talk IT_ Oracle_최재규_110823Talk IT_ Oracle_최재규_110823
Talk IT_ Oracle_최재규_110823
Cana Ko
 

Ähnlich wie Ethash : Ethereum PoW Algorithm (20)

테슬라 도조 프로젝트 (What is Tesla's Dojo Supercomputer?)
테슬라 도조 프로젝트 (What is Tesla's Dojo Supercomputer?)테슬라 도조 프로젝트 (What is Tesla's Dojo Supercomputer?)
테슬라 도조 프로젝트 (What is Tesla's Dojo Supercomputer?)
 
세션2. 이더리움 합의 알고리즘과 마이닝
세션2. 이더리움 합의 알고리즘과 마이닝세션2. 이더리움 합의 알고리즘과 마이닝
세션2. 이더리움 합의 알고리즘과 마이닝
 
Spring 3.1에서 ehcache 활용 전략
Spring 3.1에서 ehcache 활용 전략Spring 3.1에서 ehcache 활용 전략
Spring 3.1에서 ehcache 활용 전략
 
Compute shader DX11
Compute shader DX11Compute shader DX11
Compute shader DX11
 
Theano 와 Caffe 실습
Theano 와 Caffe 실습 Theano 와 Caffe 실습
Theano 와 Caffe 실습
 
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
 
Node.js를 사용한 Big Data 사례연구
Node.js를 사용한 Big Data 사례연구Node.js를 사용한 Big Data 사례연구
Node.js를 사용한 Big Data 사례연구
 
[조진현]Kgc2012 c++amp
[조진현]Kgc2012 c++amp[조진현]Kgc2012 c++amp
[조진현]Kgc2012 c++amp
 
Vectorized processing in_a_nutshell_DeView2014
Vectorized processing in_a_nutshell_DeView2014Vectorized processing in_a_nutshell_DeView2014
Vectorized processing in_a_nutshell_DeView2014
 
Cassandra 멘붕기 | Devon 2012
Cassandra 멘붕기 | Devon 2012Cassandra 멘붕기 | Devon 2012
Cassandra 멘붕기 | Devon 2012
 
Nvidia architecture
Nvidia architectureNvidia architecture
Nvidia architecture
 
Ibm과 nvidia가 제안하는 딥러닝 플랫폼
Ibm과 nvidia가 제안하는 딥러닝 플랫폼Ibm과 nvidia가 제안하는 딥러닝 플랫폼
Ibm과 nvidia가 제안하는 딥러닝 플랫폼
 
[오픈소스컨설팅] ARM & OpenStack Community
[오픈소스컨설팅] ARM & OpenStack Community[오픈소스컨설팅] ARM & OpenStack Community
[오픈소스컨설팅] ARM & OpenStack Community
 
CUDA를 게임 프로젝트에 적용하기
CUDA를 게임 프로젝트에 적용하기CUDA를 게임 프로젝트에 적용하기
CUDA를 게임 프로젝트에 적용하기
 
Mapreduce tuning
Mapreduce tuningMapreduce tuning
Mapreduce tuning
 
성공적인 게임 런칭을 위한 비밀의 레시피 #3
성공적인 게임 런칭을 위한 비밀의 레시피 #3성공적인 게임 런칭을 위한 비밀의 레시피 #3
성공적인 게임 런칭을 위한 비밀의 레시피 #3
 
Pivot3 overview
Pivot3 overviewPivot3 overview
Pivot3 overview
 
Talk IT_ Oracle_최재규_110823
Talk IT_ Oracle_최재규_110823Talk IT_ Oracle_최재규_110823
Talk IT_ Oracle_최재규_110823
 
AWS EMR Cost optimization
AWS EMR Cost optimizationAWS EMR Cost optimization
AWS EMR Cost optimization
 
[IBM 김상훈] AI 최적화 플랫폼 IBM AC922 소개와 활용 사례
[IBM 김상훈] AI 최적화 플랫폼 IBM AC922 소개와 활용 사례[IBM 김상훈] AI 최적화 플랫폼 IBM AC922 소개와 활용 사례
[IBM 김상훈] AI 최적화 플랫폼 IBM AC922 소개와 활용 사례
 

Mehr von Dongsam Byun

오피니언마이닝에 기반한 주식 자동 매매 시스템
오피니언마이닝에 기반한 주식 자동 매매 시스템오피니언마이닝에 기반한 주식 자동 매매 시스템
오피니언마이닝에 기반한 주식 자동 매매 시스템
Dongsam Byun
 

Mehr von Dongsam Byun (6)

오피니언마이닝에 기반한 주식 자동 매매 시스템
오피니언마이닝에 기반한 주식 자동 매매 시스템오피니언마이닝에 기반한 주식 자동 매매 시스템
오피니언마이닝에 기반한 주식 자동 매매 시스템
 
화이트박스 테스팅
화이트박스 테스팅화이트박스 테스팅
화이트박스 테스팅
 
Ethereum A to Z
Ethereum A to ZEthereum A to Z
Ethereum A to Z
 
음성인식 및 웹 기반 어플리케이션을 통한 유비쿼터스 스마트홈 제어
음성인식 및 웹 기반 어플리케이션을 통한 유비쿼터스 스마트홈 제어음성인식 및 웹 기반 어플리케이션을 통한 유비쿼터스 스마트홈 제어
음성인식 및 웹 기반 어플리케이션을 통한 유비쿼터스 스마트홈 제어
 
QR코드 스캔에 기초한 보안 결제 시스템
QR코드 스캔에 기초한 보안 결제 시스템QR코드 스캔에 기초한 보안 결제 시스템
QR코드 스캔에 기초한 보안 결제 시스템
 
판매정보 빅데이터 분석을 통한 판매 예측 시스템
판매정보 빅데이터 분석을 통한 판매 예측 시스템판매정보 빅데이터 분석을 통한 판매 예측 시스템
판매정보 빅데이터 분석을 통한 판매 예측 시스템
 

Ethash : Ethereum PoW Algorithm

  • 1. Ethash 이더리움의 Proof of Work 알고리즘 Bitcoin 의 마이닝 알고리즘과 무엇이 다르고 왜 만들었나? ASIC(주문형 반도체) 로 인한 Hashrate 독점, 중앙화 문제 해결에 초점
  • 3. Bitcoin Mining Flow Bitcoin 의 경우 단순히 SHA256 연산만을 필요로 하므로 일반 CPU, GPU 보다 수천배 이상 빠른 ASIC 제작이 가능
  • 4. Ethash Mining Flow 단순히 SHA256 연산만을 필요했던 Bitcoin 의 Mining 알고리즘과 달리 Ethash 에서는 DAG 를 통해 미리 알 수, 할 수 없는 순차적 메모리 연산을 요구하여, ASIC 제작을 어렵게 함
  • 5. Ethash • Memory Hard Computation • Memory Easy Validation • ASIC ( 주문형 반도체 ) 제작을 힘들게 • 위 같은 목적 달성을 위해 매 3만 블록마다 수 GB 의 DAG(Directed acyclic graph)를 새로 생성하여 해싱에 사용( 점점 사이즈 증가 ) • KECCAK(SHA-3) 사용 • Dagger 와 Hashimoto 알고리즘의 장점을 결합한 Dagger-Hashimoto 의 수정버전
  • 6. Ethash: DAG data, cache size • 블록의 헤더들을 스캔하여 Seed 값 추출 가능 • 해당 Seed 를 통해 16MB 의 pseudo random cache 를 계산 가능 • 해당 Cache를 통해 1GB 이상의 Full Dataset 을 생성 가능 • 30,000 Block 단위 별로 Full Dataset 이 완전히 바뀌고, 선형으로 커지도록 설계 됨 • 해당 Full Dataset 의 랜덤한 부분을 마이닝 해싱 작업에 포함 시키도록 함 • 따라서 메모리 읽기 연산, Dataset 저장 공간 등의 제약을 주어 ASIC 제작이 불가능하도록 함
  • 7. Ethash: DAG Cache Generation 선형 증가하는 소수를 사이즈로 사용 2048 epoch 만큼의 lookup table 이 미리 계산되어 하드코딩 되어 있다. 2017.11 기준 약 450만 블록으로서, 약 150 epoch 이며 DAG 의 사이즈는 2.2GB 정도
  • 8. Ethash: DAG Cache Generation Sergio Demian Lerner 의 RandMemoHash Strict Memory Hard Hashing Functions (2014) 알고리즘을 사용하여 연산 시 메모리가 특정 임계치 보다 낮으면 연산 속도가 기하급수적으로 길어지도록 설계, 이를 통해 특정 시간동안 특정양의 메모리가 해당 연산을 위해서만 사용 되었음을 증명 할 수 있게된다. # 3 # 64 # keccak512
  • 10. Ethash: DAG Full Dataset calculation # 16 == 64 // 4 # mix[0] = mix[0] xor i # 256 # keccak512 # xor 의 대체제로 fnv hash 사용 (분산효과) fnv(a, b): (a * prime) xor b
  • 11. Hashimoto # 64 # 64 # 32 == 128 // 4 # 2 == 128 / 64 # to little-endian # [0, 4, 8, … ] # for Fetch DAG Page # Fetch DAG Page from dataset_lookup table
  • 12. Ethash: Hashimoto, Mining # zero padding Hashimoto_light 는 light client 가 1기가 이상의 DAG 를 가지고 연산하기 무거우니 16MB 이상의 cache 만으로 실시간으로 DAG를 연산, 생성하여 사용하도록 한 것
  • 13. Ethash 정리 • 민주적, 비독점적인 탈중앙 마이닝을 위해 ASIC 제작을 어렵도록 설계 • ASIC 의 경우 오로지 마이닝 용도이므로 (전기료 == 채굴수입) 이 되어 에너지가 낭비됨 • Ethash 계속 확장, 변경되는 DAG 파일을 통한 메모리 연산을 요구함 • 따라서 별도 장비구입 없이 이미 모두가 소유하고있는 일반적인 PC 로 채굴하기 적합 • 하지만 합의 과정을 위해 불필요한 연산을 통한 에너지 소비는 여전하므로 장기적으로 PoS 가 불가피
  • 15. DAG : Directed Acyclic Graph
  • 16.
  • 18. DAG Cache Generation Sergio Demian Lerner 의 RandMemoHash Strict Memory Hard Hashing Functions (2014) 알고리즘을 사용하여 연산 시 메모리가 특정 임계치 보다 낮으면 연산 속도가 기하급수적으로 길어지도록 설계, 이를 통해 특정 시간동안 특정양의 메모리가 해당 연산을 위해서만 사용 되었음을 증명 할 수 있게된다.