Home / Knowledge / JoinMarket 대 ZeroLink 및 CoinJoin을 통한 분산형 비트코인 프라이버시로 가는 길

JoinMarket 대 ZeroLink 및 CoinJoin을 통한 분산형 비트코인 프라이버시로 가는 길

JoinMarket 대 ZeroLink 및 CoinJoin을 통한 분산형 비트코인 프라이버시로 가는 길 1

“CoinJoin”이라는 단어를 들으면, 많은 비교적 새로운 비트코인 사용자들의 머릿속에 떠오르는 첫 번째 것들은 아마도 Wasabi Wallet와 Samourai Wallet의 ZeroLink 구현일 것입니다. 지난 몇 년 동안, 이 두 프로젝트는 비트코인 프라이버시를 준주류로 끌어올리며 훨씬 더 간단하고 접근 가능하게 만들었습니다.

하지만 이 분야에 새로 오신 분이라면, JoinMarket 프로젝트가 2015년부터 비트코인 사용자에게 CoinJoin 도구를 제공해왔다는 사실을 모르실 수도 있습니다.

공동 거래를 통해 일반 소유권 가정을 무너뜨리려는 아이디어는 비트코인 개발자 그렉 맥스웰이 2013년 1월에 제안했으며, 그 해 8월에 CoinJoin 개념으로 공식화되었습니다.

이 아이디어는 구현된 무언가가 출시되기까지 2년 동안 머물렀으며, 그 이유는 이전 시도에서 실패를 초래한 전반적인 아이디어의 문제, 즉 유동성을 끌어들이는 것이었습니다. CoinJoin은 매우 유용한 도구가 될 수 있지만, 당신과 CoinJoin을 할 의사가 있는 사람이 없거나 그들을 찾을 방법이 없다면, 실제로는 아무런 도움이 되지 않습니다.

문제는 사람들이 초기 풀에 참여하도록 설득하여 이를 더 큰 유동성 및 사용자 풀로 확대하는 방법이었습니다. JoinMarket의 해결책은 당시 꽤 간단하면서도 뛰어난 것이었습니다: 일관된 유동성 제공자가 CoinJoin 풀에 유동성을 제공하여 실제로 돈을 벌 수 있도록 시장 메커니즘을 제공하는 것이었습니다.

JoinMarket은 시장 조성자와 시장 수요자가 CoinJoin 유동성을 사고팔아 체인에서 그들의 활동을 익명화하는 주문서 기반의 시장으로 기능합니다.

조성자는 수요자가 그들의 서비스에 대한 대가를 지불하기를 기다리며 열린 제안으로 얼마든지 기다릴 수 있습니다. 이는 누군가와 혼합하기 위해 영원히 기다리는 사용자 문제를 해결합니다. 시장 조성자는 이익을 얻고자 하며, 수요자는 이러한 수수료를 지불하도록 유도됩니다. 이는 모두에게 윈-윈의 arrangement입니다.

그 구조와 조정 업그레이드의 잠재력에서, JoinMarket은 더 잘 알려진 ZeroLink에 비해 잠재적으로 더 분산된 동전 혼합 버전을 제공합니다. 방법은 다음과 같습니다.

혼합이 조정되는 방법: ZeroLink 대 JoinMarket

JoinMarket과 비교할 때 ZeroLink의 전반적인 구조는 매우 다릅니다.

Wasabi와 Samourai의 경우, 지갑 제작자가 운영하는 단일 조정 서버가 지갑에 코드화되어 있습니다. 모든 사용자는 이 중앙 서버에 연락하여 CoinJoin을 구성하기 위해 충분한 사용자가 등록될 때까지 기다리도록 “등록”하여 CoinJoin에 참여합니다. 필요한 수의 사용자가 등록되면, 조정 서버는 CoinJoin 거래에서 출력을 생성할 권리를 나타내는 블라인드 자격 증명을 서명하고, 사용자는 연결을 끊고 새로운 Tor 연결을 통해 거래 출력을 등록합니다.

