일부 블록체인은 왜 서명 내용을 숨길까?

Ethereum, Solana 같은 체인이 왜 '백지 수표' 서명을 강요하는지, 그리고 업계가 이를 어떻게 개선하려고 하는지 알아보세요.

이 문서는 다음 언어로 제공됩니다:

Author logo
Patrick Dike-Ndulue
•
Post image

하드웨어 지갑에서 암호화폐 트랜잭션을 승인할 때, 두 가지 중 하나를 하게 돼요. 하나는 지금 무슨 일이 일어나는지 명확하게 요약된 화면을 읽고 승인하는 것이고, 다른 하나는 의미를 알 수 없는 16진수 코드 덩어리에 서명하며 '괜찮겠지'라고 믿는 거예요. 블라인드 서명은 사람이 읽을 수 있는 정보 없이 디지털 트랜잭션을 승인하는 행위를 말해요.
 

  In February 2025, blind signing contributed to the  $1.5 billion Bybit hack , the largest crypto theft in history. The attackers didn't break any cryptography. They exploited the fact that human signers couldn't distinguish a routine transfer from a malicious contract upgrade.   Whether your wallet can show you a clear, readable summary before you sign isn't a question of software quality. It comes down to how each blockchain was designed at the protocol level. Some chains were built so that transactions describe themselves. Others hide critical details inside binary blobs that require external information to decode. This article explains how those design decisions break down across the major blockchains and what it means for your security.   The Three-Tier Framework Clear Signing is a security process that lets you verify the full details of a digital transaction in a human-readable format on a secure screen before approving it.  Across 13 major blockchain ecosystems, clear signing support falls into three distinct tiers based on protocol architecture. This isn't about which chains are good or bad, it's about design tradeoffs made years ago, often before the security implications were fully understood.     Tier 1: Built for Transparency These blockchains make clear that signing is a natural outcome of their design. The core reason: they use a finite set of typed transaction structures where every field has a name, a type, and a defined schema. A hardware wallet doesn't need any external information to parse them, the transaction tells you what it is.   The

 

image.png

3단계 프레임워크

클리어 서명은 승인 전에 하드웨어 지갑의 안전한 화면에서 디지털 트랜잭션의 모든 세부 정보를 사람이 읽을 수 있는 형태로 확인할 수 있도록 해주는 보안 절차예요. 


13개 주요 블록체인 생태계에서 클리어 서명 지원은 프로토콜 구조에 따라 세 가지 뚜렷한 단계로 나뉘어요. 어떤 체인이 좋고 나쁘다는 얘기가 아니라, 수년 전 보안 영향이 완전히 이해되기 전에 이루어진 설계적 선택의 결과예요.

 

image.png

 

1단계: 투명성을 위해 설계된 체인

이 단계의 블록체인은 서명이 자연스럽게 투명하게 이뤄지도록 설계됐어요. 핵심 이유는, 모든 필드에 이름·타입·스키마가 명확히 정의된 한정된 트랜잭션 구조를 사용하기 때문이에요. 하드웨어 지갑은 외부 정보 없이도 트랜잭션 내용을 바로 파악할 수 있어요.

 

The XRP Ledger 는 주요 체인 중에서도 가장 명확한 클리어 서명 구조를 제공해요. 바이너리 포맷에 TransactionType 필드가 포함되어 있어, 50개 이상의 트랜잭션 유형(Payment, OfferCreate, TrustSet, EscrowCreate 등)을 일관성 있게 해석할 수 있어요. 모든 필드는 스키마가 정의돼 있고, 하드웨어 지갑은 수신자·금액·수수료·메모·유형별 파라미터까지 외부 조회 없이 모두 표시할 수 있어요. 현재 메인넷 트랜잭션의 거의 100%가 완전히 클리어 서명돼요.

 

Polkadot 은 런타임 메타데이터 시스템(MetadataV14/V15)을 통해 업계에서 가장 정교한 클리어 서명 솔루션을 개발했어요. 각 트랜잭션은 팔레트와 콜 인덱스를 참조하고, 메타데이터가 그 의미와 파라미터 해석법을 알려줘요. 단, 전체 메타데이터가 200KB를 넘기 때문에 메모리가 적은 하드웨어 지갑에는 부담이 돼요. 

이 문제를 해결하기 위해 RFC-0078(머클라이즈드 메타데이터)가 도입됐어요. 메타데이터에서 암호화 트리를 만들고, 필요한 부분만 전송해 온체인으로 포함 증명을 검증해요. 그 결과, 하나의 Ledger 앱으로 모든 Polkadot 패러체인에서 별도 업데이트 없이 동작할 수 있게 됐어요.
 

