4년만의 대변화 비트코인 ‘탭루트’ 프라이버시를 강화한다

By 강민승   Posted: 2021-02-01

비트코인(BTC) 블록체인에서 서명 방식을 개선해 프라이버시를 자체적으로 향상시키는 ‘탭루트’ 소프트포크가 올해 이뤄질 전망이다. 2017년 세그윗 업데이트 이후 4년 만의 큰 변화다. 소프트포크란 기존 블록체인의 기능을 일부 수정하는 업데이트를 말한다. 

이번 소프트포크를 통해 비트코인에서 거래의 서명을 생성하고 검증하는 과정이 개선되면서 비트코인 사용자의 프라이버시도 향상될 전망이다. 또 송금 스크립트 등 사용자가 확장해 쓸 수 있는 스크립트 언어도 전반적으로 개선될 예정이다. 업계에선 탭루트 소프트포크가 비트코인 사용자의 프라이버시를 직접적으로 향상하는 계기가 될지 주목하고 있다.

거래자의 프라이버시를 강화하는 ‘슈노르 서명’

탭루트 소프트포크는 단어의 ‘원뿌리’라는 말처럼 슈노르 서명, 머클 추상화 구문트리(MAST) 등 비트코인의 주요 기능을 개선하는 굵직한 업데이트 사항을 여럿 포함하고 있다. 그중에서도 가장 큰 변화는 비트코인에서 거래자의 서명을 생성하는 방식이 더욱 효율적으로 개선된다는 점이다. 여기엔 슈노르 서명이 적용됐다.

비트코인의 탭루트에서 구현되는 슈노르 서명을 이해하려면 무엇인지 더 잘 이해하려면 현 비트코인의 서명 기술을 먼저 이해할 필요가 있다. 사용자가 비트코인을 송금할 때에는 본인임을 확인하고 거래를 진행한다는 증명을 담은 전자 도장을 찍게 되는데 이를 서명이라고 한다. 사용자가 자신의 개인 도장인 개인키를 사용해 거래에 서명하면 비트코인 블록체인은 이를 기록하는 형태다. 

다만 이렇게 여러 사람의 서명 데이터를 블록에 모두 담으면 블록 자체에는 여유 공간이 줄어 거래 처리량이 줄어들 수밖에 없다. 때문에 비트코인에선 블록에서 거래 데이터와 서명 데이터를 분리해 실질적으로 사용할 수 있는 블록 크기를 늘리는 세그윗 기술을 2017년부터 적용하고 있다. 이번 탭루트도 서명 기술을 개선하는 세그윗 업데이트의 연장선에 위치한다. 

탭루트에선 다중 서명과 관련한 업데이트가 많이 이뤄질 예정이다. 다중 서명이란 비트코인 사용자의 여러 키를 모아서 하나의 서명 데이터를 만드는 기술이다. 예를 들어 세 명의 사용자가 한 계정에 담긴 비트코인 자금을 공동으로 관리하는 경우 해당 비트코인을 옮기려면 세 명의 키를 모두 사용해야만 한다. 다중 서명은 여기에 사용되는 기술이다. 다중 서명으로 비트코인을 관리하는 건 금고의 열쇠 구멍을 여러 개로 만드는 것과 같다. 반면 이렇게 여러 명의 키를 한데 모아서 서명을 만들다 보면 거래 결과물인 트랜잭션의 크기도 커질 수밖에 없다. 트랜잭션이 커지면 더욱 눈에 띄게 돼 외부에서 비트코인이 전송된 시간대와 금액을 추적하는 작업으로 쉽게 이어질 수 있다는 의견도 제기된 바 있다. 

반면 슈노르 서명은 이같은 단점을 극복하기 위한 개선안을 여럿 포함하고 있다. 슈노르 서명은 다중 서명에 쓸 수 있는 일종의 대장키를 처음에 하나 만들어 두고 서명 때마다 사용하는 방식이다. 즉 기존의 열쇠구멍 3개를 맞추지 않고도 금고를 열 수 있는 또다른 열쇠와 열쇠구멍을 생성하는 방식이다. 이를 탭루트 키라고 한다. 사용자가 탭루트 키로 서명하면 해당 거래가 다중 서명을 통해 이뤄졌는지 혹은 단순한 개인의 서명으로 이뤄졌는지 분간하기 어려워지진다. 다중 서명이지만 키는 실제론 하나만 사용되기 때문에 거래 데이터가 작아지기 때문이다. 개인의 경우보다 회사나 단체가 비트코인을 송금할 때 프라이버시가 향상되는 효과가 상대적으로 더 크게 발생한다.

