Share Difficulty는 풀이 채굴 결과를 share, 즉 지속적인 작업 증명으로 받아들이기 위해 요구하는 조건이 얼마나 까다로운지를 나타냅니다. 시도 횟수가 같다면 난이도가 높을수록 조건을 충족하는 결과는 평균적으로 줄어듭니다. Bitcoin 네트워크에서 블록을 찾는 난이도와는 별개의 설정입니다.
채굴은 해시라는 계산 결과를 만듭니다. 이 결과는 숫자로 해석할 수 있습니다. 풀이 결과를 받아들이려면 그 값이 정해진 목표값 이하여야 합니다. 목표값이 낮으면 그 아래에 들어가는 결과가 줄어 조건이 더 엄격해집니다. 따라서 수치 목표가 내려갈수록 Share Difficulty는 올라갑니다. 프로토콜이 궁금한 독자를 위해 덧붙이면, 풀과의 통신 규칙인 Stratum V2는 SetTarget 메시지의 target 필드로 이 상한을 보냅니다. 메시지 형식을 몰라도 원리는 이해할 수 있습니다. 숫자의 상한이 낮아질수록 채굴자가 충족하기는 더 어려워집니다. [1]
풀이 페트라의 난이도를 1024에서 2048로 높였다고 가정해 봅시다. 계산 속도와 환산 방식이 같으면 같은 기간에 조건을 충족하는 결과는 평균적으로 약 절반이 됩니다. 기계는 계속 같은 속도로 시도하지만 더 엄격한 기준을 통과하는 결과가 줄어드는 것입니다. 개별 결과 사이의 간격은 여전히 무작위입니다. 다음 share가 매번 정확히 두 배의 시간이 지난 뒤 나온다고 기대해서는 안 됩니다. [2]
메시지 수만 세면 서로 다른 것을 같은 기준으로 비교하게 됩니다. Braiins는 그래서 난이도에 따라 환산한 작업 단위로 집계를 설명합니다. 난이도 1024의 결과 두 개가 받아들여졌다면 합산 가중치는 난이도 2048의 결과 한 개와 같습니다. 메시지가 적다고 기여가 작았다는 뜻은 아닙니다. 또한 이 집계 가중치를 실제 수행한 계산 횟수의 정확한 기록과 혼동해서도 안 됩니다. 이는 작업의 통계적 증거입니다. 금전적 보상은 풀의 규칙에도 달려 있습니다. [3]
Share Difficulty를 바꾸는 것만으로 채굴기의 전용 칩인 ASIC이 빨라지지는 않습니다. Bitcoin 블록에 필요한 네트워크 목표값도 변하지 않습니다. 독립적인 시도 횟수와 네트워크 난이도가 같다면 블록을 찾을 확률은 그대로입니다. 풀은 중간에 어떤 결과를 받아볼지만 바꿉니다. 따라서 share 난이도를 낮춘다고 Bitcoin 블록을 만들기가 쉬워지는 것은 아닙니다. [3]
느린 기계와 빠른 기계에 같은 설정을 적용하면 제출하는 결과 수가 크게 달라집니다. 난이도를 자동으로 조절하는 VarDiff는 이 차이를 줄이고 불필요한 통신을 덜어 줍니다. Braiins에서는 최솟값을 지정할 수도 있습니다. 이것은 하한이지 고정된 할당값이 아닙니다. 풀은 계산 속도에 따라 더 높은 난이도를 선택할 수 있습니다. 페트라가 설정과 현재 표시를 비교할 때는 먼저 보고 있는 값이 최솟값인지 실제 할당 난이도인지 확인해야 합니다. [2]
소프트웨어는 변경이 어떤 작업에 해당하는지 알아야 합니다. 현재 Stratum V2 명세에서 SetTarget은 이후에 받은 작업과, 앞서 받았지만 ntime_start가 비어 있는 미래 작업에 적용됩니다. 빈 값은 블록 헤더에 넣을 초기 타임스탬프가 아직 정해지지 않았고 작업이 활성화를 기다린다는 뜻입니다. 블록 헤더는 해당 블록의 정보를 요약한 짧은 데이터 부분입니다. 이미 받은 작업의 ntime_start가 채워져 있다면 그 목표값은 유지됩니다. 따라서 거절 원인을 조사할 때 결과를 최신 상한과 비교하는 것만으로는 부족합니다. 올바른 작업에 연결해야 합니다. 보통 채굴 소프트웨어가 이 일을 처리합니다. [1]
페트라는 best share라는 표시를 볼 수도 있습니다. 예를 들어 Braiins Solo는 채굴 세션 동안 찾은 가장 높은 난이도의 share를 이렇게 부릅니다. 할당 난이도는 결과 제출에 충분했던 조건을 말하고, best share는 실제로 찾은 결과가 얼마나 드물었는지를 말합니다. 최고 기록은 블록을 향해 쌓아 둔 진행도가 아닙니다. 아주 뛰어난 결과라도 다음 독립적인 시도의 성공 확률을 높이지 않습니다. [4]
수동 최솟값을 너무 높이면 제출 간격이 매우 길어져 계산 속도 추정치가 크게 흔들릴 수 있습니다. ASIC이 계속 작동하는데도 모니터링 시스템이 경보를 낼 수 있습니다. 잠시 share가 없다는 것만으로 고장을 입증할 수는 없습니다. 페트라는 할당 난이도, 관찰 기간, 받아들여진 작업량, 연결 상태를 함께 비교합니다. 이 정보를 종합해야 정상적인 무작위 변동과 실제 문제를 구별하기 쉬워집니다. [2]
더 정확히 이해하려면 이 항목과 함께 다음도 읽어 보세요 Mining Share, Mining Target, Hashrate, Mining Pool, Bitcoin. 다음 항목에서도 이 글을 참조합니다 Mining Pool, Stratum V1, Stratum V2, Mining Share.