검수요청.png검수요청.png

"이더해시"의 두 판 사이의 차이

해시넷
이동: 둘러보기, 검색
(새 문서: '''이더해시'''(Ethash)는 러시아, 캐나다의 프로그래머인 비탈릭 부테린(Vitalik Buterin)이 개발한 블록 체인 통화의 작업 증명(POW; Proof Of...)
 
1번째 줄: 1번째 줄:
'''이더해시'''(Ethash)는 러시아, 캐나다의 프로그래머인 [[비탈릭 부테린]](Vitalik Buterin)이 개발한 블록 체인 통화의 [[작업 증명]](POW; Proof Of Work) 기능이다.  
+
'''이더해시'''(Ethash)는 러시아, 캐나다의 프로그래머이며 이더리움의 개발자인 [[비탈릭 부테린]](Vitalik Buterin)이 개발한 블록 체인 통화의 [[작업 증명]](POW; Proof Of Work) 기능이다.  
  
 
==개요==
 
==개요==
6번째 줄: 6번째 줄:
  
 
==특징==
 
==특징==
 +
[[2차원 배열 데이터]](DAG; Directed Acyclic Graph) 파일을 이용해 [[GPU]] 연산의 효율성은 높힌다. ASIC 무력화를 위해 메모리를 사용하며, 컴퓨터 메모리 일정량의 데이터를 읽은 후 [[nonce]]와 [[hash]] 계산을 반복한다. <ref>니르바나,〈[https://ihpark92.tistory.com/51 이더리움의 합의 알고리즘 - 작업증명]〉, 《티스토리》, 2018</ref>
 +
목적 자체가 ASIC의 효율성을 낮춰 제작에 어려움을 주는 것이기 때문에 그를 위해 3만 블록마다 수 GB의 [[DAG]]을 새로 생성해 해싱에 사용한다. 블록의 헤더들을 스캔해 [[seed]]값을 추출할 수 있으며 당 seed를 통해 16mb의 [[pseudo random cache]]를 계산할 수 있고 당 cashe를 통해 1gb 이상의 Full Dataset을 생성할 수 있다. 30000 블록 단위 별로 Full Dataset이 완전히 변형되며 선형으로 증가한다. 또 해당 Full Dataset의 랜덤값을 마이닝 해싱 작업에 포함 시키도록 하여 메모리의 읽기 연산과 Dataset 저장 공간에 제약을 줘 ASIC 제작에 어려움을 주며
 +
[[마이닝]] 과정에서 페이지를 불러올 때 mix 과정을 통해 다음에 불러올 페이지를 예측할 수 없게 설계되어 있다. 캐시 용량 자체가 8kb~32kb의 작은 크기로 DAG를 저장하기가 현실적으로 불가하며 [[캐시 미스]]의 확률이 높기 때문에 일부를 캐시에 저장하는 것 또한 불가능하다.
 +
cache data를 이용해 64bytes의 데이터를 생성하고 이를 계산 결과에 맞는 Data size크기만큼 생성하도록 반복해 DAG 파일을 생성한다.<ref>dongsamb,〈[https://steemit.com/kr/@dongsamb/ethereum-pow-ethash Ethereun PoW 알고리즘 비교 및 원리]〉, 《steemit》, 2018</ref>
 +
 +
'''비트코인과의 비교'''
 +
 +
[[비트코인]]은 [[SHA256]] 연산만을 필요로 하지만 이더해시는 [[DAG]]를 사용해 예상 불가능한 순차적 메모리 연산을 필요로 해 [[ASIC]]의 제작이 어렵다. 비트코인과 같은 [[Pow]] 구조를 갖고 있으나 다른 매커니즘을 갖는다.
 +
 +
==채굴 과정==
 +
비어있는 32개 길이의 배열을 Epoch수만큼 해싱한다. 그 값을 Seed값으로 삼아 [[FNV 해시]]를 이용해 DAG를 64회 참조하고 그걸 바탕으로 [[Digest]]를 생성한다. Digest와 Seed를 [[Keccak156]]해시를 해 결과값이 조건에 맞으면 채굴에 성공한다.
 +
Digest와 Nonce는 블록 헤더에 포함되는데 Digest 필드, Nonce 필드가 포함되지 않아 해시값에 변경이 없다. <ref>야옹메롱,〈[https://blog.naver.com/mage7th/221493945127 크립토알고리즘 개념 및 종류]〉, 《네이버 블로그》, 2018-10-03</ref>
  
==활용==
 
  
 
{{각주}}
 
{{각주}}
  
 
== 참고자료 ==
 
== 참고자료 ==
 +
야옹메롱,〈[https://blog.naver.com/mage7th/221493945127 크립토알고리즘 개념 및 종류]〉, 《네이버 블로그》, 2018-10-03
 +
니르바나,〈[https://ihpark92.tistory.com/51 이더리움의 합의 알고리즘 - 작업증명]〉, 《티스토리》, 2018
 +
dongsamb,〈[https://steemit.com/kr/@dongsamb/ethereum-pow-ethash Ethereun PoW 알고리즘 비교 및 원리]〉, 《steemit》, 2018
  
 
{{알고리즘|검토 필요}}
 
{{알고리즘|검토 필요}}

2019년 7월 11일 (목) 17:35 판

이더해시(Ethash)는 러시아, 캐나다의 프로그래머이며 이더리움의 개발자인 비탈릭 부테린(Vitalik Buterin)이 개발한 블록 체인 통화의 작업 증명(POW; Proof Of Work) 기능이다.

개요

이더해시는 비트코인의 합의 알고리즘에 특화된 주문형 반도체(ASIC; Application Specific Integrated Circuit) 장비로 인해 채굴자가 대형화된 연산력을 바탕으로 이뤄진 중앙화를 해결하기 위해 개발된 알고리즘이다. 대거(Dagger) 알고리즘과 하시모토(Hashimoto) 알고리즘을 결합해 만든 대거-하시모토(Dagger-Hashimoto) 알고리즘을 사용한다. 이 알고리즘은 메모리를 활용하는 알고리즘이며, 연산장치의 물리적 한계를 사용함으로써 ASIC의 효율성을 낮춘다.

특징

2차원 배열 데이터(DAG; Directed Acyclic Graph) 파일을 이용해 GPU 연산의 효율성은 높힌다. ASIC 무력화를 위해 메모리를 사용하며, 컴퓨터 메모리 일정량의 데이터를 읽은 후 noncehash 계산을 반복한다. [1] 목적 자체가 ASIC의 효율성을 낮춰 제작에 어려움을 주는 것이기 때문에 그를 위해 3만 블록마다 수 GB의 DAG을 새로 생성해 해싱에 사용한다. 블록의 헤더들을 스캔해 seed값을 추출할 수 있으며 당 seed를 통해 16mb의 pseudo random cache를 계산할 수 있고 당 cashe를 통해 1gb 이상의 Full Dataset을 생성할 수 있다. 30000 블록 단위 별로 Full Dataset이 완전히 변형되며 선형으로 증가한다. 또 해당 Full Dataset의 랜덤값을 마이닝 해싱 작업에 포함 시키도록 하여 메모리의 읽기 연산과 Dataset 저장 공간에 제약을 줘 ASIC 제작에 어려움을 주며 마이닝 과정에서 페이지를 불러올 때 mix 과정을 통해 다음에 불러올 페이지를 예측할 수 없게 설계되어 있다. 캐시 용량 자체가 8kb~32kb의 작은 크기로 DAG를 저장하기가 현실적으로 불가하며 캐시 미스의 확률이 높기 때문에 일부를 캐시에 저장하는 것 또한 불가능하다. cache data를 이용해 64bytes의 데이터를 생성하고 이를 계산 결과에 맞는 Data size크기만큼 생성하도록 반복해 DAG 파일을 생성한다.[2]

비트코인과의 비교

비트코인SHA256 연산만을 필요로 하지만 이더해시는 DAG를 사용해 예상 불가능한 순차적 메모리 연산을 필요로 해 ASIC의 제작이 어렵다. 비트코인과 같은 Pow 구조를 갖고 있으나 다른 매커니즘을 갖는다.

채굴 과정

비어있는 32개 길이의 배열을 Epoch수만큼 해싱한다. 그 값을 Seed값으로 삼아 FNV 해시를 이용해 DAG를 64회 참조하고 그걸 바탕으로 Digest를 생성한다. Digest와 Seed를 Keccak156해시를 해 결과값이 조건에 맞으면 채굴에 성공한다. Digest와 Nonce는 블록 헤더에 포함되는데 Digest 필드, Nonce 필드가 포함되지 않아 해시값에 변경이 없다. [3]


각주

  1. 니르바나,〈이더리움의 합의 알고리즘 - 작업증명〉, 《티스토리》, 2018
  2. dongsamb,〈Ethereun PoW 알고리즘 비교 및 원리〉, 《steemit》, 2018
  3. 야옹메롱,〈크립토알고리즘 개념 및 종류〉, 《네이버 블로그》, 2018-10-03

참고자료

야옹메롱,〈크립토알고리즘 개념 및 종류〉, 《네이버 블로그》, 2018-10-03 니르바나,〈이더리움의 합의 알고리즘 - 작업증명〉, 《티스토리》, 2018 dongsamb,〈Ethereun PoW 알고리즘 비교 및 원리〉, 《steemit》, 2018


  검수요청.png검수요청.png 이 이더해시 문서는 알고리즘에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.