Offcanvas

How To / 검색|인터넷 / 보안 / 블록체인 / 신기술|미래 / 애플리케이션

핵심 개념부터 사용 방법까지... ‘암호화폐 지갑’ 시작하기

2022.09.14 Matthew Tyson  |  CSO
최신 애플리케이션 개발은 보안 패러다임의 수많은 문제와 씨름해 왔다. 블록체인은 이러한 단점 중 일부를 보완할 수 있지만 기존 애플리케이션과 통합할 방법을 고민해야 한다. 선도적인 사이버 보안 기업들은 이미 이 작업을 진행하고 있으며, 블록체인 기반의 보안 환경을 가속하고 있다. 여기서는 암호화폐 지갑의 작동 방식과 인증에서 암호화폐 지갑이 하는 역할을 살펴본다.
 
ⓒClem Onojeghuo (CC0)

암호화폐 지갑이란?
암호화폐 지갑(또는 크립토 월렛)이란 기본적으로 암호화 키를 관리하는 소프트웨어 클라이언트다. 블록체인 기반의 비대칭 암호화에서는 키 쌍으로 알려진 2개의 키(공개 키와 개인 키)가 생성된다. 공개 키는 개인 키만 해독할 수 있는 암호화된 암호 텍스트를 만들 수 있다. 또한 데이터에 서명하는 데 사용될 수 있으며, 보낸 사람이 (개인 키를 공개하지 않고도) 개인 키를 보유하고 있음을 증명할 수 있다.

이 배열은 ‘디피 헬먼(Diffie-Hellman)’이 단방향 함수를 사용하여 처음(공식적으로) 고안했다. 결과적으로 개인 키를 사용하면 기밀 정보에 액세스할 수 있다. 비유하자면 공개 키는 마법의 편지 봉투다. 여기에 편지를 넣으면 해당되는 개인 키의 소유자만 그 봉투를 열어서 읽을 수 있다.

블록체인에서는 공개적으로 사용 가능한 데이터 저장소에 마법의 봉투, 즉 공개 키가 존재한다. 누구나 이러한 공개 위치로 데이터를 보낼 수 있지만 해당 위치의 개인 키 소유자만 데이터에 액세스할 수 있다. 블록체인 주소도 암호화 엔티티이며, 공개 키와 함께 생성된다. 이 주소에는 암호화폐나 다른 민감한 정보가 들어 있다. 이는 주소를 만든 개인 키로만 액세스할 수 있다.

핵심은 사용자가 블록체인에 관한 개인 및 공개 키를 보관하는 편리하고 안전한 방법이 필요하다는 점이다. 지갑은 보유하고 있는 개인 키를 기반으로 체인과 쉽게 상호작용할 수 있도록 하여 이를 지원한다. 지갑 자체는 비밀번호로 보호되며, 아울러 공개 키를 관리하고 거래를 수락하기 위해 주소가 필요할 때 사용자가 액세스할 수 있게 한다.

애플리케이션과 지갑 연결하기
암호화폐 지갑은 비대칭 키 쌍을 처리하는 사용자 친화적이고, 친숙한 수단에 해당된다. 이는 본인 인증의 맥락에서 흥미롭다. 지갑이 신원을 소유하고 있기 때문이다. 해당 ID는 사용자를 인증하는 데 활용될 수 있다. 필요한 건 애플리케이션과 지갑을 잇는 다리뿐이다. 

이러한 다리(bridge)는SIWE(Sign In With Ethereum) 등의 프로젝트에서 연구되고 있으며, 오스제로(Auth0)는 이미 SIWE와 같은 기술을 대체 인증 메커니즘으로 사용하고 있다. 사용자 이름/비밀번호 또는 SSO(Sigle Sign-On) 등의 기존 로그인 방식을 (전혀 문제없이) SIWE로 대체해 사용하는 것은 놀라울 만큼 쉽다. 낮은 진입 장벽은 광범위하게 사용될 수 있음을 의미한다.

