용어집 / 라이트닝과 레이어 2
벌칙 트랜잭션
- 벌칙 트랜잭션이란 무엇입니까?
- 벌칙 트랜잭션은 상대방이 철회된 커밋먼트 트랜잭션을 게시했을 때, 이미 보유하고 있는 철회 키로 서명하여 라이트닝 채널의 모든 출력을 가져가는 온체인 일괄 수거입니다.
라이트닝 채널은 두 참여자가 감시하며, 벌칙 트랜잭션이 그 규칙을 집행하는 수단입니다. BOLT 5는 그 일괄 수거에 주 잔액 출력용 160바이트 위트니스를 부여하고, 사기꾼의 타임락이 만료되기 18블록 전까지 확정되지 않았다면 출력별로 분할하라고 규정합니다. 채널에 코인을 보관한다면, 이 트랜잭션이 잔액을 되돌리는 상대방으로부터 이용자를 지켜 주는 장치입니다.
작동 방식
벌칙 트랜잭션은 소유자가 이미 이용자에게 가져갈 권리를 넘긴 출력을 소비합니다.
채널의 잔액이 움직일 때마다, 양측은 대체되는 상태의 뒤에 있는 비밀을 넘깁니다. 그 비밀을 보유하면 상대방의 이전 커밋먼트 트랜잭션에 대한 철회 개인 키를 도출할 수 있으며, 그것이 상대방 몫을 여는 키입니다. BOLT 5는 그 결과를 한 줄로 정리합니다. 노드가 철회 개인 키를 가진 커밋먼트 트랜잭션을 발견하면, 펀딩 트랜잭션 출력은 해결됩니다. 협상할 것은 남지 않습니다.
무엇을 수거할지는 오래된 커밋먼트가 무엇을 담고 있었는지에 달려 있습니다. 규격은 사기꾼의 주 출력을 철회 키로 해결하고, 그들이 제시한 각 결제를 세 가지 방식 중 하나로 해결하며(철회 키로 커밋먼트를 소비하거나, 결제 프리이미지를 알고 있다면 그것으로 소비하거나, 상대방이 HTLC-timeout 트랜잭션을 게시하면 그것을 소비), 상대방의 HTLC-success 및 HTLC-timeout 트랜잭션도 철회 키로 해결하라고 요구합니다. 또한 그 김에 입력 위트니스에서 프리이미지를 꺼내라고 하는데, 잃을 뻔한 결제가 이용자 앞의 홉에서 여전히 청구 가능할 수 있기 때문입니다.
세 가지 위트니스 형태가 그 모두를 포괄하며, BOLT 5는 각각의 크기를 제시합니다. 주 잔액 출력은 160바이트, 제시된 결제는 243바이트, 수락된 결제는 249바이트입니다. 입력 자체의 164 가중치를 더하면 청구되는 출력마다 324, 407 또는 413이 듭니다. 트랜잭션의 나머지는 53바이트의 비위트니스 데이터에 2바이트 위트니스 헤더입니다. 같은 커밋먼트에서 자신의 주 출력을 함께 넣을 수도 있는데, 이는 272를 더하며 주로 지불하는 수수료를 줄이기 위한 것입니다.
벌칙 트랜잭션이 갖지 않는 두 가지 성질이 있습니다. 그것은 자동이 아닙니다. 비트코인은 누구도 벌하지 않으며, 일괄 수거는 이용자가 실행하는 소프트웨어나 이용자가 고용한 소프트웨어가 오래된 트랜잭션의 확정을 보고 사기꾼의 타임락이 끝나기 전에 반응할 때만 일어납니다. 그것은 또한 무료가 아닙니다. 일괄 수거는 다른 트랜잭션과 마찬가지로 시세 수수료를 지불하므로, 비우는 비용보다 적게 담긴 채널은 규칙이 무엇을 허용하든 방어할 가치가 없습니다.
비트코인을 구매할 때 이것이 중요한 이유
벌칙 트랜잭션은 이용자가 자신의 커밋먼트 트랜잭션을 보유한 지갑에서만 이용자를 보호하며, 이는 대부분의 간편한 라이트닝 앱을 배제합니다.
이 사이트의 41개 지갑 리뷰는 바로 그 선을 따라 갈립니다. Phoenix는 휴대폰에서 실제 자기 보관형 라이트닝 노드를 실행하므로, 처벌 장치는 이용자 것이고 감시 의무도 이용자 것입니다. ACINQ의 복구 경로는 강제 폐쇄를 하고 약 720블록, 대략 5일을 기다린 뒤에야 채널 자금이 온체인에서 이용자 것이 되도록 합니다. BlueWallet은 비트코인 전용이며 온체인에서는 이례적으로 뛰어나지만, 라이트닝 쪽은 LNDHub 서버의 계정이고 그 서버가 이용자 것이 아니라면 운영자가 그 코인을 움직일 수 있으므로, 누군가를 벌할 이용자의 커밋먼트 트랜잭션은 존재하지 않습니다. Wallet of Satoshi 역시 기본 모드에서 수탁형이며, 이 사이트의 순위에서 추천이 아니라 2.7 평점에 머무는 이유 중 하나입니다.
이것은 판결이 아니라 맞바꿈으로 읽어야 합니다. 수탁형 라이트닝은 사기 치는 상대방을 위협 목록에서 지우고, 서비스를 동결하거나 철수할 수 있는 한 회사로 대체합니다. 자기 보관형 라이트닝은 벌칙 트랜잭션과 깨어 있어야 할 의무를 이용자에게 넘깁니다. 어느 쪽이든 사람들을 잡는 실수는 오래된 시드 백업을 재사용하는 것입니다. 열두 단어는 온체인 코인을 복원하지만 어떤 채널 상태가 현재인지는 전혀 알지 못하므로, 이용자가 게시하는 커밋먼트는 오래된 것이 되고 뒤따르는 벌칙 트랜잭션은 이용자를 겨냥합니다.
Phoenix 채널의 철회된 폐쇄
반대편 노드가 지난주 커밋먼트를 게시할 때 세 건의 결제가 아직 진행 중인 Phoenix 채널을 상상해 보십시오.
이용자의 소프트웨어는 txid를 포착하고, 철회 키를 도출하며, 하나의 일괄 수거를 구성합니다. 그 가중치는 사기꾼의 주 출력에 324, 수락된 결제 출력 세 건 각각에 413, 자신의 주 출력을 넣는 데 272, 트랜잭션 본문 53바이트의 네 배에 2바이트 헤더를 더해 2,049 가중치 단위, 약 512 가상 바이트입니다. 상대방의 자금은 채널이 열릴 때 양측이 합의한 상대 타임락 뒤에 있으며, 그런 지연은 분이 아니라 일 단위입니다. Phoenix의 강제 폐쇄에서 복구하려면 약 720블록, 대략 5일이 걸립니다. 이용자 몫은 채굴업자가 트랜잭션을 받아들이는 즉시 사용할 수 있습니다.
BOLT 5는 상한도 계산합니다. 표준 최대 가중치 400,000과 최대 입력 413에 대하여, 벌칙 트랜잭션 하나는 결제 출력 966개에 도달하며, 이는 상대 프로토콜이 이미 허용하는 측당 대기 결제 483건의 두 배이므로, 완전히 채워진 채널도 한 번에 비울 수 있습니다.
그다음이 하지 않을 이유입니다. 채널이 앵커 출력을 사용하는 경우, 사기꾼 자신의 결제 트랜잭션은 SIGHASH_SINGLE와 SIGHASH_ANYONECANPAY로 서명되므로, 상대방은 자신의 입력을 덧붙여 이용자의 결합된 일괄 수거를 멤풀에서 상대방 주 출력의 타임락이 만료될 만큼 충분히 오래 묶어 둘 수 있습니다. 그 출력이 만료까지 보안 지연 이내에 들어설 때까지 확정이 오지 않았다면, BOLT 5가 노드 정책에 맡기되 18블록을 권장하는 창인데, 작업을 나누라고 지시받습니다. 철회된 출력마다 벌칙 트랜잭션 하나씩, 각각이 확정될 때까지 수수료를 올리는 것입니다. 수수료 없는 커밋먼트에서는 그 하나하나가 또한 버전 3 트랜잭션이 지닌 10,000 가상 바이트 한도 안에 있어야 하며, 그렇지 않으면 채굴업자에게 결코 도달하지 못할 수 있습니다.
벌칙 트랜잭션 vs 강제 폐쇄
강제 폐쇄는 채널에서의 모든 일방적 이탈이고, 벌칙 트랜잭션은 부정직한 이탈에 대한 응답입니다.
대부분의 강제 폐쇄는 지루합니다. 상대방이 오프라인이 되었고, 결제 기한이 다가왔고, 누군가의 노드가 현재 상태를 게시했으며, 지연이 지나면 양측은 받을 몫을 받습니다. 벌칙 트랜잭션은 게시된 커밋먼트가 이미 철회된 것이었던 좁은 경우에만 존재하며, 몫이 아니라 채널 전체를 가져갑니다. 모든 벌칙 트랜잭션은 강제 폐쇄를 따르며, 강제 폐쇄는 거의 벌칙 트랜잭션을 낳지 않습니다.
벌칙 트랜잭션 vs 감시탑
벌칙 트랜잭션은 서명된 비트코인 트랜잭션이고, 감시탑은 이용자를 대신해 그것을 방송하려고 대기하는 기계입니다.
감시탑은 철회된 txid의 짧은 접두사와, 그 트랜잭션이 블록에 나타나기 전까지 복호화할 수 없는 데이터 덩어리를 저장합니다. 그 안의 일괄 수거는 이용자 자신의 노드가 구성하고 서명한 것이며, 무언가 잘못되기 전에 고른 주소로 지급하므로, 감시탑을 고용해도 키가 들지 않습니다. 둘을 혼동하면 잘못된 걱정이 생깁니다. 감시탑을 운영하지 않는 것은 벌칙 트랜잭션을 전혀 약화하지 않습니다. 그것은 이용자의 노트북이 꺼져 있는 동안 그것을 보낼 사람이 깨어 있지 않다는 뜻입니다.