라이트닝 네트워크 앵커 출력 설명: 기본 (파트 1)

발행: (2026년 2월 20일 오후 01:43 GMT+9)
12 분 소요
원문: Dev.to

Source: Dev.to

다시 찾아와 주셔서 감사합니다, 그리고 여기서 저와 함께 배우게 되어 고맙습니다.

Recap: Part 1

  • Problem: 프리‑사인된 Lightning 커밋먼트 트랜잭션은 방송이 필요할 때까지 수수료가 오래될 수 있습니다.
  • Solution: Anchor outputs는 나중에 CPFP (Child Pays For Parent)를 사용하여 수수료를 높일 수 있게 합니다.

Part 2에서 다룰 내용

  1. CPFP가 실제로 작동하는 방식 – 비트코인 프로토콜 수준의 메커니즘.
  2. 왜 330 sats? – “매직 넘버”에 대한 설명.
  3. 한‑블록 지연 (CSV) – 보안에 왜 중요한지.
  4. 다른 출력들은 어떻게 되는가 – 간략한 개요.
  5. 실제 수치를 사용한 실제 예시.

Source:

1. CPFP 메커니즘

기본 아이디어

  • 채굴자들은 수익을 최대화하려고 하므로, 각 블록을 가장 높은 수수료가 붙은 트랜잭션으로 채웁니다.
  • 그들은 트랜잭션 패키지(부모 + 자식)를 고려하고 합산 수수료율을 계산합니다.

실제 숫자를 이용한 예시

트랜잭션크기 (vbytes)수수료 (sats)수수료율 (sat/vbyte)
Parent (귀하의 커밋 TX)2002001 sat/vbyte ❌ 너무 낮음
Child (330‑sat 앵커를 사용)150120 000
전체 패키지350120 530344 sat/vbyte
  • 자식 트랜잭션은 부모가 확정될 때까지 확정될 수 없습니다(부모의 출력에서 자금을 사용하기 때문).
  • 채굴자는 둘 다 포함하거나 전혀 포함하지 않아야 하므로, 자식의 높은 수수료가 부모를 블록에 끌어들입니다.

2. 왜 330 sats인가?

  1. Dust limit(먼지 제한) – 비트코인은 경제적으로 너무 작은 출력은 거부합니다.
    • 표준 먼지 제한 ≈ 546 sats.
  2. Anchor‑output 스크립트 – 더 낮은 먼지 제한인 330 sats를 가진 특수 스크립트 유형으로, 먼지로 간주되지 않는 가장 작은 사용 가능한 출력입니다.
  3. 합의 – 주요 라이트닝 구현체(LND, Core Lightning, Eclair, LDK) 모두 BOLT 사양에서 330 sats를 채택하여 호환성을 보장합니다.

왜 이 숫자가 “딱 맞는가”

  • 충분히 작음: 채널 용량을 낭비하지 않음.
  • 충분히 큼: 유효한 출력으로 인식되고 작은 child 트랜잭션 비용을 충당할 수 있음.

아래 예시는 원본 초안에서 생략되었습니다; 필요에 따라 누락된 값을 채워 넣으세요.

당신은 라이트닝 채널을 가지고 있습니다:

  • 당신의 잔액: 5,0… (값은 원본 텍스트에 계속됩니다)

(예시를 보여주고 싶은 실제 숫자로 진행을 계속하세요.)

TL;DR

  • CPFP는 채굴자들이 부모 + 자식 패키지의 통합 수수료율을 평가하기 때문에 작동합니다.
  • 330 sats는 앵커용으로 가장 작은 비먼지 사용 가능한 출력이며, 구현체 전반에 걸쳐 표준화되었습니다.
  • 모든 비앵커 출력에 1‑블록 CSV 잠금을 적용하면 적대적인 “핀닝” 공격을 방지하고 수수료 인상을 위한 안전한 시간을 제공합니다.
  • 앵커 출력만 즉시 사용 가능하고, 나머지는 보안을 위해 한 블록 지연됩니다.

채널 개요

항목금액 (sats)금액 (BTC)
귀하의 잔액5,000,0000.05 BTC
파트너 잔액3,000,0000.03 BTC
귀하의 앵커330
파트너 앵커330
총 채널 용량8,000,660

파트너가 오프라인 상태가 되므로, 자금을 회수하기 위해 강제 종료해야 합니다.

1️⃣ 메모풀 수수료 시장 확인

  • 현재 수수료율: 250 sats/vbyte (높은 혼잡도)
  • 커밋트랜잭션 크기: 220 vbytes
  • 확인에 필요한 수수료: 220 × 250 = 55,000 sats

문제: 사전에 서명된 커밋트랜잭션에 포함된 수수료가 440 sat에 불과합니다 (≈ 2 sats/vbyte). 현재 시장 요율로는 며칠 또는 몇 주 동안 메모풀에 머무를 것입니다.

2️⃣ 커밋먼트 트랜잭션 전송

  • 지불된 수수료: 440 sats (너무 낮음)
  • 상태: 미확인, 메모풀에 머물고 있음

3️⃣ CPFP 자식 트랜잭션 만들기

매개변수
Spends귀하의 330‑sat 앵커 출력
Adds inputs60,000 sats 귀하의 온체인 지갑에서
Creates output귀하의 지갑으로 전송
Size180 vbytes
Fee54,560 sats (자식) + 330 sats (앵커) = 54,890 sats

3.1 패키지 수수료율 계산 (부모 + 자식)

  • 부모 크기: 220 vbytes
  • 자식 크기: 180 vbytes
  • 전체 크기: 400 vbytes