이것은 조정자가 어떤 입력이 어떤 출력에 매핑되는지를 알지 못하도록 방지합니다. 사용자는 CoinJoin을 촉진하는 역할에 대해 조정자에게 수수료를 지불합니다. 이 모델에서는 프라이버시 이득 외에 유동성을 제공할 인센티브가 없으며, Dark Wallet과 같은 과거 시도의 문제에도 불구하고, 이것은 Wasabi와 Samourai에게는 잘 작동하는 것 같습니다.

반면 JoinMarket은 조성자가 광고하는 주문서가 있어 수요자가 사용 가능한 조성자 제안 중에서 선택할 수 있습니다(현재는 인터넷 릴레이 채팅 [IRC]를 통해 이루어집니다).

조성자는 고유 ID로 주문서에 연결한 후, 다음 정보를 포함하는 제안을 주문서에 게시합니다: 수요자와 혼합하기 위해 조성자가 청구하는 수수료, 조성자가 채굴 수수료에 기여할 금액, 그리고 그들이 혼합할 최소 및 최대 단위 가치. 그들은 또한 사람들이 그들과 직접 비공식적으로 연결할 수 있는 방법을 게시합니다.

수요자가 CoinJoin을 원할 때, 그들은 주문서를 다운로드하고 클라이언트가 설정에 따라 조성자를 선택합니다. 클라이언트가 조성자를 선택한 후, 수요자는 암호화를 위한 임시 공개 키를 게시하고 IRC를 통해 조성자와 암호화된 메시지로 소통을 시작합니다(여러 수요자가 동시에 단일 조성자와 연결될 수 있다는 점은 주목할 만합니다). 모든 당사자가 동의하면, 그들은 거래에 서명하고, 수요자의 수수료를 조성자에게 포함시켜 네트워크에 제출합니다.

이 조정 방식 때문에 조성자는 CoinJoin 구성을 조정하는 과정에서 수요자의 출력을 알게 됩니다. 이를 완화하기 위해 JoinMarket은 “텀블” 기능을 가지고 있어, 수요자의 클라이언트가 설정된 혼합 횟수에 도달할 때까지 여러 조성자와 여러 번 혼합합니다. 이는 단일 조성자가 단일 수요자의 전체 혼합 기록을 풀 수 없도록 보장합니다. 왜냐하면 “텀블 경로”를 따라 각 조성자는 그 한 거래에서만 연결을 알게 되기 때문입니다.

이러한 차이는 JoinMarket의 설계 아키텍처에 많은 전반적인 의미를 가집니다. 현재 프로젝트의 상태와 향후 계획을 살펴보면서 이를 확인할 수 있습니다.

시빌 공격 완화 방법: ZeroLink 대 JoinMarket

시빌 공격 — 이 맥락에서, 많은 사용자를 가장하여 프라이버시를 약화시키기 위해 가짜 “군중”을 만드는 단일 사용자 — 는 비트코인에서 모든 혼합 프로토콜의 근본적인 문제입니다. 만약 전체 군중이 당신과 시빌 공격자로 구성되어 있고, 다른 누구도 없다면, 공격자는 당신의 모든 코인을 알고 있으며 당신은 그들의 관점에서 아무런 프라이버시를 얻지 못합니다. 결국, 이 문제에 대한 근본적인 해결책은 없으며, 공격을 수행하는 비용을 증가시켜 완화할 수 있을 뿐입니다.

ZeroLink의 경우, 이 문제는 조정자가 수수료를 부과함으로써 완화됩니다. 채굴 수수료의 비용이 조정 서버가 수수료로 수집하는 수익보다 높기만 하면, 조정자조차도 자신의 사용자를 시빌 공격하려고 할 경우 순손실을 입게 됩니다.

JoinMarket의 경우, 문제는 좀 더 복잡합니다. 조성자가 주문서를 시빌 공격하여 수요자가 오직 그들과만 혼합하고 악의적인 조성자에게 전체 혼합 기록을 드러내도록 보호해야 합니다. 그러나 수요자가 CoinJoin을 요청한 후 조성자가 그들의 출력을 수요자에게 드러내고 프로토콜에서 이탈하는 공격자로부터 수요자를 보호해야 합니다.

이렇게 하면 악의적인 수요자가 그 조성자의 입력을 향후 거래에서 혼합한 수요자와 분리할 수 있습니다. 같은 조성자에 대해 여러 번 반복하면, 그들은 자신과 혼합한 수요자를 비공식적으로 식별할 수 있게 됩니다.

