258 / 736BWH

Block Withholding Attack

블록 해답을 제출하지 않는 공격

한 채굴자가 풀에 꾸준히 작업 증거를 보낸다고 생각해 봅시다. 그런데 유효한 블록을 만들 수 있는 결과를 찾으면 그것만 숨깁니다. 관리 화면에서는 성실하게 일하는 참여자로 보이지만, 풀은 보상을 받을 기회를 잃습니다. 이것이 고전적인 Block Withholding Attack입니다. 채굴자 사이의 협력을 해치는 공격인데, 흔적이 단순한 불운과 비슷할 수 있습니다. 이해하려면 일상적인 작업 증거, 실제 블록, 돈을 나누는 규칙을 구분해야 합니다.

Block Withholding Attack은 채굴자가 일반적인 작업 증거는 풀에 보내면서, 유효한 블록의 해답을 찾아도 고의로 제출하지 않는 공격입니다. 풀은 그 채굴자의 기여를 인정하면서도 그에 해당하는 블록 보상 기회를 받지 못할 수 있습니다.

Mining Pool은 채굴자들의 작업을 모으고 합의된 규칙에 따라 보상을 나눕니다. 소규모 참여자가 각자 완전한 블록을 찾을 때까지 기다릴 수는 없습니다. Bitcoin Developer Guide가 설명하는 shares는 더 쉬운 조건을 만족하는 결과로, 작업이 이루어지고 있음을 꾸준히 보여 줍니다. 드문 결과는 비트코인 네트워크의 더 엄격한 조건도 만족합니다. 공격자는 일반적인 shares는 제출하지만 이 더 가치 있는 발견은 버립니다. 기계는 실제로 계산하고 전기를 소비하므로, 비용 없이 채굴을 흉내 내는 것은 아닙니다. [3]

지급 방식에 따라 다릅니다. Meni Rosenfeld는 운영자가 수락한 shares에 대금을 지급하는 Pay Per Share(PPS)와, 정해진 범위 안에서 최근 수락된 shares에 따라 실제 블록 보상을 나누는 Pay Per Last N Shares(PPLNS)를 구분합니다. PPS에서는 약속한 지급을 지키는 한, 사라진 블록으로 인한 수입 부족을 운영자가 부담합니다. PPLNS에서는 공격자 자신을 포함한 참여자들이 나눌 돈이 줄어듭니다. 같은 발견을 버려도 피해를 부담하는 사람이 달라지는 것입니다. 중요한 것은 화면의 “채굴” 표시보다 풀의 구체적인 규칙입니다. [1]

발견을 버리는 행위만으로는 비용이 큰 방해 공작이 될 수 있습니다. 공격자는 장비와 전기 비용을 내면서 정직하게 채굴했을 때의 수입도 포기합니다. Ittay Eyal은 경쟁 풀이 일부 계산 능력으로 정직하게 채굴하고 다른 일부로 다른 풀을 공격하는 더 복잡한 상황도 분석합니다. 특정 가정에서는 이런 배분이 총수입을 높일 수 있습니다. 그러나 수학 모델의 결과가 모든 비용을 뺀 이익을 약속하지는 않습니다. 피해자의 손실만으로 공격자가 전체적으로 돈을 벌었는지는 알 수 없습니다. [2]

둘 다 공개되지 않은 블록이 등장하지만, 이후 블록을 다루는 방식이 다릅니다. Eyal과 Emin Gün Sirer가 설명하는 Selfish Mining은 비공개 체인 분기에서 채굴하고 그 블록들을 전략적으로 공개하는 방식입니다. 공격자는 자기 분기가 채택되어 보상을 받기를 원합니다. 반면 풀 내부의 고전적인 Block Withholding Attack은 발견한 블록을 버리므로 이기는 비공개 분기를 만들 필요가 없습니다. 제출만 늦추는 변형도 있습니다. 따라서 분석을 읽을 때는 어떤 전략을 실제로 다루는지 확인해야 합니다. [4]

주어진 계산 능력과 난이도에서 정직한 채굴자가 평균 1블록을 찾을 기간을 생각해 봅시다. Rosenfeld도 사용하는 Poisson 모델은 기대되는 발견 빈도가 일정하고 각 발견이 서로 독립적으로 무작위 발생하는 상황을 나타냅니다. 이 모델에서는 하나도 찾지 못할 확률이 약 37%입니다. 예상 블록 수가 3이면 그 확률은 약 5%입니다. 이는 유죄일 확률이 아닙니다. 정직하게 채굴한다는 가정에서 결과가 영일 확률을 구하는 것이지, 영을 관측한 뒤 부정행위의 확률을 구하는 것이 아닙니다. 이 예는 적절하게 안정된 조건과 미리 정한 관측 기간을 가정합니다. 평균은 블록이 나와야 하는 마감 시간이 아닙니다. [1]

Eyal은 공격을 특정 소규모 채굴자에게 귀속하기 어렵다고 지적합니다. 발견 블록이 없는 계정만 제시해서는 부족합니다. 같은 기간에 수락된 shares와 블록을 비교하고, shares의 난이도, 곧 그것이 나타내는 작업량을 고려해야 합니다. Hashrate는 계산 속도를 뜻하며, 이런 증거로 추정한 값도 흔들립니다. 중단, 누락된 기록, 조건 변화도 확인해야 합니다. 풀이 문제를 조사할 이유가 있더라도 특정인을 비난할 충분한 증거가 있는 것은 아닙니다. [2]

Eyal은 블록 발견 보너스, 평판 축적, 해답을 알고 있는 시험 작업을 논의합니다. 그러나 각 제안은 무언가를 바꿉니다. 보너스는 발견자에게 더 많은 보상을 주어 소규모 채굴자의 수입 변동을 키울 수 있습니다. 평판 규칙은 풀을 옮기기 어렵게 만들고, 시험 작업에는 유지 관리와 신뢰할 수 있는 판정이 필요합니다. 켜기만 하면 되는 만능 보호책은 아닙니다. 운영자는 효과와 부작용을 함께 평가하고 무엇을 실제로 탐지할 수 있는지 솔직하게 설명해야 합니다. [2]

Bitcoin Developer Guide는 블록 발견과 네트워크의 블록 검증을 구분합니다. 발견을 숨겨도 거래 유효성 규칙은 바뀌지 않으며, 그것만으로 남의 코인을 쓰거나 확정된 기록을 다시 쓸 수는 없습니다. 주로 손상되는 것은 공동 채굴의 경제적 구조와 신뢰입니다. 무엇을 숨겼는지, 합의한 규칙에 따라 누가 돈을 잃는지, 실제 증거가 무엇인지라는 세 질문이 이해에 도움이 됩니다. 이 메커니즘의 설명은 현재 운영 중인 특정 풀을 고발하는 것이 아닙니다. [3]

더 정확히 이해하려면 이 항목과 함께 다음도 읽어 보세요 Mining Pool, Pay Per Last N Shares, Hashrate, Selfish Mining.

DOC · 001Rosenfeld — Analysis of Bitcoin Pooled Mining Reward Systems1차 출처 DOC · 002Eyal — The Miner’s Dilemma1차 출처 DOC · 003Bitcoin Developer Guide — Mining문서 DOC · 004Eyal and Sirer — Majority is not Enough1차 출처
개정일: 1차 출처 우선 · 투자 조언이 아닙니다