[멋쟁이 사자처럼 블록체인 스쿨 3기] 23-06-22

임형석·2023년 6월 22일
0

Ethereum 암호학


SHA-3

SHA 는 Secure Hash Algorithm 의 줄임말이다.

약 2004년부터 몇몇 해시알고리즘에 대한 공격이 성공화하였고, 2005년부터는 SHA-1 에 대한

공격이 성공할 수 있다는 공식적인 발표가 나오기 시작하였다.

SHA-3 계열 함수는 SHA-1,2 를 대체하기 위해서 등장한 함수들이다.

이전과 다르게, SHA-3 는 NIST(미국 국립표준기술 연구소) 에서 직접 디자인하지 않고,

공개 경쟁입찰 방식을 선택하였다.

그 중에서 우승한 것이 이더리움에서 사용되는 Keccak256 이다.

SHA-3 계열은 SHA-2 와 다르게, 전처리 과정에서 메시지 패딩에 쓰일 값들을 초기화 하고,

해시 연산에서는 패딩된 메시지로부터 메시지 스케쥴링 과정을 반복하여 메시지 다이제스트를

얻는 역할을 한다.

SHA-3와 Keccak이 완전히 일치하는 함수는 아니다. SHA-3는 Keccak의 패딩 길이를 변경한

것으로 FIPS202에서 내용을 확인할 수 있다.

자세히는 모르지만.. 이러한 구조로 암호화 하는 것 같다.


Ethereum POW Mining

현재 이더리움은 POS 합의 알고리즘을 사용하고 있다.

과거 POW 합의 알고리즘을 사용할 때, 비트코인의 POW 는 타겟값보다 낮은 해시를 얻을 때 까지

논스 값을 바꾸는 형식으로 상대적으로 간단, 명확했다.

따라서, 해당과정을 수행하는데 효과적인 특수 제작된 ASIC 이 사용되었다.

ASIC 이란?
세계 최초의 채굴기 생산 회사가 된 Bitmain에서 처음으로 SHA256 계산에 특화된 반도체를 만들면서 ASIC의 역사가 시작되었다. 그 반도체로 만든 기계가 바로 Antminer.

한마디로 ASIC 은 SHA256 계산에 특화된 채굴기이다.

ASIC 이 도입되면, 자본의 규모가 채굴 성공 여부에 큰 영향을 미치기에, 이더리움에서는

이 문제를 해결하고자 POW 에 Ethash 라는 방법을 사용했다.

Ethash 는 대거 알고리즘과 하시모토 알고리즘의 조합으로 개선된 대거-하시모토 알고리즘을 사용.

30000만 블록마다 DAG 를 새로 생성하고 그 크기를 증가시켜 ASIC 주문 제작이 무의미하게했다.


Ethash - Ethereum yellow paper

Ethereum yellow paper 링크

이더리움의 황서 11.5.1 에는 POS 로 바뀐 지금까지도 ethash 에 대한 내용이 남아있다.

ethash 는 seed 를 먼저 생산하고, seed 로 부터 cache 를,

cache 로 부터, dataset 을 생성하고 있음을 알 수 있다.

dataset 은 3만 블록마다 변경되며, cache 는 light client,

dataset 은 full client, miner 가 저장하고 있음을 알 수 있다.

채굴자는 단지 숫자를 변경시키는 행위(논스 값 찾기) 를 넘어서, 지속적으로

dataset 을 읽는 행위도 해야한다.


Ethash Hashing Algorithm

  1. 전처리된 헤더와 현 논스 값을 해싱하여 초기 mix 를 세팅한다.
    결과로 mix 0 값이 생성된다.
  1. DAG 파일을 먼저 준비해야 한다.
    전체 DAG 파일 중에서, 128바이트 크기의 랜덤한 페이지를 불러온다.
    128바이트는, 2개의 DAG 페이지의 크기에 해당한다.
  1. mix, DAG 를 결합하는 과정을 수행한다. 이 과정을 64번 수행.
  1. 결과로 32비트의 결괏값을 생성, mix digest 값과 target 값을 비교.
    mix digest 값이 더 작으면 성공.

0개의 댓글