블록체인 암호학 기초

블록체인에서 암호학의 역할

  • 참여자의 디지털 아이덴티티 생성
  • 데이터와 트랜잭션의 보안
  • 데이터의 프라이버시
  • 디지털 서명

암호화의 기본 과정

encrypt => decrypt

대칭키 암호학

encrypt와 decrypt에 같은 키(symmetric key)를 사용한다.

따라서 키가 노출되면 누구나 데이터를 해독할 수 있다.

비대칭키 암호학 (공개키 암호학)

현재 블록체인에서 사용하고 있는 암호화 방식

encrypt와 decrypt에 서로 다른 키를 사용하는 방식.

(개인키, 공개키)의 key pair를 생성, 개인키로 암호화한 데이터는 공개키로 해독할 수 있고 그 반대도 성립한다. 개인키는 외부에 노출하지 않고 공개키는 노출되어 있다.

예를 들어 A에게 메세지를 보내는 경우를 생각해보자. A는 key pair를 가지고 있다. A의 공개키를 이용하여 메세지를 암호화하여 모두에게 공개한다. 이 메세지는 오직 A의 개인키를 통해서만 해독이 가능하기 때문에 모두에게 공개하더라도 A만이 해독된 메세지를 볼 수 있다.

이더리움 어카운트 주소

이더리움의 어카운트 주소는 비대칭키 암호학을 통해 만들어 진다.

  1. 256비트의 난수를 생성하여 이를 개인키로 한다.
  2. Eliptic Curve Cryptography Algorithm를 이용하여 개인키에서 공개키를 만든다.
  3. 공개키에 해시함수인 RIPEMD-160을 적용하여 어카운트 주소를 든다. 어카운트 주소는 블록체인 네트워크에서 주소로 쓰인다.