벡터76 공격
벡터76 공격(Vector76 Attack)은 이중지불 공격의 한 종류로서, 1승인 상태를 믿는 타깃에 대한 공격 유형이다. 벡터76 어택이라고도 한다.
개요
벡터76 공격은 피니 공격과 레이스 공격의 조합이다. 벡터76(Vector76)이라는 아이디를 사용하는 사용자가 비트코인토크 포럼에서 처음 제안한 공격법이다. Vector76이라는 사용자는 MyBitcon e-wallet에 대한 이중지불 공격이 성공했음을 설명했다.[1] 공격을 성공할 가능성은 높지만 한번의 확인 후 지불을 수락하는 전자지갑과 들어오는 트랜잭션이 있는 노드가 필요하기 때문에 일반적인 공격 방법은 아니다.[2]
전략
벡터76 어택 공격자는 채굴에 성공했을 경우, 생성할 블록에 본인의 코인을 타깃에게 보내는 전송내역을 포함시킨다. 공격자는 이 블록을 네트워크에 전파시키지 않고, 제 3자가 블록을 채굴할 때까지 기다린다. 제3자의 블록에는 공격자->타깃으로의 전송 내역이 포함되지 않는다. 제3자가 채굴에 성공하는 즉시 공격자는 타깃에 본인 블록이 생성되었음을 알린다. 타깃이 공격자의 블록을 제3자의 블록보다 먼저 수신하고 이를 믿게 될 경우, 공격자의 전송 내역은 1승인 상태가 된다. 한편, 블록체인에서 공격자의 체인과 제3자의 체인은 포크 상태가 되어 경쟁하게 된다. 만일 공격자의 체인이 패배하여 제3자의 체인이 메인체인이 되면, 공격자의 전송내역은 포함되지 않았으므로 1승인 상태였던 전송내역은 무효가 된다. 공격자 입장에서 백터76 공격은 피니 공격의 헷지 전략이라고 볼 수 있다. 공격자의 체인이 승리하는 경우, 공격자는 채굴 보상을 지급받을 수 있다. 공격자의 체인이 패배할 경우, 이번에는 채굴 보상을 받을 수 없지만 타깃에 대한 공격은 성공한다. 공격 성공으로 인한 이익이 채굴 보상보다 클 경우, 공격자는 어떤 경우에도 이익을 취할 수 있다.[3]
특징
- 두 개의 블록을 연속으로 채굴할 필요가 없다. 네트워크가 원하는 방식으로 포크를 해결하는 경우 단일 블록 채굴로 충분하며, 문제가 발생하도록 설정할 수 있다.
- 목표를 찾을 수 있다면 벡터76 공격의 수익성은 매우 높다.
- 만약 공격을 실패한다 해도 손해를 보지 않는다.
- 공격하려는 블록을 k라고 한다면 공격자는 네트워크를 통해 k+1 블록으로 리드해야 한다.
각주
- ↑ Yonatan Sompolinsky and Aviv Zohar,〈Bitcoin’s Security Model Revisited)〉, 《arxiv》, 2016-05-09
- ↑ Anna Bryk,〈Blockchain Attack Vectors: Vulnerabilities of the Most Secure Technology)〉, 《apriorit》, 2018-11-01
- ↑ keepit, 〈KEEP!T 블록체인 상식사전: 블록체인 입문을 위한, 엄선된 필수 용어사전(네트워크 어택, 보안 프로토콜)〉, 《스팀잇》, 2018-08-22
참고자료
- keepit, 〈KEEP!T 블록체인 상식사전: 블록체인 입문을 위한, 엄선된 필수 용어사전(네트워크 어택, 보안 프로토콜)〉, 《스팀잇》, 2018-08-22
- Anna Bryk, 〈Blockchain Attack Vectors: Vulnerabilities of the Most Secure Technology)〉, 《apriorit》, 2018-11-01
- Yonatan Sompolinsky and Aviv Zohar, 〈Bitcoin’s Security Model Revisited)〉, 《arxiv》, 2016-05-09
- Vector76, 〈Fake Bitcoins?〉, 《Bitcoin Forum》, 2011-08-17
같이 보기