구성 요소수수료 (sats)
부모440
자식54,890
총합55,330
  • 패키지 비율: 55,330 ÷ 400 ≈ 138 sats/vbyte

이는 여전히 요구되는 250 sats/vbyte보다 낮습니다.

4️⃣ 시장 가격에 맞게 자식 수수료 재계산

  1. 목표 총 수수료: 400 vbytes × 250 sats/vbyte = 100,000 sats
  2. 부모가 이미 지불함: 440 sats
  3. 자식이 지불해야 함: 100,000 – 440 = 99,560 sats

99,560 sat 수수료로 자식 트랜잭션을 생성합니다.

4.1 Final package

ItemFee (sats)
Parent440
Child99,560
Total100,000
  • Package rate: 100,000 ÷ 400 = 250 sats/vbyte

5️⃣ 확인 및 비용 요약

  • 총 온‑체인 비용: 100,000 sats$130 USD (BTC당 $65 k 기준)
  • 보장된 자금: 5,000,000 sats (0.05 BTC ≈ $3,250 USD)

결과: 수수료를 지불하는 것이 자금을 회수하는 데 가치가 있습니다.

6️⃣ 수수료 시나리오 (예시)

수수료 비율 (sats/vbyte)부모 수수료 (220 vbytes)자식 수수료 (180 vbytes)총 비용 (USD)
51,100 sats (~$1.43)900 sats (~$1.17)≈ $2.60
20044,000 sats (~$57)36,000 sats (~$47)≈ $104 ⚠️
500110,000 sats (~$143)90,000 sats (~$117)≈ $260 💀

수수료가 높은 시기에 강제 종료하면 비용이 많이 들 수 있기 때문에, 라이트닝은 협력적인 종료를 권장합니다.

7️⃣ 왜 앵커 출력이 중요한가

  • 앵커가 없으면 수수료 급등 시 채널을 닫을 수 없게 될 수 있습니다(부모 트랜잭션이 절대 확인되지 않음).
  • 앵커가 있으면 CPFP를 통해 수수료를 추가할 옵션이 생겨, 자금을 회수할 경로를 확보할 수 있습니다.

일반적인 Q&A

QuestionAnswer
Can I spend an anchor output more than once?No. Once an anchor is spent in a child transaction, it cannot be spent again. If that child still doesn’t confirm, you must create another child (a “grandchild”) that spends the first child – this is CPFP chaining.
Do both parties have separate anchors?Yes. Each side can create its own child transaction. Whichever child confirms first will pull the parent through, so either party can ensure confirmation.
What about the balance output?It has a 1‑block CSV lock. You must wait one block after the commitment transaction confirms before you can spend the balance output. Anchors can be spent immediately.
Can I use RBF to bump the fee?Not reliably. RBF requires cooperation from the other party (unlikely in a force‑close) and is vulnerable to pinning attacks. CPFP with anchors is the preferred method.

8️⃣ 핵심 정리

  • CPFP 메커니즘: 채굴자들은 부모 + 자식의 통합 수수료 비율을 평가하여 두 트랜잭션을 모두 확인하도록 유도합니다.
  • 330 sats 앵커: 최소 비더스트 사용 가능 금액으로, 라이트닝 구현 전반에 걸쳐 표준화되었습니다.
  • CSV 락: 잔액 출력에 1블록 지연을 두어 트랜잭션 고정 공격을 방지하고 수수료 상승을 위한 명확한 시간을 제공합니다.
  • 비용 스펙트럼: 평상시에는 몇 달러 수준에서, 극심한 혼잡 시에는 수백 달러까지 – 그래도 정체되는 것보다 저렴합니다.
  • 경제적 인센티브: 높은 강제 종료 비용이 사용자를 협력적인 종료와 신뢰할 수 있는 채널 파트너로 유도합니다.

9️⃣ 다음은? (Part 3 – 실용 가이드)

  1. 노드가 앵커 출력(anchor outputs)을 지원하는지 확인 (LND, Core Lightning, Eclair).
  2. 각 구현에서 앵커 출력 활성화/비활성화.
  3. 자금 예약: 비상 수수료 상승을 위해 보관할 온‑체인 비트코인 양.
  4. 앵커 출력 및 수수료 상승을 모니터링하는 도구 및 명령.
  5. 강제 종료(force‑close)가 발생했을 때 단계별(step‑by‑step) 조치.

우리는 “앵커 출력이란 무엇인가?”(Part 1) → “어떻게 작동하는가?”(Part 2) → 실제 사용(Part 3) 순으로 진행했습니다.

Part 2에서 이해가 어려운 부분이 있으면 알려 주세요—여러분의 피드백이 설명을 개선하는 데 큰 도움이 됩니다.

Part 3에서 뵙겠습니다!

CSV Lock (1‑Block Delay) on Balance Outputs Prevents Transaction Pinning Attacks

  • Only anchors can be spent immediately; all other outputs must wait 1 block.
  • Real costs vary from $3 to $200+ depending on network congestion.

Coming Next (Part 3)

  • Practical setup
  • Implementation guides
  • Reserve‑fund management

If you have any questions or feedback, drop them in the comments.

0 조회
Back to Blog

관련 글

더 보기 »

TCP/IP 및 데이터 흐름 소개

1. Data Flow 데이터 흐름은 컴퓨터 네트워크에서 데이터 패킷이 장치 간에 구조화된 이동, 관리 및 변환을 의미하며, 효율성을 보장합니다.