Home / Knowledge / 가방 확보하기: 비트코인 네트워크 혼잡 해소를 위한 거래 절반으로 줄이기

가방 확보하기: 비트코인 네트워크 혼잡 해소를 위한 거래 절반으로 줄이기

가방 확보하기: 비트코인 네트워크 혼잡 해소를 위한 거래 절반으로 줄이기 1

가방 확보하기: 비트코인 네트워크 혼잡 해소를 위한 거래 절반으로 줄이기 2

편집 노트, 2019년 11월 20일: 이 기사의 원래 출판 이후, OP_SECURETHEBAG은 OP_CHECKTEMPLATEVERIFY로 이름이 변경되었습니다.

비트코인 네트워크의 혼잡도는 매우 다양할 수 있습니다. 특정 시간대에는 수만 건의 거래가 블록에 포함되기를 기다리고 있어 수수료가 급등하고 많은 사용자가 대기하게 됩니다. 반면 느린 시간대에는 모든 블록을 채울 만큼의 거래가 없어서 가장 작은 수수료로도 빠른 확인이 가능합니다.

혼잡한 시간대의 네트워크 혼잡은 많은 거래를 빠르게 처리해야 하는 서비스에 큰 문제입니다. 예를 들어, 거래소, 채굴 풀 또는 급여 서비스는 때때로 수백 명의 사용자에게 동시에 지급해야 하며, 이 사용자들은 돈을 받기 위해 불안해할 수 있습니다. 따라서 이러한 서비스는 높은 수수료를 지불하여 비트코인 네트워크의 다른 모든 거래를 대기열 뒤로 미룹니다.

이제 비트코인 코어 기여자인 제레미 루빈은 네트워크 혼잡을 안정적으로 완화하고 피크 시간대에 비트코인의 처리량을 증가시키는 방법을 알아냈다고 믿고 있습니다.

그의 제안은 OP_SECURETHEBAG이라고 불립니다.

가방 확보하기

OP_SECURETHEBAG(이제부터 “가방 확보하기”라고 부릅니다.)을 이해하기 위해, 실용적인 예를 들어 기본부터 시작해 보겠습니다. 이 예에서 12명의 고객이 모두 거래소에 인출 요청을 하며 수수료가 높은 상황입니다. (실제로는 1,200명의 고객이 될 수 있지만, 12명으로 설명하는 것이 더 쉽습니다.)

가방 확보하기가 없더라도 거래소는 합리적이며 각 고객에게 개별적으로 12개의 거래를 생성하지 않습니다. 대신 수수료를 절약하기 위해 “배치” 거래를 생성합니다. 이 거래는 예를 들어 세 개의 입력(모두 거래소 소유의 주소)과 12개의 출력(각기 다른 고객의 주소)을 포함합니다. 이 예에서는 금액이 잘 맞아떨어져서 변경 주소가 필요하지 않습니다.

아래 이미지에서 거래는 오른쪽의 거래 A와 같이 보일 것입니다 — 왼쪽에 표시된 12개의 개별 거래와는 다르게요. 

가방 확보하기: 비트코인 네트워크 혼잡 해소를 위한 거래 절반으로 줄이기 3

배치 거래는 많은 출력을 포함하고 있기 때문에 데이터 측면에서 상당히 큽니다. 거래가 클수록 블록에 포함되는 데 더 많은 비용이 듭니다. 피크 시간대에는 거래소가 거래를 빠르게 확인받기 위해 상당한 비용을 지불해야 합니다. (12개의 개별 거래보다 비용이 덜 들지만 여전히 비쌉니다.)

이제 거래소는 대신 더 낮은 수수료를 포함할 수 있지만, 이 경우 거래가 확인되기까지 시간이 걸립니다. 그러나 확인될 때까지 고객들은 돈을 받을 수 있을지 불확실한 상태에서 기다리게 됩니다: 거래가 블록에 포함되기 전까지는 돈이 이중 지출될 수 있습니다. 이는 고객들을 불만족스럽게 만들며 거래소는 이를 원하지 않습니다. (일부 경우에는 고객이 기다리게 하는 것이 선택 사항이 아닐 수 있습니다: 급여 서비스는 예를 들어 특정 날짜에 거래가 확인되도록 계약상 의무가 있을 수 있습니다.)

