본문 바로가기

블로그

LG CNS 기술블로그 DX Lounge에서 최신 IT 소식을 만나보세요!

블록체인

디지털 자산, 아는 만큼 보호한다! ‘Web3 지갑’의 모든 것

2023.07.31

Web3는 블록체인을 기반으로 데이터 소유를 개인화하는 3세대 인터넷 환경을 의미합니다. 최근 Web3는 이더리움을 비롯한 다양한 블록체인 프로토콜과 메인넷의 등장으로 빠르게 성장하고 있는데요. 이에 블록체인 네트워크상에서 구동되는 탈중앙화 애플리케이션(DApp, 탈중앙화된 블록체인 플랫폼을 기반으로 작동하는 앱) 사용자들의 디지털 자산을 안전하게 보관/전송할 수 있는 지갑의 필요성 또한 증가하고 있습니다.

이번 글에서는 Web3 지갑의 정의와 필수 구성요소에 대해 알아보고, 실제 서비스 사례까지 소개하겠습니다.

Web3 지갑이란?

블록체인 생태계를 처음 접한 사용자들은 제일 먼저 Web3 지갑을 생성하게 됩니다. Web3 지갑은 블록체인 네트워크를 액세스하는 데 필수적인 요소이며, 사용자는 지갑을 통해 암호 화폐를 구매하고, DApp에 로그인해 NFT(Non-Fungible token, 대체 불가능한 토큰), DeFi(Decentralized Finance, 탈중앙화된 금융 시스템)와 같은 다양한 서비스를 이용할 수 있습니다. 최근에는 NFT 기반의 ENS(Ethereum Name Service)가 출시되면서, Web3 세상에서 나만의 사용자 프로필을 활용하는 용도로 쓰이기도 하는데요. Web3 지갑의 가장 중요한 목적은 사용자의 디지털 자산을 안전하게 보관하는 데 있습니다.

여기서 디지털 자산은 Coin(Native token), FT(Fungible token), NFT를 포함한 모든 자산을 일컫는데요. 보관하는 자산의 유형은 다를 수 있지만, 결국 자산을 보관하고 사용한다는 관점에서 기존 Web2 세상의 지갑과 크게 다르지 않습니다.

[표 1] Web2와 Web3 세상 비교

Web3 지갑은 탈중앙화된 특성을 바탕으로 사용자 본인이 자산의 독점적인 관리 권한을 갖게 됩니다. 하지만 모든 책임 또한 사용자에게 있기 때문에 개인 키(암호화 알고리즘에 사용되는 비밀 키)를 안전하게 지키는 것이 중요합니다.

Web3 지갑의 구성요소

Web3 지갑을 한마디로 정의하면, “사용자가 블록체인 네트워크 및 DApp과 상호 작용할 수 있도록 일련의 기능들을 제공하는 솔루션”입니다. 사용자는 지갑을 이용해 이더리움, 솔라나 등 참여하고자 하는 네트워크를 선택하는데요. 이후, Opensea와 같은 DApp에서 NFT 구매를 위한 트랜잭션을 전송하고 결과를 확인하게 됩니다. 이와 같은 기능을 제공하기 위해 Web3 지갑은 3가지 구성요소를 갖춰야 합니다.

[표 2] Web3 지갑 구성요소

1) Web3 Interface: 블록체인 네트워크에 참여한 노드들과 통신하는 Gateway

블록체인 네트워크에는 수많은 노드가 참여하고 있는데요. 누구나 노드를 구성해 네트워크에 참여할 수 있지만, 대부분의 노드는 BaaS(Blockchain as a Service, 퍼블릭 블록체인 위 기업/기관/서비스 별 프라이빗 블록체인을 운영할 수 있도록 제공하는 서비스) 기업이나 거래소에서 운영되고 있습니다. Web3 지갑으로 블록체인 네트워크와 상호 작용하기 위해서는 직접 구성한 노드와 통신하거나 BaaS 기업(e.g. Alchemy, QuickNode)의 서비스를 이용해야 합니다.

