
3초 안에 결제 확정, 진짜 가능할까? – Pre-Consensus와 사용자 경험의 변화
“블록이 생성될 때까지 기다리는 블록체인은
본질적으로 ‘현금’이 될 수 없다.”
1·2편에서 우리는 이렇게 정리했죠.
- 1편: 블록체인은 시간이 지날수록 엔트로피(혼돈) 가 쌓이고,
블록이 나올 때만 잠깐 정리되는 구조다. - 2편: Avalanche는 이 사이사이에 계속 샘플링·투표를 하면서
네트워크를 눈사태처럼 한 방향으로 정렬시키고,
그 과정에서 51% 공격까지 차단한다.
이제 3편에서는 드디어
우리가 실제로 체감하게 될 변화,
“Pre-Consensus(사전 합의)가
사용자의 결제 경험을 어떻게 바꾸는가?”
에 집중해 봅니다.
1. ‘빠른 것’과 ‘확정된 것’은 다르다
많은 프로젝트가 이렇게 말합니다.
- “우리 체인은 1초 만에 전파돼요!”
- “3초면 결제됩니다!”
하지만 조금만 파고들어 보면
대부분 이렇게 되어 있습니다.
- 화면 상으로는 “성공” 표시가 떠 있지만
- 네트워크 차원에서 진짜로 확정된 것은 아님
- 롤백되거나, 이중지출이 발생할 가능성이 완전히 0은 아님
사용자 입장에서 진짜 중요한 건 이거죠.
“내가 지금 지불한 이 돈이
되돌릴 수 없는 상태가 되었는가?”
이 “되돌릴 수 없음”이 바로 Finality(최종성)이고,
Pre-Consensus는 이 Finality를 블록 생성 이전 단계에서 미리 확보하는 기술입니다.
2. Pre-Consensus란 무엇인가? (한 줄 정의)
복잡하게 말할 필요 없이, 이렇게 정의할 수 있습니다.
“블록에 들어가기 전,
트랜잭션 단위에서 네트워크가 먼저 합의를 보는 과정”
기존 구조는:
- 트랜잭션 → 메모리풀 →
- 블록에 포함될 때까지 애매한 상태 →
- 블록에 포함된 후에야 “일단 OK”
Pre-Consensus 구조는:
- 트랜잭션 → Avalanche 투표로 먼저 Finality 확보 →
- 그 이후 어느 블록에 들어가든 상관 없음
즉,
예전에는 “블록이 합의를 만든다” 였다면,
이제는 “합의된 결과를 블록이 기록만 한다” 로 바뀌는 구조입니다.
3. Pre-Consensus에서 트랜잭션 하나가 겪는 여정
이제 실제로 트랜잭션 하나가
eCash 네트워크에서 어떻게 처리되는지
“사용자 경험” 기준으로 풀어봅시다.
🪙 1단계 – 사용자가 결제를 보낸다
- 사용자가 eCash 지갑에서
“결제하기” 버튼을 누릅니다. - 지갑은 트랜잭션(TX)을 만들고,
네트워크에 브로드캐스트합니다.
이 부분은 기존과 크게 다르지 않습니다.
🌐 2단계 – 이웃 노드에게 전파 + Avalanche 시작
- 트랜잭션을 받은 노드는
- 형식, 서명, 잔고 등 기본 유효성 검사를 하고
- Pre-Consensus 대상으로 올립니다.
- 이 노드는 이제 무작위로 몇 개의 이웃 노드를 뽑아 묻습니다.
“이 트랜잭션에 대해 너희는 어떻게 생각해?”
“이걸 정식으로 받아들이는 게 맞다고 보니?”
이때 이웃 노드들도
각자 이미 봤던 트랜잭션들,
그동안의 Avalanche 투표 결과를 바탕으로 대답합니다.
🔄 3단계 – 반복 샘플링 & 반복 투표
이제부터는 2편에서 설명했던 Avalanche 메커니즘이
“블록”이 아니라 “트랜잭션” 단위에서 그대로 돌아갑니다.
- 이 노드도, 저 노드도
계속 서로를 샘플링하면서
“이 TX를 받는 게 맞나?”를 서로 확인합니다.
이 과정은:
- 한 번으로 끝나는 게 아니라
- 짧은 간격으로 여러 라운드 반복됩니다.
라운드를 거듭할수록:
- 어느 순간부터는
네트워크의 거의 모든 노드가
똑같은 결론을 향해 수렴하기 시작합니다.
“그래, 이 트랜잭션은 받아들이는 게 맞아.”
이 상태가 일정 횟수 이상 안정되면,
그 트랜잭션은 Final(최종 확정)으로 표시됩니다.
✅ 4단계 – 사용자에게 “확정” 신호가 돌아온다
어떤 시점이 되면
사용자가 연결된 노드(혹은 인프라 서비스)가
이렇게 판단합니다.
“이 트랜잭션에 대해
네트워크 전체 의견이 충분히 수렴했구나.
이제 이건 ‘돌이킬 수 없는 거래’다.”
이때:
- 가맹점 단말기에는 “결제 완료” 라는 신호가 뜨고
- 사용자의 지갑에도
“최종 확정됨(Pre-Consensus Finalized)” 같은 표시가 뜹니다.
이 전체 과정이 보통 2~3초 안에 끝납니다.
(네트워크 상태에 따라 약간 변동 가능)
중요한 포인트는:
이 시점에는 아직 블록에 기록되지 않았을 수도 있지만,
이 트랜잭션과 충돌하는 이중지출이
네트워크에서 받아들여질 가능성은 사실상 0이라는 점입니다.
📦 5단계 – 나중에 블록에 ‘기록’만 된다
그 후에 나오는 블록들은
이미 Pre-Consensus 단계에서 Final로 확정된 거래들을
그냥 순서대로 기록하는 역할을 합니다.
- 합의는 이미 끝났고,
- 블록은 영수증처럼 기록만 하는 구조에 가까워집니다.
그래서 eCash에서 블록은 더 이상
“합의를 만드는 순간”이라기보다는,
“이미 합의된 사실을
영구 보관용 장부에 옮겨 적는 순간”
이라고 보는 것이 더 정확합니다.
4. 이중지출 상황에서는 어떻게 되나?
이제 가장 중요한 질문으로 넘어갑니다.
“그럼 이중지출(double spend)이
동시에 발생하면 어떻게 되나?”
예를 들어 이런 상황을 생각해봅시다.
- 같은 UTXO(같은 코인)를
- A 상점, B 상점에 동시에 보내는 두 개의 TX를 날림
- TX1: A에게 결제
- TX2: B에게 결제
🔍 네트워크 입장에서
- 각 노드는 TX1, TX2를 언제 어떤 순서로 받느냐가 다를 수 있습니다.
- 어떤 노드는 TX1을 먼저 보고,
- 어떤 노드는 TX2를 먼저 봅니다.
- 하지만 Avalanche는
- “내가 처음 본 순서”만 중요한 게 아니라,
- 다른 노드들이 실제로 무엇을 선택하고 있는지를 계속 묻습니다.
- 이 과정을 반복하면
- 어느 순간부터는
- 대다수 노드가 TX1 또는 TX2 중 하나로 쏠리기 시작합니다.
- 둘 다 살려두는 경우는 없습니다.
- 둘은 서로 모순되는 상태이기 때문입니다.
- 한쪽으로 수렴이 시작되면,
- Avalanche의 특성상
- 그 수렴은 눈사태처럼 강화됩니다.
- 결과적으로 하나는 채택되고, 하나는 완전히 버려집니다.
🧾 사용자·가맹점 입장에서
- A 상점이 먼저 Final 신호를 받았다면
- A의 거래(TX1)는 네트워크에서 최종 확정
- B의 거래(TX2)는 끝내 Final 상태에 도달하지 못하고 거부
- 반대로 B가 먼저 Final 신호를 받았다면
- B의 거래(TX2)가 살아남고
- TX1은 버려지는 구조입니다.
중요한 건,
“둘 다 Final 상태가 되는 일은 없다”는 점입니다.
그래서 가맹점은
“내 단말기에 Avalanche Final 신호가 들어왔는가”만 보면 됩니다.
- 들어왔다 → 다른 이중지출은 살아남을 수 없다
- 안 들어왔다 → 아직 네트워크에서 싸우는 중이거나, 문제가 있는 TX
5. “3초 안에 확정”의 정확한 의미
여기서 많이 나오는 질문이 있습니다.
“3초 안에 확정이라고 하는데,
그럼 3초 안에 100% 블록에 들어간다는 뜻인가요?”
정확히 말하면,
그건 아닙니다.
Pre-Consensus가 보장하는 건 이겁니다.
“3초 안에,
이 트랜잭션이 네트워크에서
되돌릴 수 없는 방향으로 Final 상태에 진입한다.
(= 그 이후에는 이중지출이 채택될 수 없다)”
반면, 블록에 언제 찍힐지는:
- 이미 누군가 다음 블록을 캐고 있었는지
- 네트워크 상황이 어떤지
- 블록 크기가 얼마나 차 있는지
같은 것들에 따라 약간 달라질 수 있습니다.
그래서 이렇게 이해하는 게 더 정확합니다.
- Pre-Consensus:
- “이 돈은 사실상 이미 상대방의 것이 됐다”
- 이중지출이 수용될 가능성 = 0에 가깝다
- Block Inclusion:
- “이제 그 사실을 장부(블록체인)에 정식 기록했다”
- 나중에 누구나 이 거래를 영구 조회할 수 있음
6. 사용자 경험 측면에서 정리해보면
Pre-Consensus가 가져오는 변화들을
UX 관점에서 한 번에 정리해 봅시다.
👤 일반 사용자
- 결제 버튼 누른 뒤 2~3초 안에 “최종 확정” 표시
- “기다렸다가 취소될지도 모르는 애매함”이 사라짐
- 실제로는 카드 결제 승인 시간과 비슷한 체감
🏪 가맹점/비즈니스
- 온체인 결제를 POS 수준 UX로 가져올 수 있음
- “한 블록만 기다리세요” 같은 말이 사라짐
- 이중지출 위험을 신경 쓸 필요 없이
“Final 신호만 보고 바로 상품·서비스 제공” 가능
🧩 인프라/서비스 개발자
- 트랜잭션 상태를
- “mempool에 있음 / 블록에 포함됨”이 아니라
- “Final 됨 / 아직 미정” 기준으로 다룰 수 있음
- 결제, 게임, 마이크로페이먼트 등에 최적화된 로직 구현 가능
🌐 네트워크 관점
- 엔트로피가 블록마다 크게 출렁이지 않고
항상 낮은 수준에서 유지 - 블록은 합의의 중심이 아니라
“기록 계층(Record Layer)” 역할에 가까워짐
7. 3편 정리:
“블록을 기다리지 않는 블록체인”
한 문장으로 요약하면 이렇습니다.
“eCash + Avalanche의 Pre-Consensus는
블록을 기다리지 않는 블록체인 UX를 만든다.”
지금까지 살펴본 핵심만 다시 뽑아보면:
- Pre-Consensus는
- 블록 전에 트랜잭션 단위로 합의를 먼저 해버리는 구조다.
- 사용자는 보통 2~3초 안에
- “이 거래는 되돌릴 수 없다”는 수준의 확정성을 얻는다.
- 이중지출이 동시에 발생해도
- Avalanche 합의는 둘 중 하나만
- 네트워크 전체에서 살아남도록 설계되어 있다.
- 블록은 더 이상
- “합의를 만드는 도구”가 아니라
- “이미 합의된 결과를 영구 보관하는 장부”에 가깝다.
- 결과적으로
- UX는 카드 결제에 가까운 속도와 확정성을 제공하면서
- 여전히 탈중앙성과 보안성을 포기하지 않는다.
다음 편 예고: Subnet, 프라이버시, 그리고 eCash의 다음 단계
4편에서는 이제 시야를 더 넓혀서,
- Subnet(서브넷) 이란 무엇이고
- 왜 eCash가 Avalanche 위에서
“디지털 현금 + 프라이버시 + 규제 분리”를 동시에 노리는지 - 장기적으로 디지털 현금 생태계가
어떤 모양으로 펼쳐질 수 있는지
를 다뤄볼 예정입니다.
“디지털 금이 아닌, 진짜 디지털 ‘현금’을 완성하는 길”
그 여정의 마지막 조각을 4편에서 이어가겠습니다.