이 시스템에는 각 공격 클래스에 적절한 방어를 제공하는 두 가지 메커니즘이 있습니다: 첫 번째, 조성자를 염탐하는 수요자에 대처하는 것은 이산 로그 동등성의 증명(이 문서에서 두 번째 방어로도 알려진 PoDLE)입니다.

기본 아이디어는 비트코인 UTXO에 대한 개인/공개 키 쌍에 대해, 개인 키에 해당하는 두 번째 다른 공개 키를 생성하고, 두 키가 동일한 개인 키를 공유한다는 제로 지식 증명(ZKP)을 생성하는 것입니다. 두 번째 키와 증명을 조성자에게 제공한 후, 수요자는 혼합하고자 하는 출력에 해당하는 첫 번째 공개 키를 공개합니다.

이 설정은 조성자가 두 번째 공개 키와 ZKP를 다른 모든 조성자에게 게시할 수 있게 하여 수요자의 실제 출력을 드러내지 않습니다. 그렇게 하면, 원래 조성자와 조정 중인 수요자가 그 출력을 재사용하여 동시에 여러 조성자를 염탐하려고 할 경우, 모든 다른 조성자는 수요자의 첫 번째 공개 키가 게시된 두 번째 키와 ZKP와 일치한다는 것을 알게 됩니다. 그러면 그들은 악의적인 수요자에게 자신의 출력을 드러내는 것을 거부합니다. 이는 수요자가 조성자의 출력을 염탐하는 비용을 증가시킵니다. 수요자가 염탐하는 각 조성자에 대해 고유한 출력을 가져야 하며, 동일한 출출력을 재사용하여 여러 조성자를 공격할 수 없도록 합니다.

두 번째 방어 메커니즘은 주문서에서 여러 다른 조성자처럼 가장하는 악의적인 조성자로부터 수요자를 보호하는 것입니다. 이렇게 하면 악의적인 조성자가 수요자와 혼합한 수요자들의 혼합을 풀 수 있습니다.

이 메커니즘은 충실도 채권이라고 불리며, 본질적으로 많은 양의 비트코인을 잠금 해제하는 것입니다. 그렇게 하는 조성자는 그 키로 서명하고 메시지를 게시하여 시간 잠금된 코인에 대한 통제를 증명할 수 있습니다. 수요자의 클라이언트가 충실도 채권을 사용하도록 설정한 경우, 그들은 혼합에 사용할 조성자를 선택할 때 충실도 채권에 잠금된 가치가 더 높은 조성자를 선호하도록 가중치를 두게 됩니다. 충실도 채권은 잠금된 코인의 수의 제곱으로 가중치가 부여됩니다. 즉, 4 비트코인을 잠그면 16으로 가중치가 부여되고, 5는 25, 6은 36으로 가중치가 부여됩니다.

여기서의 논리는 조성자가 잠금된 코인이 많을수록 복리 혜택을 얻는다는 것입니다(수요자 클라이언트에게 더 자주 선택됨). 따라서 몇몇 정직한 조성자가 매우 큰 충실도 채권을 생성하면, 그들은 시빌 공격을 하는 조성자가 주문서에서 각 가짜 신원에 대해 그 큰 충실도 채권 금액을 복제해야 하므로 비용을 크게 증가시킵니다. 즉, 세 명의 정직한 조성자가 각각 10 비트코인을 충실도 채권으로 설정하면, 공격자는 혼합할 확률이 50%가 되기 위해 30 비트코인을 지출해야 하며, 66%의 확률로 선택되기 위해서는 60 비트코인이 필요합니다.

정직한 조성자가 충실도 채권을 사용할수록 악의적인 조성자에게 시빌 공격하는 비용이 증가합니다.

JoinMarket 조정 메커니즘 업그레이드 가능성

ZeroLink의 경우, 모든 사람은 중앙 조정 서버를 통해 조정합니다. 이는 시스템 설계와 신뢰 모델에서 신뢰성의 명시적인 부분입니다. 조정자가 다운되면, 아무도 CoinJoin을 할 수 없습니다.

