벡터76 공격
벡터 76 어택은 이중지불 공격의 한 종류로 1승인 상태를 믿는 타겟에 대한 공격 유형이다.
개요
벡터 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 블록체인 상식사전: 블록체인 입문을 위한, 엄선된 필수 용어사전(네트워크 어택, 보안 프로토콜)〉, 《steemit》, 2018-08-22
참고자료
- keepit,〈KEEP!T 블록체인 상식사전: 블록체인 입문을 위한, 엄선된 필수 용어사전(네트워크 어택, 보안 프로토콜)〉, 《steemit》, 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
같이보기