블록체인 암호학 기초 정리
블록체인에서 암호학의 역할
- 참여자의 디지털 아이덴티티 생성
- 데이터와 트랜잭션의 보안
- 데이터의 프라이버시
- 디지털 서명
암호화의 기본 과정
encrypt => decrypt
대칭키 암호학
encrypt와 decrypt에 같은 키(symmetric key)를 사용한다.
따라서 키가 노출되면 누구나 데이터를 해독할 수 있다.
비대칭키 암호학 (공개키 암호학)
현재 블록체인에서 사용하고 있는 암호화 방식
encrypt와 decrypt에 서로 다른 키를 사용하는 방식.
(개인키, 공개키)의 key pair를 생성, 개인키로 암호화한 데이터는 공개키로 해독할 수 있고 그 반대도 성립한다. 개인키는 외부에 노출하지 않고 공개키는 노출되어 있다.
예를 들어 A에게 메세지를 보내는 경우를 생각해보자. A는 key pair를 가지고 있다. A의 공개키를 이용하여 메세지를 암호화하여 모두에게 공개한다. 이 메세지는 오직 A의 개인키를 통해서만 해독이 가능하기 때문에 모두에게 공개하더라도 A만이 해독된 메세지를 볼 수 있다.
이더리움 어카운트 주소
이더리움의 어카운트 주소는 비대칭키 암호학을 통해 만들어 진다.
- 256비트의 난수를 생성하여 이를 개인키로 한다.
- Eliptic Curve Cryptography Algorithm를 이용하여 개인키에서 공개키를 만든다.
- 공개키에 해시함수인 RIPEMD-160을 적용하여 어카운트 주소를 든다. 어카운트 주소는 블록체인 네트워크에서 주소로 쓰인다.