※본 글은 비트코인매거진에 게재된 “Atomic Swaps: How the Lightning Network Extends to Altcoins”를 번역한 글입니다.
비트코인에 도입되기를 기다리고 있는 라이트닝 네트웍 기능이 거래확정 시간을 단축하고 수수료를 인하하는 효과를 가져올 것이라는 사실은 잘 알려져 있습니다. 하지만 이 놀라운 기술이 비트코인 이외의 다른 코인에도 적용될 수 있다는 사실은 잘 알려져 있지 않습니다.
비트코인에 적용된 것과 동일한 p2p 프로토콜이 다른 많은 알트코인들에도 적용될 수 있으며, 심지어 서로 다른 코인들 사이에도 활용될 수 있습니다. 이를 통해 신뢰가 불필요한 알트코인 결제 시스템을 만들 수 있으며 탈중앙화된 알트코인간의 교환이 가능해질 뿐 아니라 비트코인의 수수료 또한 낮아지는 등 매우 다양한 가능성이 라이트닝 네트웍 기술에 의해 가능해집니다.
아토믹 스왑
비트코인을 바로 다른 알트코인과 거래할 수 있게 만드는 것은 새로운 개념이 아닙니다. 원래 이름은 아토믹 크로스-체인 트레이딩(atomic cross-chain trading)이며 줄여서 아토믹 스왑이라 불리는 이 기술은 2013년 티어 놀란에 의해 처음 제안되었습니다.
예를 들어, 200 라이트코인을 가진 앨리스가 1 비트코인을 원한다고 해봅시다. 밥은 반대로 1 비트코인을 가지고 있고 200 라이트코인을 원합니다. 앨리스와 밥은 서로의 코인을 교환하기로 했습니다. 하지만 앨리스와 밥은 서로를 믿지 못하며, 이때문에 누구도 코인을 먼저 보내기를 원치 않습니다. 상대방을 믿지 못하기 때문입니다.
이 시점에서 앨리스와 밥에게 필요한 것이 바로 아토믹 스왑입니다.
아토믹 스왑은 다중서명 주소 기능과 타임-락 기능에 기반한 해쉬 타임-락 계약(HTLC, hash time-locked contract)으로 알려진 기발한 기술을 사용합니다. 이 기술은 비트코인과 대부분의 알트코인이 가진 기본 스트립트 언어로 만들 수 있습니다.
간단히 말하면, 앨리스와 밥은 서로에게 블록체인을 보냅니다. 하나는 비트코인이고 하나는 라이트코인입니다. 비트코인 거래를 통해 1 비트코인이 밥으로부터 앨리스에게 전달되지만, 앨리스는 자신만이 알고있는 비밀 숫자를 밝혀야만 이를 받을 수 있습니다. 라이트코인 거래를 통해 앨리스가 밥에게 보낸 200 라이트코인을 밥이 받기 위해서도 같은 비밀 숫자가 필요합니다.
앨리스가 자신에게 도착한 1 비트코인을 받을 때, 그녀는 비트코인 블록체인을 통해 이 비밀번호를 공개하게 됩니다. 밥을 이를 통해 그 비밀번호를 알게 되고, 자신에게 도착한 200 라이트코인을 받을 수 있습니다.
거래는 두 별개의 블록체인에서 이루어지지만 이들은 사실상 서로 연결되어 있는 셈입니다. 밥은 비트코인 블록체인을 관찰하다가 앨리스가 자신의 비트코인을 찾을 때, 자신에게 온 라이트코인을 찾으면 됩니다.
이런 거래는 지금도 가능합니다. 단지 복잡할 뿐입니다. 앨리스와 밥은 먼저 자신이 원하는 거래에 맞는 상대방을 찾아야 하며, 그 다음에도 여러 블록체인 상에서 몇 번의 거래를 처리해야 합니다.
우리는 이를 더 향상시킬 수 있습니다.
(밥이 적절한 시간 안에 라이트코인을 받을 수 있도록 앨리스의 시간을 제한하는 몇 가지 다른 조작이 필요합니다. 이번 글에서는 그 내용은 다루지 않습니다. 해쉬 타임-락 계약(HTLC)에 대한 자세한 정보는 “Understanding the Lightning Network, Part 2: Creating the Network“에 설명되어 있습니다.)
라이트닝 네트웍
라이트닝 네트웍은 비트코인에 맞도록 만들어진 기술입니다. 그러나 비트코인과 같은 코드 기반을 가지는 라이트코인, 도지코인, Z캐쉬 등에도 라이트닝 네트웍 기술은 쓰일 수 있습니다. 비트코인과 비슷한 수준의 프로그래밍이 가능한 알트코인과 이더리움이나 이더리움 클래식처럼 비트코인보다 더 고도화된 프로그래밍이 가능한 알트코인에서도 이와 비슷한 기술을 구현할 수 있습니다.
아토믹 스왑과 마찬가지로 라이트닝 네트웍 역시 해쉬 타임-락 계약을 이용합니다. 아토믹 스왑이 블록체인들을 서로 연결시킨다면, 라이트닝 네트웍은 결제 채널 사이를 연결합니다. 예를 들어 앨리스와 밥이 각각 캐롤과 결제 채널을 가지고 있다면, 앨리스와 밥은 캐롤을 신뢰하지 않을때에소 라이트닝 네트웍을 이용해 서로 거래할 수 있습니다.
두 기술의 근본적인 기제가 동일하기 때문에 라이트닝 네트웍과 아토믹 스왑을 통합하는 것은 자연스러운 확장입니다. 이는 서로 다른 블록체인의 라이트닝 네트웍을 연동하게 만드는 결과를 가져옵니다.
이 말은 곧 두 블록체인과 모두 결제 채널을 열어놓은 사람은 알트코인 간의 교환이 가능하며 다른 여러 기능 또한 가진 결제 시스템의 역할을 수행할 수 있게 된다는 뜻입니다.
이런 예를 생각해봅시다. 라이트코인 만을 가지고 있는 앨리스가 밥이 1 비트코인 가격을 매겨놓은 밥의 컴퓨터를 사고싶어 합니다. 앨리스는 캐롤과 라이트코인 채널을 열어 놓았고, 밥은 캐롤과 비트코인 채널을 열어 놓은 상태입니다. 이제 앨리스는 200 라이트코인을 캐롤에게 보내고, 캐롤은 1 비트코인을 밥에게 보내면 됩니다. 이 거래들은 모두 해쉬 타임-락 계약으로 이루어지며, 캐롤은 이 거래에서 신뢰가 불필요한 결제 시스템 역할을 했습니다.
만약 앨리스와 밥이 각각 캐롤과 비트코인 결제 채널과 라이트코인 결제 채널을 모두 열어 놓았다면, 앨리스와 밥은 이를 이용해 서로의 코인을 교환할 수 있습니다.
앨리스가 캐롤에게 200 라이트코인을 보내면 캐롤은 이를 그대로 밥에게 전달합니다. 밥이 캐롤에게 보낸 1 비트코인 역시 앨리스에게 그대로 전달됩니다. 이 거래들 역시 해쉬 타임-락 계약을 통해 이루어지며, 캐롤은 이때 신뢰가 필요없는 알트코인 환전소의 역할을 한 셈입니다.
마지막으로, 다른 블록체인의 라이트닝 네트웍에 의해 비트코인의 라이트닝 네트웍 성능이 더 향상될 수도 있습니다. 예를 들어 비트코인과 비트코인 사이의 결제가 더 적은 수수료를 요구하는 라이트코인 블록체인을 통해 이루어질 수 있습니다.
게다가 여러 종류의 코인을 가진 이가 쉽게 자신의 코인 비율을 조절할 수 있게 됩니다. 예를 들어 앨리스가 밥과 가진 라이트코인 채널에는 400 라이트코인이, 비트코인 채널에는 비트코인이 하나도 없다면, 200 라이트코인을 자신의 비트코인 채널로 옮길 수 있습니다.
문제점
위의 모든 시나리오가 가능해지기 위해서는 몇 가지 문제를 해결해야 합니다.
그중 하나가 바로 서비스 거부 공격(DoS)입니다. 라이트닝 네트웍은 그 자체로 누구도 코인을 훔칠 수 없게 만들어져 있지만, 중간의 누군가가 결제를 막거나 지연시킬 수 있습니다. 이 문제는 비협조적인 참여자들과의 채널을 닫음으로써 해결할 수 있습니다. 이를 통해 여전히 채널을 열어놓기를 원하는 비협조적인 참여자들이 서비스 거부 공격에 참여하는 것을 막을 수 있습니다.
그러나 모든 비협조적인 채널이 닫히고 공격자가 배제되었다는 사실을 확인하기위해서는 결제 체인의 각자가 모든 참여자를 감시할 수 있어야합니다. 여섯 명으로 이루어진 체인 중 단 두 명이 라이트코인 채널을 사용하는 경우에도 여섯 명 모두 그 채널이 막히는 경우를 대비해 라이트코인 상의 거래를 파악할 수 있어야하는 문제도 있습니다.
물론 이런 문제는 라이트닝 네트웍이 널리 적용된 후의 이야기입니다. 또한 라이트닝 네트웍이 최적의 성능을 내기 위해서는 거래 가변성(malleability)문제가 해결된 이후 여야 합니다. 비트코인 핵심 개발자들이 이 거래 가변성 문제를 해결하기위해 제시한 세그윗이 비트코인과 라이트코인을 비롯한 몇몇 알트코인에 적용되기를 기다리고 있습니다.
원문: 뉴스페퍼민트