[비트코인과 어색해요 시리즈] #3. 새로운 비트코인 레이어 2, Ark

장재석
Decipher Media |디사이퍼 미디어
17 min readSep 10, 2023

Author: 장재석

본 시리즈는 서울대학교 블록체인 학회 디사이퍼(Decipher)에서 비트코인을 조금 더 올바르게 이해를 해보자고 시작한 “비트코인과 어색해요” 팀이 비트코인에 대한 여러 관점을 주제로 최종 발표한 내용을 담았습니다. 본 글은 비트코인의 개발 주체부터 시작하여 개발비 지원 경로, 그리고 개발 과정 및 적용 등에 대한 내용을 광범위하게 다루고 있습니다.

Seoul Nat’l Univ. Blockchain Academy Decipher(@decipher-media)

0. 들어가며

레이어 2는 기본 네트워크 위에 구축된 별도의 네트워크입니다. 별도의 네트워크에서 트랜잭션을 실행하고 그 결과를 레이어 1에 제출함으로써, 레이어 1의 확장성을 제고하고 레이어 1에 보안을 의존합니다.

비트코인의 레이어 2는 라이트닝 네트워크가 대표적입니다. 라이트닝 네트워크는 2016년 2월 조셉 푼(Joseph Poon)과 타디우스 드라이어(Thaddeus Dryja)가 처음 제안했으며, 2018년 3월에 출시되었습니다. 라이트닝 네트워크는 두 주체가 일정량의 BTC를 예치해서 페이먼트 채널을 열고, 서로 트랜잭션을 주고받다가 최종 장부만 비트코인 온체인에 기록하는 방식으로 작동합니다.

채널에 예치된 BTC의 총량을 라이트닝 네트워크의 용량이라고 하는데, 라이트닝 네트워크를 사용하려면 BTC를 예치하는 것이 필수적이므로 라이트닝 네트워크의 용량은 라이트닝 네트워크가 얼마나 활성화되었는지를 나타내는 지표로 사용됩니다. 6월 24일에 라이트닝 네트워크의 용량이 5,630BTC를 기록했는데, 당시 BTC를 달러로 환산했을 때 $172m에 달합니다. 이는 1년 전 대비 42%, 3년 전 대비 1,000% 성장한 수치입니다.

라이트닝 네트워크에 더 자세한 내용은 디사이퍼 3기 최준우 님이 쓴 글들을 참고 부탁드립니다. (라이트닝 네트워크 시리즈 1편, 2편)

비트코인에는 라이트닝 네트워크 말고도 레이어 2를 구축하려는 여러 시도가 있었는데, 대표적으로 라이트닝 네트워크를 업그레이드한 Eltoo나, 사이드 체인 형태인 Rootstock, Liquid Network 등이 있습니다.

최근 새롭게 제안된 레이어 2인 아크(Ark)는 라이트닝 네트워크나 사이드 체인 형태가 아닌 새로운 형태의 레이어 2입니다. 본 글에서는 아크의 작동원리, 장점 및 한계를 알아보겠습니다.

1. 새로운 비트코인 레이어 2, 아크(Ark)

아크는 올해 5월 22일 부락 케첼리(Burak Keceli)라는 개발자에 의해 제안되었습니다. 부락은 아크가 라이트닝 네트워크의 한계를 극복했다고 주장합니다.

1.1 부락 케첼리 (Burak Keceli)

부락 케첼리는 24살 터키 출생의 개발자입니다. 작년 11월에 부락은 LND 노드가 채널을 열고 닫지 못하게 만들면서 비트코인 커뮤니티의 관심을 받았습니다. LND 노드란 라이트닝 랩스에서 만든 라이트닝 노드로, 전체 라이트닝 노드의 90%를 담당하고 있습니다.

세그윗 v0에서는 서명 크기가 10,000 바이트로 제한되어 있었는데, 세그윗 v1에서는 해당 제한이 사라졌습니다. 하지만, btcd wire parsing 라이브러리는 해당 제한을 제거하지 않은 상태였습니다. 이러한 버그를 발견한 부락은 서명을 10,000 바이트가 넘어가는 트랜잭션을 생성했습니다.

