티스토리 뷰

피오나의 비트코인 이야기 #49

비트코인 거래 확인 과정

비트코인 거래는 왜 바로 끝나지 않을까?

비트코인을 보내본 사람이라면 한 번쯤 이런 경험이 있을 것 같습니다.

분명히 전송 버튼을 눌렀습니다.

주소도 맞게 입력했고, 금액도 확인했습니다.

그런데 화면을 보니 아직 끝난 게 아닙니다.

“확인 대기 중”

처음에는 조금 답답했습니다.

“보냈는데 왜 아직도 기다려야 하지?”

은행에서 계좌이체를 하면 대부분 몇 초 안에 상대방 계좌에 표시되는데, 비트코인은 왜 바로 끝나지 않는 걸까요?

저도 처음에는 비트코인이 인터넷으로 전송되니까 당연히 바로 상대방 지갑에 도착하는 줄 알았습니다.

그런데 자세히 알아보니 제가 생각한 ‘전송 완료’와 비트코인 네트워크에서 말하는 ‘확인’은 조금 다른 의미였습니다.

여기서부터 재미있어졌습니다.

전송 버튼을 눌렀다고 거래가 끝난 것은 아니었습니다

비트코인 지갑에서 전송 버튼을 누르면 내가 원하는 거래가 만들어집니다.

하지만 그 순간 블록체인에 영원히 기록되는 것은 아닙니다.

먼저 거래가 비트코인 네트워크에 전달됩니다.

여러 노드가 그 거래를 받아서 규칙에 맞는지 확인하고, 아직 블록에 포함되지 않은 거래라면 대기하게 됩니다.

#48에서 수수료를 공부하면서 멤풀(mempool)이라는 것을 알게 됐는데, 이번에는 그 의미가 조금 더 중요하게 느껴졌습니다.

쉽게 말하면 내가 만든 거래가 “저 거래를 블록에 넣어주세요.”라고 네트워크에 제출된 상태라고 생각할 수 있습니다.

즉,

전송 버튼을 누름 → 네트워크에 거래 전달 → 검증 → 블록에 포함

이라는 과정이 있습니다.

그러니 전송 버튼을 누른 순간과 블록체인에 기록되는 순간 사이에는 시간이 존재할 수밖에 없습니다.

첫 번째 확인은 무엇일까요?

여기서 또 궁금했습니다.

비트코인을 보내고 나서 “확인 1회”라는 말을 보게 됩니다.

그럼 확인 1회는 정확히 무엇일까요?

내 거래가 블록 하나에 포함되면 일반적으로 1 confirmation, 즉 1회 확인으로 계산됩니다.

이제 조금 이해가 됩니다.

거래가 네트워크에 전달됐다고 바로 1회 확인이 되는 것이 아닙니다.

내 거래가 실제 블록에 포함되어야 첫 번째 확인이 생기는 것입니다.

그래서 비트코인 거래에서 중요한 순간은 단순히 “상대방 지갑에 숫자가 보인다.”가 아니라, “내 거래가 블록에 포함되었는가?”였습니다.

이 차이를 알고 나니 ‘확인’이라는 단어가 왜 사용되는지 이해가 됐습니다.

그런데 한 번 블록에 들어가면 끝 아닌가?

여기서 또 하나의 의문이 생겼습니다.

“블록에 들어갔다면 이미 기록된 것 아닌가? 왜 굳이 확인을 여러 번 기다리지?”

처음에는 저도 이렇게 생각했습니다.

그런데 비트코인의 블록체인은 새로운 블록이 계속 앞의 블록 위에 연결되는 구조였습니다.

예를 들어 내 거래가 어떤 블록에 들어갔다고 해보겠습니다.

그 블록 위에 다음 블록이 하나 더 연결되면 내 거래에는 추가적인 확인이 생깁니다.

그리고 그 위에 또 다른 블록이 만들어지면 다시 확인이 추가됩니다.

그래서 흔히

1 confirmation → 2 confirmations → 3 confirmations

이런 식으로 표시됩니다.

