[Xangle Digest]
※ 해당 컨텐츠는 Crypttempo(크립템포)에서 DeFi Lesson Series 영상을 기반으로 작성된 내용입니다. 컨텐츠에 대한 추가적인 주의사항은 본문 하단에서 확인해주세요.
암호화 해시 함수와 작업 증명
"블록체인의 개념과 이유" 편에서, 분산화 공동체의 예시를 통해 거래 내역을 기록하고 위변조 방지를 위해 도장을 찍고 간인을 하여 공유하는 사례를 살펴본 바 있습니다. 실제로 블록체인 네트워크에서도 기록되는 데이터의 위변조를 방지하기 위한 간인의 역할을 수행하기 위해, 해시 함수를 통해 출력되는 해시 값을 사용합니다.
해시 값은 해시 함수를 이용하여 입력된 값을 고정된 길이의 암호화된 문자열로 출력한 값입니다.
해시 함수에는 세 가지 특징이 있습니다.
- 첫 번째, 입력 값에 상관없이 동일한 길이의 알 수 없는 문자와 숫자로 이루어진 결과 값이 출력된다.
- 두 번째, 입력 값이 아주 조금만 바뀌어도 완전히 다른 결과가 출력된다.
- 마지막으로, 해시 함수의 입력 값에는 제한이 없어서, 암호화 결과로 나온 해시 값만으로 입력 값을 찾는 것이 불가능한 비가역 암호화 기법이다.
이 해시 함수는 암호화폐 채굴을 위한 작업 증명 방식에 사용됩니다. 다양한 블록체인에서 작업 증명 방식으로 채굴이 진행되나, 여기서는 가장 대표적인 블록체인인 비트코인을 기준으로 설명하겠습니다. 블록을 생성하기 위해 시스템에서는 특정 조건의 해시 값을 제시하게 되고, 블록체인 시스템에 참여한 노드들은 각자 거래 정보인 트랜잭션들을 담아 블록을 만들고 제시된 해시 값에 대한 입력 값을 찾는 경쟁을 하게 됩니다.
해시 함수의 특징 때문에 요구되는 조건에 부합하는 해시 값을 찾기 위해서는 임의의 입력 값을 무한히 대입해 가면서 결과 값이 조건에 맞는지 확인해야 합니다.
그러다 가장 먼저 조건에 맞는 해시 값을 출력시킬 입력 값을 찾은 노드가 만든 블록이, 다음 블록으로 채택되어 블록체인에 기록이 되면 다른 노드들은 해당 블록에 문제가 없는지 검증을 하게 됩니다. 검증이 완료되면 블록체인은 블록을 생성한 대가로 정해진 수량의 암호화폐를 해당 노드에 지급함으로써, 한 블록에 대한 채굴 프로세스가 마무리됩니다.
-> Crypttempo(크립템포)의 ' 암호화 해시 함수와 작업 증명' 영상 보러가기