JoinMarket은 중앙 집중식 실패 지점을 피하기 위해 주문서 시스템에서 기능하지만, 위에서 언급했듯이 현재는 주문서의 호스팅 및 통신 계층으로 IRC를 사용하고 있습니다. IRC는 JoinMarket의 잠재적인 중앙 집중식 실패 지점이며, ZeroLink의 조정 서버와 마찬가지입니다. 분산 방식으로 CoinJoin을 조정하는 프로젝트로서, 장기적으로 이 IRC에 대한 의존성을 더 견고한 것으로 대체해야 합니다.

가장 발전된 제안 중 하나는 Tor 프로젝트에서 사용하는 것과 유사한 디렉토리 서버 계획을 구현하는 것입니다. Tor 네트워크에서 클라이언트는 Tor 기여자가 운영하는 일련의 서버에 연결하여 그들이 구성할 수 있는 모든 노드를 받습니다.

JoinMarket의 아이디어는 클라이언트에게 모든 조성자와 열린 제안을 제공하는 유사한 서버 세트를 갖는 것입니다. 이러한 서버는 조성자 외의 누군가가 운영해야 하며, 모든 조성자는 더 많은 수수료를 수집하기 위해 자신의 디렉토리 서버에서만 자신을 광고할 인센티브가 있기 때문입니다. 또한, 디렉토리 서버 세트에 가입하기가 어려워야 하며, 그렇지 않으면 악의적인 엔티티가 많은 수의 서버를 생성하여 악의적인 서버에만 연결하는 모든 사용자를 시빌 공격할 수 있습니다.

충실도 채권은 여기서 시빌 문제를 해결하고, 조성자가 디렉토리 서버를 운영하려는 유인을 줄일 수 있습니다. 디렉토리 서버를 위한 충실도 채권에 코인을 잠그면, 조성자 채권에 잠글 수 있는 코인이 줄어들어, 잠금된 가치가 더 높은 조성자를 선택하는 수요자 클라이언트가 줄어들 수 있습니다.

아담 기브슨의 제안으로 JoinMarket에 c-lightning을 메시징 계층으로 통합하는 개념 증명도 있습니다. 디렉토리 서버의 맥락에서, 이는 Lightning Network를 사용하는 별도의 엔티티로서 그들을 수익화하는 방법을 촉진할 수 있습니다. 디렉토리 서버는 조성자에게 자신을 광고하기 위해 Lightning을 통해 소액의 수수료를 부과할 수 있습니다.

JoinMarket 조정 프로토콜 업그레이드 가능성

위에서 논의한 바와 같이, 조성자는 단일 CoinJoin 동안 수요자의 출력을 알게 됩니다. 이것이 텀블러 모드가 존재하는 이유이며, 수요자가 여러 조성자를 통해 혼합하도록 허용합니다.

그러나, 적어도 여러 수요자가 동시에 단일 조성자와 대화할 때 더 나은 해결책이 있습니다. 그들은 조성자를 통해서만 대화하는 대신 서로 직접 대화할 수 있습니다(단일 수요자가 조성자와 대화하는 경우, 이는 도움이 되지 않습니다. 왜냐하면 조성자는 자신의 것이 아닌 모든 출력이 수요자에게 속한다는 것을 알기 때문입니다). CoinShuffle은 ZeroLink에서 블라인드 자격 증명이 달성하는 것을 효과적으로 수행하는 프로토콜로, 중앙 조정자가 없는 그룹을 위해 분산된 방식으로 프라이버시를 유지합니다.

앨리스, 밥, 찰리가 서로 CoinJoin하고자 할 때(그들은 이미 CoinJoin 출력의 단위를 정했습니다), 세 사람 모두 메시지를 암호화할 임시 공개 키를 생성합니다.

찰리는 자신의 공개 키를 밥에게 주고, 밥은 앨리스에게 자신의 공개 키와 찰리의 공개 키를 줍니다. 그래서 앨리스는 밥과 찰리의 공개 키를 가지고 있고, 밥은 찰리의 공개 키를 가지고 있으며, 찰리는 자신의 공개 키만 가지고 있는 상황이 됩니다.

