Selfish Mining은 유효한 블록을 보류하고 공개 시점을 조절하는 채굴 전략입니다. 자신의 연산 능력 비중보다 더 큰 비중의 블록이 채택되도록 노립니다. 규칙을 어겨 비트코인을 발행할 수 있게 하거나 수익을 보장하지는 않습니다. 연결 상태, 다른 채굴자의 행동, 비용도 중요합니다.
페터는 연산 능력을 모아 보상을 나누는 채굴자 집단인 Mining Pool을 운영합니다. 블록은 공동 기록에 추가하는 거래 묶음입니다. 집단이 유효한 블록을 찾았습니다. 보통은 다른 채굴자가 그 뒤를 이을 수 있도록 알립니다. 이번에는 블록을 숨기고 다음 블록을 찾기 시작합니다. 안나와 다른 채굴자들은 이전의 공통 블록에서 계속 작업합니다. 페터가 역사를 이어 갈 다른 방법을 이미 찾았다는 사실을 모릅니다. 이렇게 비공개 분기가 생기며, 새 통화가 만들어지는 것은 아닙니다. [1] [2]
다음 블록은 페터가 찾을 수도, 안나가 먼저 찾을 수도 있습니다. 채굴기는 블록 데이터 일부를 바꾸며 계산을 반복해 정해진 한도를 충족하는 숫자 결과를 찾습니다. 채굴은 빠른 기계가 매번 이기는 일정한 경주가 아니라 개별 발견에 무작위성이 있는 과정입니다. 전략은 두 분기의 진행 상황에 맞춰 비밀 작업을 계속하거나, 블록을 공개하거나, 자기 분기를 포기합니다. Hashrate는 계산 시도의 속도입니다. 비중이 클수록 발견 확률은 높아지지만 다음 블록이 반드시 자신의 것이 되지는 않습니다. [1] [4]
페터가 블록 하나를 숨긴 동안 안나가 같은 이전 블록에 연결되는 자기 블록을 공개했다고 합시다. 페터도 공개하면 동률이 됩니다. 채굴자마다 먼저 알게 된 블록이 달라 서로 다른 분기를 확장할 수 있습니다. 이후의 발견과 메시지 전파가 승패에 영향을 줍니다. 기준은 유효한 분기의 누적 작업량이며 지지하는 사람 수가 아닙니다. 난이도가 같다면 블록이 많을수록 작업량도 큽니다. 난이도는 그런 결과를 찾기가 평균적으로 얼마나 어려운지를 나타냅니다. 난이도가 높을수록 평균 시도 횟수가 늘지만, 블록마다 걸리는 시간이 고정되는 것은 아닙니다. [1] [3] [4]
페터의 분기가 최종적으로 우세해지면 안나의 경쟁 블록은 채택된 역사 밖에 남아 Stale Block이 될 수 있습니다. 유효한 블록이었지만 그 보상은 채택된 체인에서 쓸 수 없습니다. 페터는 자기보다 다른 채굴자의 작업이 더 높은 비율로 버려지도록 노립니다. 버려진 블록의 거래가 영원히 사라질 필요는 없습니다. 여전히 유효하고 채택된 역사와 충돌하지 않는다면 나중에 포함될 수 있습니다. [1] [4]
Ittay Eyal과 Emin Gün Sirer는 2013년 논문에서 잘 알려진 전략을 설명했습니다. 채굴자의 채택 블록 비중과 연산 능력 비중을 비교했습니다. 이는 전기료를 낸 뒤의 시간당 수익과는 다릅니다. 블록 보류로 공개 체인의 성장이 느려질 수 있고, 이후 난이도 조정이 경제성을 바꿉니다. Cyril Grunspan과 Ricardo Pérez-Marco는 나중에 시간과 그 조정을 강조했습니다. 상대적인 보상 비중이 커져도 즉각적인 순이익 증가를 약속하지는 않습니다. [1] [7]
원래 모델에서 α는 공격자의 연산 능력 비중입니다. γ는 동률일 때 공격자의 분기에 합류하는 다른 채굴자들의 연산 능력 비율입니다. γ = 0이면 상대적 우위의 기준은 1/3이고, γ = 1/2이면 1/4입니다. 이 모델에서는 각각의 기준을 넘어야 우위가 생깁니다. 실제 네트워크에 통하는 보편적인 안전 경계선은 아닙니다. 다른 전략, 지연, 가정은 결과를 바꿉니다. 핵심은 연산 능력뿐 아니라 다른 채굴자가 어느 분기를 잇는지도 중요하다는 것입니다. [1] [6]
빨리 도착한 블록은 동률일 때 다른 채굴자를 끌어들일 가능성이 큽니다. 네트워크상의 우위가 연산 능력을 보완할 수 있습니다. 어느 집단이 꾸준히 더 좋은 수익을 제공한다면 더 많은 채굴자가 모여 집중이 심해질 수 있습니다. 이는 유인에 대한 설명이지 큰 풀이 모두 공격한다거나 다른 사람들이 반드시 합류한다는 증거가 아닙니다. 모델의 매개변수를 측정 없이 특정 운영자의 실제 특성으로 취급해서도 안 됩니다. [1] [6] [8]
페터의 전략이 성공하기 전에 안나가 앞설 수 있습니다. 그러면 에너지를 쓰고 기계를 돌렸어도 페터는 보상을 받지 못합니다. 장기 평균을 위해 계산한 기준은 매번 승리한다는 약속이 아닙니다. 몇 번 성공했다고 비용과 조건 변화를 고려한 수익성이 입증되는 것도 아닙니다. 보류한 블록은 위험한 기회이며 서랍에 안전하게 보관한 보상이 아닙니다. [1] [7]
Full Node는 Bitcoin 규칙을 독립적으로 검증하는 프로그램입니다. 잘못된 거래와 허용되지 않은 코인 생성을 계속 거부합니다. 페터도 진짜 Proof of Work, 즉 요구되는 계산 작업의 증거를 제시하고 안나와 같은 규칙을 지켜야 합니다. 경쟁의 대상은 어느 유효한 역사가 채택되느냐입니다. 거래 서명에 쓰는 비밀 숫자 값인 다른 사람의 개인 키를 얻거나, 그 사람의 코인을 쓸 권한을 얻는 것은 아닙니다. 채굴상의 이득과 소유권 규칙의 파괴를 구별해야 합니다. [2] [5]
빠른 블록 전파는 지연과 일부 네트워크 격차를 줄입니다. 예를 들어 Compact Blocks는 이미 아는 거래를 활용해 더 적은 데이터로 블록을 전달합니다. 그렇다고 Selfish Mining이 완전히 없어지지는 않습니다. 연구는 동률 처리와 경제적 유인도 다룹니다. 버려진 블록 하나만으로 공격을 입증할 수 없습니다. 정직한 두 집단도 거의 동시에 발견할 수 있기 때문입니다. 의심을 평가하려면 더 넓은 맥락이 필요합니다. 질문은 이런 조건에서 규칙이 빠른 공유를 보상하는지, 숨기는 편이 유리할 수 있는지입니다. [6] [8] [9]
더 정확히 이해하려면 이 항목과 함께 다음도 읽어 보세요 Block Propagation, Compact Blocks, Nakamoto Consensus, Sybil Attack, Bitcoin, 채굴. 다음 항목에서도 이 글을 참조합니다 Byzantine Generals Problem, Sybil Attack, Block Propagation, Block Withholding Attack.