라이트닝 네트워크 (3부) – 정의구현의 길

요약: 라이트닝 네트워크에 대한 저희 비트멕스 리서치 팀의 세 번째 보고서에서는 라이트닝 채널 폐쇄 시나리오 및 부정직한 사용자들을 징벌하고 이들이 자금을 가로채는 것을 방지하기 위한 인센티브를 살펴 볼 예정입니다. 이러한 징벌 매커니즘은 “정의구현 거래 (justice transaction)”로 불려오고 있습니다. 저희는 임의로 “정의구현 (Justice)” 시나리오 구성 방식을 설명하고 비트코인 네트워크 상에서 이러한 유형의 거래가 널리 퍼지는 것에 대한 데이터를 제시할 예정입니다. 저희는 2017년 말 라이트닝 네트워크가 서비스를 시작한 이래 2.22개의 비트코인 가치를 나타내는 241개의 정의구현 거래를 잠재적으로 확인하였습니다.

(Lightning strikes the city of Singapore)

개요

2018년 1월 라이트닝 네트워크에 대한 동기와 더불어 2019년 3월 라이트닝 네트워크 송금 수수료 경제학에 대한 논의에 이어, 라이트닝 네트워크에 대한 이번 세 번째 보고서는 채널 폐쇄와 부정직한 라이트닝 노드의 절도 방지를 위해 고안된 인센티브를 이전 채널 상태를 전파함으로써 살펴 볼 예정입니다.

악의적인 사용자가 라이트닝 네트워크에서 자금 절도 시도 시에 발각되는 경우, 절도 목적의 자금뿐만 아니라 관련 채널의 모든 자금을 잃는다는 점 또한 유의해야 합니다. 본 “징벌” 구조는 범죄의 억제 기능할 것으로 기대되며 때로는 “정의구현”으로 불립니다.

4가지 유형의 라이트닝 채널 폐쇄 시나리오

일반적으로 라이트닝 네트워크 개방은 이를 폐쇄하는 것보다 더 간단하며, 라이트닝 네트워크를 개방하는 방법은 거래 당사자 간의 협력적인 양방향 통신이 유일합니다. 반면 채널 폐쇄를 평가할 때는 아래의 결정 트리에 설명된대로 4가지 시나리오를 고려해야 합니다 (그림 1 참고).

그림 1 – 라이트닝 네트워크 채널 폐쇄 유형 – 결정 트리

(출처: BitMEX Research)

그림 2 – 4가지 라이트닝 채널 폐쇄 시나리오 설명

폐쇄 유형 설명 온체인 기술 세부정보 및 거래 예시
본 유형은 가장 일반적인 시나리오입니다.협력적 폐쇄는 채널 반대편의 노드가 온라인 상태이고 통신하는 동안 정직한 노드가 채널 폐쇄를 시작할 때 발생합니다.

자금은 최신 채널 상태를 기준으로 각 거래 당사자의 온체인 지갑에 지급됩니다.

협력적 폐쇄는 하나의 온체인 거래만 필요로 합니다.입력값은 “일반적인” 2단계 다중 서명 스크립트를 사용하여 반환되며, 이는 최신 채널 상태를 기반으로 한 잔액을 통해 관련 거래 당사자에 속한 2개의 산출값에 전송됩니다.

이러한 거래는 라이트닝 채널로 식별하기 어렵기 때문에 3가지 채널 폐쇄 유형 중 가장 비공개적인 성격을 띄고 있습니다.

예시 폐쇄:

비협조적이며 위반되지 않는 폐쇄는 정직한 노드가 채널 반대편의 노드와 직접 통신하지 않고 폐쇄를 시작할 때 발생합니다.자금은 최신 채널 상태를 기준으로 각 거래 당사자의 온체인 지갑에 지급됩니다. 이 2가지 다른 경제성 시나리오는 하나의 기술적 온체인 시나리오에 해당됩니다.본 시나리오는 2개의 온체인 거래를 필요로 합니다.

먼저 자금은 2단계 다중 서명 증인을 사용하여 반환되고 2개의 산출 값에 전송됩니다.
폐쇄를 시작하지 않은 노드는 채널 폐쇄 당사자가 말하는 바와 같이 향유되어야 하는 자금을 할당 받는 반면, 또 다른 자금은 OP_IF 혹은 OP_ELSE 스크립트를 사용하여 반환 받을 수 있는 산출값으로 전송됩니다.