블록체인 노드는 보편적으로 JSON-RPC API(JSON encoded Remote Procedure Call, JOSN 형식으로 된 통신 규약)를 지원합니다. Web3 Interface는 노드의 JSON-RPC API를 통해 계좌의 잔액을 확인하거나, 디지털 자산을 전송하고, 원장의 데이터를 파악합니다. 초기의 Web3 지갑은 단일 블록체인 네트워크만 지원했는데요. 최근에는 멀티 체인을 지원하는 지갑이 늘어나는 추세입니다. LG CNS의 Web3 지갑 서비스 또한 EVM(Ethereum Virtual Machine, 스마트 컨트랙트를 처리(배포, 실행) 하기 위한 이더리움 가상 머신) 기반 체인, Solana(탈중앙화 분산 방식의 블록체인 시스템이 빠른 속도와 높은 성능을 구현하는 것을 목표로 하는 블록체인 플랫폼), Hyperledger Fabric(블록체인 솔루션과 응용 프로그램 개발하기 위한 모듈형 아키텍처 플랫폼) 등의 멀티 체인 서비스를 제공하고 있습니다.

2) Transaction Orchestration: 트랜잭션의 전체적인 생애 주기 관리 및 모니터링

[그림 1] Web3 트랜잭션의 예측하기 힘든 복잡한 상태 (출처: blocknative)

Web3 환경에서는 블록체인별 합의 알고리즘, 시간 복잡도와 블록 전파속도, 네트워크 수수료 등의 이유로, 트랜잭션(Transaction, 쪼갤 수 없는 업무 처리의 최소 단위) 처리 과정에 예기치 못한 상황이 많이 발생합니다. 따라서 트랜잭션의 상태를 정확하게 파악하고, 신뢰성 있게 처리할 수 있는 기능이 필요한데요. 보편적인 블록체인 트랜잭션은 아래 [표 3]과 같은 라이프 사이클을 갖고 있으며, Transaction Orchestration 서비스는 이와 같은 트랜잭션의 전체 라이프 사이클을 관리합니다.

[표 3] 보편적인 Web3 트랜잭션의 라이프 사이클

사용자로부터 암호화폐 전송 요청을 받은 Web3 지갑은 블록체인 네트워크 별 표준에 맞게 트랜잭션 메시지를 구성하고(INITIALIZED), 사용자의 키를 이용해 메시지에 서명해(SIGNED), 서명된 트랜잭션을 블록체인 네트워크에 전파합니다(PUBLISHED). 전파된 트랜잭션은 네트워크의 상태에 따라 블록에 포함되기를 기다리고 있으며(PENDING), Transaction Orchestration 서비스는 이를 모니터링해 블록에 포함된(CONFIRMED) 사실을 사용자에게 알려줍니다(FINALIZED). LG CNS의 Web3 지갑 서비스도 축적된 노하우를 바탕으로 신뢰성 높은 트랜잭션 처리 서비스를 제공하고 있습니다.

3) Key Management: 개인 키 생성 및 복구/관리 기능

[그림 2] 디지털 서명 방식의 이해를 돕기 위한 그림 (출처: MDPI)

Web3 여정을 처음 시작한 사용자는 Web3 세상에서 사용할 공개키 주소를 한 개 이상 생성해야 합니다. 이 주소는 암호화 알고리즘을 통해 생성된 개인 키와 매핑되는 공개 키의 주소인데요. 현재 Web3 환경에서는 블록체인 프로토콜별로 ECDSA(Elliptic Curve Digital Signature Algorithm) 기반의 secp256k1 커브 알고리즘을 사용하는 이더리움, EdDSA(Edwards-Curve Digital Signature Algorithm) 기반 ed25519 커브 알고리즘을 사용하는 Solana 등 서로 다른 암호화 알고리즘이 사용되고 있습니다.