LND 노드는 btcd wire parsing 라이브러리를 사용하기에 모든 LND 노드는 부락이 보낸 트랜잭션이 포함된 블록을 읽어들이지 못하는 상태가 되었고, 이에 따라 채널을 열고 닫지 못하게 되었습니다. 해당 문제는 라이트닝 랩스에서 LND 노드 v0.15.4-beta 핫픽스를 출시하면서 일단락되었습니다.

작년에 비트코인 커뮤니티에 이름을 알린 부락은 올해 5월 22일에 “Ark: An Alternative Privacy-preserving Second Layer Solution”이라는 제목의 이메일을 비트코인 개발자들에게 전송했습니다. 부락은 라이트닝 네트워크에서 Inbound liquidity가 필요한 게 불합리하다고 생각해서 새로운 레이어 2인 아크를 고안했다고 밝혔습니다.

1.2 라이트닝 네트워크의 Inbound Liquidity 문제

Inbound liquidity란, 채널에서 다른 상대방으로부터 받을 수 있는 비트코인의 양입니다. 위 그림에서, Alice의 Inbound liquidity는 0개이고, Bob의 Inbound liquidity는 3개입니다. 라이트닝 네트워크에서는 상호작용 없이 한 쪽에서 일방적으로 자금을 주입해서 채널을 여는 경우가 일반적입니다. 위 그림에서 Alice는 비트코인 4개를 공급해서 LSP(Liquidity Service Provider)와의 채널을 일방적으로 열었습니다. 해당 채널에서 Alice는 LSP를 통해 Bob한테 송금할 수 있지만, Inbound Liquidity가 없어서 Bob으로부터 자금을 받을 수 없습니다. 즉, Alice 같은 개인들은 LSP에게 Inbound Liquidity를 넣어달라고 요청해야 하므로 LSP에 의존하는 구조가 됩니다.

아크는 라이트닝 네트워크와 달리 inbound liquidity와 같은 온보딩 제약조건이 없습니다. 어떻게 아크가 inbound liquidity가 필요 없는 레이어 2를 도입했는지 아크 풀 생성 과정과 결제 과정을 따라가 보겠습니다.

2. 아크 풀 생성 과정

2.1 코인조인 (CoinJoin)

먼저 비트코인의 기능인 코인조인(CoinJoin)을 알아봅시다. 코인조인은 여러 송신자의 결제를 하나의 트랜잭션으로 모아서, 외부에서 어떤 송신자가 어떤 수신자에게 결제했는지 알게 어렵게 하는 기능입니다. 비트코인은 지갑 주소가 랜덤하게 생성되기 때문에 가명성은 보장되지만, 결제를 추적하거나 IP 주소를 모니터링하는 등의 방식으로 지갑 주소를 추적하는 방식 등을 통해 익명성은 보장되지 않습니다. 코인조인은 비트코인에 익명성을 강화하기 위해 나온 기능입니다. 코인조인의 예시는 다음과 같습니다.

  1. Alice, Bob, Carol이 각자 인풋 UTXO와 아웃풋을 어디로 보낼지 조정자(coordinator)에게 전달합니다.
  2. 조정자는 해당 정보를 바탕으로 하나의 코인조인 트랜잭션을 만들고 Alice, Bob, Carol에게 서명을 요청합니다.
  3. Alice, Bob, Carol이 코인조인 트랜잭션에 서명하고 조정자에게 다시 보냅니다.

2.2 코인조인을 활용한 코인풀 생성

위에서 본 일반적인 코인조인에서는 Alice, Bob, Carol이 자신의 UTXO를 각각 사용합니다. 하지만, 각각의 UTXO를 사용하지 않고 공유 UTXO을 만들어서 하나의 코인풀(CoinPool)을 구성하는 기능이 연구되고 있습니다. 코인풀이 도입되면 공유 UTXO에 누가 얼마의 금액을 넣었는지는 숨겨지며, 나중에 코인풀에서 자신이 넣은 금액만큼 사용할 수 있습니다.