두 번째 거래에서 OP_IF 스크립트로 전송된 자금은 비트코인 스크립트의 OP_ELSE 분기를 사용하여 채널 폐쇄를 시작한 거래 당사자가 청구합니다.

예시 폐쇄:

비협조적이며 비정의적으로 위반되는 폐쇄는 부정직한 노드가 이전 채널 상태를 전파하여 채널의 반대 편에 위치한 노드에서 자금 절도 시도를 함으로써 채널 폐쇄를 시작할 때 발생합니다.비폐쇄형 노드는 잠금 시간 (일반적으로 24시간) 내에 네트워크를 확인하지 않으며 정의구현 거래를 전파하지 않습니다. 따라서 절도는 성공적으로 이루어집니다.

자금은 이전 채널 상태를 기준으로 각 거래 당사자의 지갑으로 지급되어 비폐쇄형 거래 당사자는 자금을 잃고 부정직한 채널 폐쇄 당사자는 성공적으로 자금을 절도합니다.

비협조적이며 정의적으로 위반되는 폐쇄는 부정직한 노드가 채널의 반대 편에 위치한 노드와 직접 통신하지 않고 채널 폐쇄를 시작할 때 발생합니다.비폐쇄형 노드는 잠금 시간 내에 네트워크를 확인하고 정의구현 거래를 생성하여 절도 시도를 실패하도록 합니다.

절도를 시도하려 했던 사용자는 징벌을 받고 모든 자금은 정직한 비폐쇄형 거래 당사자에게로 반환됩니다.

정의구현 시나리오에서는 2개의 온체인 거래를 필요로 합니다.첫 번째 거래에서 자금은 2단계 다중 서명을 사용하여 반환되며 2개의 산출 값으로 전송됩니다. 폐쇄를 시작하지 않은 노드는 채널 폐쇄 당사자가 말하는 바와 같이 향유되어야 하는 자금을 할당 받는 반면, 또 다른 자금은 OP_IF 혹은 OP_ELSE 스크립트를 사용하여 반환 받을 수 있는 산출 값으로 전송됩니다.

두 번째 거래에서 폐쇄를 시작하지 않은 정직한 노드는 OP_IF 분기를 사용하여 OP_IF 스크립트에 전송된 모든 자금을 청구합니다.

본 유형은 3가지 채널 폐쇄 유형 중 가장 많이 나타나는 유형이며 가장 낮은 수준의 개인 정보 보호를 제공합니다.

예시 폐쇄:

정의구현 거래를 구성하는 방법

아래의 임의적 시나리오에서 저희는 다음 단계에 따라 수동으로 정의구현 거래를 구성해 보았습니다: 

1. “BitMEXThief”라는 가명으로 새로운 라이트닝 네트워크 노드 (LND)를 구성하고 BitMEXResearch 라이트닝 노드를 통해 미화 50 달러 (400,000 사토시) 상당의 채널을 개방합니다
2. BitMEXThief 노드를 종료하고 .lnd 폴더를 백업합니다
3. BitMEXThief 노드를 재시작하고 BitMEXResearch에 미화 25 달러 (20,000 사토시)를 지불합니다. 해당 채널은 이제 양방향으로 미화 25 달러로 조정되었습니다.
4. BitMEXThief 노드를 다시 종료합니다
5. BitMEXResearch 라이트닝 노드를 종료합니다 (최근 채널 상태를 절도의 목적을 가진 사용자의 노드로의 전파를 방지하기 위함)
6. BitMEXThief 노드를 채널 재조정 전 상태로 복원하고 이는 2단계에서의 상태를 의미합니다
7. 복원된 BitMEXThief 노드에서 이전 상태의 채널을 폐쇄하고 BitMEXThief 노드의 온체인 지갑에 미화 50 달러 (400,000 사토시)를 전부 청구합니다
8. BitMEXResearch 노드를 재시작합니다. 그런 다음 노드는 자동으로 절도 시도를 탐지하고 “정의구현 거래”를 전파하여 온체인 지갑에 전체 미화 50 달러 (수수료 미포함)를 전송합니다. 절도를 시도한 사용자는 채널 내의 모든 자금을 잃음으로써 징벌을 받게 됩니다. 이처럼 미화 25 달러를 절도하려 했던 악의적인 사용자는 결국 미화 50 달러 전부를 잃게 된 점에 유의해 주시기 바랍니다.