Cosmos는 타입이 지정된 메시지 구조와 SIGN_MODE_TEXTUAL 표준(ADR-050)을 사용해요. Cosmos SDK v0.50부터 도입된 이 표준은 트랜잭션을 작은 화면에 맞게 사람이 읽기 쉽게 표시해줘요. 예를 들어, 코인 금액이 "2000000uatom" 대신 "2 ATOM"으로 보여요. NEAR Protocol은 사람이 읽을 수 있는 계정명(예: "alice.near")과 지갑이 바로 보여줄 수 있는 JSON 직렬화 함수 파라미터까지 지원해요.
 

2단계: 기본은 되지만 복잡하면 한계

6개 생태계는 기본적인 네이티브 트랜잭션에는 클리어 서명을 잘 지원하지만, 스마트 컨트랙트가 도입되면 투명성이 크게 떨어져요. 대표적인 예가 비트코인(BTC)이에요. UTXO 모델에서는 원시 트랜잭션에 입력 금액 정보가 없어서, 하드웨어 지갑이 수수료 계산을 하려면 이전 출력 정보가 추가로 필요해요. PSBT(BIP 174)가 표준 결제에는 이 문제를 해결해주지만, Taproot 스크립트 경로 사용이나 복잡한 멀티시그 구성에서는 여전히 불투명성이 남아요.
 

Stellar는 2단계의 한계를 가장 잘 보여줘요. 26가지 고전적 오퍼레이션(Payment, ManageSellOffer, ChangeTrust 등)은 스키마가 고정되어 하드웨어 지갑에서 명확하게 표시돼요. 하지만 2024년 도입된 Soroban 스마트 컨트랙트는 EVM과 유사한 불투명성을 다시 가져와요. 파라미터가 바이너리로 인코딩되어 컨트랙트별 해석이 필요해, 고전 오퍼레이션은 95% 이상 커버하지만 Soroban은 거의 불투명해요. Algorand, Cardano, Aptos, Tezos도 네이티브는 강력하지만, 복잡한 프로그래머블 논리에서는 한계가 있어요.
 

3단계: 구조적으로 불투명한 체인

3개 생태계는 구조적으로 클리어 서명이 매우 어려워요. 지갑 소프트웨어가 아무리 좋아도 한계가 있어요. 그래서 거의 모든 주요 DeFi 인터페이스에 블라인드 서명 경고가 붙는 이유이기도 해요.
 

Ethereum 및 모든 EVM 호환 체인은 핵심적으로 ABI 인코딩이 자기 설명적이지 않다는 문제가 있어요. 스마트 컨트랙트와 상호작용할 때 트랜잭션 데이터 필드에는 함수명 해시의 처음 4바이트와 32바이트 단위로 인코딩된 파라미터만 들어가요. 컨트랙트의 ABI JSON이 없으면 이건 그냥 16진수 잡음일 뿐이에요. 이 ABI는 온체인에 저장되어 있지 않아요. 하드웨어 지갑은 0xa9059cbb...가 "0xABC...에게 USDC 1,000개 전송" 의미라는 걸 외부 메타데이터 없이는 알 수 없어요.
Proxy contracts, which route execution to implementation contracts whose addresses can change, compound the problem, which is exactly how the Bybit hack was executed.
 

업계의 대응은 ERC-7730 메타데이터 표준이에요. 2024년에 만들어진 이 표준은 하드웨어 지갑이 특정 컨트랙트 상호작용을 해석·표시할 수 있도록 JSON 파일을 제공해요. 효과는 있지만, 모든 컨트랙트마다 누군가가 이 메타데이터를 작성·유지해야 해요. 결국 투명성을 염두에 두지 않은 구조에 임시 패치를 적용하는 셈이에요.
 

Solana는 난이도가 더 높아요. 트랜잭션 명령에는 프로그램 ID와 표준화되지 않은 바이트 배열 데이터만 들어가요. 각 프로그램이 자체 직렬화 포맷을 정의하고, Anchor 프레임워크는 8바이트 구분자를 활용한 반(半)표준 방식을 제공하지만, 많은 프로그램이 Anchor를 쓰지 않고 인터페이스 정의도 공개하지 않아요. DeFi 상호작용에서는 Solana 트랜잭션의 대부분이 블라인드 서명을 요구해요. 

TON은 비동기 실행 구조로 복잡성이 더해져요. 최초 메시지만 서명하고, 이후 블록에서 일어나는 모든 일은 서명 시점에 보이지 않아요.

 

 핵심 정리

실질적인 조언은 이거예요. DeFi에서 하드웨어 지갑을 쓸 때, 내가 쓰는 체인이 어느 단계에 속하는지 먼저 파악하세요. 1단계 체인은 클리어 서명이 제대로 작동해요. 2단계는 단순 송금은 안전하지만, 복잡한 스마트 컨트랙트 상호작용은 반드시 추가로 조사해야 해요. 3단계라면 DeFi 프로토콜에서 트랜잭션마다 항상 의심하고, dApp과 지갑이 ERC-7730 메타데이터를 지원하는지 꼭 확인한 후 중요한 승인을 하세요.
 