2.3 vTXO

코인풀에서 자신의 지분을 확인하기 위해 vTXO(Virtual UTXO)라는 개념이 등장합니다. vTXO는 4주 후 만료되는 오프체인 상의 가상의 UTXO입니다. 비트코인 온체인에서의 UTXO의 흐름과 유사하게, 아크에서 결제 발생 시 vTXO는 상환되고 새로운 vTXO가 생성됩니다. 각 참가자는 vTXO를 통해 서명만 하고 전파는 하지 않은 트랜잭션을 들고 있습니다.

vTXO는 익명성을 강화하기 위한 두 가지 제약 사항이 있습니다. 첫째로, vTXO는 받은 후 4주 내 사용하지 않으면 만료됩니다. 만료된 vTXO는 뒤에서 설명할 ASP라는 주체가 갖습니다. 오랫동안 사용되지 않은 vTXO는 소유주를 특정하기 더 쉬운데, 기간을 제한함으로써 오랫동안 사용되지 않은 vTXO를 없앨 수 있습니다. 둘째로, vTXO의 값은 1 ~ 100만 사토시로 제한합니다. 값을 제한해서 동일한 가치의 vTXO가 많아지게 함으로써 vTXO의 소유주를 특정하기가 어려워지기 때문이라고 추측할 수 있습니다.

사용자가 자신의 온체인 UTXO와 대응되는 오프체인 vTXO를 발행하는 과정을 리프팅(Lifting)이라고 합니다. 리프팅은 아토믹한 양방향 페그 매커니즘(Atomic two-way peg mechanism)입니다. 아토믹하다는 것은 특정 작업이 완전히 실행되거나 아예 실행되지 않는 것을 뜻합니다. 양쪽에 문제가 없다면 완전히 실행되며, 둘 중 한쪽에 문제가 생기면 다른 쪽에서는 절대 실행되지 않습니다. 즉, 사용자는 제3의 신뢰 주체의 도움 없이 비트코인 온체인과 아크 오프체인 간 자산을 옮길 수 있습니다.

2.4 아크 풀 셋업 완료

위의 과정을 통해 여러 아크 코인 풀이 생기면 아래와 같은 그림이 나옵니다.

3. 아크 풀 내 결제 과정

이제 아크 풀이 셋업되었으니 송금 과정을 살펴보겠습니다. Carol이 Dave에게 1BTC를 송금하는 상황을 예시로 들겠습니다.

  1. A 풀의 Carol 소유 vTXO가 파괴되고, 파괴된 만큼 같은 풀에 ASP의 vTXO가 생성됩니다.
  2. 그와 동시에 ASP(위 그림에서 Server)가 새로운 UTXO를 지급해서 B 풀을 생성합니다.
  3. B 풀에 지급된 새로운 UTXO는 Dave한테 할당됩니다.

3.1 ASP (Ark Service Provider)

위에서 등장하는 ASP는 네트워크에 유동성을 공급하고 수수료를 받는 주체로, ASP 역할은 크게 아래 세 가지입니다.

  1. 유동성 제공자(Liquidity Provider): 아크 내 원활한 거래를 위한 유동성 확보
  2. 코인조인 조정자(CoinJoin Coordinator): 코인조인 세션을 5초마다 생성
  3. 라이트닝 서비스 제공자(Lightning Service Provider): 라이트닝 네트워크와 연결되어 확장성 강화

3.2 5초의 배치 기간

아크에서 결제가 일어날 때마다 ASP가 UTXO를 새로 주입해 주어야 한다면, 확장성이 그리 좋지 않을 것입니다. 하지만, 아크는 결제 당 UTXO 주입할 필요 없게 5초의 배치마다 풀을 생성합니다.

