본문으로 건너뛰기
buybitcoinsmart

용어집 / 라이트닝과 레이어 2

앵커 출력

앵커 출력이란 무엇입니까?
앵커 출력은 라이트닝 커밋먼트 트랜잭션에 붙는 330사토시 규모의 비상구 2개로, 각각 파트너 한 명의 키에 묶여 있어 어느 쪽이든 미리 서명된 채널 종료 트랜잭션의 수수료를 올릴 수 있습니다.

앵커 채널은 각 상대에게 처음에는 그 상대만 쓸 수 있는 아주 작은 출력을 주는데, 이는 오로지 나중 수수료 인상을 위한 손잡이 역할을 합니다. BOLT 3은 금액을 330사토시로 정하고, 16블록이 지나면 아무도 청구하지 않은 앵커를 누구나 쓸어갈 수 있습니다. 라이트닝 지갑을 운영한다면 온체인 코인을 여분으로 하나 보관하십시오. 앵커는 그 자체로는 수수료를 지불할 수 없기 때문입니다.

작동 방식

앵커 출력은 채널 상대방의 펀딩 키 뒤에 330사토시를 보관하며, 커밋먼트가 공유 손잡이 하나가 아니라 앵커 출력 2개를 지니는 이유는 한 가지 공격 때문입니다.

스크립트는 짧습니다. 펀딩 공개 키, OP_CHECKSIG, OP_IFDUP, 그리고 OP_16과 OP_CHECKSEQUENCEVERIFY를 담은 OP_NOTIF 분기입니다. 본인의 서명은 이를 즉시 열 수 있습니다. 커밋먼트가 확인된 뒤 16블록이 지나면 빈 위트니스로 누구나 이를 열 수 있는데, BOLT 3은 이렇게 해서 버려진 잔돈이 활성 코인 집합에 영구히 정착하지 않도록 합니다. 이 경로는 수수료가 충분히 낮아져 330사토시를 쓸어가는 것이 이득이 될 때만 의미가 있습니다.

앵커를 각자 하나씩 두는 것이 핀닝 방지 설계입니다. 양측에 공유 손잡이 하나만 준다면 상대방은 여기에 수수료가 낮은 큰 자식 트랜잭션을 덧붙여 미확인 트랜잭션 계열을 부풀릴 수 있고, 그러면 본인의 인상분은 감당할 수 없는 가격이 되어 커밋먼트가 브로드캐스트한 목적의 기한을 놓치게 됩니다. BOLT 3은 분리 앵커 방어가 작동하게 한 공로를 Bitcoin Core 0.19의 변경에 돌리고, 각 앵커를 펀딩 키에 고정합니다. 이런 커밋먼트의 다른 모든 출력이 to_remote를 포함해 시퀀스 잠금을 지니는 이유도 같습니다.

이 모든 것은 공짜가 아닙니다. 앵커 두 개의 금액은 모두 입금하는 쪽의 잔액에서 나가며 합계 660사토시이고, 커밋먼트 트랜잭션의 가격을 산정하는 기준 가중치는 724에서 1124 가중치 단위로 올라갑니다. 입금하는 쪽이 얻는 것은 수수료를 전혀 지니지 않는 2단계 HTLC 트랜잭션입니다. option_anchors에서는 그 수수료가 0이어야 하며, SIGHASH_SINGLE와 SIGHASH_ANYONECANPAY로 서명되므로 브로드캐스트할 때 본인의 입력을 붙이고 그때의 시세대로 지불하게 됩니다. BOLT 9는 이를 비트 22와 23에, HTLC 트랜잭션 수수료가 0인 앵커 커밋먼트 유형으로 기재합니다.

확인할 수 있는 곳

앵커 출력은 라이트닝 채널이 협력 없이 닫히는 순간 블록 탐색기에 나타나며, 누군가의 실수처럼 보이는 330사토시짜리 출력 2개로 드러납니다. BOLT 3은 진행 중인 HTLC가 없고 한쪽 잔액이 더스트 한도 미만일 때만 앵커 하나를 생략합니다.