이 부분이 비트코인의 독특한 점처럼 느껴졌습니다.

은행처럼 중앙에서 “이 거래는 최종 완료입니다.”라고 한 번에 결정하는 방식과 조금 다르기 때문입니다.

확인 횟수가 많아질수록 왜 더 안전할까요?

이 질문이 이번 글에서 가장 재미있었습니다.

처음에는 확인 횟수가 많아지는 이유가 단순히 시간이 지나기 때문이라고 생각했습니다.

그런데 핵심은 내 거래가 포함된 블록 위에 새로운 블록이 계속 쌓이는 것이었습니다.

블록체인을 긴 기차라고 생각해 보겠습니다.

내 거래가 들어간 블록이 기차의 한 칸이라고 한다면, 뒤에 다른 칸들이 계속 연결되는 것입니다.

한 칸만 연결되어 있을 때와 여러 칸이 연결되어 있을 때는 그 기록을 되돌리기가 똑같지 않습니다.

뒤에 블록이 계속 쌓일수록 과거 블록을 다시 만들기 위해 필요한 작업도 커지기 때문입니다.

그래서 확인 횟수가 늘어날수록 일반적으로 거래가 되돌려질 가능성을 낮추는 효과가 있습니다.

시간이 단순히 흘렀기 때문이 아니라, 블록체인 위에 추가적인 작업이 쌓였기 때문이라는 것이 중요한 포인트였습니다.

그런데 비트코인은 ‘100% 확정’이라고 말하지 않는다고?

여기에서 조금 놀랐습니다.

저는 당연히 블록체인에 들어간 거래라면 완전히 끝난 것이라고 생각했습니다.

하지만 비트코인의 거래 확정은 조금 다른 개념이었습니다.

비트코인은 중앙기관이 최종 승인 도장을 찍어주는 방식이 아닙니다.

네트워크의 참여자들이 합의 규칙에 따라 블록을 이어가면서 거래가 되돌려질 가능성을 점점 낮추는 구조에 가깝습니다.

그래서 비트코인에서는 흔히 확률적 최종성(probabilistic finality)이라는 개념으로 설명합니다.

처음 들었을 때는 어려웠습니다.

그런데 쉽게 생각하면 이렇습니다.

블록이 하나 쌓였을 때보다 여러 개가 쌓였을 때 과거 거래를 뒤집기가 더 어려워진다.

그래서 확인 횟수가 중요한 것입니다.

그럼 6번 확인하면 무조건 안전한 걸까요?

비트코인을 공부하다 보면 “6 confirmations”라는 말을 자주 볼 수 있습니다.

저도 처음에는 “아, 비트코인은 6번 확인되면 무조건 안전하다는 규칙이 있구나.”라고 생각했습니다.

그런데 정확하게는 조금 다릅니다.

6회 확인은 비트코인 프로토콜이 모든 거래에 의무적으로 요구하는 숫자가 아닙니다.

거래소나 서비스 등이 위험 수준에 따라 자체적으로 필요한 확인 횟수를 정할 수 있습니다.

금액이 작다면 빠르게 처리할 수도 있고, 큰 금액이라면 더 많은 확인을 요구할 수도 있습니다.

즉,

“비트코인은 무조건 6번 확인해야 한다.”

라고 생각하면 정확하지 않습니다.

이 숫자가 널리 알려진 이유는 일정 수준의 블록이 추가되면 과거 거래를 되돌리기가 상당히 어려워진다는 경험적 기준으로 오랫동안 사용되어 왔기 때문입니다.

이걸 알고 나니 숫자 하나에도 나름의 배경이 있다는 것이 재미있었습니다.

거래소마다 확인 횟수가 다른 이유

여기에서 자연스럽게 또 궁금해졌습니다.

“그런데 왜 어떤 곳은 1번이면 되고, 어떤 곳은 몇 번을 기다리라고 하지?”

이유는 간단했습니다.

거래소나 서비스마다 위험을 판단하는 기준이 다르기 때문입니다.