위의 그림의 첫 번째 3BTC 풀에서 Alice, Bob, Carol이, 두 번째 100BTC 풀에서 Dave부터 Zed까지 5초 안에 모두 결제했다면 하나의 UTXO를 소비하고 이 모든 결제를 처리할 수 있습니다.

3.3 커넥터 (Connector)

아크에서는 ASP가 중간자로서 자금을 이동해 주므로, 해당 과정이 아토믹해야 ASP가 자금을 훔치지 못합니다. 그래서 ASP가 생성하는 트랜잭션에는 커넥터라는 새로운 종류의 아웃풋이 추가되고, 해당 커넥터는 ASP가 상환받는 트랜잭션의 인풋으로 추가됩니다. 커넥터 덕분에 Dave가 자금을 받은 것이 확인되어야 ASP가 Carol의 자금을 받을 수 있습니다.

아크가 커넥터를 통해 어떻게 결제 과정이 완전히 아토믹하게 하는지 좀 더 자세히 알아보겠습니다.

  • ATLCs(Anchor Time Locked Contracts): 시간 내에 조건을 만족해야만 실행되는 조건부 결제
  • txlock: 상호 간에 동의한 트랜잭션 식별자(transaction identifier)로만 풀리는 조건

처음 vTXO가 생성되었을 때 ATLC가 같이 붙는데, 이 ATLC는 해당 vTXO가 사용될 때 커넥터에 붙으면서 txlock을 생성합니다. ASP가 vTXO를 청구할 때 txlock에 붙어있는 커넥터의 아웃풋 관련 정보가 변경되면 안 됩니다. 만약 ASP가 이중지불하면 같은 커넥터의 아웃풋 정보가 유효하지 않아서 txlock 조건을 만족시키지 못하고, 결제는 일어나지 않습니다. 참고로, 익명성을 강화하기 위해 커넥터와 vTXO의 연결은 blind mixing을 통해 난독화됩니다.

4. 장점

부락은 아크가 라이트닝 네트워크 대비 비대화성, 확장성, 보안성 등의 장점을 갖는다고 주장합니다.

4.1. 비대화성

만약 비트코인에 covenant primitive가 도입되면 상호작용 없이도 송금할 수 있습니다. Covenant Primitive란 조건부 트랜잭션 실행을 가능하게 하는 비트코인 스크립트 언어의 기능입니다. 특정 조건을 만족해야 작업을 수행할 수 있으므로, 수신자가 오프라인일 때 트랜잭션을 전파해도 트랜잭션이 실행되는 시점은 조건을 만족했을 때라 비대화성을 확보할 수 있습니다. 대표적인 covenant primitive로는 BIP-119가 있습니다.

BIP-119는 OP_CHECKTEMPLATEVERIFY(OP_CTV)라는 opcode를 비트코인 스크립트 언어에 추가하자는 프로포절입니다. 해당 opcode는 트랜잭션의 DefaultCheckTemplateVerifyHash가 스택의 요소와 같으면 실행되는 점이 핵심입니다. 즉, 사용자가 트랜잭션이 스크립트 템플릿에 정의된 사전 조건을 만족하는지 확인할 수 있습니다. BIP-119 도입을 통해 템플릿 해시에 트랜잭션 아웃풋을 직접 제한해서 통신 없이 아크에서 vTXO를 수신할 수 있습니다.

4.2. 확장성

첫째로, 아크는 라이트닝 네트워크와 달리 채널 오프닝이 불필요합니다. 아크는 페이먼트 채널 대신 코인조인 세션을 사용하는 새로운 형태의 레이어 2입니다. 채널을 여닫는 과정이 없으니 온체인 공간을 적게 소비합니다.

둘째로, 아크는 라이트닝 네트워크와 달리 Inbound Liquidity가 불필요합니다. ASP는 아크 내에서 거래를 도와줄뿐 사용자에게 자금을 주입해주지 않습니다. 그러므로 라이트닝 네트워크의 LSP와 달리 은행화되는 문제가 발생하지 않습니다.

