저자: 클라라 & 세르게이
출처: https://raw.githubusercontent.com/s-tikhomirov/ln-jamming-simulator/master/unjamming-lightning.pdf
원본 기사는 2022년에 발표되었으며 라이트닝 채널 차단 공격을 해결하기 위해 현재 " HTLC 보증 "이라는 방법을 제안했습니다.
요약
탈중앙화 금융 네트워크 사용자는 새로운 형태의 보안 침해에 직면하게 됩니다. 이러한 네트워크에서는 신원 기반 사기 방지 방법을 적용할 수 없으며 이는 개인 정보 보호 중심 설계 철학에 위배됩니다. 따라서 새로운 완화 전략이 필요합니다. 그러나 새로운 방법을 도입하면 네트워크의 다른 유용한 속성이 손상될 수 있습니다.
이 기사에서는 탈중앙화 금융 네트워크에서 사용할 완화 전략을 평가하기 위한 프레임 제안합니다. 이 프레임 통해 연구원과 개발자는 개인 정보 보호, 보안, 사용자 경험 등 다양한 차원에서 제안된 프로토콜 수정 사항을 조사하고 비교할 수 있습니다.
일례로 라이트닝 네트워크의 '재밍 공격'을 분석합니다. 라이트닝 네트워크는 비트코인 프로토콜을 기반으로 구축된 P2P 결제 채널 네트워크입니다. 차단 공격은 공격자가 결제 실패로 인해 일부 Lightning 채널을 일시적으로 비활성화할 수 있는 저렴한 서비스 거부 공격입니다.
무조건적인 수수료 지불과 동료 평판을 결합한 공격 차단에 대한 실용적인 솔루션을 제안합니다. 이 프레임 의 지침에 따라 우리 솔루션이 차단 공격을 억제하면서 프로토콜의 인센티브 호환성을 유지한다는 것을 보여줍니다. 또한 이 솔루션은 보안, 개인 정보 보호 및 사용자 경험을 유지하며 구현이 간단합니다. 우리는 분석과 시뮬레이션을 통해 결론을 뒷받침합니다. 또한 당사의 차단 방지 솔루션은 악의적인 채널 잔액 감지와 같은 다른 문제를 완화하는 데 도움이 될 수 있습니다.
1 소개
비트코인과 같은 탈중앙화 블록체인 프로토콜은 금융 네트워크의 새로운 패러다임을 제시합니다. 핵심 설계 원칙은 무신뢰 액세스1 및 사용자 개인 정보 보호입니다. 이를 위해 사용자는 공개 키로 식별되며 사실상 무제한의 공개 키를 생성할 수 있습니다. 누구나 공식적인 신원 확인 없이도 이러한 네트워크에 참여할 수 있습니다. 이 기능은 기존의 신원 기반 사기 방지 방법을 프로토콜 수준에서 구현하는 것을 불가능하게 만듭니다.
동시에 공격자들은 탈중앙화 금융 네트워크를 탐내고 있습니다. 공격을 받으면 사용자와 서비스 제공자는 자금을 잃거나 개인 정보가 노출될 수 있습니다.
각주 1: 반면에 승인 기반 네트워크는 알려진 참가자 집합에 의해 운영됩니다. 이러한 시스템은 이 문서의 범위를 벗어납니다.
이러한 환경에서는 평판과 재정적 인센티브가 완화 전략의 주요 도구가 됩니다. 전자의 기능은 정직한 사용자로부터 악의적인 행위자를 식별한 다음 선택적으로 차단하는 것입니다. 후자는 바람직하지 않은 행동에 대한 비용을 부과하고 피해자에게 보상할 수도 있습니다.
프로토콜 변경을 제안할 때는 네트워크 전체를 살펴보며 그 효과를 분석해야 합니다. 새로운 제안은 새로운 공격 표면을 도입하거나, 사용자 경험을 희생하거나, 개인 정보 보호 및 보안을 손상시킬 수 없습니다. 불가피한 절충안을 인식하고 해결하지 못하면 완화 조치가 완전히 쓸모없게 될 수 있습니다. 또한, 구현의 어려움도 고려해야 합니다.
이 문서에서는 무허가 금융 네트워크에 대한 공격에 대한 완화 전략에 중점을 둡니다. 우리의 주요 관심사 중 하나는 제안된 솔루션이 공격을 해결한다고 가정할 때 프로토콜의 다른 측면을 크게 손상시킬 수 있는지 여부입니다. "목욕물과 함께 아기를 버리는" 일을 피하기 위해 우리는 완화 조치를 설계하고 평가하기 위한 일반적인 프레임 제안합니다. 예를 들어, 라이트닝 네트워크(LN)에서 채널 차단 공격에 대한 완화 전략을 고려합니다.
라이트닝 네트워크는 비트코인을 기반으로 구축된 결제 네트워크이며 비트코인 블록체인 프로토콜에 내재된 거래 처리량 제한을 해결하도록 설계되었습니다. 채널 차단 공격은 오랫동안 지속되어 왔지만 [47] 라이트닝 네트워크에서 해결되지 않은 DoS 공격 표면입니다. 이를 통해 공격자는 피해자의 채널을 저렴하고 효율적으로 비활성화할 수 있습니다. 공격을 차단하면 사용자가 네트워크의 핵심 기능을 사용하는 것을 방지하고 전달 수수료 수익을 줄일 수 있습니다. 라이트닝 네트워크 커뮤니티에서는 채널 차단 공격을 완화하기 위한 많은 조치를 논의했지만[16] 구현된 것은 없습니다.
번역자 주: “[]”는 참조번호입니다.
프레임 의 강력함을 보여주기 위해 이를 사용하여 근본적인 결함 없이 채널 차단에 대한 효율적인 솔루션을 추출합니다.
우리의 기여
- 우리는 공격 완화 조치를 평가하기 위한 일반적인 프레임 제안합니다. 이 프레임 제안된 변경 사항이 기존 프로토콜의 강점을 크게 약화시키지 않도록 하는 데 도움이 됩니다.
- 우리는 채널 차단에 대한 완화 전략을 제안합니다. 우리의 솔루션은 무조건적으로 지불되는 수수료와 동료의 과거 행동을 기반으로 한 지역 평판 시스템을 결합합니다. 우리는 위에 정의된 프레임 의 렌즈를 통해 솔루션을 평가하여 설계 선택을 정당화합니다.
다음의 구조적 배열은 다음과 같습니다. 먼저 평가 프레임 제시합니다(2장). 그런 다음 라이트닝 네트워크 및 특히 채널 차단에 대한 배경 지식을 제공합니다(섹션 3). 위의 평가 프레임 채널 혼잡 완화 조치(섹션 4)와 관련된 설계 결정에 적용한 다음 무조건적인 수수료(섹션 5.1)와 로컬 평판 시스템(섹션 5.2)을 결합한 채널 혼잡에 대한 솔루션(섹션 5)을 제안합니다. . 그런 다음 시뮬레이션 결과를 논의하고(6장) 관련 작업을 검토합니다(7장). 마지막으로 향후 작업 방향을 나열하고(섹션 8) 결론을 제공합니다(섹션 9).
2 완화 전략을 평가하기 위한 프레임
다음 관점에서 완화 조치를 평가하는 것이 좋습니다.
효율성 . 완화 조치는 공격을 억제하거나 방지해야 합니다. 적은 금전적인 대가(처리 수수료 지불 또는 페널티 부과), 시간(공격 전 평판 요구) 또는 이 둘의 조합이 될 수 있는 대가를 지불해야 합니다. 공격자의 동기가 반드시 순전히 금전적인 것만은 아니라는 점에 유의하십시오(예: 네트워크를 악의적으로 손상시키려는 경우).
호환성을 고취하십시오 . 완화 조치는 프로토콜의 인센티브 호환성을 유지해야 합니다. 탈중앙화 네트워크는 참가자의 합리성에 의존합니다. 규칙을 따르는 것은 참가자의 최선의 이익과 일치해야 합니다. 결제 네트워크는 노드가 결제를 전달하고 실패를 정직하게 보고하도록 장려해야 합니다.
사용자 경험 . 완화 조치는 사용자 경험을 파괴할 수 없습니다. 인터페이스 변경은 직관적이고 설명하기 쉬워야 합니다. 사용자 경험은 최종 사용자와 전문 서비스 제공업체의 관점에서 평가되어야 합니다.
개인 정보 보호 및 보안 . 완화 조치는 사용자 개인 정보를 크게 희생해서는 안 됩니다. 보안과 관련하여 제안된 프로토콜 변경으로 인해 새로운 공격 표면이 발생하지 않도록 해야 합니다. 완화 조치의 부정적인 영향은 잠재적인 이점과 비교하여 신중하게 평가되어야 합니다.
구현의 어려움 . 완화 조치는 구현이 간단해야 합니다. 프로토콜 변경에는 커뮤니티(특히 개발자) 간의 대략적인 합의가 필요합니다[46]. 실행하기 쉬운 제안은 영구적으로 연기되기보다는 채택될 가능성이 더 높습니다.
위의 프레임 다음과 같이 사용할 수 있습니다. 먼저, 완화 조치의 가능한 모든 분류를 고려하십시오. 둘째, 위 기준 중 하나 이상과 명백하게 양립할 수 없는 전략은 제외하세요. 마지막으로 특정 네트워크 상황에서 나머지 옵션의 비용과 이점을 비교하십시오.
처음 두 가지 기준(효과성과 인센티브 호환성)은 유용한 솔루션에 대한 엄격한 기준이라는 점을 지적하고 싶습니다. 마지막 세 가지 항목에는 종종 절충이 필요합니다. 때로는 보다 중앙 집중화된 아키텍처를 사용하거나 더 많은 사용자 데이터를 축적하면 사용자 경험이 향상될 수 있지만 이로 인해 개인 정보 보호가 희생됩니다. 마찬가지로 구현이 더 간단한 정책을 사용하려면 사용자가 미리 설정된 일부 제3자를 추가로 신뢰해야 할 수도 있습니다.
위 기준 중 일부는 (적어도 어느 정도) 객관적이고 정량화 가능한 반면, 다른 기준은 대체로 주관적입니다. 이러한 절충안을 우회하는 방법은 특정 네트워크 및 공격에 따라 다릅니다.
3 라이트닝 네트워크 및 채널 차단 개요
허가가 필요 없는 블록체인 네트워크는 본질적인 확장성 문제에 직면해 있으며, 이는 바로 레이어 2(L2) 프로토콜이 해결하려고 하는 문제입니다[19]. 그들은 기본 블록체인 네트워크의 보안 보장을 활용하면서 거래 처리량을 늘리기를 희망합니다.
라이트닝 네트워크는 비트코인 기반의 주요 L2 프로토콜입니다[38]. 라이트닝 노드 쌍은 공동 소유 자금 주소에 자금을 고정하여 결제 채널을 엽니다. 그런 다음 채널 상태 에 최신 자금 할당을 반영하여 결제를 구현합니다. 결제는 오프체인에서 이루어지며 필요한 경우에만 온체인에서 결제됩니다. 페널티 메커니즘은 잔액 업데이트의 경제적 보안을 보장합니다.
멀티홉 결제를 시작하기 위해 송신자는 먼저 수신자2와 연결될 수 있는 채널로 연결된 적절한 경로를 찾습니다. $U_0, … , U_m$ 경로에 노드($U_i, 0 <= i <= m$)가 있다고 가정합니다. 송신자에 대한 경로($U_j, 0 <= j <= i$)를 "업스트림"이라고 하고 수신자에 대한 경로($U_j, i < j <= m$)를 "다운스트림"이라고 합니다. 경로($U_{i-1}$ 및 $U_{i+1}$)에 있는 U i 의 피어 노드를 각각 해당 노드의 업스트림 노드 및 다운스트림 노드라고 합니다.
각 라우팅 노드는 전달 요청을 받은 후 결제를 전달 하거나 실패 하도록 합니다. 전달 노드가 트랜잭션을 중단하면 보낸 사람에게 경고하여 잘못된 노드를 우회하려고 시도할 수 있습니다. 수령인은 지불금을 받은 후 자금을 청구 하거나 종료할 수도 있습니다. 마지막 라우팅 노드로부터 지불을 수령하다 때 수신자는 전달 노드가 업스트림 피어 노드로부터 자금을 수령하다 수 있도록 비밀 값을 공개해야 합니다.
또한 수신 노드는 수신 지불을 거부할 때 업스트림 노드로 채널 상태를 업데이트해야 합니다. 노드는 지불을 전달할 리소스(예: 유동성)가 부족한 경우에만 지불을 종료할 것으로 예상됩니다. 노드는 일반적으로 입금 에 사용할 수 있는 유동성의 양을 제한하지 않습니다3.
지급이 철회되거나 종료되는 것을 결제 라고 합니다. 4. 일정 기간 동안 해결되지 않는 결제는 취소되며 채널이 폐쇄됩니다. 4 .
해결되지 않은 결제로 인해 모든 채널에서 일부 유동성이 잠기게 됩니다. 이러한 유동성 자금은 다른 지급금을 전달하는 데 사용되지 않습니다. 또한 채널은 동시에 특정 수의 보류 중인 결제만 보유할 수 있습니다. 이러한 제한은 비트코인 프로토콜 규칙에서 비롯됩니다. 보류 중인 결제가 너무 많은 사기성 채널 폐쇄는 온체인 판정되지 않습니다5 . 따라서 각 채널에는 제한된 수의 결제 슬롯이 있다고 말합니다. 보류 중인 각 결제는 결제 슬롯과 유동성 비율을 차지합니다.
개인정보 보호를 위해 Lightning 결제는 양파 라우팅을 사용합니다. 라우팅 노드는 경로에 있는 인접 피어를 알고 있지만 원래 보낸 사람과 최종 수신자를 알 수 있는 방법은 없습니다6.
각주 2: 지불금은 분할되어 다른 경로를 따라 전송될 수 있습니다[40].
각주 3: 밸브 기반 흐름 제어 방법이 최근 제안되었습니다[36].
각주 4: 포괄적인 프로토콜 설명을 찾을 수 있습니다(예: [8]).
각주 5: 특정 시점에 채널은 최대 483건의 결제 보류만 유지할 수 있습니다. 사용자는 자신의 채널에 대해 더 낮은 제한을 설정할 수도 있습니다.
각주 6: 이 가정은 타이밍 공격에서 깨질 수 있습니다[43].
채널 차단
차단은 Lightning 채널에 대한 서비스 거부 공격입니다. 공격자는 대상 경로의 양쪽 끝을 제어하여 한쪽 끝에서는 결제를 보내고 다른 쪽 끝에서는 청구를 거부함으로써 전체 경로를 따라 모든 채널에서 유동성과 지불 슬롯을 차단합니다. 차단 공격의 목표는 특정 채널 세트(예: 상업적인 상대에 속한 채널) 또는 전체 네트워크를 비활성화하는 것일 수 있습니다.
유동성 기반 차단과 결제 슬롯 기반 차단을 구분해야 합니다. 전자는 주로 피해자 채널의 유동성을 잠그는 반면, 후자는 모든 결제 슬롯을 점유하려고 합니다. 전반적으로 유동성 기반 차단은 비용이 더 많이 듭니다. 결제 슬롯을 점유하려면 대상 노드가 전달하려는 최소 결제 크기인 7 을 초과하는 전달을 요청하면 됩니다. 결제 슬롯을 기반으로 한 차단은 피해자 채널 자체의 용량이 아무리 크더라도 이를 차단하는 데 드는 비용은 동일하기 때문에 더 "효율적"입니다.
또한 빠른 차단과 느린 차단을 구별할 필요가 있습니다. 신속한 차단 공격에서 공격자는 몇 초 내에 해결되는 일련의 차단을 전송하여 실패한 정직한 결제를 시뮬레이션합니다. 반면, 느린 차단은 오랜 지연(몇 시간 또는 며칠 단위로 측정) 후에 해결되어 피해자가 공격을 감지할 수 있습니다. 둘 사이의 경계는 정직한 지불에 대한 최대 해결 지연의 주관적인 정의에 따라 달라집니다.
공격자는 다양한 목표를 추구할 수 있습니다. 우리는 네트워크에 참여하는 사용자가 일반적으로 두 가지 주요 목표를 가지고 있다는 점을 지적하고 싶습니다. 지불금을 보내고 받는 것과 지불금을 전달하여 수수료를 받는 것입니다. 따라서 공격자는 사용자가 결제를 교환하는 것을 막으려 할 수도 있고, 포워딩 서비스 제공자가 수수료 수익을 받는 것을 막으려 할 수도 있습니다.
차단 공격은 완전 무료입니다. 라우팅 노드는 종료된 지불에 대해 수수료를 부과하지 않기 때문에 공격자는 수수료를 지불할 필요가 없습니다. 공격자가 지불해야 하는 유일한 비용은 공격 중에 잠긴 자금의 기회 비용9 과 채널을 개설하는 데 드는 비용입니다. 어니언 라우팅을 사용하면 보낸 사람의 신원이 라우팅 노드에 구애받지 않기 때문에 혼잡 완화 설계가 더 어려워집니다.
각주 7: 결제 슬롯에 따른 결제 차단 규모도 포워딩 채널에서 결제 슬롯을 차지하는 최소 개수인 더스트 한도 보다 큽니다. 더스트 한도보다 작은 결제는 허용되지만(보안 보장이 약해지긴 하지만), 결제 슬롯을 점유하지 않기 때문에 (결제 슬롯 기반) 차단 공격에는 사용할 수 없습니다. 게다가 그 가치가 너무 작기 때문에 유동성에 대한 차단 공격을 시작하는 것은 비현실적입니다.
각주 8: 기술적으로 공격자가 차단을 성공적인 결제로 위장하는 것도 가능하며, 이 경우 처리 수수료가 부과됩니다. 그러나 다음에서는 항상 결제 차단이 성공하지 않고 종료된다고 가정합니다.
각주 9: 채널 비용에 대한 자세한 내용은 [18]을 참조하세요.
4 혼잡 완화 조치를 위한 설계 선택
그리고 다양한 혼잡 완화 전략 제안이 등장했습니다 [16, 33]. 금전적 비용 기반과 평판 기반으로 분류할 수 있습니다. 솔루션 디자인 공간을 체계적으로 분석하기 위해 먼저 사용 가능한 디자인 선택 사항을 나열한 다음 2장에 설명된 프레임 기반으로 이러한 선택 사항을 평가합니다.
4.1 금전적 계획
통화 체계의 목표는 공격 비용을 더 높이는 것입니다. 이러한 전략은 피해자에게 보상을 제공할 수도 있습니다. 차단 공격의 맥락에서 통화 방식의 아이디어는 기존 처리 수수료 외에 종료된 결제에 대한 처리 수수료를 부과하는 것입니다( 성공적인 결제에만 처리 수수료가 부과됨 ). 우리는 다음과 같은 디자인 선택을 고려합니다.
- 이 수수료는 누가 받나요? 수신자는 다운스트림 노드, 합의된 제3자 또는 단순히 아무도 없을 수 있습니다(수수료의 이 부분을 파기하는 것으로 입증됨).
- 이 수수료를 지불하려면 어떤 통화를 사용해야 합니까? 처리 수수료는 네트워크의 기본 자산(라이트닝 네트워크의 경우 비트코인) 또는 기타 자산으로 지불할 수 있습니다. 처리 수수료 소각 방식에서는 작업량 퍼즐을 풀어 처리 수수료를 징수할 수 있습니다.
- 이 부분의 수수료는 무조건 지불해야 하나요? 가장 간단한 수수료 설계는 무조건 선불(즉, 결제 시)에 지급되는 수수료입니다. 대안은 결제가 성공적으로 완료되면 선불 수수료 중 이 부분(해지 시나리오의 경우)을 반환하는 것입니다. 다른 분야를 고려해 볼 수도 있습니다.
- 이 부분의 수수료 금액은 어떻게 계산하나요? 현재 라이트닝 네트워크 수수료는 고정 기본 수수료와 결제 금액에 선형적으로 비례하는 수수료의 두 부분으로 구성됩니다. 더 복잡한 수수료 알고리즘은 다른 매개변수에 따라 달라질 수 있습니다.
피어에게 수수료를 지불하는 것은 제3자에게 수수료를 지불하는 것보다 간단합니다. 왜냐하면 제3자를 도입하면 경제적 인센티브가 복잡해지기 때문입니다. 라이트닝 네트워크 자체는 자금10을 입증할 수 있는 파괴에 대한 명확한 솔루션을 제공하지 않으므로 파괴 증거에 기반한 솔루션을 구현하기가 어렵습니다. 따라서 우리는 수수료 지불의 설계 공간을 다운스트림 피어 노드로 좁힙니다.
반품 없는 무조건적인 처리 수수료는 구현하기가 더 쉽습니다. 적어도 반품 메커니즘에는 여러 번의 가치 이전이 필요합니다.
처리수수료 금액 산정은 단순화를 위해 기존 성공수수료(기본수수료 + 비례수수료)와 동일한 구조를 채택합니다. 우리는 수수료 금액이 항상 양수 11 이라고 가정합니다(즉, 항상 업스트림 피어가 아닌 다운스트림 피어에게 지불됨). 수수료 금액이 실제 결제 해결 시간과 연결되어 있으면 좋겠지만, 현재로서는 이 아이디어를 구현할 수 있는 신뢰할 수 있는 방법이 없습니다.
사용자 경험, 개인정보 보호, 보안 측면에서 옵션 디자인의 장점과 단점은 비슷합니다.
각주 10: 반대로 기본 계층 비트코인은 사용이 불가능한 주소로 전송될 수 있습니다.
각주 11: 양방향 수수료(업스트림 노드에 지불되는 수수료 포함)는 [16]에서 논의됩니다. 마이너스 수수료 광고는 원치 않는 흐름을 유발할 수 있으므로 이 제안은 추가 평가가 필요합니다.
4.2 평판 체계
평판 기반 전략에서 노드는 다른 노드에 대한 신뢰 수준을 추적합니다. 공격 차단의 맥락에서 평판 점수는 라우팅 노드가 좋은 피어와 나쁜 피어를 구별하고 후자의 지불을 종료하거나 완전히 연결을 끊는 데 도움이 됩니다. 평판 프로그램을 설계할 때 다음과 같은 설계 선택을 고려하고 싶습니다.
- 누구의 평판이 지급 전달에 영향을 미치나요? P2P 네트워크[28]의 일반적인 설계 패턴은 라우팅 노드가 업스트림 피어의 평판만 고려한다는 것입니다. 이 모델 외에도 원래 보낸 사람의 평판도 결제에 첨부할 수 있습니다. 우리는 동료들에게만 점수를 매기는 방식을 지역적 평판 방식이라고 부르고, 그 반대를 글로벌 방식이라고 부릅니다.
- 평판 메커니즘에는 합의가 필요합니까? 노드는 독립적으로 점수를 매길 수도 있고, 네트워크 수준에서 모든 노드의 평판에 대한 합의에 도달하려고 노력할 수도 있습니다.
- 평판은 동질적인가? 균질화된 평판 점수는 토큰 형태로 노드 간에 전송될 수 있습니다. 반면, 비균질 평판 점수는 점수가 원래 할당된 노드와 분리될 수 없습니다.
- 점수를 매기는 방법? 한 가지 접근 방식은 피어의 과거 행동을 기반으로 합니다. 또 다른 접근 방식은 작업 증명이나 비트코인 소유권 증명( 지분 증명서 [34])과 같은 일부 희소 자원에 대한 약속을 기반으로 합니다.
결제에 보낸 사람 평판을 첨부하는 것은 라이트닝 네트워크의 개인 정보 보호 목표를 위반합니다.
노드는 동료의 행동을 객관적으로만 경험할 수 있으므로 평판 점수는 지역적이어야 합니다.
Sybil어택 공격을 고려하여 우리는 합의 기반 평판 시스템보다는 독립적인 채점을 선호합니다.
평판 토큰의 유통시장설계 보안에 큰 도전이 되기 때문에 우리는 대체 불가능한 솔루션을 선호합니다12.
결국 우리는 부족한 자원에 대한 헌신보다는 과거 행동을 기준으로 점수를 매기기로 결정했습니다. 폭탄 예방 조치로서의 실패로 판단하면[25], 이러한 관점에서 작업 증명은 쓸모가 없어 보입니다. 특히, 공격을 예방할 수 있는 작업 부하의 난이도는 정직한 사용자에게는 용납할 수 없을 정도로 높을 것입니다. 부족한 자원을 기반으로 한 다른 평판 계획에 대한 평가는 향후 작업에 맡깁니다.
각주 12: 이전 연구에서는 애플리케이션 토큰을 위한 2차 시장을 설계하는 것이 어려운 작업이라는 것이 입증되었습니다[10, 14, 51]. 예를 들어, 대규모 기관은 시장을 조작하기 위해 그러한 토큰을 대량 얻을 수 있습니다.
5 공격 차단 솔루션
섹션 4의 주장을 바탕으로 차단 공격을 완화하기 위한 두 가지 전략을 제안합니다.
- 다운스트림 노드에 지불되는 무조건적인 수수료는 각 지불에 대해 소액의 가격을 부과하여 빠른 채널 정체를 해결합니다.
- 과거 행동을 기반으로 하는 로컬 평판은 해결하는 데 너무 오랜 시간이 걸리는 지불을 전달하는 피어에게 처벌을 가하여 느린 차단 공격을 해결합니다.
섹션 5.1과 5.2에서는 무조건 수수료와 지역 평판 시스템에 대해 자세히 설명합니다. 섹션 2에서 제안된 프레임 통해 솔루션의 이 두 부분을 검토한 다음 매개변수 선택에 대한 모범 사례에 대해 논의합니다.
5.1 무조건적인 처리 수수료
지불 경로 $U_0, … , U_m$를 고려하십시오. $f_{i, i+1}$는 $U_i$가 $U_i+1$에 지불한 처리 수수료를 나타냅니다. 여기서 $i \in [0, m-1]$ 입니다. 성공 사례에서 지불해야 할 수수료는 $f^S$로 기록되며, 무조건 지불되는 처리 수수료는 $f^N$로 기록됩니다. $X \in {S, N}$의 경우 $X$ 유형의 수수료 수입은 $U_i$이 지불하는 금액과 받는 금액의 차이입니다.
$$F_i^X = f_{i-1}^X - f_{i, i+1}^X$$......(1)
라우팅 노드 $U_i$에 대한 통합 요금제는 다음과 같습니다(그림 1 참조).
- 그림 1. 라우팅 노드 U i 의 결정 트리. 나뭇잎의 숫자는 총 수입을 나타냅니다 -
- $U_{i-1}$는 $f_{i-1, i}^N$을 $U_{i}$에 지불합니다.
- $U_{i}$는 결제를 종료할지 전달할지 결정합니다. $U_{i}$가 결제를 종료하면 더 이상 수수료를 받지 않습니다.
- $U_{i}$이 전달하기로 결정하면 $f_{i1, i+1}^N$이 $U_{i+1}$에 지급됩니다.
- 위의 과정은 특정 홉에서 결제가 종료되거나 성공할 때까지 계속됩니다. 결제가 성공하면 $U_{i}$은 $f_{i-1, i}^S$를 받고 $f_{i, i+1}^S$를 지불합니다.
$U_{i}$가 이 지불을 종료하는 경우(계속 전달하지 않고) 수수료 수입은 $f_{i-1, i}^N$입니다. 전달했지만 다운스트림으로 결제가 종료된 경우 $F_{i}^S$, 전달되어 결제가 성공한 경우 $F_i^S + F_i^N$입니다.
각 지불 $f$에는 다운스트림 피어 노드에 지불되는 처리 수수료뿐만 아니라 향후 모든 라우팅 노드에 대한 처리 수수료도 포함됩니다. 예를 들어 $U_2$ 및 $U_3$가 결제 당 1사토시라는 정액 요금을 부과하는 4노드 경로 $(U_1, U_2, U_3, U_4)$를 상상해 보세요13. 발송인 $U_1$이 $U_2$로 지불금을 전달할 때 2사토시의 처리 수수료가 부과됩니다: $f_{1, 2} = 2$; 그러나 $f_{2, 3} = 1$. 따라서 두 노드의 수수료 수입은 각각 다음과 같습니다. $F^2 = f_{1, 2} - f_{2, 3} = 2 -1 = 1$, $F^3 = f_{2, 3 } - f_{3, 4} = 1 - 0 = 1$. 이는 결제가 성공하든 실패하든 마찬가지입니다.
각주 13: “사토시”는 비트코인의 가장 작은 단위입니다. 1 BTC는 1억 사토시와 같습니다.
유효성
무조건적인 수수료로 인해 차단 공격은 더 이상 무료가 아닙니다. 또한 무조건 수수료의 두 부분(기본 수수료와 비례 수수료)은 각각 자리 표시자 기반 차단 공격과 유동성 기반 차단 공격을 처리합니다. 낮은 가치의 차단 결제는 결제 슬롯을 점유하기 위한 것이지만 이제 기본 수수료가 필요합니다. 비례적인 수수료는 유동성 잠금을 목표로 하는 높은 가치의 차단을 더 효과적으로 방지할 수 있습니다.
합리적으로 설정된 수수료 계수를 사용하면 무조건적인 수수료를 통해 라우팅 노드가 정직한 지불 과 유사한 정체로 인한 혜택을 얻을 수 있으며14 공격 차단으로 인해 겪는 경제적 손실을 보상할 수 있습니다. 이 효과는 무조건적인 수수료를 상대적으로 낮게 설정함으로써 달성할 수 있습니다. 왜냐하면 공격자는 공격의 효과를 유지하기 위해 차단 지불을 계속 보내야 하는 반면 정직한 지불은 일반적으로 채널 리소스의 작은 부분만 차지하기 때문입니다. 시뮬레이션도 이러한 직관을 확인시켜 줍니다(6장 참조).
각주 14: 노드가 정직한 지불로 얻는 수수료 수익은 네트워크에서의 위치, 유동성 관리 습관(예: 리밸런싱) 및 기타 요인에 따라 달라집니다.
인센티브 호환성
지불을 전달하기 위해 라우팅 노드는 해당 채널 중 하나의 지불 슬롯과 일부 유동성을 다운스트림 피어에 할당합니다. 결제가 보류되는 동안에는 이러한 리소스를 다른 목적으로 사용할 수 없습니다. 따라서 우리는 인센티브 호환성 문제에 직면하게 됩니다. 라우팅 노드는 먼저 무조건적인 수수료를 받은 다음 의도적으로 지불을 종료할 수 있습니다. 인센티브 호환성을 보장하기 위해 성공적인 지불로 인한 수수료 수입은 전달 활동의 리스크 에 대해 라우팅 노드를 보상해야 합니다.
$\theta$를 결제 종료 확률이라고 하자 15 . $U_i$이 지불금을 전달하기로 결정한 경우 예상되는 수수료 수입은 다음과 같습니다.
$$\mathbb{E}(F_i|앞으로)=(1-\theta)(F_i^S + F_i^N) + \theta*F_i^N$$ ……(2)
$$=F_i^N + (1-\theta)F_i^S = (f_{i-1, i}^N + (1-\theta)F^S)$$ …(3)
$U_i$가 완전히 지불을 중단하면 수입은 $f_{i-1, i}^N$에 불과합니다. $U_i$이 전달 지불을 선호하도록 하려면 전달 지불의 예상 보수가 즉시 종료의 보수보다 높아야 합니다.
$$f_{i-1, i}^N - f_{i, i+1}^N + (1-\theta)F^S > f_{i-1, i}^N$$ ……(4 )
$$(1-\theta)F^S > f_{i, i+1}^N$$......(5)
즉, 전달 지불로 인한 추가 예상 수익은 전달 노드가 다운스트림 노드에 지불하는 무조건적인 처리 수수료를 보상할 수 있어야 합니다. 또한 송금인은 지속적으로 결제를 종료하는 채널을 사용하지 않아야 합니다. 이러한 채널에서 낮은 수수료만 부과한다고 명시하더라도 이는 선불 결제가 아닌 무조건적인 수수료에 초점을 맞추는 악의적인 전략일 수 있습니다.
각주 15: 우리는 [37](섹션 4.2)과 유사한 접근 방식을 사용합니다.
사용자 경험
사용자 경험의 주요 우려 사항은 결제 실패에 대한 수수료 청구로 인해 사용자가 설득을 포기할 수 있다는 것입니다. 지갑은 이러한 세부 정보를 적절하게 추상화합니다. 실제로 종료 확률 $\theta$이 일반적으로 높음에도 불구하고 지불당 예상 시도 횟수는 16회 정도로 낮습니다. 최소 $p$ 확률로 최대 $K$ 홉에서 결제가 성공하려면 다음 조건을 충족해야 합니다.
$$1 - \theta^K > p$$......(6)
이는 다음과 같습니다.
$$log(1 - p) > K 로그 \theta$$......(7)
$log \theta < 0$이기 때문에:
$$\frac{log(1 - p)}{log \theta} < K$$......(8)
- 그림 2. 다양한 결제 종료 확률 θ에서 요구되는 성공 확률 p의 함수로서 예상되는 시도 횟수. -
필요한 시도 횟수는 천천히 증가합니다(필요한 성공 확률 $p$에 대한 로그). $\theta = 20%$라고 가정하더라도 1회, 2회, 3회 시도 후에 성공 확률은 각각 80%, 96%, 99%에 도달합니다. 우리는 각 결제에 몇 번의 시도만 필요하고 무조건적인 수수료가 낮기 때문에 사용자 경험에 대한 부정적인 영향이 최소화된다는 결론을 내렸습니다(그림 2 참조).
개인 정보 보호 및 보안
라우팅 노드는 전달 경로에서 자신의 위치를 알 수 없어야 합니다. 무조건적인 수수료는 이 속성을 약화시킵니다. 라우팅 노드는 수수료 금액과 각 노드가 공개하는 수수료 정책을 통해 최종 수신자까지의 거리를 추론할 수 있습니다17 . 이 문제는 보낸 사람이 지불의 일부를 마지막 홉(수신자가 받을 것으로 예상되는)에 대한 무조건 수수료로 할당하여 경로가 더 확장되는 것처럼 보이도록 함으로써 해결될 수 있습니다. 이 접근 방식의 단점은 무조건적인 수수료가 높을수록 라우팅 노드에 대한 인센티브가 일관되지 않을 수 있다는 것입니다. 무조건 수수료 자체의 금액이 낮기 때문에 이 문제가 그다지 심각해질 것으로 예상하지 않습니다.
각주 17: 이러한 관점에서 성공적인 결제에 대해 부과되는 처리 수수료는 라우팅 노드가 결제 금액 중 어느 비율이 처리 수수료를 나타내는지 알지 못하기 때문에 문제가 덜합니다. 대조적으로, 무조건 수수료는 지불 금액과 무관합니다.
구현의 어려움
무조건적인 수수료는 구현하기 쉽습니다. 한 가지 방법은 미리 지불하는 것입니다. 또 다른 방법은 증명처럼 결제가 종료되면 $U_{i-1}$에 자금을 반환할 때 다운스트림 노드 $U_i$가 처리 수수료 $f_{i-1, i}^N$를 먼저 보류하는 것입니다. 개념 구현이 바로 그 일을 합니다 [48]. 기타 구현 작업에는 가십 메시지에 추가 요금 정책을 광고하고 라우팅 선택 시 무조건 요금을 고려하는 것이 포함됩니다.
5.2 지역 평판 점수
무조건적인 수수료만으로는 차단 공격을 해결하기에 충분하지 않습니다. 따라서 평판 기반 완화 전략도 필요합니다. 정의에 따르면 평판 체계는 초기화, 평판 업데이트, 평판 점수에 따른 선택의 세 부분으로 구성됩니다.
초기화
초기화 단계 동안 노드는 다음 매개변수를 설정해야 합니다.
- τ(초) - 정직한 지불과 부정직한 지불을 구별하는 최대 해결 시간입니다.
- t(초), T(초), A(satoshi/초) - 평판 업데이트를 위한 매개변수(아래 참조)
- K(정수), L(satoshi) – 지불 슬롯 및 유동성에 대한 리스크 할당량입니다.
위 매개변수의 구체적인 값은 노드의 리스크 선호도에 따라 다릅니다. 예를 들어, K와 L의 값이 높을수록 리스크 허용 범위가 더 높다는 것을 나타냅니다. 라우팅 노드는 정직하지만 리스크 지불(예: 새 노드에서)로 인한 수익 증가와 그에 따른 공격 차단 리스크 비교 평가해야 합니다. t, T, A의 값은 기존 채널이 차단된 상태에서 정직한 결제를 처리하기 위해 새로운 채널을 여는 비용에 따라 달라질 수 있습니다.
평판 점수 업데이트
우리는 평판 점수에 대해 높음 과 낮음 이라는 두 가지 가능한 값을 고려합니다(보다 세부적인 구성도 가능함). 처음에는 모든 노드의 점수가 낮습니다. τ초 이내에 결제가 완료되면 결제가 정직한 것으로 간주됩니다. 그렇지 않으면 블록으로 간주됩니다. 피어는 정직한 지불만 전달하는 경우 좋은 것으로 정의됩니다. 또한 이러한 결제에는 라우팅 노드에 대해 초당 A Satoshi의 처리 수수료만 필요합니다. 피어가 오랫동안 좋은 성과를 거두면 점수가 업그레이드됩니다.
보다 구체적으로 평판 점수는 다음과 같이 업데이트됩니다.
- 피어가 기간 t 동안 좋은 행동을 유지하면 점수를 높음 으로 변경합니다.
- T초 시간 창 내에서 t초 동안 좋은 동작을 유지할 수 없는 경우 낮음 으로 변경합니다.
슬라이딩 시간 창을 기반으로 하는 평판 업데이트 알고리즘은 지속적인 잘못된 행동을 처벌하는 동시에 간헐적인 오류를 허용할 수 있습니다. 유사한 방법이 초기 P2P 시스템에서도 사용되는 것으로 나타났습니다[13].
피어가 의도적으로 해결을 지연시키는 지불을 용인하기로 사전에 동의하는 경우 18 그러한 지불은 지불을 전달하는 노드의 평판에 영향을 미치지 않습니다.
각주 18: 이는 원자 스왑 [55](예: 잠수함 스왑 [6]) 및 "신중한 로그 계약"[26]과 같은 일부 L2 프로토콜에 유용합니다. 다중 홉 환경에서 이러한 프로토콜의 효율성을 분석하려면 더 많은 연구가 필요합니다.
앞으로
지불을 제안하는 노드는 지불을 리스크 가 낮은 것으로 태그 할 수 있습니다(필수는 아님). 즉, 이를 보증합니다 19 . 다운스트림 노드( 요청을 수락하는 노드 )가 보증이 평판이 높은 피어로부터 나온 것임을 확인한 경우에만 지불에 동의하는 것은 리스크 낮 습니다. 저 리스크 지급은 최선의 방식으로 전달될 수 있는 반면, 리스크 지급은 K 지급 슬롯과 L 사토시의 유동성 할당량만 사용할 수 있습니다. 즉, 할당량은 다운스트림 노드에 적용되고 평판은 업스트림 노드에 적용됩니다.
각주 19: 이는 우리의 제안을 보낸 사람의 평판에 기반한 계획(우리가 거부한)과 구별됩니다. 리스크 점수는 원래 보낸 사람과 관계없이 지불에 첨부됩니다.
유효성
채널이 리스크 낮은 결제를 위해 일부 리소스를 남겨두기 때문에 평판이 낮은 공격자는 더 이상 채널을 완전히 차단할 수 없습니다. 이러한 대응책을 우회하려면 공격자는 사전에 평판을 구축해야 하며, 이를 위해서는 노력과 자원이 필요합니다. 높은 평판 점수를 얻으려면 노드가 지불을 전달해야 하며, 최소 t초 동안 초당 A 사토시를 수수료로 지불해야 합니다.
여기서 제안하는 평판 체계의 한 가지 단점은 채널 리소스를 잠재적으로 비효율적인 활용 상태에 놓이게 할 수 있다는 것입니다. 대규모 결제의 경우 일부 정직한 리스크 결제는 리스크 할당량이 부족하여 종료될 수 있습니다. 또 다른 우려는 리스크 할당량 지불 슬롯과 유동성만을 표적으로 삼을 수 있는 불완전 차단 공격이 전체 차단 공격보다 비용이 저렴할 것이라는 점입니다.
인센티브 호환성
라우팅 노드는 자신이 아는 한 최선을 다해 지불을 승인하도록 인센티브를 받아야 하며, 가능한 두 가지 출발 전략은 리스크 가 높은 지불을 승인하고 리스크 가 낮은 지불을 승인하지 않는 것입니다. 리스크 낮은 지불을 승인하지 않으면 노드의 자체 수수료 수입이 분명히 감소합니다. 더 흥미로운 점은 리스크 지불을 승인할 때 지불이 성공하면 승인 노드의 예상 수익이 증가할 수 있다는 것입니다. 리스크 자체 다운스트림 노드에서 평판을 잃을 수 있다는 것입니다(지불이 막힘). 합리적인 평판 시스템 매개변수를 설정하면 이 전략이 수익성이 없게 될 수 있습니다. 평판을 회복하는 데 비용이 많이 드는 경우, 추가 수수료 혜택으로는 허위 보증 리스크 감당하기에 충분하지 않을 수 있습니다.
사용자 경험
이 제안에 대한 사용자 경험의 불만은 주로 낮은 평판으로 시작하기 때문에 실패 확률이 더 높은 신규 사용자를 위한 것입니다. 유휴 사용자의 경우 피어 노드의 리스크 할당량이 낮은 지불량을 처리하기에 충분하므로 이는 심각한 문제가 아닐 수 있습니다. 또한 전문 라이트닝 네트워크 서비스 제공업체는 고객에게 보다 완화된 평판 정책을 제공할 수 있습니다.
개인 정보 보호 및 보안
지불 승인 여부에 관계없이 노드는 가능한 지불 출처에 대한 정보를 공개합니다. 원래 보낸 사람의 개인정보를 보호하기 위해 노드는 리스크 낮은 일부 지불을 승인하지 않기로 선택할 수 있습니다(소액의 수수료 수익 손실을 감수하면서).
평판 메커니즘의 보안 리스크 계단식 공격으로, 차단 트랜잭션이 긴 전달 경로를 통과하도록 허용하여 경로를 따라 노드의 평판 점수를 감소시킵니다. 이는 노드가 리스크 낮은 많은 지불을 잘못 종료하기 때문에 전체 네트워크의 성능을 저하시킵니다. 라우팅 노드의 평판 점수를 낮추면 결제 실패 가능성이 높아지지만 결제 흐름을 완전히 차단할 수는 없습니다.
계단식 공격의 원리는 금융 산업[32], 사물 인터넷[17], 바이러스 확산 등 다양한 맥락에서 연구되어 왔습니다. 이 논문은 이론적 결과(예: [7, 11, 39])를 기반으로 리스크 다루었습니다. 이러한 연구와 라이트닝 네트워크[29]의 속성에 영감을 받아 계단식 공격은 구현하기 어렵다고 추측합니다. 매개 변수 선택 및 공격 전략에 대한 추가 연구가 필요합니다.
번역자 주: 2024년 9월 Carla Kirk-Cohen 등의 시뮬레이션 실험 에 따르면 저자의 솔루션을 적용한 후 오랫동안 채널을 차단할 수 있는 유일한 공격은 소위 "캐스케이드 공격" 방법입니다. 이는 평판 시스템을 개선함으로써 해결될 수 있습니다.
구현의 어려움
우리가 제안한 평판 시스템은 비교적 구현하기 쉽습니다. 추가 개발에는 결제 데이터 구조에 인코딩 승인 필드를 추가하는 것이 포함됩니다. 또한 노드는 로컬 데이터베이스에 동료의 평판 점수를 기록할 수 있어야 합니다.
6 시뮬레이션
(약간)
7 관련 작품
공격 차단에 대한 논의는 2015년으로 거슬러 올라갑니다[1, 47]. 최첨단 솔루션 요약은 [16, 33, 41]에서 확인할 수 있습니다.
공격 차단의 영향과 공격 개선 및 잠재적인 대응 방법은 잘 연구되었습니다 [15, 30, 31, 35, 42, 52]. 이에 대한 대응책으로 선불에 대한 논의는 이전에 논의된 바 있다[45, 22]. 관련 방법으로는 지분증서[34]와 노드 수준 방어 조치[2, 36]가 있다. 중앙 집중식 글로벌 노드 채점도 선택 사항이지만 실제로는 거의 사용되지 않습니다[5].
"홍수 및 전리품"[20] 및 "대량 탈출"[50]과 같은 공격은 기본 계층에서 정체를 생성하여 L2 프로토콜을 깨뜨릴 수 있습니다. 라이트닝 네트워크에 대한 개인 정보 보호 공격에는 잔액 감지[12, 21], 타이밍 공격[43] 및 교차 계층 익명화[23, 44]가 포함됩니다. 현재로서는 완화 전략이 적용되지 않았습니다.
8 일의 미래
향후 작업 방향에는 더 많은 공격 시나리오와 평판 기반 예방 전략 시뮬레이션이 포함됩니다. 보다 광범위하게는 다른 설계 옵션의 타당성을 고려할 수 있습니다. 결제 해결 시간과 개인 정보 보호 발신인 평판을 수수료 금액에 고려하는 방식은 특히 흥미로운 방향이지만 이러한 아이디어에는 아직 해결되지 않은 이론적, 실무적 어려움이 있습니다. 또한 다양한 공격 목표와 성공 기준에 따라 공격 차단의 비용과 효율성을 연구할 수 있습니다.
효과적인 대책을 통해 다른 라이트닝 네트워크 문제를 완화할 수 있습니다. 첫째, 탐지는 의도적으로 실패한 결제를 많이 보내야 한다는 점에서 차단과 유사하기 때문에 탐지 공격을 방해합니다[21]. 둘째, 우리의 수수료 체계는 무신뢰 감시탑에 인센티브를 부여하는 데에도 유용할 수 있습니다[9, 24, 29]. 감시탑은 사용자를 대신하여 사기성 채널 폐쇄를 물리치는 제3자 서비스입니다.
9 결론
본 논문에서는 탈중앙화 금융 네트워크에 대한 공격 완화 전략을 위한 평가 프레임 구축합니다. 예를 들어, 우리는 비트코인의 주요 L2 프로토콜인 라이트닝 네트워크에서 오랫동안 지속되어 온 서비스 거부 공격 표면인 공격 차단을 고려합니다. 제안된 프레임 내에서 다양한 설계 선택을 고려한 후 무조건적인 수수료와 과거 행동을 기반으로 한 로컬 평판 점수를 결합하여 차단 공격을 완화하는 효율적인 솔루션을 제안합니다. 우리는 시뮬레이션과 분석 계산을 사용하여 제안의 타당성을 입증합니다.
감사의 말
무조건적인 수수료의 개념 증명 구현을 만들어 준 Sergi Delgado Segura에게 감사드립니다. Carla Kirk-Cohen, Thomas Huet, Joost Jager, Gleb Naumenko, René Pickhardt, Antoine Riard, Bastien Teinturier 및 광범위한 Lightning Network 개발자 커뮤니티에 감사드립니다.
참고자료
(약간)