용어집 / 라이트닝과 레이어 2
강제 폐쇄
- 강제 폐쇄란 무엇입니까?
- 강제 폐쇄는 상대방의 협조 없이 라이트닝 채널을 종료하는 방식입니다. 최신 커밋먼트 트랜잭션을 브로드캐스트하고 온체인 수수료를 지불한 뒤, 일정한 지연이 지나야 자신의 잔액을 사용할 수 있습니다.
모든 라이트닝 채널은 서명된 출구를 준비해 두며, 강제 폐쇄는 그 출구를 사용하는 것입니다. 여기에는 실제 온체인 트랜잭션 1건과 아직 처리 중인 결제마다 1건씩의 트랜잭션이 더해지며, 앵커 채널은 이후에 수수료를 올릴 수 있도록 양쪽에 330 사토시 출력을 하나씩 남겨 둡니다. 자금은 몇 초가 아니라 대략 하루 뒤에 돌아온다고 보아야 합니다.
작동 방식
라이트닝 채널에서 나가는 방법은 두 가지이며, 비용이 많이 드는 쪽이 협조가 필요 없는 강제 폐쇄입니다.
협조적 폐쇄는 협상입니다. 양쪽이 최종 분배에 합의하고 트랜잭션 1건에 서명하면, 그것이 확인되는 즉시 모든 사람의 코인이 평범하게 사용할 수 있는 출력이 됩니다. 강제 폐쇄는 협상을 건너뜁니다. 보유한 가장 최근의 커밋먼트 트랜잭션을 게시하면, 상대방 대신 비트코인의 합의 규칙이 중재를 맡습니다. 이 비대칭은 의도된 것이며 버튼을 누른 쪽에 불리하게 작동합니다. 상대방의 잔액은 즉시 사용할 수 있는 반면, 자신의 잔액은 채널을 열 때 합의한 to_self_delay 블록 수만큼의 OP_CHECKSEQUENCEVERIFY 지연 뒤에 잠깁니다.
이 지연이 처벌 구간입니다. 브로드캐스트한 트랜잭션이 이미 지출한 잔액을 보여 주는 오래된 트랜잭션으로 밝혀질 경우, 상대방이 처벌 트랜잭션을 게시해 전부 가져갈 시간을 주기 위해 존재합니다. BOLT 2는 to_self_delay를 16비트 숫자로 저장하므로 최대 65,535블록까지 어떤 값이든 될 수 있으며, 상대방은 지나치게 크다고 판단한 값을 거부해야 합니다. 지연이 길수록 자신을 속이기는 어려워지고 자신의 출구는 느려집니다.
처리 중인 결제는 계산을 복잡하게 만듭니다. 결제마다 후속 트랜잭션이 하나씩 필요하며, 앵커 채널에서 타임아웃으로 처리되는지 비밀값으로 처리되는지에 따라 666 또는 706 가중치 단위를 차지하고, 조건이 충족되면 각각 따로 브로드캐스트됩니다. P2WSH 출력의 더스트 한도에 맞춰진 330 사토시 앵커 출력은, 멤풀이 저렴할 때 서명된 커밋먼트의 수수료를 양쪽 중 누구든 자식 트랜잭션을 붙여 올릴 수 있도록 존재합니다.
확인되는 상황
강제 폐쇄는 흔하며, 그중 대부분은 누구도 속임수를 쓰는 것이 아닙니다.
흔한 발단은 결제 마감이 다가오는데 상대방과 너무 오랫동안 연결되지 않는 경우이며, 이때 노드는 금액을 잃을 위험을 감수하는 대신 채널을 닫습니다. 제공자들은 오래 유휴 상태로 있던 채널을 정리합니다. 지갑은 업데이트 후 상대방과 연결되지 않으면 자동으로 채널을 닫습니다. 어느 경우든 잔액의 일부가 갑자기 대기 중으로 표시되고, 자신의 돈이 들어간 낯선 트랜잭션이 멤풀에 자리 잡으면서 알게 됩니다.
사람들의 돈을 지켜 주는 규칙은 이것입니다. 라이트닝 지갑을 시드 문구만으로 복원한 뒤 사용해서는 안 됩니다. 시드는 온체인 코인은 복구하지만 채널의 현재 상태는 그 안에 없으며, 오래된 커밋먼트를 브로드캐스트하면 처벌을 부릅니다. 대신 보관하는 것은 채널 백업 파일이며, 이것이 주는 것은 상대방에게, 상대방의 속도로, 자신이 통제하지 못하는 수수료로 폐쇄를 요청할 권리입니다. 라이트닝이 돈을 지출하는 용도이고 온체인 자기 보관이 저축용인 실질적인 이유가 여기에 있습니다.
수수료 환경이 피해 규모를 결정합니다. 멤풀이 한산할 때의 강제 폐쇄는 몇천 사토시가 듭니다. 수수료가 급등하는 시기의 같은 폐쇄는 작은 채널이 보유한 금액보다 더 들 수 있으며, 잔액이 이를 회수하는 비용보다 적은 채널은 그냥 버려집니다.