[Blockchain] Mastering Ethereum Ch.4 요약

Melon Coder·2023년 3월 13일
1

Blockchain

목록 보기
4/5
post-thumbnail

Chapter 4. 암호학

키와 주소

이더리움은 외부 소유 계정(EOA), 컨트랙트라는 두 가지 유형의 계정을 갖고 있는데, 이 때 디지털 개인키(private key), 이더리움 주소, 디지털 서명을 통해 EOA의 이더 소유권을 확립한다.

개인키는 비공개로 유지되어야 하고, 네트워크로 전달된 메시지에 나타나지 않으며, 체인에 저장되어서도 안된다.
그 이유는 개인키를 사용하여 생성된 디지털 서명을 통해 자금의 접근과 통제가 이루어지기 때문이다.

공개키 암호화와 암호화폐

공개키 암호화 방식은 오늘날 정보 보안의 핵심 요소이다.
공개키 암호화는 고유한 키를 사용하여 정보를 보호하는데, 이 키는 특수한 속성을 가진 수학 함수를 바탕으로 한다.

이더리움 프로토콜에는 암호화가 없기 때문에 이더리움 네트워크 동작의 일부로 보내는 모든 메시지는 모두가 확인 가능하다.
따라서 개인키는 트랜잭션 인증을 위한 디지털 서명을 만드는 데에만 사용한다.

개인키

개인키는 단순히 무작위로 선택한 숫자다.
개인키의 소유권과 제어는 해당 주소를 승인하는 컨트랙트에 대한 접근뿐 아니라 해당 이더리움 주소와 관련된 모든 자금에 대한 사용자 제어의 근원이다.
따라서 여러번 말하지만 개인키는 반드시 백업해두어야 한다.

공개키

이더리움 공개키는 타원 곡선에 있는 점(point)으로 타원 곡선 방정식을 만족하는 x,y 좌표의 집합을 의미한다.
공개키는 사실상 비가역적인 타원 곡선 곱셈을 사용하여 캐인키로부터 계산된다.
타원 곡선 곱셈은 '단방향' 함수라고 불리는 함수 유형이다.

공개키 생성

이더리움에서 16진수 문자(65바이트) 130개의 시리얼라이제이션(serialization)으로 표시되는 공개키를 볼 수 있다.
이더리움은 압축되지 않은 공개키만을 사용한다.
따라서 타원 곡선의 점을 식별하는 데 사용할 수 있는 SEC 1 표준에서 유일한 접두어는 0x04이다.

암호화 해시 함수

우선 해시 함수(hash function)이란 '임의 크기의 데이터를 고정된 크기의 데이터로 매핑하는데 사용할 수 있는 모든 함수'이다.
암호 해시 함수는 '단방향' 해시 함수이다.
해시함수가 좋을수록 해시 충돌(hash collision)이 덜 발생한다.
이더리움에서는 사실상 해시 충돌이 불가능하다.

암호화 해시 함수의 주요 속성

  • 결정론: 주어진 입력 메시지는 항상 동일한 해시 결과를 생성한다.
  • 검증성: 메시지의 해시 계산은 효율적이다.
  • 비상관성: 메시지에 대한 작은 변화(ex. 1비트 변경)는 해시 출력을 너무 광범위하게 변경해야 해서 원본 메시지의 해시와 상관 관계가 없다.
  • 비가역성: 해시로부터 메시지를 계산하는 것은 불가능하다.
  • 충돌 방지: 같은 해시 결과를 생성하는 2개의 서로 다른 메시지를 계산하는 것은 불가능하다.

0개의 댓글