Reading text-only. View on full site →

돈을 맡기면서 감시는 맡기지 않을 수 있는가

2026-09-07 · articles · ko

라이트닝 위에 되살아난 차움의 이캐시. 은닉 서명이 장부를 가질 수 없는 수탁자를 만드는 원리, Cashu와 Fedimint가 신뢰를 나누는 방식, 금 태환 은행권과 닮은 점과 결정적으로 다른 점까지.


라이트닝을 처음 쓰는 사람 대부분은 수탁형 지갑으로 시작한다. 채널도 유동성도 신경 쓸 필요가 없으니 합리적인 선택이다. 그런데 맡기는 순간 계좌가 생기고, 계좌가 생기면 장부가 생긴다. 운영자는 내가 언제, 얼마를, 어떤 인보이스에 지불했는지 전부 기록할 수 있다. 편의를 얻는 대가로 프라이버시를 함께 맡긴 셈이다.

이캐시(ecash)는 이 거래 조건을 다시 쓴다. 돈을 맡는 쪽이 애초에 장부를 만들 수 없도록 암호학으로 막는 것이다. 수탁자는 자기가 총 얼마를 보관 중인지는 알지만, 그 돈이 누구 것인지, 누가 누구에게 지불했는지는 알 수 없다. 은행이되 계좌가 없는 은행이다.

사십사 년 전에 이미 있었던 답

이 아이디어는 비트코인보다 한 세대 먼저 나왔다. 암호학자 데이비드 차움(David Chaum)은 1982년 논문 "Blind Signatures for Untraceable Payments"에서 은닉 서명(blind signature)을 제안했다. 비유도 논문에서 나온 것이다. 문서를 카본지와 함께 봉투에 넣어 건네면, 서명자는 봉투 겉면에 서명하는 것만으로 안의 문서에 서명을 새길 수 있다. 봉투를 뜯지 않았으니 무엇에 서명했는지는 모른다. 그러나 나중에 그 문서가 돌아왔을 때 서명이 자기 것임은 확인할 수 있다.

차움은 이것으로 회사를 차렸다. 1989년 설립된 DigiCash는 은행이 발행하고 태환하는 디지털 현금을 만들었고, 1995년 미주리주 세인트루이스의 마크 트웨인 은행이 처음으로 이를 도입했다. 그리고 1998년 DigiCash는 파산했다. 발행과 태환을 기존 은행에 의존하는 구조였고, 은행들은 굳이 고객을 익명으로 만들어 줄 이유가 없었다. 전자상거래 자체가 걸음마이던 시절이기도 했다.

되돌아보면 차움에게 없었던 것은 두 가지다. 은행의 허락 없이 존재하는 준비 자산, 그리고 수탁자들 사이를 즉시 오가는 정산망. 앞의 것을 비트코인이, 뒤의 것을 라이트닝이 만들었다. 이캐시가 2020년대에 다시 나타난 것은 우연이 아니라 빠져 있던 토대가 그제야 채워졌기 때문이다.

봉투 속의 서명

지금의 비트코인 이캐시를 대표하는 구현이 둘 있다. calle라는 필명의 개발자가 2022년에 시작한 Cashu, 그리고 elsirion이 시작한 Fedimint다. 발행자를 민트(mint)라고 부르는데, 먼저 민트가 하나인 Cashu로 원리를 보자. 프로토콜 명세는 NUT라는 문서들로 공개되어 있다.

Cashu의 서명은 차움의 원래 방식이 아니다. 원래 방식은 RSA 위에 있었고 특허로 묶여 있었다. 1996년 암호학자 데이비드 와그너(David Wagner)가 그 특허를 피하려고 디피-헬만 문제 위에 같은 성질을 얹은 변형을 제안했는데, Cashu는 이를 비트코인이 쓰는 secp256k1 곡선 위에 구현했다. 민트의 개인키를 k, 공개키를 K = kG라 하면 토큰 하나가 만들어지는 과정은 네 줄이다.

지갑: 비밀값 x를 뽑고 곡선 위의 점 Y = hash_to_curve(x)를 만든다
지갑: B_ = Y + rG 를 민트에 보낸다        (무작위 r로 눈가림)
민트: C_ = kB_ 를 돌려준다                (내용을 못 본 채 서명)
지갑: C = C_ - rK 를 계산한다             (눈가림 제거, C = kY)

