생활
블록 해쉬 (Block Hash)를 구하는 과정은 어떻게 되나요?
블록 헤더는 블록에 정보를 표시하는 블록 맨 앞에 있는 정보들을 의미합니다.
블록 해쉬는 블록 헤더의 값들을 해쉬함수로 계산한 값을 의미합니다.
이러한 블록 해쉬를 구하는 과정은 어떻게 되나요?
55글자 더 채워주세요.
1개의 답변이 있어요!
질문자께서 질문해주신 내용을 중심으로 답변을 드리도록 하겠습니다.
블록 헤더는 블록에 정보를 표시하는 블록 맨 앞에 있는 정보들을 의미합니다. 블록 해쉬는 블록 헤더의 값들을 해쉬함수로 계산한 값을 의미합니다. 이러한 블록 해쉬를 구하는 과정은 어떻게 되나요?
질문자께서 말씀하신 것처럼 블록 헤더에는 클라이언트 소프트웨어 버전, 이전 블록의 해시 값, 머클루트의 해시 값인 머클 해시, 블록이 생성된 시간, 난이도, 논스 값 등의 정보가 저장되어 있습니다.
POW 합의 알고리즘에서 새로운 블록을 생성하기 위해 블록 해시 값을 연산한다고 할 때 소프트웨어 버전, 이전 블록의 해시 값, 머클루트의 해시 값인 머클 해시, 블록이 생성된 시간, 난이도는 결정이 되고 변하지 않습니다.
다만 논스의 경우에는 변할 수 있는 무작위 값이기 때문에 논스가 달라짐으로써 새로운 블록의 해시 값이 다르게 연산되어 나오게 되는 것입니다.
따라서 무작위 논스 값을 해시 함수에 대입하면서 난이도 값과 같거나 낮은 값을 찾는 연산을 진행하게 되는데 이 값을 찾게 되면 블록을 생성할 수 있게 되고 이때 논스를 비롯한 나머지 모든 값을 더한 후 이것을 해싱하게 되면 이 새로운 블록의 해시 값을 구할 수 있게 됩니다.
답변이 도움이 되길 바랍니다.