논스 (임시값)

해시넷
Asadal (토론 | 기여)님의 2018년 8월 9일 (목) 11:42 판
이동: 둘러보기, 검색

논스(nonce)는 블록체인에서 목표값 이하의 블록 해시를 찾기 위해 임시로 사용하는 숫자이다. 넌스 또는 난스라고도 한다.

일반적으로 블록의 해시값은 해당 블록의 생성일시, 버전, 비츠(bits), 루트해시, 이전 블록의 해시, 그리고 논스(nonce)라고 불리는 임시값 등을 조합한 후 해시로 변환하여 생성한다.[1] 해당 블록의 생성일시, 버전, 난이도, 루트해시와 이전 블록의 해시값은 이미 확정되어 정해진 값을 가지고 있지만, 논스라는 임시값이 달라짐에 따라 해시 연산 결과로 생성되는 블록 해시값도 다양하게 나올 수 있다. 예를 들어 논스가 1인 경우의 해시값과 2인 경우의 해시값은 전혀 다르다. 이 논스 값을 수없이 바꿔가면서 하나씩 대입하다가 새로 생성된 해시값이 일정한 목표값보다 더 작을 경우에 새로운 블록이 성공적으로 생성된다. 이처럼 특정한 블록에 대해 목표값 이하의 크기를 가진 해시값을 생성하는 논스값을 찾음으로써 새로운 블록을 생성하는 행위를 작업증명(PoW)이라고 한다. 작업증명의 대가로 일정한 개수의 암호화폐를 지급받는 것을 채굴(採掘) 또는 마이닝(mining)이라고 한다. 결국 채굴을 통한 작업증명 과정은 목표값 이하의 블록해시를 생성하는 '논스값'을 찾는 행위이다.

예를 들어, 비트코인의 제520,654번째 블록의 해시값을 찾기 위해 사용한 논스값은 0xe1c63570이었다.

  • 코인종류 : 비트코인
  • 생성일시 : 2018-05-01 09:57:58 UTC
  • 블록번호 : 제520,654번째 블록
  • 블록해시 : 00000000000000000027d5cc71fb300b9d7c3b703da500a23a6a413297e7f8f4
  • 버전 : 0x20000000
  • 난이도 : 7.07T/4.02T
  • 비츠(bits) : 0x1745fb53
  • 임시값(nonce) : 0xe1c63570
  • 포함된 트랜잭션의 개수 : 2,683개
  • 루트해시 : 57e9d0dfa5fb3f73303fc205b04adcbb9b2b29ade8031ddcc8c9c88652f35cd2
  • 이전 블록의 해시 : 00000000000000000020c54be8b197db66d61b0e9782ee15c71a0cc822bf48e8
  • 다음 블록의 해시 : 0000000000000000000c74f3b4da084b2a8a635dd988e00cc1877565eff6eaa8

같이 보기

  • 어미새, 〈#5 - 블록해시에 관한 정리〉, 《스팀잇》, 2018년 2월