loading
본문 바로가기
암호화폐

비트코인의 이중지불문제 해결, 블록체인과 작업증명

by smartJJ 2024. 3. 28.

1. 비트코인의 이중지불문제 해결

비트코인은 금융기관과 같은 신뢰받는 제삼자를 거치지 않고 이중지불 문제를 해결하여 두 당사자 간 온라인 결제를 가능하게 하기 위해 블록체인작업증명의 방식으로 구현하였습니다.

 

이중지불문제란 우리가 친구에게 이메일을 보내고 난 뒤 보낸 편지함에 해당 이메일이 남아 있어서 그것을 다른 사람에게 또 보낼 수 있는 것과 같은 것에 비유할 수 있는데, 컴퓨터와 인터넷에서 모든 파일은 복사가 가능하기 때문에 결제의 경우에서도 동일한 금액을 두 번 지불할 수 있는 문제가 존재하였고 오랜 기간 해결할 수 없는 문제로 여겨졌습니다.

 

물론 현재 우리가 이용하고 있는 금융시스템에서는 한 번 지불된 금액에 대해서는 다시 지불할 수 없도록 만들 수 있지만 이런 중개자가 없는 탈중앙화 시스템에서는 불가능한 문제였습니다.

 

 

 

 

그렇다면 비트코인은 어떻게 이중지불 문제를 해결할 수 있었을까요? 바로 사회적 합의로 이 문제를 해결하였습니다. 이 인터넷망에서만큼은 정보를 복사하는 일을 금지하고 서로서로 감시하는데 이러한 사회적 감시 행위는 알고리즘을 통해서 가능하게 하였고 이것이 바로 블록체인입니다. 거래에 참여하는 다수의 노드들이 서로 정보를 공유하며 이를 통해 거래내역 등의 정보를 검증하고 기록하기 때문에 분산 원장(Distributed Ledger) 기술을 사용한다고 합니다.

 

비트코인 백서의 초록과 서론 부분을 인용해 표현하면,

"거래를 해싱해 타임스탬프를 찍어서 해시기반의 작업증명을 연결한 체인으로 만들고, 작업증명을 재수행하지 않고서는 변경할 수 없는 기록을 생성한다. 가장 긴 체인은 이벤트들이 목격된 순서를 증명하며, 가장 큰 CPU 파워를 가진 풀에서 나왔음을 증명한다.

네트워크 공격에 협력하지 않는 노드(채굴자)들이 과반 이상의 CPU 파워를 가진 상황이라면 이 노드들이 가장 긴 체인을 만들어내면 이는 공격자보다 앞선다. 이 네트워크 자체는 최소한의 구조만을 필요로 한다. 메시지(거래 정보)는 가능한 많은 노드로 퍼져 나가며, 각 노드들은 네트워크를 떠났다가 재 합류할 수 있고, 자신이 떠난 사이에 벌어진 거래의 증명으로 가장 긴 작업증명 체인을 채택한다.

(중략) 
이 논문에서 우리는 거래 시간순의 전산적 증명을 생성하는 P2P 간 분산 타임스탬프 서버를 사용해 이중지불 문제를 해결할 수 있는 방법을 제안한다. 이 시스템은 정직한 노드들이 공격자 노드들보다 더 많은 CPU 파워로 통제하는 한 보안상에 있어 안전하다."

 

위 논문의 일부를 보면 이해하실 수 있는 분도 계시겠지만 개발자 입장에서 쓴 글이라서 이해하기 어려운 내용일 수 있습니다. 이제 좀 더 쉽고 간단하게 핵심만 말씀드리겠습니다.

 

2. 비트코인 블록체인과 작업증명

블록체인이란 네트워크에 참여하는 모든 사용자가 모든 거래 내역 등의 데이터를 분산 저장하는 기술을 지칭하며 블록들을 하나의 긴 체인으로 연결하여 관리하기 때문에 붙여진 이름입니다. 이때 블록은 P2P 즉 개인과 개인 간의 거래가 기록되는 장부(ledger, 원장)가 되며, 일정한 시간이 지나면 하나의 블록을 완성하고 다음 블록에 새로운 거래 내용을 기록합니다. 다음 블록에는 이전 블록들의 정보를 암호화하여 담게 되는데 해시(HASH)라는 방법을 사용합니다.

 

해시는 아무 값이나 출력되는 랜덤함수와는 다르게 입력값이 같으면 언제나 값은 출력값이 나오며 입력값이 조금이라도 바뀌면 전혀 다른 출력값이 나오게 되어 출력값으로 입력값을 유추하는 것은 불가능합니다.

 

 

 

 

블록 생성시 이 어려운 수학 문제(해시)를 가장 먼저 풀어내는 사람에게 그 보상으로 비트코인이 주어집니다. 이 문제를 푸는 것은 쉽지 않아 컴퓨터로 풀어내야만 하며 문제를 풀려는 채굴자 수가 많을수록 문제는 점점 더 어려워지고 채굴자들은 더 좋은 컴퓨팅 환경을 구축하게 됩니다. 문제를 풀어서 새로운 블록을 생성하는데 평균 약 10분이 소요됩니다. 이렇게 엄청난 컴퓨팅 파워로 열심히 작업한 것을 증명해서 채굴하고 보상을 받아 간다는 개념이 바로 작업증명(Proof of Work, PoW)이라고 합니다.

블록체인의 작업증명 (출처: 비트코인 백서)
블록체인의 작업증명 (출처: 비트코인 백서)

 

이런 식으로 거래 내용을 블록에 기록하고, 새로운 블록을 생성하고, 생성된 새로운 블록에 이전에 생성된 모든 블록의 정보를 담은 해시를 기록함으로써 블록에 기록된 거래 내용을 해킹하여 위조하는 것을 불가능하게 합니다. 만약 해커가 특정 블록의 내용을 본인에게 유리하게 바꾸면 그 해시값이 다음 블록에서 가지고 있는 해시값과 달라지게 되어 그에 맞게 해시를 조건에 맞게 다시 풀어내야 하며, 이 작업을 이후의 모든 블록에 대해 작업해야 하는데 이 일은 짧은 시간 안에 해내는 것이 완전히 불가능하기 때문입니다.

 

따라서 블록체인은 유명 경영 컨설턴트인 돈 탭스콧(Don Tapscott)이 그의 책 블록체인 혁명에서 이야기했듯이 가치의 인터넷이라 할 수 있으며, 비트코인 블록체인은 최초 블록인 제네시스 블록부터 가장 최근에 만들어진 블록까지 모두 연결된, 해킹이 불가능한, 어마어마한 가치의 인터넷이라 할 수 있습니다. 실제로 비트코인 탄생 이후 지금까지 단 한 번도 비트코인 네트워크에는 직접적인 해킹이 발생하지 않았습니다.

 

이전 글 : [암호화폐] 비트코인의 탄생과 배경

다음 글 : [암호화폐] 비트코인의 가치와 반감기

 

반응형