여기서 가방 확보하기가 등장합니다.

가방 확보하기는 비트코인 프로그래밍 언어에 추가되는 제안된 “OpCode”입니다. 이 OpCode는 본질적으로 거래소가 배치 거래를 두 개의 거래로 “분할”할 수 있도록 합니다: “전송” 거래와 “수신” 거래입니다.

이 중 첫 번째인 “전송” 거래는 거래소 소유의 주소를 참조하는 세 개의 원래 입력을 포함합니다. 그러나 특별한 출력은 하나만 포함됩니다. 이 출력은 “커밋된 출력”이라고 불리며 암호화 해시를 포함합니다: 겉보기에는 무작위지만 상대적으로 짧은 숫자 문자열입니다.

이 해시는 본질적으로 고유한 일련 번호 역할을 하며 두 거래 중 다른 거래인 “수신” 거래와 연결됩니다. 가방 확보하기의 핵심은 커밋된 출력을 지출할 수 있는 유일한 방법이 이 특정 “수신” 거래를 통해서라는 것입니다. (기술적으로 말하자면, 해시는 “prevouts”를 제외한 전체 “수신” 거래에 커밋됩니다. 그러나 이는 구현 세부 사항입니다.)

“수신” 거래는 원래 거래의 두 번째 절반으로 간주될 수 있습니다. 이 거래는 “전송” 거래의 커밋된 출력을 참조하는 하나의 입력과 모든 12개의 출출력을 포함합니다. 따라서 이 “수신” 거래는 모든 출출력을 포함하므로 “전송” 거래보다 훨씬 큽니다.

아래 이미지에서 왼쪽에는 일반 배치 거래가 보이고, 오른쪽에는 가방 확보하기 결제의 두 개의 분리된 거래(“전송” 및 “수신”)가 보입니다.

가방 확보하기: 비트코인 네트워크 혼잡 해소를 위한 거래 절반으로 줄이기 4

거래소가 12명의 고객에게 인출을 발행할 때, 거래소는 “전송” 거래와 “수신” 거래를 모두 방송합니다. 그러나 두 거래 간에는 큰 차이가 있으며, 이것이 트릭의 핵심입니다. 더 작은 “전송” 거래는 상대적으로 큰 수수료를 포함하여 빠르게 확인되도록 합니다. 이 거래는 데이터 측면에서 작기 때문에 상대적으로 큰 수수료도 관리 가능합니다.

반면 더 큰 “수신” 거래는 상대적으로 낮은 수수료를 포함하므로 확인되기까지 시간이 걸릴 수 있습니다. 그러나 이번에는 낮은 수수료 거래가 확인되기를 기다리는 것이 고객들에게 큰 문제가 되지 않아야 합니다. 왜냐하면 “전송” 거래가 확인되면 모든 돈이 “수신” 거래에 보장되기 때문입니다. 자금은 블록체인에 고정되어 있으며 거래소 고객에게만 갈 수 있습니다.

돈은 아직 도착하지 않았지만 … 가방은 확보되었습니다.

자식이 부모를 지불하다

위에서 설명한 기본 예는 거래소의 12명의 고객이 결국 자금을 받을 수 있도록 보장하지만, 이는 모든 고객을 만족시키지 못할 수 있습니다.

(*거래 수수료가 필요한 수준으로 절대 내려가지 않는 경우, “수신” 거래는 실제로 스스로 확인되지 않습니다. 이는 이 기사 나머지에서 설명된 동일한 트릭을 통해 해결됩니다.)

예를 들어, 12명의 고객 중 한 명인 앨리스는 오늘 집주인에게 지불해야 합니다. 따라서 거래소로부터 결국 돈을 받을 것이라는 사실만으로는 충분하지 않습니다 — 그녀가 실제로 받을 것이라는 확신이 얼마나 강하든지 간에. 그녀는 실제로 자신의 출력을 사용할 수 있어야 합니다. 