민트가 서명한 것은 눈가림된 점 B_뿐이다. Y도 x도 본 적이 없다. 지갑이 눈가림을 벗겨 얻은 (x, C) 쌍이 토큰이고, 민트는 나중에 이 쌍을 받으면 k를 곱해 자기 서명이 맞는지 확인할 수 있다. 확인할 수는 있지만, 언제 누구에게 발행해 준 서명인지는 연결할 수 없다. 봉투에 서명한 은행원이 나중에 창구로 돌아온 문서를 보고 자기 서명임은 알아보되 어느 봉투였는지는 기억할 수 없는 것과 같다.

민트에서 실제로 일어나는 일

사용자 관점에서 이캐시는 세 가지 동작으로 이루어진다.

발행. 라이트닝 지갑이나 다른 민트에서 민트의 인보이스를 지불하면, 민트가 그 액수만큼 토큰에 서명해 준다. 민트는 액면마다 다른 키를 쓰고, 관례상 1, 2, 4, 8사토시처럼 2의 거듭제곱 액면으로 쪼개 발행한다.

송금. 토큰은 그저 데이터다. cashu로 시작하는 문자열 하나에 담기기 때문에 메신저로, QR로, 이메일로 보낼 수 있다. 결제망을 통과하는 것이 아니라 현금을 건네듯 옮기는 것이다. 다만 문자열은 복사가 되므로, 받은 쪽은 곧바로 민트에 가져가 새 토큰으로 교환해야 한다. 이 교환이 보낸 쪽에 남은 사본을 무효로 만든다.

태환. 토큰을 민트에 돌려주면서 라이트닝 인보이스를 지불하게 한다. 민트는 토큰을 소각하고 그만큼을 라이트닝으로 내보낸다.

민트가 이중지불을 막는 방법은 장부가 아니라 블랙리스트다. 한 번 교환되거나 태환된 비밀값 x의 목록만 쌓아 두고, 같은 x가 다시 오면 거절한다. 계정도, 잔액표도, 거래 내역도 필요 없다.

사용자 입장에서 중요한 것은 라이트닝의 마찰이 전부 사라진다는 점이다. 채널을 열 필요도, 인바운드 유동성을 구할 필요도, 결제를 받으려고 온라인에 있을 필요도 없다. 그 마찰은 민트가 대신 떠안는다.

민트는 무엇을 보고 무엇을 못 보나

수탁형 지갑의 운영자와 나란히 놓으면 차이가 선명하다.

민트가 보는 것. 라이트닝으로 들어오고 나간 금액과 시각, 자기가 발행한 액면별 총량, 사용된 비밀값의 목록. 즉 자기 부채의 총량은 안다.

민트가 못 보는 것. 어느 입금이 어느 인출로 이어졌는지, 토큰이 누구 손을 거쳤는지, 지금 누가 얼마를 들고 있는지. 계정 데이터베이스 자체가 존재하지 않으므로 유출될 고객 명부도 없다.

코인조인 같은 온체인 기법과 방향이 다르다는 점도 눈여겨볼 만하다. 온체인 프라이버시 기법은 모두가 볼 수 있는 장부 위에서 흔적을 흐리는 일이고, 이캐시는 흔적이 기록될 장부를 아예 만들지 않는 일이다. 물론 한계는 있다. 민트는 입출금의 금액과 시각은 보므로, 이용자가 극히 적은 민트에서는 상관관계 추측이 가능하다. 익명성은 같은 민트를 쓰는 군중의 크기만큼만 두터워진다.

신뢰 모델을 정직하게 말하면

여기까지만 들으면 좋은 이야기뿐이니, 반대쪽을 분명히 해야 한다. 이캐시는 수탁형이다. 토큰은 비트코인이 아니라 민트에 대한 청구권이고, 민트가 준비금을 들고 사라지면 토큰은 그 순간 무의미한 문자열이 된다. 압수당하거나 해킹당해도 마찬가지다.

더 미묘한 문제도 있다. 민트를 눈멀게 만든 바로 그 암호학이 외부 검증도 가로막는다. 발행된 토큰이 누구 손에 있는지 아무도 모르므로, 민트가 준비금 없이 토큰을 몰래 더 발행해도, 즉 부분지급준비를 운영해도 태환이 몰리기 전까지는 드러나지 않는다. 준비금과 부채를 증명하는 방식이 연구되고 있지만 아직 프로토콜의 기본값은 아니다.

