Pay Per Last N Shares(PPLNS)는 채굴 풀의 보상 분배 방식입니다. Mining Pool은 블록을 찾는 채굴자들의 작업을 조율합니다. 블록은 비트코인의 공개 기록에 추가되는 거래 묶음입니다. 풀이 블록을 찾으면 참여자들이 최근에 제출해 인정받은 작업에 따라 정해진 보상을 나눕니다. 따라서 작업 증거인 개별 share에는 Pay Per Share (PPS)처럼 미리 약속된 고정 지급액이 없습니다.
얀은 채굴기를 Mining Pool에 연결합니다. 여러 채굴자의 작업을 조율하는 서비스입니다. PPLNS에서 풀은 인정된 결과마다 고정 가격을 약속하지 않습니다. 블록을 찾았을 때 최근 작업 기록을 바탕으로 보상을 나눕니다. 새 결과가 들어오고 가장 오래된 결과가 차례로 빠지는 이동 목록을 떠올리면 쉽습니다. 블록을 찾았다고 목록이 지워지지는 않습니다. 같은 작업이 여러 블록 보상의 몫을 받을 수도 있고, 보상을 주는 블록이 나오기 전에 목록을 벗어날 수도 있습니다. [1]
기계가 계속 작업한다는 증거로 보내는 결과를 shares라고 부릅니다. 여기서 해시는 제안할 블록의 데이터로 계산한 숫자입니다. 네트워크가 정한 목표값 이하여야 하므로 채굴자는 데이터를 바꿔 가며 계산을 반복합니다. 풀의 더 쉬운 조건을 충족하지만 보통 새 Bitcoin 블록을 만들기에는 부족합니다. N은 계산에 포함하는 작업 범위의 크기를 뜻합니다. 가장 단순한 모델에서는 풀 전체의 최근 N개 같은 난이도 share이지, 최근 N명이 아닙니다. 난이도가 다르면 그에 맞게 작업량에 가중치를 주어야 합니다. 집계 범위가 일정한 시간 수를 뜻하는 것도 아닙니다. 다음 작업이 얼마나 빨리 들어오는지에 따라 기간이 달라집니다. [1]
같은 가중치의 share 1000개가 꽉 찬 집계 범위를 생각해 봅시다. 그중 100개가 얀의 것입니다. 풀은 방금 블록을 찾았고 자체 공제 후 3 BTC를 나눌 수 있습니다. 이 예에서 얀의 몫은 100 / 1000 × 3 = 0.3 BTC입니다. 집계된 작업의 십분의 일을 얀이 수행했으므로, 나누는 보상의 십분의 일을 받는 것입니다. 설명용 숫자일 뿐, 3 BTC가 블록 보조금, 즉 블록마다 새로 발행되는 비트코인의 액수라는 뜻도 아니고 0.3 BTC가 약속된 일일 수입도 아닙니다. 다음 블록을 찾았을 때는 집계 범위에 다른 결과가 들어 있을 수 있고 나눌 금액도 달라질 수 있습니다. [1]
얀이 정비를 위해 기계를 연결 해제해도, 올바르게 구현된 PPLNS에서는 이미 인정된 작업이 지워지지 않습니다. 새 작업에 밀려 나갈 때까지 집계 범위에 남아 이후 보상에도 참여할 수 있습니다. 얀이 계속 채굴하더라도 기존 작업은 같은 방식으로 오래되어 빠져나가고, 새 결과만 추가될 뿐입니다. 다시 연결하면 집계 범위에서 차지하는 몫이 점차 쌓입니다. 간헐적 가동은 변동을 키울 수 있지만 떠났다는 이유만으로 자동 벌금을 부과하는 것은 아닙니다. [1]
PPLNS는 실제 블록 발견의 결과를 나누므로, 풀이 성공한 날과 아무것도 찾지 못한 날이 다릅니다. Bitcoin 사용자가 낸 거래 수수료를 어떻게 포함하는지도 중요합니다. F2Pool은 이런 변동을 명시적으로 설명합니다. 반면 Full Pay Per Share (FPPS)는 보조금과 거래 수수료를 포함한 추정치로 인정된 작업을 평가하며, Pay Per Share Plus (PPS+)는 수수료 부분에만 PPLNS를 쓸 수 있습니다. 서비스 수수료율만으로 얀에게 어느 결과가 더 좋을지는 알 수 없습니다. 그 비율을 적용하는 기준 금액도 알아야 합니다. [2] [3]
계산된 몫, 계정 잔액, 자기 지갑으로 받은 지급액은 별개 단계입니다. 얀은 블록이 인정되었는지, 몫을 어떻게 계산했는지, 최소 금액과 일정에 따라 언제 출금 가능한지 확인합니다. 보상 방식 변경도 즉시 적용되지 않을 수 있습니다. 예를 들어 F2Pool은 자체 변경 적용 시점을 공개합니다. 공정하게 비교하려면 변경 전 작업과 그 작업이 집계 범위에 남아 있는 동안 생길 수 있는 나중 보상까지 포함해야 합니다. PPLNS는 풀의 미지급 위험도 전기료와 장비 비용도 없애 주지 않습니다. [3] [4]
더 넓은 집계 범위는 작업을 보상 대상에 오래 남게 하고, 그 작업의 잠재 보상을 더 많은 미래 블록 발견에 나눕니다. 너무 좁은 집계 범위 때문에 생기는 변동 일부를 완화합니다. 하지만 작은 풀이 규칙적으로 블록을 찾게 만드는 것은 아닙니다. 대신 이미 수행한 작업의 전체 결과를 알기까지 더 기다려야 합니다. 관리 화면에 예상 보상이 나와도 미래 발견에 대한 추정일 뿐, 즉시 출금할 수 있도록 고정 금액을 약속한 것이 아닙니다. [1]
PPLNS의 목적 중 하나는 보상 분배의 유리한 단계만 노려 풀 사이를 옮기는 pool-hopping을 제한하는 것입니다. 블록 발견을 넘어 이어지는 집계 범위는 새 라운드 시작에 들어오는 단순한 이점을 없앱니다. 그러나 수학적 공정성은 구체적인 변형에 달려 있습니다. Meni Rosenfeld는 단순한 고정 N 방식과 더 정교한 unit-PPLNS를 구분합니다. Unit-PPLNS는 각 share가 제출될 때의 네트워크 난이도와 블록 보상을 바탕으로 한 정보를 기록합니다. 나중에 보상을 지급할 때 해당 작업이 수행된 당시의 조건을 반영할 수 있습니다. 단순한 규칙은 네트워크 난이도나 블록 가치가 바뀔 때 악용될 수 있습니다. 운영자는 매개변수를 바꿀 때 이전에 인정된 작업의 기대 가치를 보존해야 합니다. 서비스 이름만으로 실제 계산이 이를 지킨다는 증거가 되지는 않습니다. [1]
더 정확히 이해하려면 이 항목과 함께 다음도 읽어 보세요 Mining Pool, Mining Share, Full Pay Per Share, Pay Per Share, Pool Fee, Payout Threshold. 다음 항목에서도 이 글을 참조합니다 Mining Pool, Solo Mining, Pay Per Share, Pool Fee.