이기적 채굴이란 높은 해시 파워를 보유한 개인 마이닝 노드나 채굴풀이 블록체인 네트워크 상에서 다른 개인 마이닝 노드나 채굴풀에 비해 블록을 빠르게 생성하면서도, 생성된 블록의 전파를 의도적으로 늦춤으로써 자원을 낭비하게 만들고 공정한 채굴 경쟁을 저해하며 블록의 생성을 지연시킬 수 있는 공격이라고 할 수 있습니다.
예를 들면 블록을 빠르게 생성하고 그것을 이어나가면서 다른 마이닝 노드 혹은 채굴풀이 채굴을 완료하기 전에 해당 블록 혹은 이어진 블록들을 네트워크에 전파하여 더 긴 체인을 만들어버림으로써 다른 채굴자들이 채굴한 블록을 고아 블록으로 만들어버릴 수 있는 문제가 생기는 것입니다.
이것은 마치 문제를 풀 때 한 사람이 먼저 답을 말하면 다음 문제로 넘어가게 되어 있는데 A학생이 문제를 먼저 일찍 풀어 놓고 상대적으로 늦게 문제를 푼 B학생이 다 풀어갈 때쯤 먼저 답을 말하는 것과 같다고 볼 수 있습니다. 이렇게 되면 B학생은 실컷 노력을 해 놓고 정답을 맞추지도 못하는 상황이 벌어지게 되겠죠.
그렇다면 이러한 문제를 해결하기 위해서는 어떤 방법이 있을까요? 앞서 말씀드렸듯이 해시 파워가 높은 채굴자나 채굴풀이 의도적으로 생성한 블록들을 늦게 전파한다고 했을 때 블록체인은 순간적으로 분기(Fork)되는 상황을 맞이하게 되고 무엇이 긴 체인인지를 판단하게 될 것입니다.
이때 블록체인의 프로토콜을 변경하여 메인 체인으로 가장 긴 체인을 선택하고 난 후에 다시 채굴이 이루어질 때 이전 블록에 이어서 블록을 곧바로 이어나가지 못하도록 앞서의 분기 상황에서 다른 Branch로 채굴자나 채굴풀을 재배치 하는 방법이 하나 있습니다. 또한 채굴풀이 차지할 수 있는 헤시레이트의 한계를 설정함으로써 독점을 막는 것도 하나의 방법이 될 수 있습니다.
끝으로 생성된 블록의 타임 스탬프 기록에 따라서 생성 시간과 전파 시간의 차이가 클 경우 이기적 채굴 공격의 의도가 있었다고 보고 채굴에서 불이익을 부여하는 방법도 하나의 대안으로 제시되고 있습니다.
답변이 도움이 되길 바랍니다.