이렇게 생성된 주소는 계좌 번호처럼 쓰이며, 특정 상황에서는 사용자를 식별하기 위한 Identity로도 사용됩니다. 기존 Web2 환경에서는 중앙화된 시스템에 ‘아이디-패스워드’와 같은 사용자 식별 정보를 보관해 사용하지만, Web3 환경에서는 암호화 알고리즘에 의해 생성된 키를 탈중앙화된 시스템에 저장하기 때문에 개인의 주권을 유지하며 활동할 수 있습니다. 다만, 키에 대한 모든 관리 권한을 부여받은 만큼 막중한 책임이 따르는데요. 개인의 관리 소홀로 인해 키를 분실한다면, 보유하고 있던 디지털 자산을 영영 찾지 못하는 불상사를 경험할 수도 있습니다.

LG CNS는 기업의 디지털 자산을 안전하게 보관하기 위한 키 관리 경험을 보유하고 있으며, HSM(Hardware Security Module, 하드웨어 보안 모듈로 암호 키를 안전하게 저장하는 역할)을 통한 최고 보안 수준의 키 관리와 서명 서비스를 제공합니다.

LG CNS의 지갑 서비스

Web3 서비스 구축을 계획하는 기업은 개인의 디지털 자산은 물론이며, 기업의 디지털 자산 또한 안전하게 보관하고 관리해야 하는데요. LG CNS의 모나체인(Monachain)과 같이 빠르고 수수료가 들지 않는 기업용 블록체인 네트워크와의 연계도 고려해야 합니다. 그렇다면 기업 입장에서는 어떤 전략으로 접근해야 할까요? LG CNS는 아래와 같은 솔루션을 제시합니다.

[표 4] LG CNS 지갑 서비스 구조

Migrate from Web2 to Web3

기존 Web2 사용자들을 Web3로 자연스럽게 유입시키는 것은 쉽지 않은 일입니다. Web2와 Web3 사이의 괴리감을 최소화해 기존 Web2 사용자들도 쉽게 접근할 수 있는 서비스를 제공하는 것이 중요한데요. LG CNS는 현재 개인 인증에 범용적으로 활용되는 OAuth 2.0(인증을 위한 개방형 프로토콜) 토큰을 통한 인증 체계를 바탕으로, Web2 환경과 크게 다르지 않은 접근 방식을 제공합니다. 사용자는 SNS 로그인을 통해 지갑을 자유롭게 사용할 수 있고, 기업은 기존 오픈 뱅킹 애플리케이션에서 사용하고 있는 인증서 기반 토큰을 연계할 수 있습니다.

Multi-chain API

Web3 환경엔 시시각각 변화하는 수많은 블록체인 프로토콜이 존재합니다. 이렇게 급변하는 환경에 적응하며 Web3 서비스를 개발하는 것은 기업 및 개발자 입장에서 큰 부담으로 다가오는데요. LG CNS는 다양한 블록체인 프로토콜 경험에 대한 노하우를 바탕으로 특정 체인에 구속되지 않는 Chain-Agnostic API를 지원합니다. 이를 통해 Web3 서비스 구축을 원하는 기업은 특정 블록체인에 종속되지 않는 단일화된 형태의 인터페이스를 제공받아 사용할 수 있는데요. LG CNS 지갑 서비스를 이용하는 기업은 단 한 번의 연결로 다양한 블록체인과 상호작용할 수 있습니다.

HSM(Hardware Security Module)을 이용한 Key Management API

LG CNS는 고객들의 개인 키를 안전하게 보관하기 위해 검증된 글로벌 기업의 HSM 장비를 사용합니다. Secp256k1, Secp256r1, Ed25519, BLS 등 다양한 알고리즘을 지원하기 때문에 다양한 블록체인 프로토콜과의 연계가 가능하고, SLIP-0010 (Satoshilabs에서 제안된 개인 키 파생 방법) 파생 전략을 통해 무한한 숫자의 키 관리가 가능합니다.

[그림 3] 개인 키 파생 (출처: Crypto APIs)

개인용 지갑 Web App