그래서 용법이 정해진다. 이캐시에 두는 돈은 지갑 속 현금과 같은 액수여야 한다. 잃어도 감당할 소액, 곧 쓸 돈. 저축은 자기 보관으로 가는 것이 맞고, 이 원칙은 이캐시 개발자들 스스로가 가장 앞서서 말한다.

민트를 쪼개면, Fedimint

단일 민트에 대한 신뢰가 부담스럽다면 민트 자체를 여럿으로 나누는 길이 있다. Fedimint의 접근이다.

Fedimint에서는 가디언(guardian)이라 부르는 운영자 여럿이 연합을 이룬다. 서명 키는 분산 키 생성으로 만들어져 처음부터 어느 한 명의 손에 통째로 놓인 적이 없고, 토큰 서명은 임계 은닉 서명(threshold blind signature)으로 이루어진다. 정족수의 가디언이 각자 조각 서명을 내야 완성된 서명이 나온다. 상태 변경은 비잔틴 장애 허용 합의(AlephBFT)로 결정되므로, 예컨대 가디언 4명 구성이면 그중 1명이 다운되거나 악의적으로 굴어도 연합은 계속 굴러간다. 준비금을 빼돌리는 데에는 정족수의 공모가 필요하다.

연합 자체는 라이트닝 노드가 아니다. 바깥 세계와의 결제는 게이트웨이라는 별도 참여자가 맡는다. 사용자가 이캐시를 연합의 계약에 걸어 두면, 게이트웨이가 자기 라이트닝 노드로 인보이스를 대신 지불하고 그 증거인 프리이미지를 연합에 제출해 이캐시를 가져간다. 게이트웨이는 신뢰 대상이 아니라 증거를 제출해야 돈을 받는 교환 상대다.

두 구현의 성격 차이는 신뢰 구조에서 나온다. Cashu는 1인 민트라 세우기가 쉽고, 민트가 많아 마음에 안 들면 갈아타기도 쉽다. Fedimint는 연합을 꾸리는 비용이 드는 대신, 공동체가 서로 아는 사람들로 가디언을 구성하는 커뮤니티 뱅킹에 맞다. 은행 접근이 어려운 지역의 공동체 금고를 겨냥한 Fedi 같은 앱이 이 방향의 대표다.

금 태환 은행권의 재림

경제학의 눈으로 보면 이캐시는 낯선 물건이 아니다. 금 준비금을 보관하고 태환 청구권인 은행권을 발행하던 은행과 구조가 같다. 민트는 발행 은행이고, 토큰은 은행권이고, 준비금은 금이 아니라 비트코인이다. 몰래 초과 발행할 수 있다는 약점까지 같은 자리에 있다.

다른 것은 규율이 작동하는 속도다. 은행권 시대에 발행 은행을 갈아타려면 창구에 가서 금을 내어 태환하고 다른 은행으로 옮겨야 했다. 이캐시에서 태환은 라이트닝 결제 한 번, 몇 초다. 민트를 세우는 데에 인가도 필요 없으니 발행자 사이의 경쟁도 열려 있다. 나쁜 수탁자를 떠나는 비용이 역사상 가장 낮은 은행권인 셈이다. 다만 시장 규율은 고객이 태환을 실제로 행사할 때만 작동한다. 편하다고 잔액을 쌓아 두는 순간, 이 구조는 100년 전 은행과 같은 약점으로 되돌아간다.

어디에 쓰는 물건인가

지금 이캐시가 실제로 쓰이는 자리는 이 신뢰 모델과 정확히 맞물려 있다.

정리

이캐시는 자기 보관의 대체물이 아니다. 어차피 편의를 위해 누군가에게 맡길 소액이 있다면, 장부를 가진 수탁자와 장부를 가질 수 없는 수탁자 사이에서 후자를 고를 수 있게 됐다는 것, 그것이 이캐시가 바꾼 지점이다.

차움의 답은 사십사 년을 기다려 제자리를 찾았다. 발행은 누구의 허락도 받지 않는 비트코인이 맡고, 수탁자 사이의 정산은 라이트닝이 맡고, 프라이버시는 은닉 서명이 맡는다. 1998년에 파산한 것은 아이디어가 아니라 그 아이디어를 은행에 묶어 두던 구조였다.

Read on the full site: https://learn.txid.uk/ko/articles/ecash-explained/