블록체인 스터디 [25주차]

개발새발·2021년 11월 2일
0

블록체인 스터디

목록 보기
18/25

블록체인 스터디 [25주차]

비트코인과 이더리움은 개인키와 공개키, 한 쌍의 키를 가지고 있다. 개인키는 계정의 소유권을 증명해주는 키이다. 이더리움의 경우 EOA의 소유권을 설정하게 해준다. 개인키는 256비트 구성이고 보안에 각별한 신경을 써야 한다. 공개키는 어떠한 알고리즘에 의해 개인키로부터 생성해낸다. 공개키는 개인키로부터 나왔지만 단방향으로만 도출해낼 수 있기 때문에 공개키를 가지고 개인키를 예측하는 것은 불가능하다.

현재까지 공개키 암호는 주로 RSADH를 많이 사용해왔다. 암호키 길이가 길어지면 보안 강도는 높아지지만 속도가 느려진다. ECC(Elliptic Curve Cryptography)를 사용하면 짧은 키로도 동일한 암호 성능을 지니게 되어 컴퓨터 성능이 낮아도 암호 성능을 유지할 수 있다. 따라서 최근에 들어서는 따라서 ECC(타원곡선 암호)를 많이 사용한다. ECC는 디지털 서명, 키 교환을 위한 공개키 암호로 주로 사용된다. 비트코인과 이더리움의 경우도 ECC를 사용한다.

이더리움에서 공개키 K는 K = k * G라는 수식으로 생성된다(k는 개인키, G는 Generation point(타원 곡선 위의 임의의 값), *는 타원 곡선 곱하기 연산자). 공개키는 특정한 타원곡선(secp256k1)과 수학적 상수를 사용해서 만들어진다. k * GGk번 더한 것을 의미한다. 모든 사용자는 동일한 임의의 점 G에서 접선을 그어 타원 곡선 특성상 만나는 다른 접점을 찾는다. 이를 -2G라고 하면 -2G를 x축 대칭하면 2G가 된다. 이 과정을 k만큼 반복하면 k * G를 구할 수 있는 것이다.

책에 있는 내용으로는 타원 곡선 암호를 이해할 수가 없어서 한기대 박승철 교수님의 강의를 듣고 해당 내용을 따로 정리해 두었다. 그래도 완벽하게 이해하진 못 했다ㅎ

『Mastering Ethereum』 chapter4 정리한 블로그
타원 곡선 공개키 암호 강의 정리한 블로그

profile
블록체인 개발 어때요

0개의 댓글