아하
생활

생활꿀팁

참신한콰가40
참신한콰가40

Finney Attack 은 어떤 방식의 공격인가요?

레이스 어택을 더 발전시킨 공격으로서 공격자가 직접 채굴을 해야 하며 실패하는 경우 공격자도 손실을 입게 된다는 Finney Attack은 어떤 방식의 공격인지 알고싶습니다.

감사합니다.

55글자 더 채워주세요.
1개의 답변이 있어요!
  • 까칠한담비242
    까칠한담비242

    https://bitcointalk.org/index.php?topic=3441.msg48384#msg48384

    할 피니 또는 할 핀니는 비트코인톡 포럼에서 이중지불의 위험이 있는 공격에 대해 말한 적이 있습니다. 이것을 피니 어택이라고 부릅니다.

    피니 어택에서 공격자가 블록을 생성한다고 할 때 공격자의 지갑 주소 A, B와 거래 상대자의 지갑 주소 C가 있다고 해 보겠습니다.

    예를 들어 A가 C에게 1BTC를 1200만원에 판다고 할 때 그는 우선 자신의 주소 A에서 주소 B로 1BTC를 보내는 트랜젝션1을 생성하고 그러한 트랜젝션이 포함된 블록을 생성한 후 다른 노드들에게 일단 전파를 하지 않습니다.

    그 다음 A는 C에게 1BTC를 보내는 트랜젝션2를 발생시킨 후 TxHash를 C에게 보내어 1200만원을 받습니다. 그 후 미리 만들어둔 블록(자신의 주소 A에서 B로 보내는 트랜젝션1이 포함된 블록)을 다른 노드들에게 전파합니다.

    이때 A가 C에게 1BTC를 보내는 트랜젝션2는 방금 생성된 것이고 A가 자신의 주소 B로 보내는 트랜젝션1이 포함된 블록은 미리 만들어둔 것이기 때문에 자연스럽게 트랜젝션1이 먼저 처리될 확률이 높습니다.

    이렇게 되면 트랜젝션2는 취소되고 결과적으로 A의 1BTC는 자신의 지갑인 B로 이동되어 그대로 남아있고 C에게서 1200만원을 받았으며 거기에다 블록 생성 보상까지 받게 되는 결과로 이어지게 됩니다. 이렇게 되면 A는 1BTC를 다시 지불에 이용할 수 있게 됨으로써 이중지불공격이 성공하게 된다고 할 수 있습니다.

    그런데 만약에 트랜젝션2가 먼저 처리 된다면 A는 1BTC를 1200만원에 C에게 제 값을 받고 판매한 것이 되고 블록 생성 보상은 받지 못하게 됩니다. 이 경우 현재 블록 생성 보상이 1BTC보다 크므로 공격자가 손실을 입을 수가 있습니다.

    답변이 도움이 되길 바랍니다.