기술적으로 이는 가능합니다. 앨리스는 자신의 확인되지 않은 출력(12개 중 하나)을 가져와 즉시 새로운 거래에서 사용할 수 있습니다. 유일한 문제는 앨리스의 거래가 “수신” 거래가 확인된 후에만 확인된다는 것입니다. 그 사이에 그녀의 집주인은 오늘 확인된 거래를 요구하고 있습니다.

다행히도 앨리스는 “자식이 부모를 지불하다”(CPFP)라는 비트코인의 오래된 트릭을 활용하여 “수신” 거래와 자신의 거래가 모두 확인되도록 할 수 있습니다. 기본적으로, 앨리스가 집주인에게 보내는 거래에 충분히 높은 수수료를 포함하면, 채굴자들은 “수신” 거래를 블록에 포함하도록 유도됩니다 — 그들이 “수신” 거래 자체의 수수료에 관심이 없더라도 말입니다. 결국, 그들은 두 거래를 모두 확인함으로써 앨리스의 높은 수수료를 얻기 때문입니다.

그렇긴 해도, 큰 “수신” 거래를 보상하는 것은 상당히 비쌀 수 있습니다. 그래서 거래소는 처음부터 가방 확보하기를 사용했습니다. 이제 앨리스가 모든 12명의 고객에게 배치 거래를 지불하게 됩니다. 이는 그녀를 매우 행복한 고객으로 만들지 않을 것입니다.

다행히도, 가방 확보하기는 더 나은 솔루션을 제공합니다.

트리 결제

앨리스의 문제를 해결하기 위해 거래소는 가방 확보하기 트릭을 한 단계 더 발전시킬 수 있습니다.

위에서 보여준 기본 예에서 “전송” 거래는 하나의 커밋된 출력을 포함하고, 단일 “수신” 거래는 하나의 해당 입력과 12개의 일반 출력을 포함합니다. 그러나 이 12개의 출출력을 더 많은 “수신” 거래로 추가 분할하는 것이 가능합니다.

예를 들어, “전송” 거래는 두 개의 커밋된 출출력을 포함하여 각각 6개의 일반 출출력을 포함하는 두 개의 “수신” 거래를 참조할 수 있습니다. 이는 물론 “전송” 거래가 빠르게 확인되기 위해 더 비쌀 수 있음을 의미하지만, 앨리스의 비용은 절반 이상 줄어들 것입니다: 이제 그녀는 11명이 아닌 5명의 다른 고객만을 위해 지불하게 됩니다.

더 나아가, 거래소는 초기 “전송” 거래와 최종 “수신” 거래 사이에 “중간” 거래를 생성할 수 있습니다! 이러한 “중간” 거래는 모두 하나의 입력과 하나 이상의 커밋된 출출력 및 일반 출출력을 포함하여 트리 구조를 생성합니다. 이렇게 하면 거래소는 자금을 즉시 사용해야 하는 고객을 위해 CPFP 비용을 합리적으로 최소화할 수 있습니다. 급한 고객은 관련된 중간 거래에 대해서만 최대한 지불하고 나머지는 무시할 수 있습니다.

아래 이미지에서 거래소는 고객에게 가장 잘 맞는 방식으로 원하는 만큼 창의적으로 이러한 트리를 생성할 수 있습니다. (더 많은 중간 단계가 필요하면 블록체인에서 확인해야 할 총 거래 데이터가 더 많아지지만, 개별 사용자당 비용은 줄어듭니다. “체인 결제”는 트리 결제와 유사하지만 거래의 연대기에 더 의존합니다.)

가방 확보하기: 비트코인 네트워크 혼잡 해소를 위한 거래 절반으로 줄이기 5

세부 사항 및 배포

이 기사는 가방 확보하기의 기본 구현을 설명합니다. 실제로 이 제안은 다양한 방식으로 구현되고 활용될 수 있습니다. 예를 들어, 앨리스가 집주인에게 지불할 수 있도록 CPFP를 사용할 필요 없이, 그녀는 라이트닝 채널로 자금을 받고 즉시 집주인에게 지불할 수 있습니다. “수신” 거래를 가속화하기 위한 다른 더 복잡한 솔루션도 있습니다.

