Multi-signature Wallet (multisig)
다중 서명 지갑(Multi-signature Wallet) 또는 멀티시그 지갑은 각 트랜잭션을 실행하기 위해 단 하나가 아닌 여러 개의 서명을 요구하는 암호화폐 지갑입니다. 단일 개인 키에 의존하는 전통적인 지갑과 달리, 다중 서명 지갑은 트랜잭션 승인 및 완료를 위해 여러 개의 개인 키를 요구합니다.[1]
유형
일반적으로 사용되는 멀티시그 지갑의 유형은 다음과 같습니다:
n-of-n 멀티시그 지갑
트랜잭션 승인을 위해 두 개 이상의 키가 필요합니다. 서명을 생성하려면 모든 키를 사용해야 합니다. 예로는 2-of-2 멀티시그 지갑, 3-of-3 멀티시그 지갑 등이 있습니다. 예를 들어,
- 2-of-2 멀티시그 지갑: 이 종류의 지갑은 2단계 인증으로 강화되었으며 2-of-2 다중 서명 알고리즘을 사용합니다. 개인 키를 두 개의 서로 다른 장치에 저장합니다. 예를 들어, 하나의 개인 키는 컴퓨터에 있고 다른 하나는 모바일 장치에 있을 수 있습니다. 두 장치 모두의 서명이 없으면 트랜잭션을 진행할 수 없습니다. 2-of-2 멀티시그 지갑은 보안을 강화하지만, 한 장치에 문제가 생기면 자금에 대한 접근 권한을 잃을 위험이 있습니다.[1][2]
n-of-m 멀티시그 지갑
트랜잭션 승인을 위해 일부 키가 필요하지만 반드시 모든 키가 필요한 것은 아닙니다. 예로는 1-of-2 멀티시그 지갑, 3-of-5 멀티시그 지갑 등이 있습니다. 예를 들어,
- 3-of-5 멀티시그 지갑: 이 멀티시그 지갑 변형은 트랜잭션을 검증하기 위해 사용 가능한 5개의 개인 키 중 3개가 필요합니다. 거래소는 종종 핫 월렛의 보안을 강화하기 위해 이를 배포합니다. 3-of-5 멀티시그 주소를 채택한 거래소는 하나의 개인 키를 온라인에 유지하고 두 번째 키는 연결되지 않은 장치에 오프라인으로 보관합니다. 한편, 별도의 보안 회사가 세 번째 키를 보유하고, 배우자나 보호자가 네 번째 키를 가질 수 있으며, 또 다른 장치에 다섯 번째 키를 저장할 수 있습니다. 세 개의 서로 다른 주체가 개인 키를 관리하므로 하나를 해킹해도 지갑이 뚫리지 않습니다. 오프라인 백업은 특히 보안 파트너가 사라지는 경우에 대비하여 핫 월렛을 더욱 안전하게 보호합니다.[1][2]
하드웨어 멀티시그 지갑
암호화폐를 저장하는 가장 안전한 방법 중 하나로 간주되는 일부 하드웨어 지갑은 멀티시그 기능을 제공합니다. 하드웨어 지갑은 개인 키를 오프라인에 저장하는 물리적 장치이며, 멀티시그와 결합될 때 추가적인 보안 계층을 제공합니다.
소프트웨어 멀티시그 지갑
많은 암호화폐 지갑이 소프트웨어 기반의 멀티시그 기능을 제공하여 더 넓은 범위의 사용자가 접근할 수 있도록 합니다. 이러한 지갑은 데스크톱 컴퓨터와 휴대전화를 포함한 다양한 장치에서 사용할 수 있습니다.
커스터디얼 멀티시그 지갑
일부 암호화폐 거래소 및 커스터디 서비스는 추가 보안을 위해 멀티시그 지갑을 제공합니다. 이 경우 거래소나 서비스 제공업체가 개인 키 중 하나를 보유하고 사용자가 나머지를 보유하여, 양측 모두가 트랜잭션에 동의해야 함을 보장합니다.
스마트 컨트랙트 멀티시그 지갑
이더리움과 같은 일부 블록체인 플랫폼은 사용자가 스마트 컨트랙트를 사용하여 멀티시그 지갑을 생성할 수 있도록 허용합니다. 이러한 스마트 컨트랙트는 트랜잭션 승인을 위한 복잡한 규칙과 조건을 강제하도록 프로그래밍될 수 있습니다.
콜드 스토리지 멀티시그 지갑
콜드 스토리지 멀티시그 지갑은 일반적으로 최대 보안을 위해 오프라인 환경에서 생성 및 저장됩니다. 개인 키는 인터넷에 연결되지 않은 장치에서 생성 및 저장되므로 해킹에 매우 강합니다.
교차 통화 멀티시그 지갑
일부 멀티시그 지갑은 여러 암호화폐를 지원하여 사용자가 단일 지갑에서 다양한 디지털 자산을 안전하게 관리할 수 있도록 합니다.[5]
기술 (Tech)
멀티시그 지갑은 각각 고유한 개인 키를 가진 미리 정해진 수의 승인된 서명자들로 설정됩니다. 트랜잭션이 시작되면 블록체인 네트워크에 전파되지만, 필요한 서명이 제공될 때까지는 미확정 상태로 유지됩니다. 이 지갑은 사전에 정의된 정족수(quorum)를 기반으로 서명 요구 사항을 강제합니다.[1]
예를 들어, 2-of-3 멀티시그 지갑에서는 세 명의 서명자 중 두 명이 서명을 제공해야 합니다. 승인된 서명자들은 트랜잭션을 검토하고 자신의 개인 키를 사용하여 디지털 서명을 추가합니다. 필요한 수의 서명이 확보되면 트랜잭션이 확정되고 암호화폐가 전송됩니다.[1][3]
주요 기능
- 모든 공동 서명자는 지갑의 자금과 거래 내역을 조회할 수 있습니다.
- 지갑에서 발생하는 거래는 하나 이상의 공동 서명자의 서명이 필요하며, 이는 자금 보안을 강화합니다.
- 각 공동 서명자에게는 고유한 복구 구문이 제공됩니다. 그러나 공동 서명자 중 한 명이라도 복구 구문을 분실할 경우, 거래 승인에 필요한 충분한 서명을 확보하지 못할 수 있습니다. 서명할 공동 서명자가 충분하지 않으면 지갑의 자금에 접근할 수 없게 됩니다.
- 이 지갑은 단일 멀티시그 키 아래에 여러 암호화폐를 보관하는 기능을 지원합니다.[5]
이점
보안 강화
멀티시그 지갑은 단일 서명 지갑에 비해 우수한 보안을 제공합니다. 하나의 개인 키가 노출되더라도, 공격자는 필수적인 추가 서명 없이는 자금에 접근할 수 없습니다.
인적 오류 위험 감소
여러 개인이나 단체의 승인을 요구함으로써, 멀티시그 지갑은 실수로 인한 손실이나 무단 이체의 위험을 완화합니다.
내부 위협으로부터의 보호
비즈니스 또는 조직적 맥락에서 멀티시그 지갑은 내부자의 악의적인 행위로부터 방어 수단이 됩니다. 자금을 위태롭게 하려면 여러 내부자 간의 공모가 필요하기 때문입니다.
2단계 인증 (2FA)
멀티시그 지갑은 본질적으로 2단계 인증(2FA)의 형태를 띱니다. 지정된 서명자들은 대기 중인 모든 거래를 확인해야 합니다. 악의적인 행위자가 키에 무단으로 접근하더라도, 사용자는 즉시 그들의 접근을 중단시키고 취소할 수 있습니다. 이러한 보안 조치를 강화하기 위해 개인 키는 종종 여러 장소에 분산 저장되거나 서로 다른 개인이 보유합니다.
에스크로 서비스
멀티시그 지갑은 에스크로 서비스에 자주 활용됩니다. 특정 조건이 충족될 때까지 자금을 보관하며, 거래를 위한 투명하고 강화된 방법을 제시합니다.
비즈니스 활용 사례
기업 환경에서 멀티시그 지갑은 재무 관리에 매우 유용합니다. 이를 통해 경영진 협의체가 금융 거래를 모니터링하고 승인할 수 있습니다.[1]
단일 키 vs 멀티시그
| 지갑 / 특성 | 단일 키 지갑 (Single Key Wallet) | 멀티시그 지갑 (MultiSig Wallet) |
|---|---|---|
| 키의 개수 | 액세스 및 제어를 위해 단일 개인 키에 의존합니다. 지갑의 트랜잭션은 단 하나의 서명으로 승인됩니다. | 트랜잭션을 승인하기 위해 여러 개의 개인 키가 필요합니다. 필요한 서명 수는 멀티시그 설정에 따라 다릅니다. |
| 보안성 | 보안성이 낮습니다. 단일 개인 키가 노출되거나 분실되면 백업이나 중복성 없이 자금이 도난에 취약해집니다. | 강화된 보안을 제공합니다. 공격자는 필요한 수의 추가 서명 없이는 자금에 접근할 수 없습니다. |
| 복잡성 | 설정이 쉽습니다. | 설정 및 관리가 더 복잡합니다. 여러 당사자와의 조정, 여러 개인 키 관리 및 특정 보안 매개변수 설정이 필요합니다. |
| 복구 및 중복성 | 내장된 중복성이 부족합니다. 개인 키를 분실하거나 노출되면 복구가 어려울 수 있으며 자금을 영구적으로 잃을 수 있습니다. | 중복성을 고려하여 설계되었습니다. 하나의 키를 분실하거나 노출하더라도 백업이 가능합니다. |
| 트랜잭션 승인 | 단일 개인 키 보유자에 의해서만 승인되므로 빠르고 간단한 트랜잭션이 가능합니다. | 지정된 수의 승인된 서명자들의 승인이 필요하며, 이는 복잡성을 더하고 트랜잭션 승인 시간을 잠재적으로 증가시킵니다. |
| 보안 트레이드오프 | 단순하고 편리하지만 보안 위험이 더 높습니다. | 보안은 강화되지만 관리가 더 복잡할 수 있습니다. |
| 사용 사례 | 단순함과 자금에 대한 빠른 접근을 우선시하는 개인에게 적합합니다. 주로 일상적인 지출에 사용됩니다. | 비즈니스 계정, 가족 공동 계정, 에스크로 서비스 및 신뢰와 책임이 필수적인 상황에 적합합니다.[4] |
MultiSig Wallet Attacks
Phishing Attacks
공격자는 지갑 제공업체나 신뢰할 수 있는 개인을 사칭하여 사용자가 개인 키나 인증 코드를 공개하도록 유도할 수 있으며, 이는 멀티시그 지갑의 보안을 침해할 수 있습니다.
Social Engineering
공격자는 승인된 서명자 중 한 명을 조종하거나 속여 개인 키에 대한 접근 권한을 얻으려고 시도할 수 있습니다. 이는 사칭, 뇌물 수수 또는 강압과 같은 다양한 수단을 통해 이루어질 수 있습니다.
Key Theft
개인 키 중 하나가 노출되거나 도난당하면, 공격자는 다른 승인된 서명자의 인지나 동의 없이 트랜잭션에 서명하는 데 이를 사용할 수 있습니다. 이는 멀티시그 지갑의 중대한 취약점입니다.
Inadequate Key Management
보안되지 않은 장소에 개인 키를 저장하거나 취약한 비밀번호를 사용하는 등 부적절한 키 관리 관행은 멀티시그 지갑을 무단 접근에 노출시킬 수 있습니다.
Software Vulnerabilities
지갑 소프트웨어나 기반이 되는 blockchain 네트워크의 취약점은 공격자가 멀티시그 지갑의 제어권을 획득하는 데 악용될 수 있습니다. 지갑 소프트웨어와 펌웨어를 최신 상태로 유지하는 것이 필수적입니다.
Physical Attacks
어떤 경우에는 개인 키를 저장하는 데 사용되는 장치나 저장 매체에 대한 물리적 공격으로 인해 키가 노출될 수 있습니다. 이러한 위험을 완화하려면 안전한 hardware storage가 필수적입니다.
Collusion Attacks
트랜잭션 서명을 위해 여러 승인된 당사자가 필요한 상황에서, 둘 이상의 서명자가 공모하여 사기성 트랜잭션을 승인하는 공모 공격이 발생할 수 있습니다. 멀티시그 설정 시 신뢰할 수 있는 당사자를 선택하는 것은 필수 사항입니다.
Excessive Trust in One Party
멀티시그 지갑은 여러 당사자 간에 신뢰를 분산하도록 설계되었습니다. 그러나 한 당사자가 키에 대해 훨씬 더 많은 제어권이나 접근 권한을 갖게 되면 지갑의 보안이 잠재적으로 위협받을 수 있습니다.
Smart Contract Vulnerabilities
smart contracts를 사용하여 구현된 멀티시그 지갑은 컨트랙트 코드의 코딩 오류나 취약점에 노출될 수 있으며, 이는 예기치 않은 동작과 잠재적인 익스플로잇으로 이어질 수 있습니다.
Loss of Recovery Information
멀티시그 지갑에는 종종 백업 키나 시드 구문과 같은 복구 메커니즘이 마련되어 있습니다. 이러한 복구 옵션을 분실하거나 노출되면 지갑에 대한 접근 권한을 다시 얻는 것이 어려울 수 있습니다.[11]
멀티시그 지갑 해킹 사건
Bitfinex (2016)
- Bitfinex는 2016년 8월 세간의 이목을 끈 보안 침해 사고를 겪었습니다. 해당 거래소는 고객의 자금을 보호하기 위해 2-of-3 멀티시그 지갑 구성을 사용하고 있었습니다.
- 해커들은 Bitfinex의 멀티시그 지갑 소프트웨어의 취약점을 악용하여 당시 수천만 달러의 가치에 달하는 약 120,000 Bitcoins를 훔쳤습니다.[8]
Parity 지갑 취약점 (2017)
- 블록체인 소프트웨어 기업인 Parity Technologies는 2017년 자사의 멀티시그 지갑 소프트웨어와 관련된 여러 보안 사고를 경험했습니다.
- 2017년 7월, Parity 멀티시그 지갑 코드의 취약점으로 인해 해킹이 발생하여 다양한 프로젝트와 개인으로부터 150,000 ETH 이상의 손실이 발생했습니다.
- 2017년 11월, Parity의 멀티시그 지갑 코드의 또 다른 버그로 인해 여러 지갑에 보관된 약 513,000 ETH가 동결되는 사고가 발생했습니다.
- 이러한 사건들은 스마트 계약 기반 멀티시그 지갑의 신뢰성과 보안에 대한 우려를 불러일으켰습니다.[9]
Examples
Armory
Armory는 가장 널리 사용되는 BTC 멀티시그 지갑입니다. 다양한 지갑 스타일을 제공하며 특정 유형의 해킹에 대한 내장된 보호 기능을 제공합니다. 사용자는 개인 키를 USB 장치에 오프라인으로 저장할 수 있는 옵션이 있습니다.
Electrum
Electrum은 BTC를 위한 가장 오래된 멀티시그 지갑 중 하나입니다. 인터페이스는 사용자 친화적이면서도 안전합니다. Electrum은 Ledger 및 Trezor와 같은 다른 지갑과 호환됩니다. 단순 결제 검증(SPV) 시스템을 활용하며 비트코인만을 전용으로 지원합니다.
BitGo
BitGo는 비트코인 전용 멀티시그 지갑으로, 다양한 유용한 통합 기능을 제공합니다. 사용자는 자신의 지갑을 제3자 암호화폐 거래소와 통합할 수 있습니다. BitGo의 오픈 소스 지갑은 해킹에 대한 무료 보험을 포함하며 데스크톱 및 웹 버전으로 모두 제공됩니다.
Trezor 및 Ledger
이들은 주로 하드웨어 지갑이지만, 호환되는 소프트웨어 지갑과 결합하여 사용할 때 멀티시그 솔루션도 제공합니다.
[6][7]
Safe
Safe(이전 명칭 Gnosis Safe)는 Gnosis에서 개발한 제품입니다. 이는 이더리움에서 스마트 컨트랙트 지갑으로 작동하는 맞춤형 멀티시그 지갑 인프라입니다. 트랜잭션을 실행하기 전에 미리 정의된 수의 승인이 필요하며 ETH, ERC-20, ERC-721을 포함한 다양한 토큰을 지원합니다. Safe는 Safe Guardians로 알려진 탈중앙화 집단인 SafeDAO에 의해 거버넌스가 이루어집니다. [12]