이러한 지갑 기반 인증의 장점은 2가지다. 첫째, ID의 암호화 특성은 일반 텍스트 암호에 비해 매우 안전하다. 둘째, 연합된 SSO와 같은 기능은 모든 추가적인 복잡성과 취약성 없이도 달성할 수 있다. 다시 말해, 지갑은 모든 애플리케이션에서 사용할 수 있는 단일 신원 정보 소스 역할을 할 수 있다. 

암호화폐 지갑의 사용 방법
‘지갑 기반 인증’은 보안의 미래에 큰 영향을 미치는 중요한 아이디어이기 때문에 일반적으로 어떻게 작동하는지 살펴보자. 이를 통해 사용자 경험을 구체적으로 파악할 수 있다.

인기 있는 지갑 중 하나는 ‘메타마스크(Metamask)’ 브라우저 확장 프로그램으로, 최근 월간 활성 사용자 3,000만 명을 돌파했다. 사용하기 쉽고, 여러 블록체인 중 특히 이더리움과 토큰의 세계를 지원한다. 지갑은 일반적으로 하드웨어와 소프트웨어 2가지 형태로 제공된다. 메타마스크와 같은 소프트웨어 지갑은 대부분 브라우저 확장 프로그램 또는 모바일 앱이다. 이를 통해 모든 지갑의 일반적인 특성을 확인할 수 있으므로 간략하게 살펴보겠다.

메타마스크를 사용하고 싶다면 이곳(metamask.io)으로 가서 브라우저의 다운로드 버튼을 클릭하라. 설치가 완료되면 메타마스크 확장을 열고 시작 화면을 클릭한다. 스크린 샷 1처럼 선택사항이 표시되며, 새 지갑을 만들기나 이전 지갑 가져오기를 실행할 수 있다.
 
스크린 샷 1. 메타마스크(Metamask): 가져오기 또는 생성하기 ⓒMatthew Tyson

잠깐 시드 키(seed phrase) 개념을 소개하겠다. 시드 키는 지갑의 복구 메커니즘 역할을 하는 단어 집합이다(일반적으로 12개 또는 24개의 단어). 지갑이 있다면 ‘지갑 가져오기’를 클릭하고 지갑에 다시 액세스하는 데 사용한다. 가장 중요한 점은 개인 키와 마찬가지로 시드 키를 안전하게 유지해야 한다는 것이다. 이는 지갑의 모든 항목에 액세스하는 데 사용될 수 있다.

스크린 샷 1에 표시된 가져오기 또는 만들기 화면에서 ‘지갑 만들기’를 선택하면 먼저 비밀번호를 묻는 메시지가 뜬다. 이 비밀번호는 지갑의 해당 인스턴스에만 액세스하는 데 사용된다. 이 지갑을 분실하고 시드 키를 사용하여 (예를 들어 다른 기기에서) 복구하면 해당 인스턴스에 액세스하기 위해 새 비밀번호를 입력하라는 메시지가 표시된다. 즉, 비밀번호는 지갑을 복구하는 데 사용할 수 있는 것이 아니다. 오직 시드 키만 그렇게 할 수 있다. 

그다음 메타마스크 지갑 생성 과정에서 시드 키를 볼 수 있다. 다시 말하지만, 이 키는 보안을 유지하는 데 매우 중요하다. 지갑을 생성한 이후에는, 이 키를 복구할 방법이 없다. 시드 키가 저장됐는지 확인하면 스크린샷 2와 같은 메타마스크의 기본 화면이 나타난다.
 
스크린 샷 2. 메타마스크 메인 화면 ⓒMatthew Tyson