이를 위해 슈노르 서명은 키를 관리하는 대수적인 방법을 도입하고 있다. 사용자의 키를 처음에 모아 타원 곡선 위에서 덧셈해 결과물을 대장키로 사용하는 방식이다. 사용자의 키 모두는 숫자로 이뤄져 있기 때문에 이같은 연산이 가능한 셈이다. 한편 슈노르 방식으로 키를 생성하는 방식을 응용하면 공개키 자체에도 메시지를 담거나 스크립트를 포함하는 행위도 가능해질 전망이다. 임의의 메시지 역시 숫자로 표현할 수 있기 때문이다. 여기서 공개키란 비트코인의 계정 주소와도 같다. 공개키 자체에 스크립트를 포함하게 되면 스크립트를 실행하는 거래가 더욱 단순해진다. 이더리움으로 비유하자면 스마트 컨트랙트를 사용자의 계정 주소에 바로 탑재한 것과도 같다.

슈노르 서명은 비트코인 서명의 확장성을 개선하고 검증 속도도 향상시킬 전망이다. 지금까지 비트코인에서 지원하던 다중 서명 기술은 최대 15명 정도가 한계였다. 사용자를 많이 추가할수록 다중 서명을 만들고 검증하는 과정이 오래 걸렸기 때문이다. 때문에 비트코인 자금을 관리하는 운영 멤버를 추가하는 데 한계가 있었고 이는 단점으로 작용하기도 했다. 반면 탭루트에선 슈노르 서명이 본격적으로 구현되면서 다중 서명을 만들고 검증하는 과정이 상대적으로 빨라질 예정이다. 서명 알고리즘을 개선한 결과다. 특히 다중 서명에 추가할 수 있는 구성원의 수도 제한이 없어질 전망이다.

스크립트 효율성, 프라이버시 강화한 ‘머클 추상화 구문트리(MAST)’

탭루트 업데이트에는 비트코인의 스크립트의 성능을 자체적으로 개선하는 업데이트도 포함돼 있다. 먼저 스크립트를 실행하는 효율이 이전보다 크게 향상될 예정이다. 비트코인 블록체인에선 단순한 송금 작업뿐만 아니라 스크립트를 활용해 여러 기능을 구현할 수 있도록 지원하고 있다. 예를 들어 사용자는 본인 계정에서 특정 시간 동안 비트코인을 출금하지 못하도록 막는 타임락 등의 기능도 직접 구현할 수 있다. 반면 사용자가 스크립트에 기능을 많이 구현해 넣을수록 기능 자체를 실행하는데 드는 시간도 기하급수적으로 증가하는 단점이 현재 존재한다. 비트코인 스크립트는 기능 실행에 필요하지 않은 조건문까지도 모두 검증하기 때문이다.

반면 탭루트 업데이트가 적용되면 모든 조건문을 직접 실행하지 않고 필요한 부분만 먼저 검증할 수 있도록 바뀐다. 스크립트에 나열된 조건이라면 일단 검증하고 보던 이전 방식보다 더욱 합리적인 검증 방식인 셈이다. 특히 사용자가 당장 사용하지 않는 스크립트는 해시값만 비교하면서 검증을 간단히 끝내도록 바뀐다. 해시란 데이터마다 표현되는 독특한 값으로 해당 데이터의 지문과도 같다. 만약 사용자가 어떤 계정에서 비트코인을 출금할 수 있는 조건을 10개 이상 명시했다면 BTC를 실제로 출금하는 데는 최소 1024번 연산이 지금까지 필요했다. 모든 조건을 검증하기 때문이다. 하지만 앞으론 해시를 맞춰보는 단 몇 번의 검증 작업만 하면 돼 더욱 간결해질 전망이다. 

이를 위해 사용자가 만든 비트코인 스크립트는 머클 추상화 구문트리(MAST)에 담긴다. MAST란 비트코인 스크립트에서 해시값을 추출하는 별도의 자료 구조다. MAST가 탑재되면서 사용자가 자신의 비트코인에 탑재할 수 있는 스크립트의 개수도 무한정으로 늘어날 수 있을 전망이다. 해시값을 사용하는 만큼 스크립트 하나하나가 이전보다 가벼워져 발생하는 효과다.

