슈노르 서명은 비트코인에서 어떤 역할을 할까요?
목차
들어가며
디지털 서명 간략 설명
슈노르 서명이란 무엇인가요?
슈노르 서명의 장점은 무엇인가요?
슈노르 서명은 언제 비트코인에 구현되나요?
마치며
슈노르 서명은 비트코인에서 어떤 역할을 할까요?
아티클
슈노르 서명은 비트코인에서 어떤 역할을 할까요?

슈노르 서명은 비트코인에서 어떤 역할을 할까요?

고급
Published Jul 8, 2020Updated Apr 29, 2021
5m

들어가며

여러분은 아마도 비트코인이 타원곡선 디지털 서명 알고리즘(ECDSA)이라 하는 것을 사용해 소유권을 보장한다는 것을 알고 계실 것입니다. 해당 알고리즘은 하나의 숫자(예를 들면, 개인 키)에서 공개 키를 추출할 수 있게 합니다.
놀라운 점은 개인 키에서는 쉽게 공개 키를 얻을 수 있지만, 공개 키에서 개인 키를 얻는 것은 불가능하다는 것입니다. 여러분의 개인 키는 비트코인 네트워크상의 여권과 같습니다. 여러분은 개인 키를 사용해 주소를 생성하며, 코인을 수령하고 나중에 이를 사용할 수 있습니다. 

이번 아티클에서 우리는 비트코인에 흥미로운 변화를 가져다 줄 수 있는 ECDSA의 대안인 슈노르 서명(Schnorr Signature) 알고리즘에 대해 살펴볼 것입니다.


디지털 서명 간략 설명

디지털 서명은 펜과 종이로 하는 서명처럼 기능하지만, 훨씬 더 안전합니다. 누구나 조금만 시간을 들여 노력한다면 펜과 종이 서명을 위조할 수 있습니다. 그러나 수십만 년의 시간을 들이더라도 강력한 디지털 서명 체계에서는 위조가 불가능합니다.

디지털 서명을 사용하는 몇 가지 예시가 있습니다. 여러분이 특정 메시지를 작성했음을 증명하는 데 디지털 서명을 사용하는 것은 잘 알려진 예시 중 하나입니다. 앞서 언급한 것처럼, 여러분은 개인 키(안전하게 보관해야 하는 상당히 큰 숫자)로부터 공개 키를 생성할 수 있습니다. 이를 위해 여러분은 secp256k1 곡선에서 멋진 수학적 계산을 수행합니다. 또한 이를 통해 개인 키로부터 공개 주소를 생성할 수 있습니다.

여러분의 공개 키를 누구에게나 보여줘도 전적으로 안전합니다. 여러분은 이를 웹사이트나 트위터 프로필에 추가하여, 누구나 여러분의 신원을 검증하게 할 수 있습니다. 마찬가지로 여러분의 공개 주소를 다른 이들에게 공유할 수 있으며, 이를 통해 암호화폐를 전송받을 수 있습니다.

개인 키는 디지털 서명을 생성할 수 있게 합니다. 개인 키를 사용하여 메시지를 작성하고, 기능을 수행하며, 서명된 메시지를 작성할 수 있습니다. 누구나 해당 메시지를 여러분의 공개 키를 통해 비교하고, 정말로 여러분이 서명한 것인지 확인할 수 있습니다.

이것이 비트코인과 어떤 연관점이 있을까요? 여러분이 비트코인 트랜잭션을 생성할 때마다, 여러분은 나는 전에 내게 전송된 적이 있는 코인들을 전송한다라는 메시지에 디지털 서명을 하고 있는 것입니다. 그런 다음 이것이 네트워크상의 다른 노드에게 전달되었을 때, 이들은 ECDSA 서명이 해당 메시지와 일치하는지 확인할 수 있습니다. 만약, 일치하지 않는다면 그들은 이를 거부할 것입니다.


슈노르 서명이란 무엇인가요?

슈노르 서명은 조금 다른 방식을 택합니다. 슈노르 서명은 우리가 현재 사용하는 ECDSA와 유사하게 작동하지만, 이에 비해 상당한 장점들을 갖고 있습니다. 슈노르 서명은 실제로 ECDSA보다 앞서 있는 것이며, 많은 이들이 애초부터 비트코인에 통합되지 않았던 이유를 궁금해합니다.

이는 슈노르 서명의 창시자 클라우스 P. 슈노르(Claus P. Schnorr)가 특허를 냈기 때문일 수 있습니다. 해당 특허는 비트코인 백서가 출시되기 몇 달 전인 2008년 초에 만료되었지만, 전반적인 표준화가 이뤄지지 않은 상황이었습니다. 따라서 사토시 나카모토는 보다 널리 수용되는(그리고 오픈 소스인) ECDSA를 택했을 수 있습니다.


슈노르 서명의 장점은 무엇인가요?

