블록체인 해킹 공격 중 'Long Range Attack'은 어떤 해킹인가요?
블록체인의 보안을 위협하는 공격 중 Long Range Attack이라는 것이 있다는 것을 알게 되었는데요.
POS 채굴에서 블록을 생성할 때 공격을 할 수 있다고 하는데 이해가 어렵습니다.
Long Range Attack에 대해 설명 부탁 드립니다.
안녕하세요. Long Range Attack에 대하여 답변드리겠습니다.
Nothing at Stake Attack란?
지분증명에서 사용되는 이중지불공격의 일종으로 일명 "손해보지 않는 공격" 이라는 뜻을 가지고 있습니다.
공격자가 이중지불을 발생시키기 위해 만든 기존 블록 외 새 블록을 추가로 전파하게 되면 포크가 발생하게 됩니다. 이때 블록 중 정상적인 블록을 인정받기 위한 투표를 실시하게 되고 두가지 중 하나만 인정 받아도 정상적인 거래가 성립됩니다.
즉, 약간의 팬딩(거래 대기)을 이용하여 두가지의 트랜젝션(거래)을 발생시켜 그 중 하나만 인정받아도 이익이 되는 상황을 말합니다.
쉽게 말해 A에 사용되는 거래를 위해 트랜잭션을 실행하고 팬딩이 시작되면 거래가 완료되기 전에 다른 거래를 B에게 거래를 신청합니다. 그런 경우 실제 거래가 두가지가 신청되고 둘 중 하나만 인정받아도 실제 거래가 성립되게 됩니다.
Nothing at Stake Attack에는 "Long Range Attack"과 "Short Range Attack"이 존재합니다.
Long Range Attack이란?
+ 포크된 상태에서 올바른 블록을 검증하기 위해 투표를 할 경우 많은 지분을 가지고 있는
노드가 거짓 블록을 옮바른 블록인 것 처럼 계속해서 체인에 연결되도록 조작하여
올바른 블록을 검증한 노드들에게 손해를 보게 하는 공격입니다.
Short Range Attack이란?
+ 포크된 상태에서 지분을 많이 가지고 있는 공격자의 결정에 의해 둘 중 하나의 블록만
인정받게 되기 때문에 지분이 상대적을 낮은 정상적인 노드들은 어느쪽이 올바른
블록인지를 알 수 없어 두 곳 모두 검증하지 않으면 손해를 보게 되는 상황을 말합니다.
감사합니다.
안녕하세요. 질문 주신 Long Range Attack은 PoS가 가지고 있는 가장 큰 문제점인 한계비용이 전혀 없다는 것을 이용한 공격 기법 중 하나 입니다.
PoS를 기반으로 한 블록체인 네트워크에서 블록이 연결되다가 하나의 거래에서 서로다른 거래내용이 발생했을 경우를 생각해 보겠습니다. 이때 서로 다른 거래 내용이 발생된 상황이라 2개의 블록이 생성될 것입니다.
이러한 문제점으로 인해 이더리움 개발자들은 보증금과 벌금이라는 제도를 도입하여 이를 해결하려고 하고 있습니다. 검증자들이 블록을 증명할 때 보증금을 어느정도 걸어놓고 그 블록이 거짓인 것이 드러나면 보증금에서 벌금을 차감하는 방식으로 해결방안을 모색하고 있죠.