본문으로 건너뛰기

다중 서명

비트코인의 개인키는 돈을 움직일 수 있는 열쇠입니다. 열쇠가 하나뿐이면 개인키와 이를 복원할 복구 단어·백업을 모두 잃었을 때 돈이 영영 잠기고, 개인키가 도난당했을 때는 누군가 돈을 가져갈 수 있습니다. 재발급 창구나 거래 취소 절차도 없습니다.

다중 서명은 이런 위험을 줄이기 위해 열쇠 여러 개를 나누어 두고, 그중 정해 둔 개수 이상이 서명해야 비트코인이 움직이도록 잠그는 방식입니다. 열쇠 여러 개로 잠그는 금고와 같습니다. 열쇠 하나만으로는 열리지 않습니다.

열쇠를 나누어 두는 원리

예를 들어 열쇠 구멍이 세 개 있는 금고에 열쇠 세 개를 만들고, 그중 두 개만 있으면 열리도록 설정할 수 있습니다. 하나는 직접 보관하고, 하나는 믿을 만한 가족에게 맡기며, 나머지 하나는 멀리 떨어진 보관함에 둘 수 있습니다.

이렇게 하면 도둑이 훔친 열쇠 한 개만으로는 금고를 열 수 없습니다. 반대로 2-of-3 구성에서는 열쇠 하나를 잃어버려도 남은 두 개를 모으면 돈을 움직일 수 있습니다. 다만 2-of-2처럼 두 개 모두가 필요한 구성에서는 한 키를 잃으면 지출할 수 없습니다. 일반적으로 n개 중 m개의 키가 필요한 구성은 최대 n−m개의 키 손실을 감당할 수 있지만, 실제 복구에는 지갑 구성 정보도 필요합니다.

다중 서명의 조건은 지갑과 출력 구성을 설계할 때 정해 둡니다. 주소를 생성하는 행위 자체가 장부에 조건을 기록하는 것은 아닙니다. 자금을 받을 때는 주소 유형에 따라 잠금 조건 전체 또는 그 조건을 식별하는 값이 거래 출력에 기록됩니다. 예를 들어 P2SH·P2WSH 구성에서는 잠금 조건인 스크립트 자체가 아니라 그 해시를 출력에 기록하고, 나중에 지출할 때 해당 스크립트와 필요한 서명을 제시해 조건을 검증합니다.

돈을 보내려면 송금 내용을 담은 거래에 각 키 보유자가 자신의 서명을 추가해야 합니다. 정해 둔 수의 서명이 조건에 맞게 모인 거래만 유효합니다. 한 사람이 다른 사람의 서명을 대신 만들 수는 없습니다. 네트워크에 참여한 컴퓨터들은 이 조건을 확인하고, 서명이 부족한 거래는 받아들이지 않습니다.

필요한 서명 수를 정하는 방법

열쇠 수와 필요한 서명 수는 상황에 맞게 정할 수 있습니다.

  • 세 개 가운데 두 개가 필요한 방식
  • 다섯 개 가운데 세 개가 필요한 방식
  • 두 개 모두가 필요한 방식

열쇠를 많이 만들고 여러 장소에 나누어 둘수록 한 곳의 사고에는 강해질 수 있습니다. 그러나 관리해야 할 열쇠와 복구 절차가 늘어나므로 사용은 더 번거로워집니다. 열쇠를 한 서랍에 모두 넣어 두면 다중 서명의 장점을 충분히 살릴 수 없습니다.

여러 사람이 함께 관리할 때

다중 서명은 회사나 단체의 자금을 여러 사람이 관리할 때 유용합니다. 예를 들어 임원 세 명 가운데 두 명이 동의해야 자금이 움직이도록 설정하면, 한 사람의 실수나 변심만으로 돈이 빠져나가는 일을 막을 수 있습니다. 부부가 공동 저축을 함께 관리하는 방식에도 적용할 수 있습니다.

혼자 사용하는 경우에도 열쇠를 집과 직장, 멀리 떨어진 보관 장소에 나누어 두는 구성이 가능합니다. 예를 들어 2-of-3 구성에서는 한 곳이 털리거나 열쇠 하나를 잃어버려도 남은 두 열쇠로 지출할 수 있습니다. 다만 개인키만으로 충분하지 않을 수 있습니다. 전체 공개키, 파생 경로, 서명 임계값, 각 키의 식별 정보가 담긴 지갑 설정이나 출력 디스크립터 등 복구에 필요한 구성 정보도 백업하고, 실제로 복구 가능한지 미리 확인해야 합니다.

다중 전송과 다른 점

다중 서명과 다중 전송은 이름이 비슷하지만 뜻이 다릅니다.

다중 전송은 한 번의 거래로 여러 사람에게 돈을 보내는 기능입니다. 봉투 하나에 여러 장의 수표를 담아 보내는 것에 가깝습니다. 여기서 여러 개인 것은 받는 쪽, 즉 거래의 도착지입니다.

반면 다중 서명에서 여러 개인 것은 돈을 움직이는 데 필요한 열쇠와 서명입니다. 받는 사람의 수와는 관계가 없습니다. 다중 전송은 여러 곳으로 보내는 기능이고, 다중 서명은 여러 열쇠로 금고를 여는 방식입니다.

다중 서명의 부담

다중 서명은 보안을 높일 수 있지만 비용과 관리 부담도 따릅니다. 거래에 여러 서명이 포함되므로 거래 데이터가 커지고, 보내는 데 드는 비용이 늘어날 수 있습니다. 열쇠 하나만 사용하는 방식보다 복구 절차도 복잡합니다.

따라서 열쇠를 서로 다른 장소와 사람에게 분산하는 것뿐 아니라, 필요한 서명 수와 복구 방법, 지갑 구성 정보의 백업까지 함께 설계해야 합니다.

개인키의 역할은 개인키에서 더 자세히 확인할 수 있습니다.

링크 복사하기X에 공유페이스북에 공유쓰레드에 공유