비트 코인 타겟, 비트 및 난이도 설명 — 파트 I

아시다시피 새로 생성 된 비트 코인은 비트 코인을 m 받는 과정에서 평균 10 분당 출시됩니다. 비트 코인 소프트웨어를 실행하는 특수 노드 인 채굴자는 비트 코인 네트워크에서 비트 코인 거래를 확인하는 데 참여하는 소위 채굴 프로세스에 참여합니다. 채굴자는 생성 한 블록을 허용하는 유효한 해시를 찾는 데 엄청난 처리 능력을 소비합니다. 비트 코인 블록 체인에서 가장 긴 체인에 포함됩니다. 보상으로 채굴자는 새로 발행 된 비트 코인을받습니다. 그들이받을 비트 코인의 양은 일정하지 않고 시간이 지남에 따라 절반으로 줄어들 것입니다. 이것이 우리가 비트 코인 반감이라고 부르는 것입니다. 이 게시물을 작성하는 시점에서 각 채굴자가받는 보상은 6.72699351 BTC입니다 (블록 665811 ).

이것은 매우 경쟁적인 작업이며 값싼 전기와 적절한 하드웨어를 사용하여 다음 블록에 대한 유효한 해시를 먼저 계산할 수있는 사람 만이 경주에서 이기고 다음 번에 다른 채굴 자에게 행운을 가져다줍니다. 채굴자가 비트 코인 네트워크에 의해 정의 된 대상 아래에 SHA-256 해시를 생성해야하고 유효한 해시를 찾을 가능성이 매우 낮기 때문에 다음 블록에 대한 유효한 해시를 찾는 것은 어렵습니다. 비트 코인 네트워크의 모든 채굴자는 10 분 안에 다음 블록을 찾을 수 있으며, 2016 년 블록이 발견 될 때마다 마지막 2016 블록이 추가되는 데 걸린 실제 시간을 기준으로 난이도를 다시 조정합니다. 블록 체인.

이것은 블록 665811의 블록 헤더를 캡처 한 스크린 샷입니다. bits 라는 필드를 볼 수 있으며 해당 필드의 값은 16 진수 (0x170da8a1)입니다. 블록 헤더가 네트워크를 통해 전파 될 때 너무 많은 공간을 차지하지 않기 위해 실제로 숫자를 나타내는 간단한 방법이지만 256 비트 숫자로 표시된 비트의 값을 얻으려면 이 값은 16 진수로 표시됩니다.

0x000000000000000000 0da8a1 0000000000000000000000000000000000000000

잠시 동안이 블록의 해시 값을 살펴 보겠습니다.

0x0000000000000000000b7b3bf6d46ad2cacca02ba2df0911530cb657b962d0e3

그렇다면이 16 진수 값은 무엇일까요? 음, 이것이 목표 값입니다. 즉,이 블록의 해시 값을 고려하면 해시 값이 목표 값보다 낮기 때문에 하루가 끝날 때이 블록이 블록 체인에 포함될 수있었습니다. 광부는 어떻게 든이 유효한 해시를 생성하는 데 10 분만에 노력할 수있었습니다.

아래 스크린 샷에서 2009 년에 비트 코인 블록 체인을 위해 채굴 된 최초의 블록 인 Genesis 블록의 블록 헤더를 볼 수 있습니다.이 블록의 목표 값은 다음과 같습니다.

0x000000 00ffff 0000000000000000000000000000000000000000000000000000

이 Genesis 블록의 경우 목표 값은 시스템에 의해 생성되지 않았습니다. 대신 Satoshi는 처음에 최선의 추측으로이 값을 제시했습니다. Genesis 블록의이 목표 값은 다른 블록의 목표 값을 계산하는 방법에 영향을줍니다. 예를 들어 2016 년에서 4032 년 사이의 블록에 대한 목표 값을 계산하는 시나리오를 가정 해 봅시다. 새 목표를 계산할 때 마지막 2016 블록에 대한 블록을 찾는 비율을 구해야합니다. 즉, 실제 블록을 나눕니다. 예상 시간에서 마지막 2016 블록을 채굴하는 데 걸린 시간은 물론 2016 * 10 * 60 초입니다. 결과 (비율)가 1보다 작 으면 블록이 빠른 속도로 채굴되었다고 가정 할 수 있습니다. 즉, 각 블록을 채굴하는 데 10 분도 채 걸리지 않습니다. 반면에 비율이 1보다 크면 각 블록을 채굴하는 데 걸린 시간이 예상 10 분보다 큽니다. 그런 다음 현재 네트워크 대상에 비율을 곱하여 새 대상을 계산합니다. 가능한 한 정확히 10 분의 시간을 유지하기 위해 다음 2016 년 블록에 대해 목표를 다시 조정하여 최종 비율에 따라 채굴을 너무 어렵거나 쉽게 만듭니다.

헤더에서이 목표 계산 프로세스의 또 다른 부분 인 난이도 라는 또 다른 필드를 볼 수 있습니다. 간단히 말해서 어려움은 Genesis 블록을 채굴하는 것이 얼마나 어려웠는지와 관련하여 특정 블록을 채굴하기가 어려웠는지 이해하는 방법입니다. 기본적으로 최대 목표 (Genesis 블록의 목표)와 우리가 계산 한 현재 목표 사이의 비율입니다. 따라서 최대 목표를 현재 목표로 나누어 다음 2016 년의 난이도를 찾을 수 있습니다.

블록 665811의 난이도를 고려하면 20,607,418,304,385.63입니다. 평균적으로 Genesis 블록에 정의 된 초기 난이도 인 난이도 1에서이 유효한 블록을 찾는 데이 정도 시간이 걸린다고 생각할 수 있습니다.

다음 블록에 대해 타겟을 정확히 계산할 수있는 방법에 대한 아이디어가 필요하므로 다음 게시물에서 각 단계를 명확하게 설명하는 코드 스 니펫을 추가하겠습니다.