본문 바로가기
블록체인/크립토 월렛

12. 크립토 월렛의 개인키 관리 분석 - 안전한 개인키 관리를 위한 크립토 월렛 기술

by 비트코기 2023. 10. 1.

크립토 월렛 분석과 검토를 통한 개인키 관리 및 사례 연구

04. 크립토 월렛의 개인키 관리 분석


제4절 안전한 개인키 관리를 위한 크립토 월렛 기술

 

앞에서도 언급했듯이 크립토 월렛은 디지털 자산을 안전하게 보관하고 전송할 수 있는 애플리케이션이다. 블록체인과 관련된 해킹 사고를 보면 대부분이 암호화폐 거래소의 크립토 월렛에서 개인키가 유출되어 발생하고 있다. 따라서 수탁형 개인키 관리 서비스 제공자는 더욱 안전하게 개인키를 관리하기 위해 콜드월렛(Cold Wallet)과 핫월렛(Hot Wallet)을 같이 혼용해서 사용한다. 또한 기술적으로도 안전성을 보강하기 위한 멀티시그 월렛(Multi-Sig Wallet)과 MPC 월렛(Multi Partiy Comuptation Wallet)이 사용되고 있다.

 

1. 멀티시그(Multi-Sig) 월렛

가. 멀티시그 월렛의 개념

멀티시그 월렛은 Multisignature Wallet을 줄임말로 다중서명 지갑이라고 한다. 단일 서명을 통해 지갑에서 가상화폐를 출금하던 방식과 다르게 각 트랜잭션을 실행하기 위해 하나가 아닌 여러 서명이 있어야 하는 크립토 월렛이다.

 

나. 멀티시그 월렛의 장단점

멀티시그 월렛은 단일 서명 지갑에 비해 보안성은 올라가지만, 사용자의 편의성이 떨어지는 트레이드 오프(Trade Off) 관계를 가진다. 아래 <표 4-1>를 통해 멀티시그 월렛의 장단점에 관해 설명한다.

 

<표 4-1> 멀티시그 월렛의 장단점

구분 장단점 설명
장점 향상된 보안 여러 사용자가 서명해야 출금할 수 있으므로 보안성이 올라간다.
에스크로 거래 멀티시그 월렛은 에스크로 트랜잭션에 이상적이다. 합의된 조건이 충족되면 각 당사자가 의무를 이행할 것을 보장한다.
2단계 인증 적격한 서명자가 승인 전에 보류 중인 거래를 확인해야 하므로 2단계 인증 형식을 제공한다.
사용자 실수 방지 사용자가 거래 금액과 입력 오류와 같은 실수를 하더라도 다른 사용자의 동의를 얻어야 해서 사전에 방지할 수 있다.
단점 트랜잭션 속도 일반 지갑에 비해 아직 종류가 많지 않고 여러 사용자가 서명해야만 거래가 되는 구조상 빠른 거래를 하기 어려운 불편함이 존재한다.
스마트 컨트랙트 오류 스마트 컨트랙트로 구현된 지갑이기 때문에 지갑 구현의 논리 오류, 코딩 버그, 컴파일러 버그 등의 직접적인 영향을 받아 문제가 발생할 수 있다.

다중서명(Multisignature) 기술은 거래를 처리하는 데 여러 개인키가 사용된다. 여러 사용자가 공동으로 관리하는 지갑에서 사용되며 특정 거래를 처리하는 데 필요한 모든 개인키를 보유한 사용자의 서명이 필요하다. 이를 통해 더욱 안전하고 신뢰성 높은 거래 처리가 가능하다.

 

다. 멀티시그 월렛의 아키텍처

멀티시그 월렛의 서명자의 수와 관계없이 같은 작업 흐름으로 진행된다. 다중서명 기술을 사용한 지갑에서 일반적으로 N개의 개인키가 사용된다. 예를 들어, 2-of-3 멀티시그 월렛의 경우, 3개의 개인키 중에 2개의 개인키가 필요하다. 이렇게 구성된 멀티시그 월렛에서는 특정 거래를 처리하기 위해 2개의 개인키를 보유한 사용자의 서명이 필요하게 된다. 이를 통해, 지갑 소유자들 간의 합의 없이는 거래를 처리할 수 없게 된다.

 

<그림 4-1> 멀티시그 월렛 아키텍처

A, B, C는 각각 하나의 키를 보유하고 있다. 이들은 트랜잭션을 전송하기 위해서 세 개의 키 중 두 개가 있어야 하는 멀티시그 월렛을 설정한다. <표 4-2>은 2-of-3 멀티시그 월렛에 대한 처리 프로세스이다.

 

<표 4-2> 멀티시그 월렛을 이용한 거래 프로세스  

구분 프로세스 설명
생성 트랜잭션 생성 지불을 하기 위해 A은 거래를 생성
서명 거래 서명 거래를 승인하기 위해 A의 개인키로 서명
전송 다음 사람에게 전송 B에게 거래 전송
서명 거래 서명 B는 개인키로 서명
전송(분기 1) 완료를 위해 트랜잭션 생성자에게 전송 B는 거래 완료를 위해 A 에게 거래 전송
전송(분기 2) 다음 사람에게 전송 B는 C에게 거래 전송
서명(분기 2) 거래 서명 C는 개인키로 서명
전송(분기 2) 완료를 위해 트랜잭션 생성자에게 전송 C는 거래 완료를 위해 A 에게 거래 전송
완료(분기 1, 2) 프로세스 종료 거래 완료

멀티시그 월렛은 거래 승인을 위한 키 수와 승인에 필요한 최소 키 수를 3-of-5, 5-of-7과 같이 설정하여 처리한다.

 