슈노르 서명은 다른 방식과 비교할 때 무척이나 간단합니다. 그 결과 다른 대안적인 방식들에 비해 더 안전하다는 것이 증명되었습니다. 언뜻 보기엔 별다른 의미가 없을 수도 있지만, 슈노르 서명에는 선형성(linearity)이라는 또 다른 강력한 특성이 존재합니다. 
보다 일반적으로 말하자면, 슈노르 서명 방식은 특별히 다중서명 트랜잭션과 같은 특정 활동에 유용합니다. 여러분은 비트코인이 이미 다중서명을 지원한다는 것을 알고 계실 것이지만, 가장 좋은 방법으로 이를 지원하고 있지는 않습니다.

여러분이 다중서명 주소를 생성할 때, 여러분에게 자금을 전송하는 모두가 여러분이 입력값에 사용하도록 설정한 조건을 알 필요는 없습니다. 심지어 전송자는 다중서명이 설정된 주소로 자금을 전송한다는 것도 모를 것이며, 유일한 특징은 해당 주소가 “3”으로 시작한다는 것입니다.

그러나 자금을 이동하자 할 때는 그 속성이 드러나게 됩니다. 여러분이 앨리스, 밥과 함께 3-of-3 설정을 사용하고 있다고 해보겠습니다. 5 BTC를 사용하고자 한다면, 여러분과 앨리스, 밥의 공개 키와 유효한 서명이 반드시 필요합니다. 여러분이 해당 주소 밖으로 자금을 이동한다면, 전체 네트워크는 블록체인을 살펴봄으로써 어떤 일이 벌어졌는지 알 수 있습니다. 

이는 개인 정보 보호 측면에서 좋지 않습니다. 우리가 여기에 더 큰 다중서명(예를 들면, 8-of-10)을 생성해 추가한다면, 블록체인상의 공간을 꽤 많이 차지하게 됩니다. 트랜잭션이 지나치게 길어진 결과 많은 비용이 들 수 있습니다. 여러분의 트랜잭션에 더 많은 바이트(bytes)가 포함될 수록, 더 많은 비용을 지불해야 함을 기억하시기 바랍니다.

슈노르 서명은 이러한 개인 정보 보호와 확장성 문제에 대한 해결책으로 호평을 받아 왔습니다. 슈노르 서명은 다수의 서명자의 서명을 하나의 서명으로 통합하는 집단 서명과 같은 것을 가능하게 합니다. “마스터 서명”은 결과적으로 일반적인 서명인 한 사람의 서명과 동일한 길이를 갖게 될 것이며, 이는 공간을 크게 절약할 것입니다. 
뿐만 아니라, 서명을 통합하면 누가 트랜잭션에 서명(혹은 서명하지 않았는지)했는지 관찰자가 판단하기가 훨씬 어려워집니다. m-of-m 방식(자금을 사용하려면 반드시 모든 참가자가 서명해야 하는)에서는 단일 주체 트랜잭션과 다중서명 트랜잭션을 구분할 수도 없을 것입니다.
결정적으로 슈노르 서명은 앞으로의 발전을 위한 하나의 구성 요소입니다. 슈노르 서명을 사용하여 아토믹 스와프라이트닝 네트워크와 같은 암호화폐의 기술들을 발전시킬 수 있습니다.



슈노르 서명은 언제 비트코인에 구현되나요?

우리도 확신할 수 없습니다. 대부분의 비트코인 프로토콜 업그레이드와 마찬가지로, 보다 많은 비트코인 커뮤니티 구성원이 슈노르 서명을 포함시키는 것에 동의하기까지는 시간이 걸릴 것입니다. 비트코인 코어 기여자인 피터 바일라(Pieter Wuille), 조나스 닉(Jonas Nick), 팀(Tim Ruffing)은 비트코인 개선 제안 초안을 제시했지만, 여전히 해결해야 할 사항들이 남아 있습니다.
블록스트림은 이미 다중서명을 사용하고 있습니다. 집단 서명과 키를 사용할 수 있게 하면, 비트코인의 자체적인 슈노르 서명 체계의 기반이 될 수도 있을 것입니다.
슈노르 서명은 소프트 포크로 코드에 통합될 수 있으며, 이는 이러한 변경으로 네트워크가 분한될지 않는다는 의미입니다. 그 대신, 이는 “사전 동의”를 얻은 업그레이드일 것입니다. 우리는 멀지 않은 미래에 슈노르 서명이 통합되는 것을 볼 수 있을 수도 있지만, 합의에 도달하기 까지는 수년이 걸릴 것입니다.


마치며

슈노르 서명은 현 비트코인 로드맵에서 가장 많은 기대를 받고 있는 중요한 단계 중 하나입니다. 한 번의 업그레이드를 통해, 개인 정보 보안과 확장성이 크게 향상되는 이점을 누릴 수 있습니다. 보다 흥미로운 것은 이것이 또한 스마트 콘트랙트탭루트(Taproot)와 같은 보다 향상된 구조들을 비트코인에서 개발할 수 있게 하는 초석을 놓는다는 것입니다.