하드웨어 지갑 제조사들도 이 문제를 적극적으로 개선 중이에요. Ledger의 Generic Parser는 ERC-7730 메타데이터 파일을 읽어 안전한 화면에 트랜잭션 세부 정보를 표시해줘요. 

Polkadot의 머클라이즈드 메타데이터 방식은 업계에서 가장 우아한 솔루션으로 꼽혀요. 신뢰 불필요, 암호학적으로 검증, 프로토콜 네이티브 방식이에요. 업계는 점점 더 나은 표준으로 나아가고 있지만, 3단계 체인의 구조적 한계는 쉽게 사라지지 않을 거예요.
 

가장 간단한 원칙: 지갑이 해시나 16진수 바이트 스트림만 보여주고 서명을 요구한다면, 반드시 경계하세요.

 

참고 자료 및 추가 읽을거리

아래 자료는 본문에서 다룬 프로토콜과 표준에 대한 기술적 심층 정보를 제공합니다.

ERC-7730 Specification (Ethereum Foundation)

EVM 클리어 서명 메타데이터 표준

BIP 174 — PSBT (Bitcoin Improvement Proposals)

비트코인 부분 트랜잭션 서명

Polkadot RFC-0078: Merkleized Metadata

Polkadot 신뢰 불필요 클리어 서명

Cosmos ADR-050: SIGN_MODE_TEXTUAL

Cosmos 사람이 읽을 수 있는 서명

NEAR Protocol: Account Model

사람이 읽을 수 있는 계정 식별자

XRP Ledger: Transaction Types

XRP 타입별 트랜잭션 스키마

Ethereum: EIP-712 Typed Structured Data Signing

오프체인 타입 구조화 데이터 서명 표준

Substrate Runtime Metadata Documentation

Polkadot/Substrate 메타데이터 시스템

Ledger ERC-7730 Registry (GitHub)

커뮤니티 메타데이터 제출

Algorand ARC-4: ABI Standard

Algorand 스마트 컨트랙트 ABI

FAQ

  • 클리어 서명은 하드웨어 지갑이 승인 전에 신뢰할 수 있는 화면에 수신 주소, 토큰 수량, 네트워크 수수료, 승인하는 작업 등 모든 정보를 사람이 읽을 수 있게 보여주는 거예요. 블라인드 서명은 지갑이 해석할 수 없는 인코딩된 바이너리(주로 16진수 문자열)만 보여주고, 사용자가 내용을 모른 채 승인하는 방식이에요. 보안상 위험은, 악성 앱이 화면에는 정상 트랜잭션을 보여주면서 실제로는 전혀 다른 트랜잭션에 서명하게 만들 수 있다는 점이에요.

  • 항상 그런 건 아니지만, 실제 위험이 존재해요. 일반 지갑끼리 단순 ETH 송금은 하드웨어 지갑이 수신자와 금액을 명확히 표시할 수 있어요. 하지만 스마트 컨트랙트와 상호작용(토큰 스왑, 유동성 제공, 권한 승인 등)에서는 dApp과 지갑이 ERC-7730 메타데이터를 구현했는지에 따라 표시 여부가 달라져요. 이 메타데이터가 없다면, 사용자는 내용을 모른 채 블라인드 서명을 하게 돼요.

  • 프로토콜 설계에는 항상 트레이드오프가 있어요. Ethereum의 유연한 ABI 시스템 덕분에 다양한 DeFi 앱이 가능하지만, 그만큼 트랜잭션이 자기 설명적이지 않게 돼요. 이를 뒤늦게 바꾸면 수천 개의 기존 스마트 컨트랙트와의 호환성이 깨져요. ERC-7730 메타데이터나 EIP-712 같은 노력은 기존 구조 내에서 현실적인 개선책을 제시하는 거예요.

  • ERC-7730은 2024년에 만들어진 JSON 메타데이터 표준으로, 하드웨어 지갑이 특정 스마트 컨트랙트 상호작용을 해석하고 사람이 읽을 수 있게 표시할 수 있도록 도와줘요. 프로토콜 팀이 컨트랙트 함수의 원시 ABI 인코딩을 사람이 이해할 수 있는 라벨과 형식으로 매핑한 메타데이터 파일을 제출할 수 있어요.

  • 네, 의미 있는 차이가 있어요. 하드웨어 지갑이 인코딩된 데이터만 보여주더라도, 개인 키는 절대 보안 칩을 벗어나지 않고 서명도 격리된 하드웨어에서 이뤄져요. 감염된 컴퓨터라도 키를 빼낼 수 없어요. 다만, 내용을 모른 채 승인하면 원치 않는 트랜잭션에 서명할 수 있다는 점이 위험이고, 키 자체는 안전해요. 소프트웨어 지갑은 승인 결정뿐 아니라 소프트웨어가 감염됐을 경우 키까지 노출될 수 있어 더 위험해요.

Author logo
작가 Patrick Dike-Ndulue

Senior editor covering crypto, onchain equities, and technology.

Author logo
검토자: Rukkayah Jigam

Writer & editor covering digital assets and product updates.