라이트닝 네트워크에 재정적 위험이 있나요? 원리와 처리방법을 설명한 글
南枳
2023-10-22 07:24
本文约1509字,阅读全文需要约6分钟
대체 사이클 공격: 중요하지만 치명적이지는 않습니다.

오리지널 - 오데일리

저자 - Nan Zhi

소개

10월 20일, 비트코인 ​​코어 핵심 개발자 /dev/fd0는 X 플랫폼에서 다음과 같이 발표했습니다.프로토콜 수준 보안 문제 처리 조정을 포함하여 라이트닝 네트워크 개발 및 구현에 대한 참여를 중단합니다.

/dev/fd0은 각 비트코인 ​​노드에 자체 메모리 풀이 있음을 의미합니다. 트랜잭션은 피어 노드에 의해 전달됩니다. 라이트닝 네트워크 노드가 채널을 열고 HTLC 전달을 허용하는 데 사용되는 경우 다음과 같은 공격에 취약합니다.교체주기 공격(Replacement Cycling Attacks)。

개발자가 말하는 대체 루프 공격이란 무엇이며, 어떻게 구현되는지 오데일리가 이번 글에서 공개하겠습니다.

라이트닝 네트워크

비트코인 네트워크의 TPS는 약 7에 불과하고 처리 수수료가 높기 때문에 소액 결제의 요구를 해결하기 위해 라이트닝 네트워크가 탄생했습니다.

라이트닝 네트워크는 암호화폐 네트워크의 확장성 및 거래 속도 문제를 해결하도록 설계된 비트코인 ​​및 기타 암호화폐용 2계층 확장 솔루션입니다.

구현 원리는 다음과 같이 단순화될 수 있습니다.

  1. 거래 당사자 A와 B는 거래 채널(실제로는 다중 서명 지갑)을 구축했습니다.

  2. A와 B는 각각 A1과 B1에 돈을 충전합니다(이 단계는 체인에 있습니다).

  3. A와 B 사이의 모든 거래는 오프체인에서 발생하며 A의 순 이체 금액은 다음과 같습니다.

  4. 체인의 A1-X 및 B1+X 거래를 업데이트합니다.

위의 과정을 통해 A와 B의 거래가 오프체인에서 얼마나 많이 이루어지더라도 두 번의 온체인 수수료만 지불하면 되므로 많은 시간이 절약됩니다.

해시 시간 잠금 계약(HTLC)

위에서 소개한 형태는 A와 B 간의 직접 거래 채널로 제한되며, 교차 채널 결제를 위해 중계 노드가 등장합니다.중계 노드는 교차 채널 결제를 용이하게 하기 위해 둘 사이의 거래를 중계합니다., 중계 노드는 팁을 청구할 수 있습니다.

그러나 이것은 문제에 직면합니다:각 채널의 모든 참여자가 정직하고 신뢰할 수 있는지 확인하는 것이 필요합니다., 다중 채널 링크를 통해 안전합니다.

따라서 HTLC(Hash Time-Lock Contract, Hash Time-Lock Contract)가 등장했으며 HTLC를 통한 결제 거래는 다음과 같이 단순화될 수 있습니다.

  1. A는 비밀 코드 R을 준비하고 해시 값 H를 계산합니다.

  2. A는 시간 제한 T를 설정합니다.

  3. A는 B에게 HTLC로 결제 거래를 보냅니다. 다음 두 가지 조건이 충족되어야 거래가 최종적으로 성립됩니다.

    • B는 비밀번호 R에 답합니다. (H가 인증함)

    • B의 답변 시간은 T 이내입니다. (예: 10블록 이내에 답변이 제공됩니다.)

  4. B가 비밀번호를 모르거나 답변 시간이 초과되면 자금은 A에게 반환됩니다.

정상적인 거래 과정

