뉴스

실디드 비트코인 — 하드포크 없이 송금 내역을 가리는 설계

암호 연구 회사 알록 이닛이 9월 24일 공개한 실디드 비트코인 명세서를 풀었어요. 비트코인 합의 규칙을 안 바꾸고 보내는 사람·받는 사람·금액을 가리는 설계예요. 2입력 2출력 송금 한 건은 625 가상 바이트를 차지해요.

실디드 비트코인 — 하드포크 없이 송금 내역을 가리는 설계

3줄 요약

  • 1알록 이닛 연구진 3명이 9월 24일 실디드 비트코인 명세서를 공개했어요. 비트코인 합의 규칙은 하나도 안 바꿔요.
  • 2금액·보내는 사람·받는 사람·거래 연결 관계를 가리고, 대신 유효한 송금이라는 증명만 블록에 올려요.
  • 3비트코인을 이 시스템에 넣고 빼는 방법(페그인·페그아웃)은 이번 명세서에 안 들어 있어요.

AI가 쓴 글이에요. 출처를 바탕으로 자동으로 작성·발행돼요. 사람이 검수하지 않으니 사실과 다를 수 있어요. 중요한 내용은 아래 출처 링크에서 원문을 확인해 주세요.

암호 연구 회사 알록 이닛(alloc init)이 9월 24일 실디드 비트코인(Shielded Bitcoin) 명세서를 공개했어요. 비트코인 합의 규칙을 하나도 안 바꾸고, 송금의 금액·보내는 사람·받는 사람을 가리는 설계예요. 아직 논문 단계고 비트코인을 넣고 빼는 방법은 이번 문서에 안 들어 있어서, 지금 쓸 수 있는 기능은 아니에요.

지금 비트코인은 다 보여요

비트코인 주소는 이름이 아니라 문자열이에요. 그래서 익명처럼 느껴지지만, 거래 내역이 전부 공개돼 있어요. 어느 주소가 어느 주소에 얼마를 보냈는지 누구나 볼 수 있어요. 여기에 주소 묶기 분석을 더하면 "이 지갑들은 같은 사람 것"까지 추정돼요. 명세서도 이 문제를 출발점으로 잡았어요.

실디드 비트코인이 하는 일

지캐시(Zcash)가 쓰는 방식을 비트코인 위로 옮겨 온 거예요. 핵심은 세 가지예요.

  • 노트(note) — 금액을 암호화된 기록으로 들고 있어요. 잔액이 주소에 적혀 있지 않아요.
  • 널리파이어(nullifier) — 노트를 쓸 때 "이건 썼다"는 표시만 공개해요. 어느 노트를 썼는지는 안 드러나요.
  • 영지식증명 — 내가 그 돈의 주인이고, 없던 돈을 만들지 않았다는 사실만 수학으로 증명해요.

그래서 블록에 올라가는 건 암호문과 증명이에요. 금액, 보내는 사람, 받는 사람, 그리고 이 송금이 어느 송금에서 이어진 것인지가 가려져요. 지갑 키는 계속 내가 들고 있어서, 남에게 맡기는 구조가 아니에요.

지캐시·모네로와 다른 점

지캐시는 프라이버시를 위해 아예 별도 체인을 만들었어요. 사플링(Sapling)·오차드(Orchard) 같은 규칙이 그 체인의 합의에 박혀 있어요. 모네로(Monero)는 다른 길로 갔어요. 영지식증명 대신 링 서명과 스텔스 주소를 써요.

실디드 비트코인은 새 체인도 안 만들고, 비트코인 소프트포크도 요구하지 않아요. 비트코인을 데이터를 담고 순서를 정하는 자리로만 쓰고, 검사 규칙은 그 위에 따로 얹어요. 명세서는 이런 구조를 메타프로토콜이라고 불러요.

비트코인은 검사하지 않아요

지캐시는 이런 검사를 체인 자체의 합의 규칙에 넣었어요. 실디드 비트코인은 반대예요. 비트코인은 데이터를 담고 순서만 정해 주고, 검사는 하지 않아요.

대신 인덱서(indexer) 라는 별도 프로그램이 블록을 처음부터 다시 훑어요. 올라온 송금을 순서대로 재생해서 증명을 검증하고, 노트 트리와 널리파이어 목록을 스스로 다시 만들어요. 같은 비트코인 기록을 읽은 두 인덱서는 똑같은 상태에 도달해야 해요. 인덱서는 돈을 쓸 권한이 없어요. 대신 특정 송금을 빼먹거나 엉뚱한 값을 내놓을 수는 있어요. 그래서 명세서는 지갑이 직접 재생해서 확인하는 걸 기본으로 둬요.

블록 공간은 얼마나 써요

명세서 부록에 입력 2개, 출력 2개인 송금 한 건 기준 숫자가 나와요. 증명 하나가 약 192바이트, 프로토콜 데이터 묶음 전체가 610바이트예요. 이걸 비트코인 거래에 싣는 방법은 두 가지를 비교해 뒀어요.

싣는 방법가상 크기거래 수
OP_RETURN 출력 1개625 vB1건
위트니스 2단계(준비 후 공개)438 vB2건

가상 크기(vB)는 비트코인 수수료를 매기는 단위예요. 숫자가 크면 같은 수수료율에서 더 비싸요. 일반 비트코인 송금보다 확실히 무거워요. 현재 기본 설정은 OP_RETURN 한 개를 쓰는 쪽이고, 위트니스 방식은 앞으로 고를 수 있는 선택지로 남겨 뒀어요.

아직 남은 것들

  • 넣고 빼는 길이 없어요. 진짜 BTC 를 이 시스템 안으로 넣는 페그인, 다시 빼는 페그아웃은 이번 문서 범위 밖이에요. PIPEs v2 를 다루는 별도 논문으로 미뤘어요.
  • 신뢰된 셋업이 필요해요. 증명 방식으로 쓰는 Groth16 은 회로마다 한 번씩 셋업 행사를 거쳐야 해요. 회로를 고치면 셋업도 다시 해야 해요.
  • 다 가려지는 건 아니에요. 송금 시각, 수수료, 입력과 출력 개수는 그대로 보여요.
  • 가벼운 지갑 문제가 남았어요. 전체를 다시 재생하지 않고 확인하는 방법은 앞으로 할 일로 적혀 있어요.
  • 재구성(reorg) 영향을 받아요. 비트코인 체인이 갈라지면 이미 계산해 둔 값이 무효가 될 수 있어요.

정리

  • 알록 이닛이 9월 24일 실디드 비트코인 명세서를 냈어요. 비트코인 합의 규칙을 안 바꾸고 금액·보내는 사람·받는 사람을 가리는 설계예요.
  • 검사는 비트코인이 아니라 인덱서가 해요. 블록에는 암호문과 증명만 올라가고, 2입력 2출력 송금은 OP_RETURN 기준 625 vB 를 써요.
  • 넣고 빼는 방법, 신뢰된 셋업, 가벼운 지갑 확인은 아직 안 풀렸어요. 오늘 쓸 수 있는 기능이 아니에요.

읽어 볼 게 하나 있어요. 알록 이닛 명세서 원문(PDF)에서 요약(Abstract)과 미래 과제(Future Work) 두 곳만 봐도, 무엇이 되고 무엇이 아직 안 되는지 갈라 볼 수 있어요.

출처 (3개)

이 글은 아래 출처를 바탕으로 작성됐어요

함께 보면 좋아요

코인풀이 텔레그램 소통방

차트 공부부터 실시간 분석까지, 같이 이야기해요. 새 글도 여기 가장 먼저 올라가요.