용어집 / 라이트닝과 레이어 2
채널 공지
- 채널 공지란 무엇입니까?
- 채널 공지는 공개 채널이 존재한다는 사실을 라이트닝 네트워크에 알리는 서명된 가십 메시지이며, 네 개의 서명으로 자금 조달 출력에 대한 소유권을 증명합니다.
모든 공개 라이트닝 채널은 이 메시지 가운데 하나를 통해 라우팅 그래프에 포함되며, 채널마다 유효한 공지는 하나만 존재할 수 있습니다. 자금 조달 트랜잭션이 6회 확인을 받기 전에는 이 메시지를 보낼 수 없고, 해당 출력이 사용된 뒤 72블록이 지나면 피어는 그 채널을 잊습니다. 공지를 하면 프라이버시를 잃는데, 이 메시지가 채널에 자금을 대는 온체인 출력을 공개하고 그것을 노드 키와 연결하기 때문입니다.
작동 방식
채널 공지는 위조하는 데 비용이 들도록 설계되었고, 바로 그것이 이 설계의 핵심입니다.
가십은 보내는 데 비용이 들지 않으므로, 그렇지 않으면 노드가 상상의 채널로 네트워크를 넘치게 할 수 있습니다. BOLT 7은 모든 주장을 블록체인과 대조해 검증할 수 있게 함으로써 이를 막습니다. 유형 256인 이 메시지는 특정 출력 하나를 가리키는 short_channel_id를 담고 있습니다. 블록 높이 3바이트, 트랜잭션 인덱스 3바이트, 출력 인덱스 2바이트입니다. 메시지를 받은 노드는 그 출력을 조회하고, 지정된 두 비트코인 키로 지급하는 미사용 P2WSH가 아니면 그 공지를 버립니다.
앞부분에는 네 개의 서명이 붙습니다. 두 개는 노드 신원 키에서 나오고, 두 개는 온체인 출력을 관리하는 자금 조달 키인 bitcoin_key_1과 bitcoin_key_2에서 나옵니다. 네 서명은 모두 바이트 오프셋 256부터 메시지 끝까지 계산한 동일한 이중 SHA256 해시에 서명합니다. 노드 키를 비트코인 키와 짝지음으로써 채널을 공지하는 두 노드가 그 채널에 자금을 댄 두 당사자임을 증명하며, 다른 사람의 출력을 가리키는 낯선 이가 아님을 보여 줍니다. 또한 node_id_1은 두 압축 키 가운데 사전순으로 더 작은 키여야 하며, 메시지를 받은 노드는 이 순서를 틀리게 한 공지는 무시해야 합니다.
공지 여부는 선택 사항이며, 채널을 열 때 announce_channel 비트로 설정합니다. 설정된 경우, 자금 조달 트랜잭션이 충분히 깊어지면 양측은 announcement_signatures(유형 259)를 교환하고, 그 뒤 어느 쪽이든 그 결과를 브로드캐스트할 수 있습니다. 스플라이스는 새 트랜잭션에 대한 새 공지를 만들어 내며, 이것이 자금 조달 출력이 사용된 뒤에도 노드가 채널을 잊기까지 72블록을 기다리는 이유입니다. 그 사용이 채널 폐쇄가 아니라 크기 조정일 수 있기 때문입니다.
확인할 수 있는 곳
라이트닝 익스플로러가 네트워크 그래프를 그릴 때 읽는 것이 바로 채널 공지입니다.
각 채널 옆에 표시되는 식별자는 이 메시지에서 그대로 나옵니다. short_channel_id가 539268x845x1로 적혀 있다면 블록 539268의 인덱스 845에 있는 트랜잭션의 출력 1을 뜻하므로, 누구든 그 출력을 온체인에서 확인할 수 있습니다. 공지에는 목록과 비슷한 것은 아무것도 없습니다. 수수료도, 용량도, 운영자 이름도 없습니다. 채널은 적어도 한쪽이 수수료와 만료 델타를 담은 channel_update를 보내기 전까지 사용할 수 없고, 노드 이름은 node_announcement로 따로 도착합니다.
이런 분리 때문에 채널이 여전히 존재하는데도 익스플로러에서 사라지는 일이 생깁니다. 어느 방향이든 가장 최근 channel_update가 2주보다 오래되었다면(1209600초), 노드는 자신의 관점에서 그 채널을 정리해 버릴 수 있습니다. 공지는 스스로 갱신되지 않으므로, 채널은 운영자가 계속 조건에 다시 서명하는 동안에만 그래프에 남습니다.
지갑 쪽에서는 채널 공지를 주로 그 부재로 만나게 됩니다. 채널은 낯선 이가 그 채널을 거쳐 결제를 라우팅하기를 원할 때만 공지하면 되고, 휴대폰 지갑은 홉이 되기 위해서가 아니라 지출하고 수령하기 위해 존재합니다. 그래서 이 사이트의 Phoenix 및 Muun 리뷰에서 실질적인 질문은 공개된 수수료 표와 백업 파일이며, 공개 그래프에서의 위치가 아닙니다.
채널 공지 vs 채널 용량
채널 공지는 채널이 존재함을 증명하고, 채널 용량은 그 안에 든 사토시의 수이며, 이 메시지는 금액을 전혀 적지 않습니다. 메시지의 필드는 네 개의 서명, 기능 벡터, 체인 해시, 단축 채널 ID, 네 개의 공개 키입니다. 용량 수치를 인용하는 사람은 공지를 체인 데이터와 결합하여, 식별자가 가리키는 출력의 값을 읽은 것입니다. 그래서 공지되지 않은 채널은 용량은 있어도 공개된 수치가 없습니다. 네트워크에 어느 출력을 읽으라고 알려 주는 것이 없기 때문입니다.