위의 HTLC를 통해 릴레이 노드가 참여하는 결제 프로세스는 다음과 같습니다.

  1. 최종 수신자 C는 발신자 A에게 비밀번호를 제공합니다.

  2. A는 해시 값 H로 HTLC 결제를 시작합니다.현재 자금은 B의 손에 도달하지 않았습니다.

  3. B는 결제 정보를 수신하고 해시 값 H를 사용하여 C에 HTLC 결제를 시작합니다.

  4. C는 자금을 받기 위해 코드에 응답하고 자금을 받습니다. B도 이때 비밀번호를 알고 있었다.

  5. B는 비밀 코드를 사용하여 A가 시작한 결제를 받고 자금을 받으며 거래가 완료됩니다.

세 가지의 과정은 위와 같습니다. 중간에 몇 개의 중계 노드를 더 추가할 수도 있지만 결제 모드는 변경되지 않습니다. 결제는 체인을 통해 최종 수신자에게 전송된 후 비밀 코드가 다시 전파됩니다. 초기 릴레이 노드.마지막으로 거래를 성사시킵니다.

릴레이 노드가 비밀신호 R을 오랫동안 수신하지 못하는 경우,(답변은 하지 않겠습니다. 제한 시간은 중계 노드 자체에서 결정됩니다.), 그러면 중계 노드는 채널을 닫는 것을 선택할 수 있습니다.성공적으로 업로드되었다면,그러면 B가 시작한 결제는 무효가 되며 자금 손실이 발생하지 않습니다.

사이클 대체 공격

HTLC의 기본 원칙으로 돌아가서, 릴레이 노드는 비밀 코드에 응답하는 것 외에도 릴레이 노드가 응답하는 시간이 T 이내라는 또 다른 조건을 충족해야 하며, 악의적인 공격자는 이 지점을 공격 대상으로 삼고 있습니다.

  1. A와 C가 악의적으로 공모하고 피해자는 릴레이 노드 B입니다. (B는 다음 노드가 3블록 이내에 응답해야 함)

  2. A는 B에 대한 지불을 시작하고(이 시점에서 블록 높이가 1000이라고 가정) 블록 1020 이전에 응답을 요구합니다.

  3. B는 C에 대한 지불을 시작합니다(블록 높이 1005).

  4. 블록 높이가 1008일 때 B는 C가 아직 응답하지 않은 것을 확인하고 채널을 닫기로 결정하며 이는 블록 1009에서 적용됩니다.

  5. C는 높은 가스 트랜잭션을 시작합니다. ①(블록 1008), B가 시작한 트랜잭션이 메모리 풀에 들어가는 것을 방지합니다.

  6. C는 높은 가스 트랜잭션을 시작하지만(블록 1009) B는 여전히 메모리 풀에 들어갈 수 없습니다.

  7. C는 블록 1020까지 무한 루프를 돌다가 비밀번호 R을 알려주고 자금을 인출한다.

B는 비밀번호를 알아냈지만 더 이상 A가 시작한 결제에 응답할 시간이 없었고 자금은 A에게 반환되어 C에 결제가 이루어졌고 마침내 순환 대체 공격이 실현되었습니다.. 또한 A와 C는 B의 폐쇄된 거래를 공모하고 주기적으로 공격함으로써 이중 지출을 달성할 수도 있습니다.

결론

위의 공격 경로가 존재하지만, 라이트닝 네트워크에서 공격자가 원하는 대로 자금을 훔칠 수 있다는 의미는 아니며, 저자도 원문에서 로컬 메모리 풀, 트랜잭션 릴레이 트래픽 모니터링, 마이너 메모리 등 5가지 솔루션을 제안했습니다. 풀 모니터링 등

미래는 밝지만 길은 험난하다.올해 비트코인 ​​네트워크에는 Ordinals, BRC-20, Taproot Asset 등 일련의 새로운 것들이 탄생했다.문제가 존재하지만 지속적인 개발은 결국 이를 해결할 것이다.

참고자료

  1. https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2023-October/022032.html

  2. https://github.com/ariard/mempool-research/blob/2023-10-replacement-paper/replacement-cycling.pdf


南枳
作者文库