비가역성이란, 비트코인 거래가 한 번 블록에 포함되면(이것이 "확정(confirmed)"의 의미입니다) 그 위에 블록이 추가될 때마다 점점 더 되돌리기 어려워지도록 설계된 속성을 말합니다. 이러한 거래를 "비가역적"이라 부르거나 "되돌릴 수 없다"고 말하는 것은 설계상의 특성을 축약한 표현이지, 약속은 아닙니다. 비트코인 프로토콜의 문서, 즉 네트워크가 합의한 규칙에는 확정된 거래를 취소하는 기능이 전혀 명시되어 있지 않습니다.
비트코인에서 블록이란 거래들의 묶음이며, 블록체인은 모든 블록을 모은 공유 기록입니다.
비트코인 확정(컨펌)이란 무엇이며, 거래는 어떻게 확정을 받을까?
비트코인 거래가 생성되어 확정에 이르기까지는 4단계를 거칩니다.
- 생성 및 서명. 사용자가 BTC를 전송할 때 사용하는 소프트웨어인 지갑이 거래를 만들고, 보내는 사람의 개인키로 서명합니다.
- 전파 및 대기. 비트코인 네트워크에 연결된 컴퓨터인 블록체인 노드가 거래를 다른 노드들에 중계하며, 거래는 미확정 상태로 대기합니다.
- 블록에 포함. 비트코인 채굴기를 운영해 블록체인에 블록을 추가하는 개인 또는 기업인 채굴 운영자가 거래를 블록에 포함시키면, 해당 거래는 1번째 확정을 받습니다.
- 확정 누적. 채굴 운영자들이 이후 블록을 추가할 때마다, 거래가 포함된 블록 다음에 쌓이는 블록 하나하나가 확정 수를 1씩 늘립니다.
개인키는 오직 송신자만 가지고 있어야 하는 비밀 값입니다. 이 키로 생성한 디지털 서명은 해당 키의 소유자가 거래를 승인했다는 것을 증명하는 암호학적 증거입니다. 거래는 자신이 사용하는 출력(output)을 명시하는데, 출력이란 거래가 수신자에게 할당하는 BTC 금액을 말합니다. 입력(input)은 새로운 거래가 사용하는 이전의 출력입니다.
멤풀, 즉 아직 블록에 포함되지 않은 거래들의 대기열을 유지하는 각 노드는, 자신의 규칙과 정책에 따라 유효하다고 판단되는 거래를 그곳에 보관할 수 있습니다. 노드의 정책이란 해당 노드만 적용하는 추가적인 규칙 집합으로, 노드마다 다를 수 있습니다.
프로토콜 수준에서 거래 수수료는 해당 거래를 포함시키는 채굴 운영자에게 지급됩니다. 수수료율이 높을수록, 즉 거래 크기 대비 수수료가 높을수록 더 빨리 포함될 가능성이 커지지만, 포함 시점을 보장하지는 않습니다.
확정 점수는 거래를 제거하거나 변경하기 위해 최선 체인(best chain)에서 수정해야 하는 블록의 개수를 나타냅니다. 최선 체인이란 작업증명(proof of work)이 각 블록에 요구하는 연산 노력인 '작업량'이 가장 많이 쌓인 체인을 말합니다. 점수가 1 이상인 거래는 확정된 것으로 간주되며, 이 점수를 확정 수(number of confirmations)라고도 부릅니다.
확정된 비트코인 거래는 왜 되돌리기 어렵게 설계되었을까?
비트코인의 비가역성은 먼저 해시 연결(hash link)에 기반합니다. 해시란 어떤 함수가 데이터로부터 계산해 내는 고정 크기의 숫자입니다. 각 블록 헤더, 즉 블록 상단에 있는 데이터 필드들은 이전 블록 헤더의 해시값을 저장합니다. 거래를 변경하면 그 거래가 속한 블록의 해시가 바뀌므로, 다음 블록에 저장된 사본과 더 이상 일치하지 않게 되고, 이 불일치는 그 이후의 모든 블록으로 이어집니다.
작업증명은 이러한 해시 연결에 비용을 더합니다. 블록은 그 헤더 해시를 숫자로 읽었을 때 목표값(target), 즉 네트워크 규칙이 정한 유효 해시의 한계값 이하일 때만 유효합니다. 이런 해시를 찾으려면 반복적인 연산이 필요하며, 이 연산이 곧 '작업'입니다. 거래를 변경하려면 그 거래가 속한 블록과 그 이후의 모든 블록에 대해 작업을 다시 해야 하며, 블록이 추가될수록 필요한 작업량은 점점 늘어납니다.
네트워크 난이도는 유효한 블록을 찾기가 얼마나 어려운지를 나타내는 척도이며, 네트워크는 2,016블록마다 이를 조정합니다. 2026년 10월 기준, 난이도는 140조를 넘습니다. 난이도에 약 43억(2의 32제곱)을 곱하면 블록 하나를 찾는 데 필요한 예상 해시 수를 대략적으로 구할 수 있는데, 현재 난이도에서는 평균 500해(垓) 개(500 sextillion) 이상의 해시에 해당합니다(1 sextillion은 10의 21제곱).
2026년 10월 기준, 확정 수가 3인 거래를 변경하려면 수정해야 할 블록이 3개이므로, 평균적으로 1.5양(穣, septillion) 개 이상의 해시가 필요합니다(1 septillion은 10의 24제곱). 이 수치는 난이도가 약 17% 하락하더라도 성립하도록 낮춰 계산한 값입니다. 이는 규모를 보여주기 위한 예시일 뿐, 공격 비용이나 대기 시간에 대한 조언이 아니며, 되돌림 가능성을 완전히 배제하는 것도 아닙니다.
비트코인 풀 노드는 여기에 세 번째 층을 더합니다. 풀 노드는 가장 많은 작업량이 쌓인 체인을 따르며, 규칙을 직접 검증하기 때문입니다. 노드는 더 많은 작업량을 가진 경쟁 체인이 나타날 때만 그쪽으로 전환하도록 설계되어 있으며, 이를 재구성(reorganization)이라고 합니다. 이때 버려지는 블록은 스테일(stale) 블록, 즉 더 이상 최선 체인에 속하지 않는 블록이 됩니다. 풀 노드는 각 블록을 합의 규칙(consensus rules), 즉 블록이나 거래가 전체 네트워크에 대해 유효한지를 판단하는 규칙에 따라 직접 검증하므로, 규칙을 어긴 블록은 그 뒤에 아무리 많은 작업량이 쌓여 있어도 거부되도록 설계되어 있습니다.
비트코인에서 비가역성의 한계는 누가 해시레이트, 즉 비트코인 채굴기들이 초당 계산하는 해시 수의 총합을 통제하느냐에 달려 있습니다. 해시레이트의 대부분을 가진 주체는 최근 블록들을 수정하여 자신이 보낸 최근 결제를 되돌릴 수 있으며, 어떤 확정 수로도 이 가능성을 완전히 없앨 수는 없습니다. 이 속성은 되돌림을 더 어렵게 만들도록 설계된 것이지, 불가능하게 만들도록 설계된 것은 아닙니다. 51% 공격과 이중 지불 항목은 그 메커니즘을 다루고, 불변성(immutability) 항목은 기록된 역사가 매우 바꾸기 어렵도록 설계되어 있다는 더 넓은 속성을 다룹니다.
미확정 거래는 교체되거나 폐기될 수 있을까?
미확정 거래는 아직 어떤 블록에도 포함되지 않았으므로 해시 연결이나 작업증명의 보호를 받지 못하며, 노드의 멤풀에 머무는 동안 교체되거나 폐기될 수 있습니다. 수수료 대체(replace-by-fee, RBF)는 노드 정책의 하나로, 송신자가 더 높은 수수료를 지불하는 버전으로 미확정 거래를 교체할 수 있게 하며, 노드는 이 교체본을 받아들일 수 있습니다. 또한 노드는 일정 시간이 지나거나 자신의 멤풀이 가득 찼을 때 거래를 폐기할 수 있으며, 이 둘 다 각 노드의 설정에 따른 것입니다.
두 거래가 같은 출력을 사용하면 서로 충돌하며, 충돌하는 거래가 먼저 확정되면 미확정 거래를 앞지를 수 있습니다. 둘 중 하나가 확정되면 다른 하나는 더 이상 유효할 수 없으며, 노드는 이를 제거합니다. 미사용 거래 출력(UTXO) 항목에서는 단일 거래 수준에서의 이중 지불을 다룹니다.
확정되지 않고 노드의 멤풀에서 사라진 거래는 되돌려진 것이 아닙니다. 그 거래가 쓰려던 출력은, 그것을 사용하는 거래가 블록에 포함되기 전까지는 블록체인상에서 여전히 사용되지 않은 상태로 남으므로, 폐기된 거래는 송신자의 BTC를 원래 있던 자리에 그대로 둘 수 있습니다.
비트코인 거래는 확정된 후에도 되돌릴 수 있을까?
비트코인에서 확정된 거래는 되돌리기 어렵도록 설계되어 있으며, 프로토콜 문서에는 송신자나 노드가 이를 취소할 수 있는 방법이 명시되어 있지 않습니다. 확정된 비트코인 거래를 실제로 되돌릴 수 있는지는 되돌리는 데 필요한 작업량과 누가 해시레이트를 통제하는지에 달려 있습니다.
비트코인에서의 환불은 새로운 거래입니다. 출력은 그 사용 조건, 즉 누가 그것을 쓸 수 있는지를 정한 규칙을 충족하는 사람이라면 누구든 사용할 수 있으므로, BTC를 돌려받는 것은 수신자가 보내는 또 다른 새로운 거래입니다.
잘못된 주소나 잘못된 금액으로 전송된 BTC 결제는 사용자 실수이며, 프로토콜은 이를 바로잡지 않습니다. 노드는 거래가 규칙에 따라 유효한지만 검증합니다. 즉 입력은 미사용 상태여야 하고, 출력의 합이 입력의 합을 넘어서는 안 되며, 각 입력은 자신이 사용하는 출력의 사용 조건을 충족해야 합니다. 이 규칙들은 유효성만 검증할 뿐 송신자가 누구에게 보내려 했는지는 검증하지 않으므로, 유효하지만 잘못된 주소로 보낸 거래도 확정될 수 있습니다.
비트코인 주소에는 체크섬, 즉 입력 실수를 잡아내도록 설계된 오류 검출 코드가 포함될 수 있지만, 유효하면서도 잘못된 주소는 이 검증을 통과합니다. 프로토콜 문서에는 확정된 거래를 되돌리는 방법이 명시되어 있지 않으므로, 송신자는 서명하기 전에 주소와 금액을 반드시 확인해야 합니다.
사용자와 네트워크 사이에 위치한 서비스는 자체적인 환불 또는 분쟁 처리 규칙을 가질 수 있습니다. 이러한 규칙은 해당 서비스에 속한 것이며 비트코인 프로토콜의 일부가 아닙니다.
중개자가 분쟁을 조정하는 결제 시스템에서는 그 절차를 통해 결제가 취소될 수 있으며, 신용카드 회사가 경우에 따라 결제를 취소하는 신용카드 지불 거절(chargeback)이 그 한 예입니다. 비트코인 프로토콜 문서에는 이에 상응하는 절차가 명시되어 있지 않습니다.
각 단계에서 거래를 여전히 바꿀 수 있는 요소는 무엇일까?
비가역성이 의미하지 않는 것은 무엇일까?
비가역성은 거래가 합법적이라거나 결제가 정당했다는 것을 의미하지 않습니다. 프로토콜은 거래가 규칙을 따르는지만 검증할 뿐, 그 거래가 왜 보내졌는지는 검증하지 않습니다. 서비스의 환불 규칙, 분쟁 처리, 그 밖의 법적 구제 수단은 모두 프로토콜 밖의 영역이며, 이 글은 자금을 회수할 수 있는지에 대해서는 아무것도 말하지 않습니다.
비가역성은 네트워크가 공격받을 수 없다는 것을 의미하지도 않습니다. 해시레이트의 대부분을 가진 주체는 최근 블록을 다시 쓸 수 있으며, 바로 이 때문에 "더 어려운 되돌림"이 곧 "불가능한 되돌림"을 뜻하지는 않습니다.
여기서 설명한 비트코인 설계는 2026년 10월 기준의 내용입니다. 이는 다른 네트워크에 대해서는 아무런 언급도 하지 않으며, 어떠한 예측도 포함하지 않습니다.
2025년 11월 27일









