블록체인에서 이중지불방지 문제를 어떻게 해결하고 있나요?
안녕하세요?
이중지불은 말그대로 단일 화폐 단위가 두번(이중) 결제되어 발생하는 문제입니다. 물리적인 현실에서는 이중지불문제가 일어날 수는 없지만 네트워크상에서는 이중지불 문제가 생길 수 있는 것으로 알고 있습니다.
블록체인도 네트워크에서 거래가 되는 방식인데 이 이중지불 문제점을 어떻게 해결하고 있나요?
답변 미리 감사드립니다.
안녕하세요. 질문주신 이중지불 문제는 51%공격에 의해 발생되는 문제입니다. 51% 공격은 블록체인 전체 노드 중 50%를 초과하는 해시연산력을 확보한 뒤 거래정보를 조작하여 이익을 얻으려는 행위입니다. 좀 더 자세히 설명 드리자면 악의적인 공격자가 전체 네트워크의 50%를 초과하는 막강한 해시 연산 능력을 보유하고, 다른 일반 노드들보다 더 빠른 속도로 신규 블록을 생성하여 네트워크에 전파함으로써, 다른 노드들이 정상적인 데이터가 아니라 위변조된 데이터가 포함된 블록체인을 채택하도록 만드는 공격 기법입니다. 이러한 문제로 인해 51프로 이상의 공격에 대해 사람들이 걱정을 하고 있습니다.
하지만 51% 공격을 성공하려면, 해당 블록체인 네트워크에 참여한 다른 모든 노드들의 해시 연산 능력을 합친 것보다 더 큰 해시 파워를 보유해야 합니다. 블록체인 네트워크에 참여자 수가 늘어남에 따라 50% 이상의 해시 파워를 확보하는 것이 매우 어렵기 때문에, 51% 공격은 사실상 불가능하죠.
안녕하세요.
비트코인의 예를 들어 설명하자면 비트코인은 네트워크는 작업 증명방식의 합의 알고리즘(PoW)과 UTXO의 개념을 사용하여 이중지불 문제를 해결하였습니다.(51% 공격 상황은 고려하지 않았습니다)
블록체인에 기록된 내역중 INPUT이 되고 아직 OUTPUT 되지 않은 거래 정보를 UTXO라고 하는데,이것이 2번 사용되지 않는다면 이중지불 문제를 해결할 수 있습니다.
채굴자는 동일한 UTXO를 가진 트랜잭션을 동시에 담을 수 없고, 각각 다른 채굴자가 동일한 UTXO를 가진 트랜잭션을 각각 담았다고 해도 추후에 거래로 인정되지 않기 때문에 이중지불 문제가 발생하지 않습니다.
도움이 되셨으면 좋겠습니다.
감사합니다.