앨리스는 출력이 전송될 주소를 가져와 찰리의 키로 암호화한 후, 그 암호화된 메시지를 밥의 공개 키로 암호화하여 러시아 인형처럼 중첩합니다. 그런 다음 그녀는 이를 밥에게 전달하고, 밥은 자신의 레이어를 해독하여 찰리에게 열 수 없는 암호화된 메시지를 찾습니다. 밥은 출력이 전송될 주소를 가져와 찰리의 키로 암호화합니다. 그는 두 메시지를 찰리에게 전달합니다. 찰리는 이제 두 메시지를 해독하고 앨리스와 밥이 원하는 출력 주소를 찾지만, 어떤 주소가 누구에게 속하는지는 모릅니다(그리고 앨리스와 밥도 서로의 주소를 알지 못합니다).

찰리는 CoinJoin을 구성하고 서명한 후, 앨리스와 밥에게 서명하도록 전달하며, 네트워크에 제출됩니다. 이 과정에서 모든 사람은 자신의 출력이 제대로 구성되었다는 것을 알지만, 서로의 두 주소 중 어느 것이 누구에게 속하는지는 모릅니다. 이 과정은 훨씬 더 큰 그룹으로 확장될 수 있으며, 수요자가 조성자에게 접근하기 전에 서로 직접 소통할 수 있다면, 이 프로토콜을 사용하여 개별 조성자에 대한 수요자의 프라이버시를 보호할 수 있습니다. 여러 당사자와 코인을 여러 번 텀블링할 필요 없이 말입니다.

JoinMarket 거래 구조 업그레이드 가능성

ZeroLink와 JoinMarket 간의 가장 큰 유사점은 거래에서 어떤 입력이 어떤 출력에 매핑되는지를 모호하게 만들기 위해 유사한 단위 출력을 의존한다는 것입니다.

JoinMarket은 ZeroLink의 사전 정의된 금액과는 달리 임의의 금액을 사용하지만, 단일 CoinJoin 거래의 범위 내에서 모든 혼합 단위는 동일해야 합니다.

CoinjoinXT는 기브슨이 제안한 것으로, 이를 그렇게 엄격하게 의존할 필요를 제거할 수 있는 가능성이 있습니다(이것은 ZeroLink에서도 구현될 수 있습니다). 기본 아이디어는 ECDSA 다자 계산 또는 Taproot가 활성화된 지금의 MuSig를 활용하여, 일반 단일 서명 주소처럼 보이는 다중 서명 주소를 사용하여 미리 서명된 거래 체인을 생성하는 것입니다.

블록체인을 감시하는 경우, 종종 두 가지 큰 가정이 이루어집니다: 첫째, 거래의 모든 입력이 한 사람의 소유라는 것(이것은 CoinJoin이 깨뜨리는 큰 가정); 둘째, 지불은 자금의 통제가 이전되었다는 것을 의미합니다.

그렇다면 여러 당사자가 자금을 다중 서명 주소에 잠그고, 한 사람이 천천히 돈을 쓰는 것처럼 보이는 긴 거래 체인을 미리 서명한다면 어떻게 될까요? 그러나 실제로는 돈을 분리하여 원래 소유자에게 작은 조각으로 돌려주는 것입니다.

그 지불 출력 중 일부가 실제로 두 CoinjoinXT 참가자 간의 비공식 Lightning 채널일 경우, 관찰자가 지불 체인을 추적하고 미래의 어느 시점에서 금액을 합산할 수 없도록 할 수 있습니다.

이는 사람들이 참여하는 CoinJoin의 유형과 그들이 생성하는 프라이버시의 정도에 있어 완전히 새로운 문을 열 수 있습니다. 일반 CoinJoin이 “이제 떠나서 사라질 거예요!”라고 소리치고 있다면, CoinjoinXT는 조용히 파티에서 눈에 띄지 않게 빠져나가는 것과 같을 수 있습니다.

분산된 미래

전반적으로 JoinMarket은 2015년부터 존재했음에도 불구하고 생태계에서 다소 틈새 도구로 여겨져 왔습니다. 이를 사용하기 위해 전체 노드를 운영해야 하기 때문입니다. CoinJoin이 실제로 접근 가능하고 더 널리 사용되며 이해되는 도구가 된 것은 ZeroLink가 Wasabi와 Samourai의 형태로 시장에 등장한 이후였습니다.

