용어집 / 라이트닝과 레이어 2
가십 프로토콜
- 가십 프로토콜이란 무엇입니까?
- 가십 프로토콜은 라이트닝 노드가 서명된 채널 및 노드 공지를 서로에게 플러딩하여, 모든 노드가 서버에 묻지 않고도 네트워크의 자체 지도를 구축할 수 있게 하는 방식입니다.
라이트닝에는 디렉터리가 없으므로, 노드들은 서로에게 무엇이 존재하는지 알리고 각 노드는 자체 사본을 보관합니다. BOLT 7은 이를 위해 세 가지 메시지를 정의하며, 수신 노드는 펀딩 출력의 컨펌 수가 6 미만인 채널을 무시하는 것이 좋습니다. 지갑이 경로를 찾을 수 있는 것은 지갑 자체 또는 지갑이 신뢰하는 노드가 먼저 그 대화를 들었기 때문입니다.
작동 방식
가십 프로토콜은 세 가지 메시지 유형을 전달하며, 각 메시지는 피어가 이를 전달하기 전에 온체인 또는 서명으로 무언가를 증명해야 합니다.
channel_announcement(유형 256)은 채널이 존재한다고 주장합니다. 수신 노드는 블록체인에서 펀딩 출력을 조회합니다. 출력이 예상되는 P2WSH 스크립트가 아니거나 이미 사용된 메시지는 무시해야 하며, 출력의 컨펌 수가 6 미만인 메시지는 노드가 단순히 블록에서 뒤처져 있을 가능성이 있을 만큼 충분히 가까운 경우가 아니면 무시하는 것이 좋습니다. 따라서 채널을 공지하려면 실제 온체인 트랜잭션 비용이 들며, 이것이 바로 스팸 방지 설계의 전부입니다. 누구도 천 개의 채널을 무료로 만들어낼 수 없습니다.
node_announcement(유형 257)은 운영자 자신의 세부 정보를 담습니다. 이미 알려진 채널과 연결되지 않은 노드는 무시되는데, 이는 "to avoid trivial denial of service attacks"(사소한 서비스 거부 공격을 피하기 위해) 때문이며, 따라서 아무것도 걸지 않은 운영자는 누구의 지도에도 도달하지 못합니다.
channel_update(유형 258)은 방향별로 하나씩 가격을 담으며, 실제로 변하는 메시지입니다. 수수료와 만료 델타가 여기에 있으며, 운영자가 수수료를 인상할 때 명세는 해당 운영자가 이전 매개변수를 최소 10분 동안 계속 수용할 것을 권장합니다. 새로운 매개변수가 전파되어야 하기 때문입니다.
전파는 의도적으로 서두르지 않습니다. 노드는 수신한 내용을 저장하고, 동일 출처의 더 오래된 업데이트를 대체하며, 60초마다 배치를 내보냅니다. 명세는 이를 시차를 둔 브로드캐스트라고 부르며, 이는 한 명의 바쁜 운영자가 모든 사람의 대역폭을 채우는 것을 막습니다.
망각도 명세에 규정되어 있습니다. 채널의 펀딩 출력이 사용되면, 노드는 채널을 버리기 전에 72 블록 컨펌을 기다리므로 splice가 채널 종료처럼 보이지 않고 스스로를 공지할 시간을 갖습니다. 별도로, 어느 방향이든 가장 최근의 channel_update가 2주(1,209,600초)보다 오래된 경우, 노드는 채널을 즉시 가지치기(prune)할 수 있습니다.
확인할 수 있는 곳
가십은 새로 시작한 라이트닝 노드가 한동안 쓸모없다가 갑자기 쓸모 있게 되는 이유입니다.
연결할 때 노드는 자신에게 없는 것을 요청합니다. query_channel_range(유형 263)은 블록 범위에 걸쳐 어떤 채널이 존재하는지 알기 위해, query_short_channel_ids(261)은 한 번도 본 적 없는 특정 채널을 가져오기 위해, gossip_timestamp_filter(265)는 이후 전송되는 모든 것에 시간 범위를 설정하기 위해 사용됩니다. 마지막 메시지는 선호가 아니라 스위치입니다. 이를 보내기 전까지 피어는 스스로 생성하지 않은 것은 아무것도 전달하지 않으며, 이것이 작은 기기가 작게 유지되는 방식입니다.
그 결과는 수수료의 형태로 지갑에 도달합니다. 경로 견적은 지갑이 보유한 channel_update 메시지로 구성되므로, 오래된 시점의 정보는 실패한 시도와 표시된 가격과 일치하지 않는 가격을 낳습니다. 휴대폰 지갑은 다른 누군가의 지도에 의존합니다. Phoenix는 휴대폰에서 진정한 자기 보관형 노드를 실행하지만 ACINQ 자체 노드를 통해 연결되며, 이 사이트의 리뷰에 기록된 비용으로서 ACINQ는 결제의 목적지와 금액을 알게 됩니다. 수탁형 계좌는 회사가 대신 라우팅하므로 가십을 완전히 건너뜁니다.
가십 프로토콜 vs P2P 메시지
가십 프로토콜은 라이트닝 노드 사이에서 실행됩니다. 비트코인의 P2P 메시지는 비트코인 노드 사이에서 실행되며, 둘은 플러딩이라는 습관 외에는 아무것도 공유하지 않습니다.
비트코인 노드는 inv, getdata, tx 같은 명령으로 트랜잭션과 블록을 중계하며, 누구의 채널에 대해서도 알지 못합니다. 라이트닝 가십은 256부터 265까지의 메시지 유형을 담는 별도의 대화이며, 공지된 펀딩 출력이 실제이고 사용되지 않았는지 확인하기 위해서만 블록체인에 접근합니다. 결제는 결코 가십으로 전파되지 않습니다. 금액과 목적지는 중간 노드가 읽을 수 없는 어니언 패킷 안으로 이동하므로, 공개 지도는 채널이 어디에 있는지를 말할 뿐 결코 그 채널을 통해 무엇이 이동했는지는 말하지 않습니다.