쉽게 설명하는 블록체인, 공개키와 개인키는 뭔가요?

우리는 지갑을 돈을 가지고 다니는 다른 소지품으로서 여긴다. 그래서 현금이나 카드 또는 신분증등을 지갑에 넣어 가지고 다닌다.

공개키개인키1.jpg

하지만 블록체인 세상에서는 지갑이 필요가 없어지고 전자지갑이 대체하게 된다. 비트코인과 개인 신원등을 전자 지갑안에 소유하며 디지털키, 비트코인주소, 디지털 서명 등을 통해 비트코인의 소유권이 성립된다.

모든 비트코인 거래에는 블록상의 장부에 기록되기 위해 유효한 서명이 필요하다. 이러한 서명은 디지털 키가 있어야 생성되는데, 이러한 디지털 키의 복사본만 가지고 있으면 해당계좌에서 비트코인을 관리할 수 있다.

1. 공개키로 우리는 공개된 장부인 블록상의 거래에서 해당 공개키를 가지고 있는 사람의 거래들이 참인지 거짓인지 정도 확인이 가능하다고 볼 수 있다.

2. 개인키는 비밀PIN혹은 수표에 하는 서명, 즉 개인키를 이용해 직접 거래를 발생시킬 수 있으므로 개인키는 정말 백업을 여러번 해야하고 항상 소중히 보관해야 한다.

이 디지털 키는 비트코인 지갑 소프트웨어를 이용해 관리한다.

여기에 더해, 비트코인 주소라는 것이 있다 비트코인 주소는 말 그대로 비트코인을 주고받는 계좌번호라고 할 수 있다.

공개키개인키2.jpg

개인키를 통해 공개키를 생성하고 공개키를 통해 비트코인 주소를 생성한다. (반대로 가는 역산, 공개키에서 개인키를 알아내거나 주소에서 공개키를 알아내는 것은 불가능하다)

  1. 개인키는 무작위로 추출한 단순한 숫자로 구성됨 [1~2의 256제곱(1.16x10^77) 사이의 수]

  2. 위 그림처럼 공개키는 타원곡선 곱셈 함수를 이용해 개인키로 부터 계산됨.

  3. 공개키로 부터 암호화 해싱을 사용해 비트코인 주소를 생성함. (SHA256과 RIPEMD160이라는 알고리즘 사용) 이때160bit 크기의 숫자가 생성.

  4. 이 160bit 길이의 숫자를 Base58check 이라는 인코딩을 통하여 사람들이 읽을 수 있는 문자로 바꿔 주고 비슷한 모양의 문자를 쓰지 않음으로써 거래의 표기나 항목에 대한 에러가 발생하지 않도록 한다.

생소한 용어들에 대한 것들은 어렵다고 해서 크게 신경쓸 것 전혀 없다. 여러번 보다 보면 익숙해지게 되어 있다.

최대한 쉽게 설명하려고 하지만 모르시는 분들을 위해 언제든지 댓글로 질문을 받습니다.
질문의 내용이 길 경우는 jsralphh@gmail.com으로 보내주시면 감사하겠습니다.

H2
H3
H4
3 columns
2 columns
1 column
2 Comments