이때 ‘계정 1(Account 1)’ 아래의 문자열을 주목해야 한다. 사진에서는 ‘0xa65 ... 9321.’이 있다. 이는 공개 키다. 예를 들어 누군가 이더리움을 보낸다고 하면 이를 수신 주소로 사용할 수 있다. 개인 키를 찾으려면 오른쪽 상단의 줄임표를 클릭한 다음, ‘계정 세부 정보(Account Details)’를 클릭하고 마지막으로 ‘개인 키 내보내기(Export private key)’를 누른다. 개인 키는 체인의 해당 주소에 저장된 모든 항목에 액세스할 수 있는 매우 중요한 정보임을 잊어서는 안 된다.

메타마스크와 다른 지갑에는 많은 기능이 있지만 이것이 기본적인 속성이다. 이제 지갑으로 로그인하는 방법을 알아보자. 이더리움 앱 탐색기로 가면 메타마스크를 지원하는 다양한 앱을 볼 수 있다. 금융 외의 다른 애플리케이션을 보려면 여기에서 이더리움 도메인 이름 앱을 방문한다.

‘앱으로 이동(Go to App)’을 클릭하면 메타마스크가 자동으로 시작되고, 스크린 샷 3과 같은 화면이 나타난다. 메타마스크는 앱이 요구하는 권한(주소, 계정 잔액, 활동 및 승인할 거래 제안)을 정확히 알려주며, 모든 것을 수락하고 메인 화면에서 ‘연결(Connect)’을 누르면 로그인한 것을 볼 수 있다. (로그인을 했다면) 이제 오른쪽 위 탐색 모음에 ‘내 계정(My Account)’ 링크가 있다.
 
스크린 샷 3. 메타마스크에서 Eth 도메인으로 로그인 ⓒMatthew Tyson

(참고: 또 다른 비금융 앱이라면 사용자가 오픈소스 코드 작성을 하여 ETH를 획득할 수 있는 프로젝트인 깃코인(GitCoin)을 살펴보라. 이 앱은 일반적인 인증 (깃허브(GitHub)를 통한 인증)과 지갑 기반의 인증을 결합했다.)

암호화폐 지갑의 미래
간단히 훑어봤지만 블록체인 지갑 기반 앱(디앱(dApp) 또는 분산형 앱)에서 인증이 어떻게 작동하는지 살펴본 셈이다. 웹의 미래에는 기존 앱(web2)과 블록체인 앱(web3)을 통합한 수많은 앱이 포함될 것이다. 일반적으로 이는 모두 디앱(dApp)이며, 인증이 주요 접점이다.

다시 말해, 웹3 인증을 지원함으로써 기존의 변경되지 않은 앱이 블록체인의 핵심 기능을 활용할 수 있으나 현재는 탈중앙화된 정체성이 다소 모호하다. 알다시피 아무것도 없는 것에서 정체성을 만드는 것은 쉽다. 애플리케이션에 중요한 정보(예: 화폐 보유량 등)가 지갑에 포함되면 사용자, 앱, 사용자가 공유하기로 선택한 데이터를 연결하기 위한 매우 안전하고 표준화된 메커니즘이 만들어질 것이다. 

이는 지갑이 양방향 인증 메커니즘으로 자리잡아 정보에 관한 양방향 권한을 허용한다는 의미다. 이러한 사용 사례는 이미 매우 강력하지만 정부, 기관 및 기업이 블록체인과 통합하려는 움직임은 이제 막 시작일 뿐이다. 

이 분야의 여러 흥미로운 ID 및 인증 프로젝트를 보려면, 이 글을 참고하라(많은 프로젝트가 곧 출시될 오스제로 마켓 플레이스의 웹3 카테고리에서 활성화될 것이라는 점을 기억하라). ciokr@idg.co.kr
 
Sponsored
추천 테크라이브러리

회사명:한국IDG 제호: ITWorld 주소 : 서울시 중구 세종대로 23, 4층 우)04512
등록번호 : 서울 아00743 등록일자 : 2009년 01월 19일

발행인 : 박형미 편집인 : 박재곤 청소년보호책임자 : 한정규
사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2022 International Data Group. All rights reserved.