또한 제안된 가방 확보하기 OpCode는 엄밀히 말해 두 단계 결제 솔루션을 실현하는 유일한 방법이 아닙니다. 현재 비트코인 프로토콜로도 유사한 것을 달성할 수 있지만, 이는 모든 수신자가 조정하고 협력해야 하므로 거래소와 고객의 예에서는 매우 가능성이 낮으며, 사용자가 늘어날수록 이러한 시나리오는 더 어려워집니다. 다른 솔루션(예: 계약)은 비트코인 프로토콜 업그레이드를 요구합니다.

가방 확보하기도 후방 호환 가능한 소프트 포크를 통해 프로토콜 업그레이드를 요구합니다. 루빈은 이미 필요한 대부분의 코딩 작업을 완료했지만, 코드와 아이디어는 여전히 검토를 받아야 합니다. 또한 제안이 모든 동료 검토를 통과하더라도 프로토콜 업그레이드는 채택되는 데 시간이 걸릴 수 있습니다. 따라서 현재 가방 확보하기가 비트코인에서 언제 활성화될지에 대한 추정은 없습니다 — 만약 활성화된다면요.

정보와 피드백을 제공해 준 제레미 루빈에게 감사드립니다. 가방 확보하기에 대한 더 많은 정보, 시뮬레이션 데이터 및 다양한 사용 사례는 관련 비트코인 개선 제안, 개발 메일링 리스트 토론 및 루빈의 텔아비브에서 열린 스케일링 비트코인 2019 발표를 참조하세요:

관련 기사

카사, 비트코인 보유자를 겨냥한 증가하는 사회 공학 공격에 대응하기 위해 네 가지 보안 기능 출시 1

사회 공학 공격에 대응하는 카사 기능

비트코인 보안 회사 카사는 2025년 암호화폐 도난의 대부분을 차지하는 공격 벡터인 사회 공학을 겨냥한 네 가지 기능을 출시했습니다. 이 기능은

마스터카드, 디지털 자산 전략을 강화하기 위해 뉴욕 비트라이센스 확보 1

마스터카드, 비트라이센스 획득

마스터카드는 뉴욕주 금융 서비스국(NYDFS)으로부터 비트라이센스를 받았으며, 이는 이 결제 거대 기업이 미국에서 가장 엄격한 암호화 규제 프레임워크 중 하나 아래에서

크라켄, 비트코인 보관소 출시 - BTC 보유에 대한 수익 제공 1

비트코인 보관소 | 크라켄의 새로운 금융 솔루션

크라켄은 고객이 자산을 판매하지 않고도 비트코인 보유량에 대해 BTC 기준 보상을 받을 수 있는 새로운 제품인 비트코인 볼트를 크라켄 어

폴드, 비트코인 신용 카드 성장을 위한 1억 5천만 달러 유치 1

비트코인 신용 카드, Fold의 성장 동력

Fold Holdings, Inc., 최초의 상장된 비트코인 금융 서비스 회사가 Encina Lender Finance, LLC와 4년간의 고정 담보 회전 신용 시설에 진입했습니다.

DDC, 한 주에 비트코인을 두 번 구매하며 자산을 14% 증가시켜 희석 없이 재무를 성장시킵니다. 1

비트코인으로 DDC 자산 14% 증가

DDC Enterprise Limited (NYSE American: DDC)는 수요일에 131 비트코인을 구매하여 기업 비트코인 금고를 2,714 BTC로 확장했다고 발표했습니다. 뉴욕에 본사를 둔

반카 셀라, MiCA에 따라 비트코인 및 암호화 서비스에 대한 라이센스를 받은 첫 번째 이탈리아 은행이 되다. 1

Banca Sella, 첫 이탈리아 비트코인 은행 승인

Banca Sella는 유럽 연합의 암호 자산 규제(MiCA) 하에서 암호화폐 서비스를 제공할 수 있는 최초의 이탈리아 은행으로 승인받았으며, 2026년 5월 27일