위의 실험은 라이트닝 네트워크가 실제로 효과가 있으며 절도 시도 시에는 징벌이 가해진다는 확신 제공과 함께 성공적으로 이루어졌습니다.

네트워크 정의구현 거래 데이터

저희 비트멕스는 자체적인 정의구현 거래를 실시한 후, 본 거래의 특징 (OP_IF 분기를 사용해서 반환된 입력 값)을 살펴보고 비트코인 블록체인에서 다른 형태의 정의구현 거래 또한 검색해 보았습니다. 저희는 2017년 12월까지 거슬러 올라가서 정의구현 채널 폐쇄로 보이는 241건의 거래를 확인할 수 있었습니다. Lightning Labs의 Alex Bosworth는 정의구현 거래를 식별하기 위한 도구를 개발하였으며 이는 저희의 기본적인 검색 방법론보다 더 강력할 수 있습니다.

그림 3 – 정의구현 거래 수 – 월별

(출처: BitMEX Research)

(공지사항: 본 데이터는 긍정 오류를 포함할 수 있습니다)

그림 4 – 정의구현 거래에서 반환된 암호화폐 가치 – 월별 (BTC)

(출처: BitMEX Research)

(공지사항: 본 데이터는 긍정 오류를 포함할 수 있습니다)

저희가 확인한 정의구현 거래는 총 2.22 BTC에 이르렀으며, 위의 그림 4와 같이 2019년 2월의 월별 총액은 약 0.67 BTC로 정점을 이루었습니다. 이는 결코 악의적인 사용자들이 총 2.22 BTC에 대한 절도 시도에 실패했다는 것을 의미하지는 않으며, 이는 비정직한 노드가 절도 시도가 이루어진 금액 (미확인된 최신 채널 상태)보다 훨씬 더 큰 금액으로 징벌했을 수 있기 때문입니다. 이와 같이 2.22 BTC는 정직한 비 채널 폐쇄 노드가 청구한 자금을 나타내며, 본 가치의 일부는 본래 부정직한 노드가 소유한 자금이며 다른 일부는 이들이 절도하려 했던 암호화폐의 가치입니다.

또한 241건의 정의구현 거래 중 많은 부분이 진정한 부정직함을 나타내지 않을 수 있습니다. 예를 들어, 일부 사용자들이 동일한 사용자가 논란의 소지가 있는 두 개의 라이트닝 노드 모두 소유 가능한 시스템을 시험했을 수도 있습니다. 또 다른 예로는 241건의 정의구현 거래 중 5건의 거래에는 피해자가 존재하지 않았으며 이는 비트멕스가 해당 거래와 관련하여 모든 노드와 자금을 소유했기 때문입니다.

2 BTC를 조금 상회하는 241건의 정의구현 거래는 라이트닝 네트워크의 규모에 비해 상당히 작습니다. 라이트닝 네트워크 통계 웹 사이트인 1ml.com은 현재 32,951개의 채널에 940개의 BTC가 묶여 있음을 나타내고 있습니다. 따라서 지난 18개월 동안의 총 정의구현 거래 수는 현재 라이트닝 채널 수의 0.7%에 불과합니다.

결론

라이트닝 네트워크가 견고하고 신뢰성이 있으며 확장 가능한 지불 시스템으로 성공하기 위해서는 정의구현 메커니즘이 절도를 예방 및 방지하는 데에 있어 효과적이어야 합니다. 최적의 정의구현 비율은 너무 높거나 성공적인 절도 행위가 너무 만연하여 정의의 위협이 충분하지 않을 수 있음을 보여주는 지 판단하기가 어려운 편입니다. 만일 너무 낮은 경우에는 아무도 절도를 시도하지 않는다는 의미일 수 있으며, 따라서 사용자들이 채널을 감시하지 않을 위험을 증가시킵니다. 이는 향후 대규모 시스템 채널 절도의 위험을 증가시킬 수 있습니다.

현재로써는 적어도 저희가 분석한 자료에 따르면, 급성장하는 라이트닝 네트워크에 합당한 수준의 정의구현이 있는 것으로 보입니다.