멀티시그 월렛은 블록체인에서 중요한 거래를 처리할 때 매우 유용하다. 예를 들어, 큰 금액을 전송할 때 단일 개인키로 거래를 처리하면 개인키가 유출되었을 때 큰 손실을 볼 수 있지만 멀티시그 월렛을 사용하면 여러 사용자의 서명이 필요하므로 개인키 유출에 대한 위험이 많이 감소한다. 또한, 멀티시그 월렛은 기업 또는 조직 구조에서 특히 바람직하다. 예를 들어, 회사의 자금을 관리하는 지갑에서는 여러 관리자의 서명이 필요한 2-of-3 멀티시그 기술을 사용할 수 있다. 이를 통해, 여러 관리자 간의 합의 없이 자금을 이동시키거나 사용할 수 없게 하여 조금 더 안전하게 지갑을 관리할 수 있다. 보안에 민감한 일부 투자자는 멀티시그 월렛을 콜드월렛에 대한 추가 보안 계층으로 채택할 수 있다. 이러한 형태는 사용자가 전송을 승인하기 위해 여러 단계를 완료해야 하며 가족이나 변호사와 같은 신뢰할 수 있는 제 3자에게 책임을 확장하도록 선택할 수 있다.

 

2. MPC(Multi-Party Computation) 월렛

가. MPC 월렛의 개념

MPC 월렛(Multi-Party Computation Wallet)은 개인키를 안전하게 보호하기 위한 기술 중 하나로 일반적으로 크립토 월렛은 개인키를 저장하는 곳으로 이 개인키가 유출되면 크립토 월렛과 연결된 블록체인 네트워크의 자산에 접근이 가능해진다. MPC 월렛은 이러한 문제를 방지하기 위해 완전한 개인키를 보유한 단일 당사자 없이 당사자들이 서명 및 암호화 책임을 공유하여 개인키와 제어 권한을 분리하는 추가적인 보호 기능으로 악의적인 공격자가 장치 중 일부 키를 확보하더라고 해킹이 어려운 크립토 월렛이다.

 

나. MPC 월렛의 장단점

MPC 월렛을 사용하는 것으로 제 3자의 신뢰가 필요 없고 단일 장애점 등이 제거되지만 연산 부하와 높은 통신비용 같은 제한 사항이 있다. 아래 <표 4-3>을 통해 MPC 월렛의 장단점에 대해 설명한다.

 

<표 4-3> MPC 월렛의 장단점

구분 장단점 설명
장점 신뢰할 수 있는 제 3자 데이터는 제 3자 없이 분산 방식으로 공유될 수 있다.
데이터 프라이버시 데이터는 안전하게 암호화되어 저장되고 전송 중에도 개인 정보가 노출되거나 유출되지 않는다.
높은 정확도 MPC는 암호학을 이용하여 다양한 계산에 대해 매우 정확한 결과를 제공한다.
단일 장애 지점 제거 개인키는 한 곳에 집중적으로 저장되지 않는다.
해킹 가능성 저하 해커는 시스템과 위치를 가로지르며 여러 당사자를 공격해야 한다.
콜드 스토리지 의존 감소 사용자들은 자산을 온라인으로만 보유할 수 있으며 더 이상 콜드 스토리지 기기가 불필요하다.
단점 연산 부하 보안을 위해 필요한 개인키 생성을 위해 난수를 생성해야 하지만 난수 생성은 더 많은 연산 부하를 필요로 하여 실행 시간을 늦추게 된다.
높은 통신 비용 네트워크를 통해 계산 목적으로 여러 당사자에게 데이터를 분배하는 것은 단순 평문 계산과 비교하여 통신 비용의 증가로 이어질 수 있다.

 

다. MPC 월렛의 아키텍처

기존 크립토 월렛은 하나의 개인키가 연결된 단일 서명 거래방식을 사용하면 개인키에 대한 유출은 단일장애점(SPOF, Single Point of Failure)이 된다. 이러한 문제를 해결하기 MPC 월렛은 분산 키 공유 형태로 키를 생성하여 키 수명 주기 동안 모든 장치에 완전한 키가 존재하지 않으므로 일반적인 단일 실패 지점 취약성이 제거된다. MPC 월렛의 아키텍처와 주요 구성요소는 <그림 4-2> <표 4-4>과 같다.

 

<그림 4-2> MPC Wallet의 아키텍처

 <표 4-4> MPC Wallet 아키텍처의 구성요소

구분 구성요소 설명
Client MPC Group MPC 기능을 사용하는 사용자들의 집합체이다.
그룹 생성 발의자가 지정한 구성원들로 이루어지고 모두 참여를 수락한 상태를 의미한다.
그룹 내 멤버 중 누구나 서명을 발의하거나 참여할 권한을 가지게 된다.
MPC Member 그룹에 참여한 그룹의 구성단위를 의미한다.
서명을 발의하거나 참여할 권한을 갖는다.
MPC Client MPC Server와 직접적으로 통신하는 소프트웨어 단위를 의미한다.
MPC SDK로 구현한 지갑 소프트웨어를 의미한다.
Server App Server MPC 연산 과정의 편의성을 보조하기 위한 서버이다.
MPC 연산을 위한 MPC 참여자 간 통신을 보조한다.
MPC Server MPC 연산에 필요한 데이터 중계 임무를 수행한다.
MPC 연산에 필요한 데이터를 Member 들에 전달한다.
공유 정보를 수집하고 Member Index에 맞게 재분배한다.

MPC 월렛은 디지털 자산을 관리하는 개인, 기업, 금융기관 및 정부 모두에게 강력한 보안을 제공하기 위해 MPC 기술을 적용한 디지털 자산 지갑이다.

반응형

댓글