2020년의 혼란에도 불구하고, 비트코인의 기술 커뮤니티는 계속해서 발전하고 있습니다. 비트코인의 소프트웨어와 그 주변의 많은 프로젝트는 연중 내내 점진적으로 개선되었으며, 소프트웨어 최적화, 버그 수정 및 개인 정보 유출 패치가 이루어졌습니다. 이러한 작업의 대부분은 매우 중요하지만, 헤드라인을 끌어내지는 않습니다.
그러나 1년 동안 비트코인의 기술 발전을 조망하면 비트코인의 지속적인 기술적 진보에서 새로운 이정표를 강조할 수 있습니다. 2020년에도 지속적으로 성장하는 비트코인 개발 커뮤니티는 여러 유용한 새로운 기능과 몇 가지 특히 중요한 업그레이드 및 주목할 만한 개선 사항을 도입했습니다.
이 변동성이 큰 해가 끝나가면서, 지난 12개월 동안 비트코인의 가장 주목할 만한 기술 발전 중 일부는 다음과 같습니다…
PayJoin 및 CoinSwap을 통한 새로운 개인 정보 보호 도구
비트코인의 개인 정보 보호 측면에서, 올해 PayJoin 및 CoinSwap 프로젝트는 두 가지 유망한 발전을 나타냈습니다.
PayJoin, 또는 Pay to Endpoint (P2EP)로도 알려진 이 기술은 거래의 수신자가 CoinJoin을 통해 거래에 참여하여, 실제 송신자로부터 실제 지불을 받으면서 자금을 스스로에게 보내는 방식입니다. 블록체인 분석을 수행하는 감시자가 거래에서 전송된 모든 코인이 동일한 사람에게 속한다고 가정한다면 — 일반적으로 그렇게 가정하곤 합니다 — 그들은 잘못된 판단을 하게 됩니다. 이는 송신자와 수신자 모두의 개인 정보 보호에 이익이 되며, 감시자는 그들 간의 (과거) 코인 소유권을 혼동하게 됩니다. 더욱이, 충분한 사람들이 PayJoin을 사용하면, 이 중요한 블록체인 분석을 위한 휴리스틱이 완전히 무용지물이 될 수 있으며, 이는 PayJoin 거래를 하지 않은 사람들의 개인 정보 보호에도 이익이 됩니다.
PayJoin 도구의 데모 버전은 이미 2018년 말 온라인 도박 게임 Bustabit과 코인 믹싱 소프트웨어 JoinMarket에 구현되었고, 2019년 Samourai Wallet은 Cohoots의 우산 아래에서 더 제한된 버전을 출시했습니다. 그러나 올해 PayJoin은 여러 인기 있는 비트코인 프로젝트에 구현되었습니다. 특히 4월에 널리 사용되는 결제 처리 소프트웨어 BTCPay가 PayJoin 거래를 수용할 수 있도록 하여 BTCPay 사용자가 호환 가능한 지갑으로부터 PayJoin 거래를 수락할 수 있게 되었습니다. 개인 정보 보호에 중점을 둔 Wasabi Wallet은 같은 달에 이 호환성을 제공한 첫 번째 지갑이었고, JoinMarket(9월), Blue Wallet(10월), Sparrow Wallet(11월)도 그 해 나중에 뒤따랐습니다.
한편, 비트코인 개발자 Chris Belcher는 2013년 비트코인 코어 기여자 Gregory Maxwell이 처음 제안한 개인 정보 보호 기술인 CoinSwap의 구현을 실현하기 위해 나섰습니다. CoinSwap은 Atomic Swaps(라이트닝 네트워크의 기초가 되는 기술)를 활용하여 사용자가 서로 신뢰하지 않고 코인을 교환할 수 있게 해줍니다. 각 사용자는 자신의 거래 기록과 연결될 수 없는 코인을 얻게 됩니다.
비트코인 개인 정보 보호 분야의 세계적인 전문가인 Belcher는 5월에 CoinSwap 프로토콜을 구현하여 최대한의 개인 정보 보호를 보장하는 방법에 대한 자세한 개요를 발표했습니다. 이 제안은 CoinSwap 거래를 다른 거래와 구별할 수 없도록 만들고, 금액을 숨기기 위해 분할 기술을 사용하며, 감시 참가자를 혼란스럽게 하기 위해 지불 경로를 설정하는 등의 방법을 포함합니다. 몇 달 후인 6월, 인권 재단은 첫 번째 비트코인 개발 보조금이 Belcher와 그의 프로젝트 실현 노력에 돌아갈 것이라고 발표했습니다.
올해 대부분의 시간을 그의 구현 작업에 할애한 Belcher는 12월에 “비트코인 개인 정보 보호와 대체 가능성에 대한 큰 날”이라고 발표했습니다: 그는 비트코인의 테스트 네트워크(testnet)에서 최초의 성공적인 CoinSwap 거래를 수행했습니다.
라이트닝 네트워크가 Watchtowers(및 기타)로 더 견고해졌다
비트코인의 2계층 프로토콜인 라이트닝 네트워크는 더 빠르고 저렴하며 개인 정보 보호가 강화된 결제를 위해 2020년 동안 전반적으로 개선되었습니다. 라이트닝 구현인 LND, Eclair, C-Lightning 및 — 7월부터 — Electrum은 여러 새로운 소프트웨어 릴리스를 출시하였고, 프로토콜 위에 구축되는 프로젝트의 수가 증가하면서 라이트닝 개발은 그 어느 때보다 활발했습니다. 특히 주목할 만한 발전 중 하나는 Watchtowers가 라이트닝 네트워크의 남아 있는 약점을 해결하여 더 견고한 프로토콜을 만들어냈습니다.
라이트닝 네트워크의 단점 중 하나는 사용자가 결제 채널 파트너가 더 많은 자금을 주장하기 위해 오래된 채널 상태를 방송하여 속이지 않도록 결제 채널을 주의 깊게 살펴봐야 한다는 것입니다. 라이트닝 사용자는 채널 파트너가 속이려 할 경우 개입할 수 있지만, 이는 비트코인 블록체인을 모니터링해야 하며, 일반 사용자들은 그렇게 자주 하지 않을 수 있습니다.
속임수 시도가 놓치는 위험을 줄이기 위해, 라이트닝 프로토콜은 채널 모니터링을 Watchtowers라는 중립적인 관찰자에게 아웃소싱할 수 있도록 허용합니다. 2019년 말 LND에 의해 도입된 첫 번째 Watchtower 소프트웨어에 추가하여, 올해 2월에는 전용 Watchtower 구현인 Eye of Satoshi의 알파 버전이 출시되었습니다. 그 직후, 제안된 Watchtower 프로토콜 사양이 업데이트되었고, C-Lightning은 5월에 Eye of Satoshi에 대한 지원을 출시했습니다. Eye of Satoshi의 버전 1은 7월에 출시되었습니다.
2020년의 다른 주목할 만한 라이트닝 발전에는 사용자가 결제 채널 업데이트 이후 온체인 수수료가 예상보다 많이 상승하더라도 단독으로 자금을 청구할 수 있도록 보장하는 앵커 출력에 대한 지속적인 작업, 사용자가 라이트닝 결제를 더 작은 조각으로 할 수 있도록 하는 다중 경로 결제, 라이트닝 네트워크 네이티브 메시징 애플리케이션 Juggernaut, 채널 관리 도구 Faraday, 라이트닝 루프 베타 릴리스, 새롭게 발견된 약점 및 (제안된) 해결책 등이 포함됩니다.
Miniscript 이후, 비트코인 프로그래밍이 Minsc로 더 쉬워졌다
비트코인 거래에 포함된 코드는 다음 거래에서 코인을 지출하기 위해 충족해야 하는 조건을 명시하는 비트코인 전용 프로그래밍 언어인 Script로 작성됩니다. 그러나 Script는 다루기 어려울 수 있습니다: 프로그래머 용어로 Script는 “이해하기 어렵다”고 할 수 있습니다. 이는 특히 조금 더 복잡해질수록, 스크립트의 특정 부분이 실제로 무엇을 허용하는지 이해하기 어려울 수 있음을 의미합니다: 거래는 의도한 것과는 다른 조건에서 코인이 지출될 수 있도록 하는 코드를 의도치 않게 포함할 수 있습니다. 이는 많은 비트코인 소프트웨어 애플리케이션, 예를 들어 지갑이 Script의 전체 잠재력을 활용하는 것을 자제하는 이유 중 하나입니다.
지난 몇 년 동안 (전) Blockstream 연구원인 Andrew Poelstra, Pieter Wuille 및 Sanket Kanjalkar는 Script의 “간소화된” 버전인 Miniscript를 설계했습니다. Miniscript는 Script로 할 수 있는 거의 모든 것을 가능하게 하도록 신중하게 선택된 “도구”의 모음입니다. 사용하기 쉽고 프로그래머가 검증하기도 쉽습니다. 따라서 Miniscript의 한 줄은 여전히 유효한 Script의 한 줄이지만, 본질적으로는 코드의 예기치 않은 결과를 방지하여 인간 오류를 피합니다; Miniscript는 이해하기 쉽습니다. 올해 11월, Rugged Bytes의 연구 및 개발 책임자인 Dmitry Petukhov은 Miniscript의 공식 사양을 발표했습니다.
비트코인 거래 생성을 더욱 쉽게 만들기 위해, Wuille은 Miniscript를 위한 “정책 언어”를 설계했습니다. 이는 Miniscript로 컴파일(변환)될 수 있는 자체 프로그래밍 언어입니다. Wuille의 작업을 바탕으로, 비트코인 개발자 Nadav Ivgi는 올해 Minsc라는 또 다른 새로운 프로그래밍 언어를 개발했습니다. 7월에 처음 발표되었고 11월에 주요 업그레이드가 이어졌으며, Minsc는 아직 진행 중이지만 비트코인 거래 생성을 크게 단순화할 것으로 예상됩니다. 이는 상호 운용 가능한 CoinJoin 지갑, 스마트 계약 솔루션, 2계층 프로토콜 등 비트코인의 다재다능성을 최대한 활용하는 다양한 유망한 기능을 열 수 있습니다.
DLC로 스마트 계약이 더 똑똑해졌다
스마트 계약이 외부 데이터에 의존할 때 — 블록체인에 존재하지 않는 데이터 — 이들은 “오라클”이라고 불리는 외부 소스에 의존합니다. 예를 들어 두 사용자가 스포츠 경기의 결과에 베팅하고 싶다면, 오라클은 경기가 끝난 후 올바른 예측을 한 사람에게 베팅을 정산하기 위해 경기 결과를 사용해야 합니다.
매우 기본적인 스포츠 베팅 설정은 두 명의 플레이어와 오라클이 각각 하나의 키를 보유하는 2-3 다중 서명(multisig) 주소로 구성될 수 있으며, 오라클은 베팅의 세부 사항을 알고 있습니다. 경기가 끝난 후 두 플레이어는 오라클의 키 없이 다중 서명에서 승자에게 자금을 전송하기 위해 협력할 수 있습니다. 그러나 패자가 협력하기를 거부하면, 오라클은 자신의 세 번째 키를 사용하여 승자와 협력하여 다중 서명에서 자금을 전송할 수 있습니다. 이 시스템은 작동하지만 두 가지 주요 단점이 있습니다. 첫째, 두 플레이어는 오라클이 상대방과 공모하지 않을 것이라고 신뢰해야 합니다. 둘째, 오라클은 베팅에 대한 정보를 받아야 하며, 정산 과정에서 능동적인 역할을 해야 합니다: 이는 플레이어가 오라클로부터 개인 정보를 보호할 수 없게 하며, 설정이 몇 명 이상의 플레이어가 베팅하고 싶을 경우 잘 확장되지 않습니다.
더 나은 해결책은 2017년 MIT 미디어랩의 디지털 통화 이니셔티브 연구원 Thaddeus Dryja에 의해 제안되었습니다: 비밀 로그 계약(DLCs)입니다. DLC는 오라클이 사건의 결과에 해당하는 암호화 서명을 게시하는 기발한 수학적 트릭을 사용합니다. 위의 예에서, 오라클은 첫 번째 팀이 이기면 하나의 서명을 게시하고, 다른 팀이 이기면 다른 서명을 게시합니다. 트릭은 스마트 계약이 승리한 플레이어가 게시된 서명을 사용하여 자금을 청구할 수 있도록 설계되어 있다는 것입니다.
DLC에서는 오라클의 스마트 계약 참여가 서명 게시로 최소화됩니다; 이는 스포츠 베팅 예에서 기존 뉴스 서비스가 정기 방송의 일환으로 수행할 수 있습니다. 이는 오라클이 베팅의 세부 사항을 알 필요가 없으며, 사실상 베팅이 있었다는 사실조차 알 필요가 없음을 의미합니다. 한편, 아무 수의 사람들이 서명을 사용하여 추가적인 오라클의 개입 없이 베팅을 정산할 수 있어 확장성에 큰 이점을 제공합니다. 이론적으로 오라클이 여전히 누군가와 공모하여 잘못된 결과를 방송할 수 있지만, 그러한 부정직한 행동은 누구에게나 명백하게 드러나며 오라클의 평판을 손상시킬 것입니다.
올해 1월, CEO Chris Stewart는 그의 회사 Suredbits가 Crypto Garage와 협력하여 DLC에 대한 사양 작업을 시작했다고 발표했습니다. 2월, Suredbits 엔지니어 Nadav Kohen은 첫 번째 작동 코드를 발표했습니다. 그리고 9월까지 Suredbits와 Crypto Garage는 소프트웨어를 사용할 수 있는 수준으로 개발했습니다: Stewart와 비트코인 개발자 Nicolas Dorier는 미국 대통령 선거 결과에 베팅하기 위해 비트코인의 최초의 DLC에 참여했습니다. Biden에 베팅한 Stewart는 12월에 자신의 상금을 청구했습니다.
비트코인 금고로 보유가 더 안전해지고 있다
거래소 해킹 및 기타 비트코인 강탈 사건의 긴 목록은 개인 키를 안전하게 저장하는 것이 여전히 도전 과제임을 증명합니다, 특히 많은 코인이 걸려 있는 경우에는 더욱 그렇습니다.
하지만 코인을 저장하기 위한 더 안전한 솔루션이 개발되고 있습니다. 비트코인 금고는 2016년으로 거슬러 올라가는 개념으로, 여러 번의 확인된 거래와 시간 지연이 필요하여 실제로 자금을 지출하는 데 사용되는 스마트 계약의 일종입니다. 이는 잠재적인 피해자가 강탈이 너무 늦기 전에 되돌릴 기회를 제공합니다.
2020년에는 두 가지 유형의 금고 프로토타입이 출시되었습니다.
첫 번째 금고 프로토타입은 비트코인 코어 기여자 Bryan Bishop에 의해 4월에 발표되었습니다. 간단히 말해, Bishop의 설계는 사전 서명된(그리고 아직 방송되지 않은) 거래를 기반으로 하며, 이는 금고에서 사용자의 일반(“핫”) 지갑으로 자금을 지출하는 시간 잠금 지연을 포함하고, 시간 잠금 없이 자금을 대체 주소로 리디렉션할 수 있는 대안 지출 옵션을 제공합니다; 아마도 새롭고 더 안전한 금고일 것입니다. 중요하게도, 사전 서명된 거래를 서명하는 데 사용된 개인 키는 금고가 생성될 때 삭제되므로 공격자는 사전 서명된 거래 자체만 훔칠 수 있습니다.
이 설정은 공격자가 자금을 주장하기 매우 어렵게 만듭니다. 사전 서명된 거래가 도난당하더라도, 도둑은 단순히 핫 지갑으로 자금을 지출할 수 있으며, 피해자가 자신의 핫 지갑의 보안성을 신뢰하지 않는 경우, 내장된 시간 지연을 사용하여 자금을 더 안전한 주소로 이동할 수 있습니다. (도둑이 핫 지갑을 단순히 손상시키고 금고 사용자가 자금을 보낼 때까지 인내심을 가지고 기다리는 것을 방지하기 위해, Bishop의 설계는 사용자가 한 번에 소량씩만 금고에서 인출할 수 있도록 제한합니다.)
4월 중순, 비트코인 개발자 Antoine Poinsot는 Chainsmiths CEO Kevin Loaec와 함께 설계한 대체 금고 데모인 Revault를 발표했습니다. Revault는 사전 서명된 거래를 사용하는 것과 같은 방식에서 Bishop의 금고와 유사하지만, 다중 사용자 설정을 위해 특별히 설계되었습니다. Revault는 미리 정해진 사용자 그룹의 하위 집합이 금고에서 핫 지갑으로 자금을 지출할 수 있도록 하며, 또한 시간 지연을 포함합니다. 금고 참가자는 지출에 동의하지 않을 경우 이 시간 지연을 사용하여 자금을 금고로 반환할 수 있으며, 상황을 전혀 신뢰하지 않는 경우 자금을 대체의 더 안전한 주소로 리디렉션할 수 있습니다.
또한, Revault는 금고에서 인출할 때 시간 잠금이 활성화되면 사용자가 핫 지갑에서 즉시 거래를 생성해야 하며, 이는 서버의 공동 서명이 필요합니다. 서버는 모든 거래에 서명하도록 프로그래밍되어 있지만, 충돌하는 거래에는 서명하지 않도록 되어 있으므로, 공격자가 (금고와) 핫 지갑을 손상시키면 다른 누구보다 먼저 자금을 주장해야 하며, 시간 잠금이 만료되기 전에 그렇게 해야 합니다. 이는 핫 지갑이 손상되었음을 명백하게 하여 Revault 사용자 그룹에 경고하고, 시간 잠금 만료 전에 자금을 리디렉션할 수 있도록 합니다.
Taproot가 이제 활성화 고려 중
Taproot는 2017년 8월 Segregated Witness가 활성화된 이후 첫 번째 비트코인 프로토콜 업그레이드가 될 것입니다. 2018년 1월 비트코인 코어 기여자 Gregory Maxwell에 의해 처음 제안된 Taproot는 사용자가 일반적인 비트코인 거래에서 스마트 계약을 “숨길” 수 있도록 합니다: 복잡한 다중 서명 구조는 단순한 지불과 구별될 수 없습니다.
Taproot 업그레이드는 또한 Schnorr 서명 알고리즘을 포함합니다. 많은 암호학자들은 Schnorr 서명 체계가 이 분야에서 가장 우수하다고 간주하며, 그 수학적 특성은 높은 수준의 정확성을 제공하고, 변조에 영향을 받지 않으며, 상대적으로 빠르게 검증됩니다. Schnorr의 “선형 수학”은 또한 더 간결한 유형의 다중 서명 솔루션, 멋진 스마트 계약 설정 및 물론 Taproot 자체와 같은 새로운 가능성을 열 수 있습니다.
2020년 내내 지속적인 개발 후, Taproot의 코드는 10월에 비트코인 코어 코드베이스에 병합되었으며, 곧 출시될 비트코인 코어 0.21.0의 일부가 될 것입니다. 그러나 비트코인 코어 0.21.0은 Taproot 활성화 로직을 포함하지 않을 것입니다. 이는 아마도 다가오는 소규모 비트코인 코어 릴리스(아마도 비트코인 코어 0.21.1)에 포함될 것입니다.
활성화 로직은 2020년 내내 논의의 주제가 되었으며, 다양한 잠재적 활성화 메커니즘이 고려되고 있습니다. 이들 대부분은 처음에는 해시 파워 조정을 활용하여, 궁극적으로 해시 파워 지원 없이도 업그레이드가 활성화되는 기한에 도달할 것입니다. 그러나 비트코인 코어 기여자 AJ Towns가 발표한 10월 여론 조사에서 분명히 드러났듯이, 모든 비트코인 코어 기여자가 기한이 사전 프로그래밍되어야 한다고 동의하지 않거나, 기한이 얼마나 멀어야 하는지에 대해 동의하지 않습니다(일부 다른 소소한 의견 차이도 있습니다).
그러나 궁극적으로 어떤 활성화 메커니즘이 선택되든, Taproot가 해시 파워 조정을 통해 원활하게 활성화될 가능성이 점점 더 높아 보입니다. 11월에 주요 채굴 풀인 Poolin은 다른 채굴 풀들이 Taproot와 Taproot 활성화에 대한 의견을 제시하도록 장려하는 이니셔티브를 시작했습니다. 지금까지의 반응은 Taproot에 매우 우호적이며, 전체 해시 파워의 90% 이상이 이를 지지하고 있으며, 제안된 업그레이드에 반대하는 채굴 풀은 없습니다.
비트코인의 2020년 기술 발전에 대한 더 광범위하고 상세한 요약을 보려면Bitcoin Optech 2020 Year-in-Review Special도 참고하세요.