LG CNS는 개별 기업의 특성에 맞춰 커스텀이 가능한 개인용 지갑 Web App을 지원합니다. 크로스 플랫폼(다양한 플랫폼에서 동작하는 소프트웨어) 애플리케이션 개발에 자유롭고, 앱의 배포나 설치가 필요 없기 때문에 지갑 서비스를 개발하는 기업 입장에서 부담이 적다는 장점이 있습니다. 또한 기업에서 슈퍼앱(SuperApps) 전략을 구사할 때에도 해당 서비스를 활용한다면 앱 안에서 지갑을 쉽게 통합할 수 있습니다.

LG CNS 개인용 지갑은 OAuth 2.0 토큰을 활용해 Web2 친화적 UX를 제공합니다. 로그인 정보와 연계된 멀티 프로필 관리 기능, 트랜잭션 전송 시 메모를 남길 수 있는 기능 등을 통해 사용자들이 Web3 환경에서 느낄 수 있는 괴리감을 최소화하기 위해 노력하고 있습니다.

[그림 4] LG CNS 개인용 지갑 화면

기관용 지갑(중앙지갑) 솔루션

기업은 개인에 비해 관리해야 할 디지털 자산의 규모나 범위가 훨씬 크기 때문에, 리스크 헷지(Risk hedge, 투자의 위험을 보호하는 대비책)를 위해 자산을 안전하게 보관할 수 있는 서비스가 필요한데요. LG CNS는 금융기관, NFT 거래소 중앙지갑 시스템 구축 경험을 바탕으로 검증된 중앙지갑 솔루션을 제공합니다.

[그림 5] LG CNS 기관용 중앙지갑 화면

LG CNS 중앙지갑 솔루션의 주요 기능은 아래와 같습니다.

1) 디지털 자산 분리 보관 기능 및 출금 제한 기능

LG CNS 중앙지갑은 기업의 자산을 목적에 맞게 분배해 안전하게 보관할 수 있습니다. 이외에도 관리자 별 계좌 접근 권한 설정, 1일/1회 출금 한도 설정, 자산 분리 보관 비율 설정, 출금 화이트리스트 계좌 설정 등의 다양한 출금 제한 기능으로 기업의 자산을 안전하게 지킵니다.

2) 멀티 시그니처(Multi Signature) 기능

멀티 시그니처는 기업 계좌 관리자 N 명 중 M 명(M of N)의 서명을 받아야만 출금할 수 있는 기능입니다. 계좌의 출금 권한을 분산시켜 관리자 간 합의로 출금 여부를 결정하기 때문에 기업의 자산을 더욱 안전하게 보호할 수 있습니다.

3) 블록체인 간 상호운용성(Interoperability) 제공

기업은 퍼블릭 블록체인의 네트워크 성능, 수수료 문제에서 벗어나기 위해 프라이빗 블록체인 네트워크를 구축해 사용하는 경우가 많습니다. 하지만 Web3 사용자 대부분이 퍼블릭 블록체인에서 활동하고 있기 때문에 퍼블릭 블록체인과의 연계를 빼놓을 수는 없는데요. LG CNS 중앙지갑은 Wrapped Token(서로 다른 블록체인 간 자산 교환이 가능하도록 랩핑된 토큰) 발행을 통한 디지털 자산 페깅(Currency Pegging, 화폐의 가격을 고정하는 것) 기능, 프라이빗 블록체인에서 발행한 NFT를 퍼블릭 블록체인으로 Export 시키는 상호 운용 기능 등을 제공합니다. 이를 통해 기업은 비즈니스 환경에 다양한 블록체인 사용자들의 참여를 이끌어낼 수 있습니다.

LG CNS는 이와 같은 솔루션 기술을 활용해 각 기업의 상황에 맞는 지갑 서비스를 구하고 있습니다. NFT, CBDC, STO 등 토큰 발행 및 유통 사업을 준비하는 기업에게는 LG CNS 지갑 서비스가 좋은 선택지가 될 것입니다.

Web3의 생태계를 선도하고 싶다면? LG CNS 블록체인 바로가기

글 ㅣ LG CNS 보안/솔루션사업부 Web3사업추진단 Web3서비스팀 차범석

챗봇과 대화를 할 수 있어요