슈노르서명
슈노르서명(Schnorr Signature)은 비트코인 코어 개발자로 활동해온 피터 윌러(Pieter Wuille)가 BIP 형태로 공식 제안한 문서이다.
목차
개요
지갑에 1 BTC가 있는데 지갑 내에 10개의 주소에 0.1 BTC 씩 나눠져 있는 경우에 0.95 BTC 를 보내려고 한다면 그 트랜잭션은 10개의 인풋과 1개의 아웃풋으로 구성된다. 이 때 10개의 인풋 주소 각각에 다 전자서명이 들어가야만 트랜잭션을 보낼 충분한 권한이 생긴다. 그래서 10개의 전자서명이 들어간 트랜잭션을 만든다면 그 용량은 그만큼 커진다. (트랜잭션 내에서 전자서명이 차지하는 용량이 큰 편이다.) 슈노르서명은 이부분을 개선한 것으로, 한 사람이 여러 주소에 들어있는 비트코인을 모아서 보낼 때, 한번의 전자서명으로 보낼 수 있도록 하는 것이다. 대략 25% 정도 저장 공간을 효율적으로 쓸 수 있다고 한다. 그러므로 같은 1메가 블럭사이즈 한계를 가지고도 더 많은 트랜잭션을 처리할 수 있게 된다. [1]
역사
비트코인 코어 개발자로 활동해온 피터 윌러(Pieter Wuille)가 BIP 형태로 공식 제안한 슈노르 서명은 세그윗(SegWit) 이후 비트코인의 최대 혁신으로 불리고 있다. 오랜 기간동안 비트코인 개발자 사이에서 논의되어왔던 슈노르 서명은 비트코인의 확장성, 프라이버시, 그리고 상호 호환성 기능을 개선할 것으로 보인다.[2]
슈노르 박사와 특허 문제
슈노르 서명 체계는 Claus Schnorr에 의해 1991년에 특허를 받았으며, 해당 특허는 2008년에 만료 되었다. 비록 슈노르 체계의 변형인 DSA(전자 서명 알고리즘)체계는 더 강력하다고 알려져 있지만, 이에 대한 특허가 전 세계적으로 무료로 제공되었기 때문에 더 광범위하게 채택된 것이다. 하지만 슈노르박사는 DSA가 자산의 특허 하에 적용되어야 한다고 주장했다. 비트코인은 2009년 출시 당시 전자 서명 방식에 DSA 변형인 타원 곡선 전자 서명 알고리즘(ECDSA)을 사용했는데, 이는 채택율이 높았기 때문이다. 원래의 슈노르 서명 체계는 항상 DSA보다 단순하고 효율적이었으며(70바이트 정도의 ECDSA 가변 크기보다는 고정 60바이트 인코딩) 보완적인 부분에서도 부담이 적었다. 10여년이 흐른 현재에 와서 이러한 효율성이 높다는 인식하에 비트코인이 슈노르 서명 체계로 이동해야 하는 것이 합리적으로 여겨지게 되었다.[3]
슈노르서명의 부상
슈노르 디지털 서명(Schnorr Digital Signature)가 타원곡선 디지털서명 알고리즘(ECDSA)보다 많은 이점을 제공하더라도 확실히 새로운 것은 아니다. 슈노르 디지털 서명은 독일의 암호학자인 클라우스-피터 슈노르(Claus-Peter Schnorr)가 1980년대 프랑크푸르트 대학교(University of Frankfurt)의 교수이자 연구원이었을 때 발명했다. 그의 제안된 서명 구조는 데이비드 차움(David Chaum), 타허 엘가말(Taher EIgamal), 아모스 피아트(Amos Fiat) 및 아디 샤미르(Adi Shamir)의 연구와 개발 작업이 융합된 것이다. 그럼에도 불구하고 그것이 발표되기 전에 수년 동안 직접 사용하지 못하게 막은 새로운 발명 구조에 대한 특허를 클라우스-피터 슈노르가 가지고 있었다. 흥미롭게도 ECDSA의 전신인 DSA는 Claus Schnorr의 특허를 회피하기 위해 고안된 ElGamal과 Schnorr 혼합체였다. 실제로 Schnorr의 미국 특허가 발급된지 2개월 만에 DSA의 선구자인 미국 국립 표준 기술 연구소 (NIST)도 해결 방법에 대한 특허를 제출했다. 사이퍼펑크(Codypunks) 이력을 보면 Cloth Schnorr는 그의 특허에 대해 매우 방어적이었다. 슈노르 서명(Schnorr Signature)이 도입된지 거의 20년이 지난 2008년 Claus Schnorr의 특허가 만료되었다. 우연히도, 2008년은 우리가 가장 좋아하는 사이퍼펑크 샤토시 나코모토(Satoshi Nakamoto)가 비트코인(Bitcoin)을 구현한 해이다. 슈노르 서명(Schnorr Signature)이 당시 사용되었을지라도 표준화되거나 널리 사용되지는 않았지만 샤토시가 ECDSA 대신 사용하려는 동기였다. 암호 학자들과 수학자들에 의해 종종 혹평되었지만, ECDSA는 널리 사용되고 있었고 당시에는 비트코인(Bitcoin)을 위한 더 안전한 옵션을 제공했다.[4]
특징
슈노르서명은 시그니처 시스템인 타원곡선 디지털서명 알고리즘(ECDSA)의 개선된 기능으로 하나의 주소로 전송되는 서명을 묶어 블록체인에서 사용하는 대역폭을 줄여 효울성과 확장성을 높일 수 있다고 한다. 하지만 새로운 기술을 블록체인에 통합 할지는 커뮤니티에 달렸다고 말하고 영향력 있는 비트코인 개발자들이 프로젝트를 지원하고 있기 때문에 통과 할것으로 보이지만 결과적으론 커뮤니티의 동의가 필요하다. 슈노르서명은 비트코인 프로토콜에 반영되면 유저들은 간편하게 프라이버시를 지키거나 전송 수수료가 저렴할 것으로 보인다. 1개의 서명 데이터로 대체될 수 있으며 안정성과 블록에서 차지하는 데이터 크기가 줄어든다. 수백명의 타 블록체인 검증인이 비트코인 멀티시그 검증에 참여해 비트코인 보증 암호화페를 다른 블록체인에서 구현 할 수 있다. 다수의 송금인의 서명은 하나의 서명으로 결합되어 검증이 가능하고 비트코인 블록체인의 효율성을 약 20% 이상 증가 시킬 수 있다고 한다.[5]
슈노르서명의 확장성
슈노르 서명은 비트코인 거래의 필수 요소 중 하나인 '서명' 데이터가 블록체인에서 차지하는 크기를 줄일 것으로 기대되고 있다. 데이터의 크기가 줄게 되면, 자연스럽게 더 많은 거래가 블록에 포함될 수 있으며 수수료 또한 낮아진다. 기존에 이용되었던 거래 검증방식에서는 다수의 송금인(Sender)이 한 수신인에게 비트코인을 보내는 경우, 모든 송금인의 서명(Signature)가 비트코인 블록에 포함해야 했다. 반면, 슈노르 서명 기반의 거래에서는 다수의 송금인의 서명은 하나의 서명으로 결합되어 검증이 가능해진다. 어떻게 보면 그리 큰 변화는 아니지만, 이런 작은 변화 하나 하나가 비트코인 블록에 기록되는 데이터의 효율성을 높이게 된다. 슈노르 서명은 비트코인 블록체인의 효율성을 약 25% 증가시킬 것으로 추산된다. 데이터의 효율성이 높아지는 만큼, 더 많은 거래가 블록에 포함될 수 있으며 비트코인 확장성 문제 해결에도 기여를 할 것으로 보인다.
슈노르서명의 효율성
중요한 이점은 다중 서명 거래가 일반적인 단일 서명 거래로 온체인에 표시되는 것이다. 슈노르서명을 사용하여 여러 사용자는 블록체인에 개별적으로 공개 키와 서명을 별도로 게시하는 대신 공동 공개 키를 생성하여 하나의 서명으로 공동 서명할 수 있다. 기존의 다중 서명 거래에 대한 서명자 수가 증가함에 따라 비교 이익이 커지게 되고, 공간 절감과 검증 시간에 대한 단축이 이루어지게 된다. 이전에도 비트코인 개발자 그레그 맥스웰(Greg Maxwell)이 개발했던 코인조인(CoinJoin)이나 다수의 월렛에서 입금된 비트코인을 한 곳에 모아서 다수의 출금을 일으키며 거래 프라이버시를 유지할 수 있게 했는데, 블록체인 인포(Blockchain.info)의 쉐어드코인(SharedCoin), 셔플퍼프(ShufflePuff)등 비슷한 아이디어들은 많았다. 하지만 이미 존재하는플랫폼을 변형해 만들었던 도구였던 만큼, 편의성과 효율성 측면에서 단점이 존재했다. [3]
슈노르서명의 스팸어택에 대한 저항력
슈노르서명이 나오기 전에는 비트코인 네트워크는 수많은 스팸 공격으로 어려움을 겪었다. 일부 사람들은 미확인 거래가 성자을 하는데 있어 긍정적인 현상으로 보지만 분석결과 이는 스팸임을 알 수 있다. 사람들은 블록 크기를 증가 시키도록 유도하기 위해 가능한 많은 트랜잭션 공간을 사용하고 보냈다. 이 거래들은 모두 동일한 패턴과 방법으로 이루어진 것을 알 수 있다. 슈노르서명이 나온 후에 이러한 종류의 스팸 공격에 대처하는데 많은 도움이 된다. 트랜잭션 당 하나의 서명만 있으면 더 많은 트랜잭션이 블록에 들어가고 스패머는 더많은 사람들과 경쟁하여 훨씬 많은 트랜잭션을 전송해야 하므로 동일한 트랜잭션 공간을 차지하는데 더많은 돈을 쓸 가능서이 있다. 슈노르서명은 종종 트랜잭션의 가장 큰 개별부분이므로 공격자는 불이익을 당할 수 있다. 스팸을 만드는 사람은 슈노르서명을 사용하지 않고 이전 서명을 계속 사용하면 슈노르서명을 사용하는 사람은 더 적은 트랜잭션을 보내면서 적은 금액이 지불이 된다. 200개의 주소로 부터 0.0147BTC 의 수수료를 첨부해서 2.5 BTC 를 전송한 블럭의 디테일을 살펴보다보면 정상적인 트랙잭션이라기 보다는 스팸어택처럼 생겼다는 것을 알 수 있다. 슈노르서명은 비트코인에 구현되면 위와같은 트랜잭션에서 200개의 전자서명이 들어가던 것이 1개의 전자서명으로 충분해진다. 용량이 많이 줄어들어서 스팸어택의 효율이 떨어지기 때문이다. 기존의 비트코인에 구현되어 있는 엘립틱 커브를 슈노르서명이 대체하는 프로토콜 변경은 원래는 하드포크가 필요한 일이다. 지금은, 세그윗으로 인해 스크립트에 version을 부여하는 기능이 이미 들어가 버렸고, 그래서 슈노르서명의 구현은 하드포크가 아닌 소프트포크로 가능하게 되었다.[3]
전망
우선 이번 비트코인 개선 제안서 초안은 모든 개발자와 거래 당사자가 예외 없이 슈노르 서명 방식 코드를 똑같은 식으로 사용한다는 점을 분명히 함으로써 앞으로 있을지 모를 혼란을 예방해두었다. 아주 복잡한 기술에 관한 설명을 모두 읽고 싶다면 개선 제안서 전문을 읽으면 되겠지만, 제안서를 한마디로 요약하면 다음과 같다. 현재 비트코인 거래를 검증하고 암호화된 프라이빗 키를 생성하는 데 쓰이는 유일한 알고리듬인 이른바 타원 곡선 디지털 서명 방식(ECDSA, Elliptic Curve Digital Signature Algorithm)을 대체하는 슈노르 서명 방식의 수학적 기반을 풀어놓은 것이다. 슈노르 서명이 대체하려는 ECDSA 방식과 공통점이 하나 있다면, 서명 방식이 채택되더라도 현재 ECDSA가 프라이빗 키를 생성할 때 쓰는 secp256k1이라는 수학 곡선을 마찬가지로 이용한다는 점이다. 온통 까다로운 수학에 관한 내용이다 보니, 비트코인 개발자들 사이에서 제안서를 두고 갑론을박이 벌어진 것도 당연한 일이긴 하다. 하지만 슈노르 자체를 좌초시킬 만한 반론은 나오지 않았고 개발자들은 대체로 슈노르 서명의 미래를 낙관하고 있다. 특히 개발자들은 ECDSA 방식과 달리 슈노르의 보안을 수학적으로 증명할 수 있다는 점에서 슈노르 서명을 반기고 있다. 슈노르 서명이 도입되면 비트코인 네트워크 자체가 개선되는 것도 있겠지만, 개발자들은 또 슈노르 서명 방식을 토대로 비트코인이 새로운 프라이버시 기술을 도입하는 등 다양한 변화와 개선을 꾀할 수 있으리라는 점에서도 기대를 감추지 않고 있다. 현재 비트코인은 누구나 볼 수 있는 공개 원장이기 때문에 거래를 승인할 때 한 명이 아니라 여러 명이 이를 승인하는 다중 서명(multi-sig)을 해야만 한다. 그런데 슈노르 서명은 여러 명이 다중 서명을 거쳐 거래를 승인하지 않고 한 명이 서명을 해도 다중 서명한 거래와 똑같아 보이게 할 수 있는 기술이다.조나스 닉은 슈노르 서명을 도입하면 이러한 복잡한 거래를 처리하는 비용도 훨씬 줄어들 수 있다고 강조했다. 많은 거래가 동시에 일어나면 거래 비용이 기하급수적으로 커질 수 있는 상황에서 이는 획기적인 개선이 될 수 있다. 또한, 이미 슈노르 서명을 기반으로 한 새로운 응용 기술이 상당히 많이 제안되고 있다. 바일라는 또 다른 주요 비트코인 개발자 그레고리 맥스웰이 올해 초 비트코인 내 프라이버시를 강화하는 방안으로 제안한 개선책 탭루트(Taproot)를 언급했다.“최근 들어 새로운 발견이 쉼 없이 잇따르고 있다. 그래서 나는 이 다양한 기술들을 순서대로 하나씩 차근차근 개발하는 것이 중요하다고 생각한다. 우선은 슈노르와 탭루트에 집중할 생각이다.”[6]
각주
- ↑ Morning, 〈세그윗 이후의 비트코인 - 슈노 시그니처(Schnorr Signature)〉, 《Steemit》, 2018-01-21
- ↑ Josh Lee, 〈비트코인 진화의 다음 단계... '슈노르서명'은 무엇인가?〉, 《블록인프레스》, 2018-07-17
- ↑ 3.0 3.1 3.2 야옹메롱, 〈[블록체인 확장성(Salabilty)의 문제와 BIP의 개념, '슈노르서명'과 '탭루트'의 사례]〉, 《네이버 블로그》, 2019-05-15
- ↑ 블록체인(Blockchain), 〈슈노르서명(Schnorr Signature)의 탄생〉, 《Smart ITs 티스토리》, 2019-07-13
- ↑ 이슈, 〈비트코이 슈노르 서명에 대한 정보 〉, 《프렌치 케찹 티스토리》, 2018-07-18
- ↑ Alyssa Hertig, 〈세그윗-이후-비트코인-최대-변혁이-될-슈노르schnorr 〉, 《코인데스크코리아》, 2018-07-16
참고자료
- Morning, 〈세그윗 이후의 비트코인 - 슈노 시그니처(Schnorr Signature)〉, 《스팀잇》, 2018-01-21
- Josh Lee, 〈비트코인 진화의 다음 단계... '슈노르서명'은 무엇인가?〉, 《블록인프레스》, 2018-07-17
- PAUL CHANG, 〈슈노르 서명 및 탭루트 소프트포크에 대한 제안〉, 《비트멕스》, 2019-05-08
- 블록체인(Blockchain), 〈슈노르서명(Schnorr Signature)의 탄생〉, 《Smart ITs 티스토리》, 2019-07-13
- 이슈, 〈비트코이 슈노르 서명에 대한 정보 〉, 《프렌치 케찹 티스토리》, 2018-07-18
- 야옹메롱, 〈[블록체인 확장성(Salabilty)의 문제와 BIP의 개념, '슈노르서명'과 '탭루트'의 사례]〉, 《네이버 블로그》, 2019-05-15
- Alyssa Hertig, 〈세그윗-이후-비트코인-최대-변혁이-될-슈노르schnorr 〉, 《코인데스크코리아》, 2018-07-16
같이 보기