두 도구 모두 매우 가치가 있지만, 결국 그들은 중앙 집중식 회사 주위에 구축된 서비스입니다. 신뢰할 수 없는 서비스이지만, 그들과 상호작용할 때 돈을 잃을 수 없는 방식으로 구축된 서비스입니다. 만약 회사가 문을 닫는다면 어떻게 될까요? 현재 이러한 회사에 의해 자금이 지원되고 있는 만큼, 개발이 여전히 같은 방식으로 진행될까요?

이 공간에서 그러한 도구에 대한 필요성이 분명히 있으며, 그들에 대한 긍정적인 측면도 있습니다. 회사가 실패할 경우 도구의 생존에 의문을 제기하는 동일한 자금 동력은 회사가 살아 있는 한 개발에 많은 자원을 보장합니다. 그러나 단일 회사에 의존하지 않는 분산 도구의 필요성도 있습니다. 진행 속도가 느릴 수 있고 문제 해결이 더 복잡할 수 있지만, 성공한다면 최종 결과는 훨씬 더 견고하고 적응력이 뛰어난 것이 될 것입니다.

이 공간의 서비스와 회사에 잘못된 것은 없지만, 분산 대안을 구축할 수 있는 모든 서비스와 회사에 대해, 그 대안은 또 다른 옵션으로 존재해야 합니다. 비트코인 자체처럼, 언젠가는 당신이 그것을 절실히 필요로 할 수도 있습니다.

이 글은 신오비의 게스트 포스트입니다. 표현된 의견은 전적으로 그들의 것이며 BTC Inc 또는 Bitcoin Magazine의 의견을 반드시 반영하지는 않습니다.

관련 기사

마이애미 IT 직원, 전 상사로부터 190만 달러 비트코인 절도 혐의로 체포 1

마이애미 비트코인 절도, IT 직원 체포

마이애미의 한 남성이 경찰에 따르면 전 직장에서 거의 200만 달러 상당의 비트코인을 훔친 혐의로 여러 중범죄 혐의에 직면해 있습니다. 이

카사, 비트코인 보유자를 겨냥한 증가하는 사회 공학 공격에 대응하기 위해 네 가지 보안 기능 출시 1

사회 공학 공격에 대응하는 카사 기능

비트코인 보안 회사 카사는 2025년 암호화폐 도난의 대부분을 차지하는 공격 벡터인 사회 공학을 겨냥한 네 가지 기능을 출시했습니다. 이 기능은

마스터카드, 디지털 자산 전략을 강화하기 위해 뉴욕 비트라이센스 확보 1

마스터카드, 비트라이센스 획득

마스터카드는 뉴욕주 금융 서비스국(NYDFS)으로부터 비트라이센스를 받았으며, 이는 이 결제 거대 기업이 미국에서 가장 엄격한 암호화 규제 프레임워크 중 하나 아래에서

크라켄, 비트코인 보관소 출시 - BTC 보유에 대한 수익 제공 1

비트코인 보관소 | 크라켄의 새로운 금융 솔루션

크라켄은 고객이 자산을 판매하지 않고도 비트코인 보유량에 대해 BTC 기준 보상을 받을 수 있는 새로운 제품인 비트코인 볼트를 크라켄 어

폴드, 비트코인 신용 카드 성장을 위한 1억 5천만 달러 유치 1

비트코인 신용 카드, Fold의 성장 동력

Fold Holdings, Inc., 최초의 상장된 비트코인 금융 서비스 회사가 Encina Lender Finance, LLC와 4년간의 고정 담보 회전 신용 시설에 진입했습니다.

DDC, 한 주에 비트코인을 두 번 구매하며 자산을 14% 증가시켜 희석 없이 재무를 성장시킵니다. 1

비트코인으로 DDC 자산 14% 증가

DDC Enterprise Limited (NYSE American: DDC)는 수요일에 131 비트코인을 구매하여 기업 비트코인 금고를 2,714 BTC로 확장했다고 발표했습니다. 뉴욕에 본사를 둔