이 사이트의 지갑 리뷰 41개 중 어느 것이 앵커 출력을 다루게 하는지는 수탁 방식에 달려 있습니다. 이 사이트에서 4.0점으로 평가한 Phoenix는 휴대폰에서 실제 자기 보관형 라이트닝 노드를 운영하며, 이 사이트의 리뷰에는 강제 종료 후 복구에 대략 720블록이 걸린다고 기록되어 있어 앵커 관리도 본인 몫입니다. 3.8점으로 평가한 Muun도 자기 보관형이지만, 라이트닝 결제에 온체인에서 정산되는 잠수함 스왑이 필요할 수 있습니다. 2.7점으로 평가한 Wallet of Satoshi는 기본적으로 수탁형입니다. 330사토시 출력으로는 자식 트랜잭션에 자금을 대 줄 수 없으므로, 수수료를 올리려면 앵커를 이미 갖고 있던 코인과 함께 쓰는 것입니다.

앵커 출력 vs 임시 앵커

앵커 출력은 처음 16블록 동안 지정된 펀딩 키 하나로만 쓸 수 있는 반면, 임시 앵커는 첫 순간부터 키가 없고 지켜야 할 가치도 담지 않습니다.

BOLT 3의 더 새로운 zero_fee_commitments 채널은 기능 비트 40과 41로, 두 앵커를 표준 pay to anchor 스크립트로 만든 shared_anchor 하나로 대체합니다. OP_1 뒤에 두 바이트 0x4e73이 오고, 누구나 빈 위트니스로 쓸 수 있습니다. 금액은 240사토시로 해당 스크립트의 표준 더스트 한도이며, 그보다 적게 남을 때만 더 낮아지는데, 이때는 커밋먼트가 수수료를 지불하지 않으므로 임시 더스트 규칙이 이를 허용합니다. 두 설계는 같은 위협에 반대쪽 끝에서 맞섭니다. 키가 있는 앵커는 각자만 당길 수 있는 지렛대를 쥐여 주어 핀닝을 이기고, 키가 없는 앵커는 누군가 수수료를 붙일 때까지 커밋먼트를 채굴 불가능한 상태로 두어 핀닝을 이깁니다.

혼동하기 쉬운 용어

자주 묻는 질문

앵커가 있는 라이트닝 채널을 쓰려면 온체인 비트코인이 필요합니까?

네, 채널을 직접 보유하는 경우에는 필요합니다. 앵커는 330사토시로, 앵커를 쓰는 트랜잭션의 비용을 지불하기에는 너무 적습니다. 따라서 채널 종료 시 수수료를 올리려면 앵커를 이미 관리하고 있는 별도의 코인과 함께 써야 합니다. 수탁형 라이트닝 지갑은 채널을 서비스가 직접 보유하므로, 이 문제는 이용자에게 닿지 않습니다.

BOLT 3은 앵커 채널에 더 높은 더스트 한도를 권고하는 이유는 무엇입니까?

option_anchors에서는 2단계 HTLC 트랜잭션이 수수료를 지불하지 않으므로, 작은 HTLC가 자체 출력을 얻는지를 결정할 때 그 가중치가 더 이상 계산되지 않습니다. 그래서 BOLT 3은 실제로 나타나는 출력을 쓰기에 경제성이 있도록 이 채널에서 dust_limit_satoshis를 높일 것을 권장합니다.

앵커 출력은 누구나 쓸 수 있습니까?

예, 16개 블록 후입니다. 이 스크립트는 커밋먼트 트랜잭션이 16개 블록 깊이가 되면 누구나 빈 위트니스로 청구되지 않은 앵커를 쓸어 담을 수 있게 하며, 이로써 버려진 330사토시 출력이 활성 코인 집합에 영원히 남는 것을 막습니다. 수수료가 매우 낮을 때만 시도할 가치가 있습니다.

다음에 읽을 글

관련 용어

라이트닝과 레이어 2 분야의 다른 용어

이 페이지를 영어로 읽기