마지막으로, 아크는 라이트닝 네트워크와 상호운용할 수 있어서 확장성이 높습니다. ASP가 HTLC(혹은 PTLC)를 아크 풀에 붙임으로써 LSP로도 기능할 수 있습니다.

  • HTLC(Hashed Time-Locked Contract): 라이트닝 네트워크에서 쓰이는 컨트랙트로, 특정 시간 동안 컨트랙트가 암호화됩니다. 해당 컨트랙트를 통해 BTC를 받는 수신자는 특정 시간 동안 송신자하고만 공유한 암호를 제시함으로써 자금을 청구할 수 있습니다. 만약 특정 시간 내에 암호를 제시하지 못한다면 송신자에게 BTC가 돌아갑니다.
  • PTLC(Point Time-Locked Contract): HTLC와 비슷한 역할을 하는 컨트랙트로, 해시를 통해 암호화하는 대신 타원함수를 사용합니다.

vTXO가 공유 UTXO를 구성하듯 아크 풀에 붙인 HTLC는 HTLC 아웃풋이라고 하는 공유 UTXO를 구성하며, 이 또한 vTXO와 동일하게 4주 후에 만료됩니다. 이러한 방식으로 아크 사용자들은 HTLC가 내재된 vTXO를 통해 라이트닝 네트워크로부터 자금을 전송받을 수 있습니다.

4.3. 보안성

아크에는 익명성을 강화하는 여러 장치가 있습니다.

  1. vTXO 제한
  • 값을 1 ~ 1백만 사토시로 제한
  • 기간을 4주로 제한

2. 결제 추적 난독화

  • plain tweaking: 아웃풋 값에 랜덤값을 추가해서 아웃풋을 변경하는 방법
  • blind mixing: 결제 참여자들의 코인을 섞는 방법

3. 커넥터와 vTXO의 연결을 blind mixing으로 난독화

5. 아크의 한계

5.1 선행 개발 조건

아크 풀을 생성하기 위해서는 여러 주체가 UTXO를 공유하는 코인풀 기능이 개발되어야 합니다. 코인풀 기능 개발이 선행되지 않는다면 아크 개발도 불가능합니다.

또한, 공유 UTXO을 만들 때 멀티시그에 서명해야 하므로 각 참여자는 온라인 상태여야 합니다. 비대화성을 확보하기 위해서는 BIP-119 (OP_CTV)가 필요하지만, 아직 비트코인에 해당 프로포절이 도입되지 않아서 현 상황에서는 비대화성으로 작동할 수 없습니다.

5.2 아이디어만 공유된 매우 초기 단계의 프로젝트

아크는 등장한 지 3개월도 안 된 새로운 아이디어입니다. 부락은 팟캐스트, 유튜브, 행사 등 다양한 채널을 통해 아크를 알리고 있지만, 아직 설명이 모호한 부분이 많습니다.

또한, 아직 구현된 게 없습니다. 아이디어를 실제로 구현하는 과정에서 예상치 못한 난관에 봉착할 수 있습니다. 예를 들어, 부락은 처음에 BIP-118 APO가 도입되면 상호작용 없이 아크에 참여할 수 있다고 했지만, 최근 BIP-118로는 해당 문제를 해결할 수 없다며 자신이 틀렸음을 밝혔습니다.

6. 결론

아크는 라이트닝 네트워크의 한계, 특히 Inbound Liquidity 제약을 극복할 수 있는 새로 제안된 비트코인 레이어 2입니다. 아직 매우 초기 단계로 실제 구현까지 오래 걸릴 것이며, BIP-119 등 covenant primitive가 도입되어서 수신자가 온라인 상태를 유지할 필요 없게 사용성이 개선되려면 더욱 많은 시기가 필요할 것입니다. 하지만, 아크처럼 비트코인의 확장성을 개선하려는 시도가 점점 많아진다면, 비트코인이 역사상 가장 건전한 화폐로서 널리 받아들여지는 시기가 앞당겨질 것이라고 기대합니다.

출처

아크 출처

라이트닝 출처

--

--