또 스크립트를 사용하는 사용자의 프라이버시도 한층 강화될 예정이다. 일반적으로 스크립트를 통해 비트코인을 전송하면 비트코인이 전송될 때마다 사용자의 스크립트가 외부로 공개되는 특징이 있다. 비트코인은 본래 공개형 블록체인이기 때문이다. MAST가 적용된다고 하더라도 이같은 구조는 변함이 없다. 다만 사용자가 모든 스크립트를 공개하는 대신 자신이 작성한 스크립트 중 단 하나만 선택적으로 외부에 공개할 수 있도록 앞으로 변경된다. 나머지 스크립트를 공개하지 않아도 되는 이유는 스크립트는 이미 해시값으로 연동돼 있어 굳이 모두 밝힐 필요가 없기 때문이다. 사용자 역시 자신이 원하는 스크립트 하나만 외부에 공개하면 된다. 즉 사용자가 선택한 하나의 스크립트만 공개되고 나머지 스크립트는 은닉되는 셈이다. 이로써 사용자의 프라이버시가 더욱 향상되는 효과가 발생할 전망이다. 

“사설망 통해 사용자 간 비밀 거래도 가능해진다”

특히 탭루트 이후론 참여자 간 비밀 거래도 진행할 수 있을 예정이다. 예를 들어 지금까지 사용자 사이에 라이트닝 채널에서 비공개 거래를 하더라도 라이트닝 채널을 거쳤다는 흔적은 거래가 끝난 후 외부에 공개될 수밖에 없었다. 라이트닝 채널을 만들 때 들어간 스크립트가 비트코인 블록체인에 모두 공개되기 때문이었다. 여기서 라이트닝 채널이란 비트코인을 거래하는 사설망을 말한다. 사설망이라 하더라도 라이트닝 채널의 존재 자체는 외부에 모두 밝혀졌던 셈이다. 반면 탭루트의 스크립트 기능을 사용하면 라이트닝 채널을 사용하면서도 대다수 스크립트를 숨길 수 있게 된다. 사용자의 모든 스크립트 중에서 하나만 공개하면 되기 때문이다. 트랜잭션 결과물 자체도 일반적인 경우와 똑같기 때문에 사용자가 라이트닝 채널을 거쳤는지 알기 어렵게 된다. 

이번 탭루트 패치는 명령어 개선 등을 포함하는 옵코드 개선은 내부적으로 포함하지 않는다. 때문에 또다른 블록체인으로 체인을 분리할 필요 없이 기존 체인을 이어가는 소프트포크 형태로 이뤄질 예정이다. 옵코드 개선을 포함하진 않지만 비트코인의 대대적인 개선이라 불릴 만큼 방대한 업데이트가 될 예정이다.

탭루트는 사토시 나카모토가 만든 비트코인 지갑인 비트코인코어에 작년 10월 병합됐다. 탭루트는 현재 활성화될 순간을 기다리고 있다. 특히 소프트포크를 안정적으로 진행하기 위해 채굴자들의 준비가 완료될 때까지 기다리는 중이다. 설령 채굴자가 동의하지 않더라도 소프트포크는 다른 방향을 통해 계속 진행될 예정이다. 바이낸스 풀 등 여러 채굴 업체는 탭루트 업데이트에 긍정적인 반응을 보이고 있고 업계에서도 올해 안에 비트코인의 탭루트 소프트 포크가 이뤄질 것으로 예측하고 있다.

루벤 솜슨 서울비트코인 밋업 조직자는 “탭루트 이후로 비트코인은 크게 달라지게 된다. 탭루트 소프트 포크 이후엔 비트코인에서 다중 서명을 생성하는 과정과 복잡한 스크립트 작업을 수행하는 작업이 모두 한층 가벼워질 예정”이라며 “블록체인 영역에서 한정된 블록 자원을 관리하는 건 매우 중요한데 탭루트는 서명 데이터를 개선하면서 사용자의 프라이버시와 비트코인 자체의 확장성을 간접적으로 향상시키는 효율적인 업데이트가 될 것”이라고 말했다. 

[강민승 기자]