비트코인 네트워크에서 거래가 블록에 들어갔다고 하더라도, 서비스 입장에서는 더 많은 확인을 기다린 후 입금 처리를 하는 것이 안전하다고 판단할 수 있습니다.

특히 금액이 크다면 한 번의 확인보다 여러 번의 확인을 요구할 가능성이 있습니다.

결국 확인 횟수는 단순히 기술적인 숫자가 아니라 서비스가 어느 정도의 위험을 감수할 것인가와 연결된 운영 기준이기도 했습니다.

이런 부분을 알고 나니 거래소에서 “입금 확인 중”이라고 뜨는 것도 조금 다르게 보였습니다.

블록이 만들어지는 시간도 항상 똑같지 않습니다

여기서 또 하나 알아야 할 것이 있었습니다.

비트코인 블록은 평균적으로 약 10분에 하나씩 생성되도록 설계되어 있습니다.

그런데 정확히 10분마다 딱딱 만들어지는 것은 아닙니다.

어떤 블록은 몇 분 만에 나올 수도 있고, 어떤 때는 더 오래 기다릴 수도 있습니다.

왜냐하면 새로운 블록을 찾는 과정이 확률적인 방식으로 이루어지기 때문입니다.

그래서 “비트코인은 10분마다 거래가 끝난다.”라고 생각하면 안 됩니다.

10분은 평균적인 블록 생성 간격에 가깝습니다.

내 거래가 블록에 들어가는 데 걸리는 시간은 당시 네트워크 상황과 거래가 선택되는 과정, 그리고 실제 블록 생성 시점 등에 따라 달라질 수 있습니다.

이것도 처음에는 몰랐던 부분입니다.

수수료가 높으면 확인도 무조건 빨라질까?

이건 #48과 연결되는 부분이라 이번에는 짧게만 생각해 보겠습니다.

수수료율이 높은 거래는 블록 공간을 확보하는 데 유리할 수 있습니다.

하지만 높은 수수료를 냈다고 해서 정확히 몇 분 안에 확인된다고 보장되는 것은 아닙니다.

블록 자체가 언제 만들어질지는 확률적인 과정이기 때문입니다.

그래서 높은 수수료 = 즉시 확정이라고 생각하면 안 됩니다.

#48에서 수수료를 공부했다면 이번에는 한 단계 더 나아가, “수수료는 거래가 블록에 들어가는 과정에 영향을 줄 수 있지만, 확인 횟수와 최종적인 신뢰 수준은 별개의 문제다.”라고 이해하면 좋을 것 같습니다.

첫 번째 확인과 여섯 번째 확인은 같은 것이 아닙니다

처음에는 숫자만 보고 “1이든 6이든 그냥 확인된 거 아닌가?”라고 생각했습니다.

하지만 의미가 달랐습니다.

첫 번째 확인은 내 거래가 처음으로 블록에 포함되었다는 뜻입니다.

그 뒤에 새로운 블록이 하나 더 쌓이면 확인이 하나 증가합니다.

또 하나가 쌓이면 다시 증가합니다.

결국 확인 횟수가 늘어난다는 것은 내 거래가 포함된 블록 위에 더 많은 블록이 연결되고 있다는 뜻입니다.

그래서 확인 횟수는 단순한 카운터가 아니라 블록체인에서 내 거래가 얼마나 깊이 묻혀 있는지를 보여주는 지표처럼 생각할 수 있습니다.

저는 이 표현이 이해하기 쉬웠습니다.

“거래가 블록체인 속으로 점점 깊이 들어가는구나.”

이렇게 생각하니까 확인 횟수의 의미가 훨씬 선명해졌습니다.

거래가 두 번 처리되는 것과는 다릅니다

또 하나 헷갈릴 수 있는 부분이 있습니다.

확인이 여러 번 된다고 해서 내 거래가 여러 번 처리되는 것은 아닙니다.

내 거래가 한 번 블록에 포함되면 그 거래에 대한 확인 횟수가 증가하는 것입니다.

비트코인이 여러 번 전송되는 것이 아닙니다.

