블록체인 암호기술
1. 해시 함수
임의의 길이의 데이터를 고정된 길이의 무작위처럼 보이는 값으로 변환하여, 데이터의 무결성을 검증하고 식별할 수 있게 해주는 암호 기술
해시 함수의 특징
- 고정 길이 값 출력
: 어떤 데이터를 입력해도 항상 같은 길이의 해시값을 출력한다.
- 사소한 변화에도 민감 반응
: 입력값 중 숫자 하나만 바꾸어도 완전히 다른 해시값을 출력한다.
- 일방향성
: 해시값을 통해 입력 데이터를 유추하는 것은 불가능하다.
- 해시값 무작위성
: 입력 데이터에 대한 출력값은 예측할 수 없다.
- 해시값의 일관성
: 입력 데이터가 동일하다면 해시값은 항상 동일하다.
해시 함수의 활용
- 디지털 서명을 위한 문서 지문 생성
- 블록체인에서 블록 간의 연결
- 작업 증명 방식
2. 공개키 암호
서로 다른 공개키와 개인키를 사용해 데이터를 암호화하고 복호화함으로써, 안전한 통신과 디지털 서명을 가능하게 하는 암호 기술
한 쌍의 키 생성
- 서로 다른 키를 생성하여 암호화와 복호화에 서로 다른 키를 적용
- K+ : 공개키 (다른 사람에게 공개, Public Key)
- K- : 개인키 (비밀로 보관, Private Key)
- 공개키로부터 개인키 추론 불가능
암호화(Encryption)
방법 1) 공개키를 사용하여 암호화, 대응되는 개인키로 복호화
방법 2) 개인키를 사용하여 암호화, 대응되는 공개키로 복호화
공개키 암호 활용
전자 서명(Digital Signature)
- 공개키 기반의 암호 기술을 활용
- 디지털 문서에 대한 인증과 부인 방지가 목적
- 개인키는 개인이 소유하여 서명
- 공개키로 복호화(검증)
- 개인키로 문서에 대한 Hash 값 암호화 → 전자서명
- 다른 사람은 서명한 사람의 공개키로 전자서명을 풀 수 있음
- 문서의 해시값을 계산한 후 전자서명과 비교
비트코인에서 공개키 암호의 활용
비트코인에서의 송금
상대방의 공개키로 암호화하여 상대방에게 송금(트랜잭션의 Output)
→ 송금 받은 사람은 자신의 개인키를 이용하여 복호화함으로써 소유권 증명(트랜잭션의 Input)
