세그윗 이후의 비트코인 - 슈노 시그니처(Schnorr signature)

비트코인에 있어서 블록체인의 전체 파일 크기를 되도록 작게 유지하는 것, 블록체인의 크기가 가능한한 천천히 늘어나도록 하는 것은 중요한 가치입니다. 누구나 부담없이 풀노드를 설치해서 블록을 검증할 수 있어야 탈중앙의 가치가 지켜질 수 있다는 모토 때문입니다.

세그윗 활성화로 인해서 구현 가능해진 기술중에 슈노 시그니처라는 것이 있습니다.

슈노 시그니처(Schnorr signature)란?

지갑에 1 BTC가 있는데 지갑 내에 10개의 주소에 0.1 BTC 씩 나눠져 있는 경우에
0.95 BTC 를 보내려고 한다면 그 트랜잭션은 10개의 인풋과 1개의 아웃풋으로 구성될 겁니다.
이 때 10개의 인풋 주소 각각에 다 전자서명이 들어가야만 트랜잭션을 보낼 충분한 권한이 생깁니다.
그래서 10개의 전자서명이 들어간 트랜잭션을 만든다면 그 용량은 그만큼 커집니다.
(트랜잭션 내에서 전자서명이 차지하는 용량이 큰 편입니다.)
슈노 시그니처는 이부분을 개선한 것으로, 한 사람이 여러 주소에 들어있는 비트코인을 모아서 보낼 때, 한번의 전자서명으로 보낼 수 있도록 하는 것입니다. 대략 25% 정도 저장 공간을 효율적으로 쓸 수 있다고 합니다. 그러므로 같은 1메가 블럭사이즈 한계를 가지고도 더 많은 트랜잭션을 처리할 수 있게 됩니다.

만약 비트코인이 처음부터 슈노 시그니처만을 사용해 왔다면 블록체인의 크기가 어떻게 되었을지 시뮬레이션 한 차트입니다.


Screen Shot 2018-01-21 at 10.50.48 AM.png
[차트 출처: Simple Schnorr Multi-Signatures with Applications to Bitcoin 논문 p26]

프라이버시 강화

인풋 서명이 한 트랜잭션 당 하나로 뭉퉁그려 합쳐져 버리니, 멀티시그 트랜잭션에서 참여자들이 누구누구인지에 대한 정보가 가려져버리고, 그래서 프라이버시가 강화됩니다. 프라이버시가 강화되니 일부러 코인 출처를 감추기 위해 믹싱할 필요도 줄어들고 그래서 그러한 용도의 트랜잭션 실질 수요 또한 줄어들게 됩니다.

스팸어택에 대한 저항력

예를 들어 2017년 6월 17일에 있었던 아래의 블럭은 1메가 한계가 꽉 찼는데 고작 78개의 트랜잭션 만을 가지고 있습니다.
https://blockchain.info/block/00000000000000000182aabc399d2daec86b50d510701a5fd098793a4eadead4

200개의 주소로 부터 0.0147 BTC 의 수수료를 첨부해서 2.5 BTC 를 전송한 블럭의 디테일을 살펴보다보면
정상적인 트랜잭션이라기 보다는
우지한의 우거지국밥을 건 좌우지장지지 스팸어택처럼 생겼다는 것을 알 수 있습니다.
슈노 시그니처가 비트코인에 구현되면 위와같은 트랜잭션에서 200개의 전자서명이 들어가던 것이 1개의 전자서명으로 충분해집니다. 용량이 많이 줄어들어서 스팸어택의 효율(?)이 떨어집니다.

슈노 시그니처를 구현하는데 세그윗이 필요했던 이유

기존의 비트코인에 구현되어 있는 ECDSA(엘립틱 커브) 를 슈노 시그니처가 대체하는 프로토콜 변경은 원래는 하드포크가 필요한 일입니다.
세그윗으로 인해 script 에 version 을 부여하는 기능이 이미 들어가 버렸고, 그래서 슈노 시그니처 구현은 하드포크가 아닌 소프트포크로 가능해지게 되었습니다.

진도

개념 자체는 그전부터 있어왔고 기대를 모아왔지만
고작 며칠전인 2018년 1월 15일에 4명의 실력자들이 공저한 구체적인 백서가 발표되었습니다.
https://eprint.iacr.org/2018/068

이제 본격적으로 일을 시작하는 단계인 것으로 보입니다.
최근 그렉 맥스웰(백서 저술한 4인중 하나)이 블록스트림의 CTO 직을 그만두고 비트코인 코어 개발에 전념하기로 했다는 점이 앞으로의 진도에 있어서 긍정적인 부분입니다.

H2
H3
H4
3 columns
2 columns
1 column
36 Comments