그래서 “6 confirmations면 내 비트코인이 여섯 번 이동한 건가?”라고 생각하면 안 됩니다.

전혀 그렇지 않습니다.

하나의 거래에 블록이 몇 개 연결되었는지를 세는 개념에 가깝습니다.

이런 작은 차이를 알아가는 것이 비트코인 공부에서 꽤 중요하다는 생각이 들었습니다.

피오나가 직접 거래를 한다면?

제가 실제로 비트코인을 보낸다고 생각해 보았습니다.

전송 버튼을 누릅니다.

그러면 거래가 네트워크로 전달됩니다.

아직 블록에 들어가지 않았다면 기다릴 수 있습니다.

어느 순간 채굴된 블록에 내 거래가 포함됩니다.

그때 첫 번째 확인이 생깁니다.

그리고 다음 블록이 만들어지면 두 번째 확인.

그다음 블록이 만들어지면 세 번째 확인.

이 과정을 생각해 보니 처음에 답답하게 느꼈던 “왜 바로 끝나지 않지?”라는 질문에 답이 보였습니다.

비트코인은 중앙에서 누군가 한 번 확인해주는 시스템이 아니라, 네트워크에서 블록이 계속 쌓이면서 거래의 신뢰성이 높아지는 구조였던 것입니다.

그래서 ‘전송 완료’라는 말도 조금 다르게 봐야 했습니다

이제 비트코인 거래를 볼 때 저는 세 단계를 구분해야겠다는 생각이 들었습니다.

첫 번째는 거래가 만들어졌는가?

두 번째는 블록에 포함되었는가?

세 번째는 그 위에 충분한 블록이 쌓였는가?

이 세 가지는 비슷해 보이지만 의미가 다릅니다.

특히 큰 금액의 거래라면 단순히 “거래가 보인다”는 것만으로 충분하다고 생각해서는 안 됩니다.

서비스가 요구하는 확인 횟수와 거래의 성격을 함께 살펴봐야 합니다.

이런 구조를 알고 나니 비트코인의 느린 부분이 단순한 단점이라고만 느껴지지는 않았습니다.

오히려 누군가 중앙에서 마음대로 거래를 확정하는 것이 아니라 네트워크의 규칙을 통해 신뢰를 쌓아가는 과정이라고 생각하게 되었습니다.

피오나의 한마디

처음에는 비트코인을 보내고 “왜 아직 안 끝났지?”라는 생각부터 했습니다.

그런데 이번에 확인 횟수를 공부하면서 제가 ‘완료’라고 생각했던 것과 비트코인 네트워크가 거래를 확인하는 방식이 다르다는 것을 알게 되었습니다.

거래가 블록에 들어가면 첫 번째 확인이 생기고, 그 위에 새로운 블록이 계속 쌓이면서 거래가 점점 더 깊어집니다.

그래서 이제는 거래가 조금 늦게 확인된다고 무조건 불안해하지 않을 것 같습니다.

오히려 “지금 내 거래는 블록에 들어갔을까? 몇 번 확인됐을까?” 이렇게 과정을 먼저 생각하게 될 것 같습니다.

비트코인을 공부할수록 참 신기합니다.

처음에는 단순히 돈을 보내는 일이라고 생각했는데, 그 뒤에서는 블록 하나가 만들어지고 또 하나가 연결되면서 거래에 대한 신뢰가 조금씩 쌓이고 있었습니다.

저는 이런 원리를 하나씩 알아가는 것이 비트코인을 공부하는 진짜 재미인 것 같습니다.


※ 투자 유의사항

이 글은 가상자산에 대한 이해를 돕기 위한 정보성 콘텐츠입니다.
가상자산은 가격 변동성이 크므로 투자 전 충분히 확인하고 신중하게 판단하시기 바랍니다.

모든 투자에 대한 최종 판단과 책임은 투자자 본인에게 있습니다.

다음 이야기

피오나의 비트코인 이야기 #50

비트코인은 거래가 취소될 수 있을까?

(거래 취소, 잘못 보낸 비트코인, 블록체인의 되돌릴 수 없는 거래)