안녕하세요.
전송과정에서 탈취는 전자서명에 의해 기술적으로 불가능합니다.
전송예제로 한 번 살펴보도록 합시다. A라는 사람이 B에게 3개 코인을 전송하는데, 중간에 C라는 사람이 조작하여 자신에게 3개 코인이
전송되도록 탈취를 시도한다고 보겠습니다.
PublicKey: A
To: B
Amount: 3
Signature( Hash(A, B, 3) )
이 데이터를 노드가 받아서 유효한지 확인을 하는 방법은 이렇습니다.
Signature를 PublicKey A로 풀고 Hash(PublicKey, To, Amount)와 Hash(A, B, 3)과 비교합니다. 같다면 유효한 트랜잭션이라고
검증을 하게 됩니다.
그런데 만약 To를 C로 조작을해서 다음과 같이 만들었다고 가정해보겠습니다.
PublicKey: A
To: C
Amount: 3
Signature( Hash(A, B, 3) )
Signature는 PublicKey A로만 풀 수 있습니다. 그러면 Hash(A, C, 3)과 Hash(A, B, 3)은 다르므로 잘못된 트랜잭션이어서
전송요청이 거절당합니다.
따라서 다른사람이 내 것으로 전송하도록 조작할 수 없으므로 탈취가 불가능합니다.