트랜잭션 서명(Transaction Signing)이란?
트랜잭션 서명(Transaction Signing)은 블록체인에서 거래를 실행할 때 해당 지갑의 소유자가 거래 내용에 동의했다는 사실을 암호학적으로 증명하는 과정을 말합니다.
예를 들어 가상자산을 다른 주소로 전송하거나 DApp에서 스마트 컨트랙트를 실행할 때 지갑에 거래 내용이 표시되고 이용자가 이를 확인한 뒤 서명할 수 있습니다.
서명에는 지갑의 개인키(Private Key)가 중요한 역할을 하지만, 정상적인 이용 과정에서는 개인키 자체를 웹사이트에 직접 입력하는 것이 아니라 지갑이 내부적으로 서명 과정을 처리합니다.
따라서 초보자는 “서명 = 단순 확인 버튼”이라고 생각하지 않는 것이 중요합니다. 어떤 자산을 어디로 보내는지, 어떤 스마트 컨트랙트와 상호작용하는지, 수량과 네트워크 비용은 얼마인지 확인한 뒤 서명해야 합니다.
가족 웹툰으로 먼저 알아보기
아빠는 지갑에 ‘서명’ 버튼이 나타나자 그냥 확인 버튼과 같은 것인지 궁금해합니다. 큰딸의 설명을 들으며 트랜잭션 서명이 거래 내용에 동의했다는 사실을 증명하는 과정이라는 점을 알아보고, 엄마와 나나는 서명 전에 주소와 수량, 네트워크와 요청 내용을 확인해야 하는 이유를 함께 살펴봅니다.






웹툰 핵심 설명
37-1. 트랜잭션 서명이 뭐야?
트랜잭션 서명은 지갑 소유자가 특정 블록체인 거래의 내용에 동의했다는 사실을 암호학적으로 증명하는 과정입니다.
37-2. 그냥 확인 버튼 누르는 거 아니야?
서명은 단순한 화면 확인과 다릅니다. 서명한 내용에 따라 자산 전송이나 스마트 컨트랙트 실행 같은 작업으로 이어질 수 있으므로 요청 내용을 확인해야 합니다.
37-3. 개인키를 이용해 거래에 서명해.
지갑은 개인키를 이용해 거래에 필요한 디지털 서명을 생성할 수 있습니다. 정상적인 과정에서는 이용자가 개인키 자체를 DApp에 전달할 필요가 없습니다.
37-4. 서명하면 네트워크가 거래를 검증할 수 있어.
서명된 거래가 네트워크에 전달되면 노드나 검증 과정에서 해당 서명의 유효성 등을 확인할 수 있습니다.
37-5. 서명 전에 주소·수량·네트워크를 확인해야 해.
자산을 전송하는 거래라면 받는 주소와 수량, 사용하는 네트워크와 예상 비용 등을 확인한 뒤 서명하는 것이 중요합니다.
37-6. 이해하지 못한 서명은 바로 승인하면 안 돼.
예상하지 못한 요청이나 내용을 이해하기 어려운 서명이 나타났다면 바로 진행하지 말고 접속한 사이트와 요청 내용을 다시 확인해야 합니다.
36화 지갑 연결과 트랜잭션 서명은 무엇이 다를까?
지갑 연결은 DApp이나 DEX가 이용자의 지갑 주소를 인식하고 상호작용할 수 있도록 연결하는 과정입니다.
트랜잭션 서명은 그 이후 실제 블록체인 거래를 실행할 때 해당 거래에 동의했다는 사실을 증명하는 과정입니다.
따라서 지갑 연결 = 거래 서명이라고 생각해서는 안 됩니다. 지갑을 연결한 뒤 여러 개의 서로 다른 서명 요청이 나타날 수도 있습니다.
서명에는 왜 개인키가 필요할까?
블록체인 지갑에서는 개인키를 이용해 해당 지갑 소유자만 만들 수 있는 디지털 서명을 생성할 수 있습니다.
네트워크는 이 서명을 검증해 거래가 올바른 권한을 가진 지갑에서 만들어졌는지 확인할 수 있습니다.
중요한 점은 서명을 위해 개인키를 상대방이나 웹사이트에 공개할 필요가 없다는 것입니다.
개인키(Private Key)는 다음 38화에서 별도의 핵심 개념으로 자세히 알아봅니다.
서명하면 개인키가 블록체인에 공개될까?
정상적인 디지털 서명 구조에서는 거래에 서명했다고 개인키 자체가 블록체인에 공개되는 것은 아닙니다.
지갑은 개인키를 이용해 서명을 생성하고 네트워크는 필요한 공개 정보를 이용해 서명의 유효성을 확인할 수 있습니다.
따라서 개인키를 직접 전달하는 것과 개인키를 이용해 거래에 서명하는 것은 완전히 다른 행동입니다.
공개키와 지갑 주소는 서명과 어떤 관계가 있을까?
블록체인에서는 개인키와 공개키가 암호학적으로 연결될 수 있으며, 네트워크에 따라 공개키를 기반으로 지갑 주소가 만들어지는 구조가 사용될 수 있습니다.
개인키는 서명을 만드는 데 사용되고 공개 정보는 서명이 올바른지 확인하는 과정과 연결될 수 있습니다.
공개키·지갑 주소는 이후 39화에서 별도의 핵심 개념으로 자세히 알아봅니다.
트랜잭션 서명과 토큰 승인은 같은 걸까?
같은 개념은 아닙니다.
토큰 승인은 특정 스마트 컨트랙트 등에 토큰 사용 권한을 허용하는 내용입니다.
이러한 승인 내용을 블록체인에 기록하는 과정에서 지갑으로 승인 거래에 서명해야 할 수 있습니다.
즉 토큰 승인은 무엇을 허용하는가에 관한 내용이고, 서명은 해당 요청이나 거래에 동의하는 과정으로 구분하면 이해하기 쉽습니다.
무제한 토큰 승인에도 서명이 필요할까?
무제한 토큰 승인이 온체인 승인 거래로 처리된다면 지갑에서 해당 거래에 서명해야 할 수 있습니다.
따라서 지갑에 ‘승인’ 또는 ‘확인’이라는 버튼이 나타났다고 단순하게 누르지 말고 어떤 토큰에 어느 정도의 권한을 허용하는 거래인지 확인해야 합니다.
코인 전송에도 서명이 필요할까?
자신의 지갑에서 다른 주소로 가상자산을 보내는 거래에서도 지갑은 개인키를 이용해 거래에 서명할 수 있습니다.
이때는 기존에 배운 코인 전송 주소와 코인 전송 네트워크를 함께 확인하는 것이 중요합니다.
주소나 네트워크를 잘못 선택한 상태에서 거래에 서명하면 자산 복구가 어렵거나 불가능할 수 있습니다.
DApp에서 스마트 컨트랙트 실행에도 서명이 필요할까?
DApp에서 스마트 컨트랙트 기능을 실행하는 과정에서도 지갑에 거래 서명 요청이 나타날 수 있습니다.
예를 들어 토큰 교환, 예치, 차입 또는 다른 온체인 작업을 실행할 때 거래 내용을 확인하고 서명하는 과정이 필요할 수 있습니다.
따라서 DApp의 버튼을 누르는 것보다 지갑에서 최종적으로 무엇에 서명하고 있는지 확인하는 것이 중요합니다.
서명하면 거래가 바로 확정될까?
반드시 그렇지는 않습니다.
서명은 거래를 생성하고 네트워크에 전달하기 위한 중요한 단계이지만, 이후 네트워크에서 거래가 전파되고 블록에 포함되는 등의 과정이 필요할 수 있습니다.
따라서 지갑에서 서명을 완료했다고 해서 그 순간 거래가 최종 확정됐다고 생각해서는 안 됩니다.
서명 후 거래 상태는 어떻게 확인할까?
거래가 네트워크에 전달되면 트랜잭션 해시(Transaction Hash)가 생성될 수 있습니다.
이 값을 이용해 블록체인 탐색기에서 거래가 대기 중인지, 처리됐는지 또는 실패했는지 확인할 수 있습니다.
거래 상태와 블록 확인 개념은 기존에 배운 블록체인 거래 흐름과 함께 이해하면 좋습니다.
트랜잭션 서명에도 가스비가 필요한가?
서명 자체와 네트워크에 기록되는 온체인 거래는 구분해서 볼 필요가 있습니다.
실제 블록체인 거래를 실행해 네트워크에서 처리된다면 가스비(Gas Fee)와 같은 네트워크 비용이 발생할 수 있습니다.
반면 블록체인에 기록되지 않는 메시지 서명 등은 네트워크 비용이 발생하지 않을 수도 있습니다.
모든 서명이 자산을 이동시키는 걸까?
아닙니다.
지갑에서 요청하는 서명에는 실제 자산 전송 거래뿐 아니라 메시지 서명이나 서비스 로그인 등에 사용되는 요청도 있을 수 있습니다.
하지만 자산이 즉시 이동하지 않는 서명이라고 해서 무조건 안전하다고 단정해서도 안 됩니다. 어떤 내용과 권한을 확인하는 서명인지 살펴봐야 합니다.
트랜잭션 서명의 주요 위험
- 피싱 사이트: 가짜 DApp이 악의적인 서명 요청을 보여줄 수 있습니다.
- 잘못된 주소: 받는 주소를 잘못 확인한 상태에서 전송 거래에 서명할 수 있습니다.
- 잘못된 네트워크: 의도하지 않은 네트워크에서 거래를 실행할 수 있습니다.
- 잘못된 수량: 보내는 토큰이나 수량을 확인하지 않고 서명할 수 있습니다.
- 악의적인 스마트 컨트랙트: 의도하지 않은 기능을 실행하는 거래에 서명할 수 있습니다.
- 과도한 권한: 큰 토큰 승인 권한을 허용하는 거래에 서명할 수 있습니다.
- 가스비: 예상보다 높은 네트워크 비용이 설정된 거래를 실행할 수 있습니다.
트랜잭션 서명 전에 확인할 것
- 공식 사이트: 실제 이용하려는 DApp이나 서비스인지 확인합니다.
- 지갑 주소: 올바른 지갑에서 서명하고 있는지 확인합니다.
- 네트워크: 의도한 블록체인 네트워크인지 확인합니다.
- 자산: 어떤 토큰이나 코인과 관련된 거래인지 확인합니다.
- 수량: 보내거나 사용하는 자산의 수량을 확인합니다.
- 받는 주소: 자산 전송이라면 목적지 주소를 확인합니다.
- 스마트 컨트랙트: 어떤 컨트랙트와 상호작용하는지 확인합니다.
- 권한: 토큰 승인 거래라면 허용 범위를 확인합니다.
- 가스비: 예상 네트워크 비용을 확인합니다.
처음 트랜잭션에 서명할 때 어떤 순서로 확인할까?
처음 거래 서명 요청이 나타나면 확인 버튼부터 누르기보다 사이트 → 지갑 → 네트워크 → 거래 종류 → 자산 → 수량 → 상대 주소 또는 스마트 컨트랙트 → 가스비 순서로 확인하는 것이 좋습니다.
특히 예상하지 못한 서명 요청이 갑자기 나타났다면 현재 어떤 기능을 실행하려고 했는지부터 다시 확인해야 합니다.
내용을 이해하지 못한 상태에서 서명을 완료하기보다 요청의 목적과 결과를 먼저 확인하는 습관이 중요합니다.
서명 화면의 내용을 모두 이해하기 어렵다면?
지갑에 따라 서명 화면에 주소, 데이터, 네트워크 비용 등 여러 정보가 표시될 수 있습니다.
초보자가 모든 기술적인 데이터를 처음부터 이해하기는 어려울 수 있습니다. 그렇다고 내용을 모르는 상태에서 무조건 승인하는 것도 주의해야 합니다.
최소한 어떤 사이트에서 요청했는지, 어떤 자산과 관련됐는지, 실제 자산 이동이나 권한 변경이 있는지는 확인하는 것이 중요합니다.
예상하지 못한 서명 요청이 나타나면?
자신이 실행하지 않은 기능인데 갑자기 서명 요청이 나타났다면 바로 승인하지 않는 것이 좋습니다.
현재 접속한 사이트가 공식 주소인지 확인하고, 어떤 작업을 실행한 뒤 요청이 나타났는지 다시 살펴봐야 합니다.
필요하다면 요청을 취소하고 지갑과 사이트의 연결 상태를 확인한 뒤 다시 시작할 수 있습니다.
서명 요청을 거절하면 자산에 문제가 생길까?
일반적으로 지갑에서 아직 서명하지 않은 요청을 거절했다고 해서 해당 거래가 블록체인에서 실행되는 것은 아닙니다.
다만 DApp에서 실행하려던 기능 역시 완료되지 않을 수 있습니다.
따라서 내용을 이해하지 못했다면 서둘러 서명하기보다 요청을 거절하고 다시 확인하는 것이 좋습니다.
서명한 거래를 취소할 수 있을까?
서명한 거래가 아직 네트워크에서 최종 처리되지 않은 경우에도 취소 가능 여부와 방법은 네트워크와 지갑의 구조에 따라 달라질 수 있습니다.
이미 블록체인에서 정상적으로 처리되고 확정된 거래는 일반적인 은행 송금처럼 운영기관에 요청해 임의로 되돌릴 수 있다고 생각해서는 안 됩니다.
따라서 서명하기 전에 거래 내용을 확인하는 것이 특히 중요합니다.
서명 후 같은 버튼을 다시 눌러도 될까?
거래가 바로 완료되지 않는다고 같은 기능을 반복해서 실행하는 것은 주의해야 합니다.
첫 번째 거래가 아직 대기 중이라면 추가 거래가 생성될 수도 있습니다.
먼저 지갑의 거래 내역이나 블록체인 탐색기에서 기존 거래 상태를 확인한 뒤 다음 행동을 판단하는 것이 좋습니다.
거래 실패와 서명 실패는 같은 걸까?
같은 의미라고 볼 수 없습니다.
이용자가 지갑에서 서명 요청을 거절하거나 서명이 정상적으로 만들어지지 않은 경우와, 정상적으로 서명된 거래가 네트워크에 전달된 뒤 실행 과정에서 실패한 경우는 서로 다릅니다.
온체인 거래가 네트워크에서 처리되는 과정까지 진행됐다면 최종 실행이 실패하더라도 네트워크 비용이 사용될 수 있는 경우가 있습니다.
서명한 거래의 트랜잭션 해시는 왜 중요할까?
온체인 거래가 네트워크에 제출되면 트랜잭션 해시가 생성될 수 있습니다.
트랜잭션 해시는 특정 거래를 구분하는 식별자 역할을 하며 블록체인 탐색기에서 거래 상태와 관련 정보를 확인할 때 사용할 수 있습니다.
거래가 늦어지거나 문제가 발생했다면 같은 거래를 다시 실행하기 전에 기존 트랜잭션 해시를 이용해 현재 상태를 확인하는 것이 도움이 됩니다.
블록 확인과 거래 서명은 어떻게 다를까?
트랜잭션 서명은 거래를 네트워크에 제출하기 전에 이용자가 해당 거래에 동의했음을 증명하는 과정입니다.
반면 블록 확인은 거래가 블록에 포함된 뒤 후속 블록 등이 이어지면서 거래의 처리 상태를 확인하는 것과 관련된 개념입니다.
따라서 서명 완료 → 네트워크 전송 → 블록 포함 → 확인 진행처럼 서로 다른 단계로 이해하면 쉽습니다.
파이널리티와 트랜잭션 서명은 어떻게 연결될까?
서명을 완료했다고 거래가 곧바로 최종 확정되는 것은 아닙니다.
거래가 네트워크에서 처리된 뒤에는 해당 블록체인의 규칙에 따라 거래가 되돌려지기 어려운 확정 상태에 도달하는 과정이 존재할 수 있습니다.
이러한 개념을 파이널리티(Finality)라고 하며, 네트워크마다 최종성을 판단하는 방식과 시간이 다를 수 있습니다.
메시지 서명은 트랜잭션 서명과 같을까?
항상 같다고 볼 수는 없습니다.
일부 DApp에서는 지갑 주소의 소유 여부를 확인하거나 서비스 로그인 등에 메시지 서명을 사용할 수 있습니다.
메시지 서명은 블록체인에 실제 거래를 기록하지 않을 수 있지만, “가스비가 없으니 무조건 안전하다”고 생각해서는 안 됩니다.
어떤 메시지와 권한에 동의하는지 확인하는 것이 중요합니다.
서명 요청에서 토큰 승인이 보인다면?
서명하려는 거래가 토큰 승인과 관련된 것이라면 어떤 토큰을 어떤 스마트 컨트랙트에 얼마나 사용할 수 있도록 허용하는지 확인해야 합니다.
특히 무제한 토큰 승인처럼 매우 큰 권한을 허용하는 거래라면 승인 범위를 별도로 확인하는 것이 중요합니다.
더 이상 필요하지 않은 기존 권한은 토큰 승인 취소(Revoke)와 관련된 상태를 확인할 수 있습니다.
서명 요청에서 스마트 컨트랙트가 보인다면?
스마트 컨트랙트와 상호작용하는 거래라면 어떤 기능을 실행하려는 것인지 확인해야 합니다.
스마트 컨트랙트는 미리 작성된 코드에 따라 작동할 수 있기 때문에 서명 후 실행되는 결과를 이해하는 것이 중요합니다.
처음 보는 컨트랙트나 예상하지 못한 기능이라면 바로 서명하지 말고 이용 중인 DApp의 공식 안내를 다시 확인하는 것이 좋습니다.
하드웨어 지갑에서도 서명을 할까?
하드웨어 지갑에서도 블록체인 거래를 실행하려면 거래 내용을 확인하고 서명하는 과정이 사용될 수 있습니다.
구체적인 방식은 기기와 지갑 소프트웨어에 따라 다르지만 개인키를 인터넷에 직접 노출하지 않고 기기 내부에서 서명을 처리하도록 설계될 수 있습니다.
다만 하드웨어 지갑을 사용한다고 모든 잘못된 거래가 자동으로 차단되는 것은 아니므로 기기에 표시되는 거래 내용을 확인해야 합니다.
트랜잭션 서명 후 확인할 것
- 거래 상태: 거래가 대기 중인지, 처리됐는지 또는 실패했는지 확인합니다.
- 트랜잭션 해시: 온체인 거래라면 해당 거래의 식별 정보를 확인합니다.
- 자산 변화: 의도한 자산과 수량이 실제로 변경됐는지 확인합니다.
- 받는 주소: 전송 거래라면 목적지 주소가 맞았는지 확인합니다.
- 가스비: 실제 사용된 네트워크 비용을 확인합니다.
- 토큰 승인: 권한을 허용한 거래라면 어떤 승인 상태가 남았는지 확인합니다.
- 추가 요청: 예상하지 못한 후속 서명이나 승인 요청이 나타나는지 확인합니다.
트랜잭션 서명에서 가장 중요한 습관
서명 버튼이 자주 나타난다고 해서 “DApp을 사용하려면 원래 계속 눌러야 하는 버튼”이라고 생각하지 않는 것이 중요합니다.
서명할 때마다 누가 요청했는가 → 무엇을 실행하는가 → 어떤 자산과 수량인가 → 어디로 보내는가 → 어떤 권한을 허용하는가 → 비용은 얼마인가를 확인하는 습관이 필요합니다.
특히 이해하지 못한 서명은 서두르지 않고 다시 확인하는 것이 가장 기본적인 원칙입니다.
FAQ
Q. 트랜잭션에 서명하면 코인이 바로 전송되나요?
반드시 그렇지는 않습니다. 서명은 거래를 네트워크에 제출하기 위한 중요한 단계이며, 이후 네트워크 전파와 블록 포함, 검증 등의 과정이 필요할 수 있습니다. 실제 처리 상태는 거래 기록이나 블록체인 탐색기에서 확인하는 것이 좋습니다.
Q. 서명할 때 개인키를 직접 입력해야 하나요?
일반적인 지갑 이용 과정에서 웹사이트에 개인키를 직접 입력하는 방식으로 접근해서는 안 됩니다. 지갑이 내부적으로 개인키를 이용해 필요한 서명을 생성할 수 있습니다.
Q. 거래에 서명하면 개인키가 블록체인에 공개되나요?
정상적인 디지털 서명 구조에서는 거래에 서명했다고 개인키 자체가 블록체인에 공개되는 것은 아닙니다. 개인키는 외부에 공개하지 않고 안전하게 관리해야 합니다.
Q. 모든 서명에 가스비가 발생하나요?
아닙니다. 블록체인에 기록되지 않는 메시지 서명 등에는 네트워크 비용이 발생하지 않을 수 있습니다. 반면 실제 온체인 거래를 실행하면 가스비와 같은 네트워크 비용이 발생할 수 있습니다.
Q. 가스비가 없는 서명은 무조건 안전한가요?
그렇지 않습니다. 네트워크 비용이 발생하지 않는 서명이라도 어떤 메시지와 권한에 동의하는지 확인해야 합니다. 예상하지 못한 요청이라면 바로 서명하지 않는 것이 중요합니다.
Q. 서명 요청을 거절해도 되나요?
내용을 이해하지 못했거나 예상하지 못한 요청이라면 서두르지 않고 거절한 뒤 다시 확인할 수 있습니다. 서명하지 않은 요청은 일반적으로 해당 거래가 실행되지 않으므로 DApp에서 시도했던 기능 역시 완료되지 않을 수 있습니다.
Q. 서명한 거래를 나중에 마음대로 되돌릴 수 있나요?
이미 블록체인에서 정상적으로 처리되고 확정된 거래는 일반적인 중앙화 서비스처럼 운영기관에 요청해 임의로 되돌릴 수 있다고 생각해서는 안 됩니다. 따라서 서명 전에 주소와 자산, 수량, 네트워크와 요청 내용을 확인하는 것이 중요합니다.
Q. 지갑 연결과 거래 서명은 같은 건가요?
아닙니다. 지갑 연결은 DApp과 지갑을 연결하는 과정이고, 트랜잭션 서명은 특정 거래의 내용에 동의했다는 사실을 증명하는 과정입니다.
트랜잭션 서명을 쉽게 기억하는 방법
“내 지갑이 이 거래 내용에 동의했다는 사실을 개인키를 이용해 암호학적으로 증명하는 과정”이라고 기억하면 됩니다.
지금까지 배운 내용을 연결하면 다음 흐름으로 이해하기 쉽습니다.
지갑 연결 → 필요한 경우 토큰 승인 → 거래 내용 확인 → 트랜잭션 서명 → 네트워크 전송 → 거래 처리 및 상태 확인
가장 중요한 것은 서명 버튼을 누르기 전에 무엇에 동의하고 있는지 확인하는 것입니다.
핵심 정리
트랜잭션 서명(Transaction Signing)은 블록체인 거래를 실행할 때 해당 지갑의 소유자가 거래 내용에 동의했다는 사실을 암호학적으로 증명하는 과정입니다.
지갑은 개인키를 이용해 디지털 서명을 생성할 수 있지만 정상적인 이용 과정에서 개인키 자체를 DApp이나 상대방에게 전달할 필요는 없습니다.
트랜잭션 서명은 지갑 연결이나 토큰 승인과 같은 개념이 아니며, 서명을 완료했다고 거래가 즉시 최종 확정되는 것도 아닙니다.
따라서 서명 전에는 공식 사이트 → 지갑 → 네트워크 → 거래 종류 → 자산 → 수량 → 받는 주소 또는 스마트 컨트랙트 → 권한 → 가스비를 확인하고, 서명 후에는 실제 거래 상태와 결과를 다시 확인하는 습관이 중요합니다.
참고 자료
트랜잭션 서명 방식과 지갑에 표시되는 거래 정보, 네트워크 처리 과정은 블록체인과 지갑, DApp에 따라 다를 수 있습니다. 실제 거래 시에는 사용하는 지갑과 네트워크의 최신 공식 자료를 확인하고 지갑에 표시되는 거래 내용을 직접 확인하는 것이 좋습니다.
Disclaimer
본 콘텐츠는 트랜잭션 서명, 가상자산 지갑, DApp, 스마트 컨트랙트 및 블록체인 거래에 대한 일반적인 정보 제공과 이용자 보호를 목적으로 하며 특정 가상자산, 지갑, DApp, 프로토콜 또는 거래 참여를 권유하지 않습니다. 블록체인 거래와 서명에는 피싱, 악의적인 서명 요청, 잘못된 주소·네트워크·수량 입력, 스마트 컨트랙트 취약점, 네트워크 비용 및 원금 손실로 이어질 수 있는 다양한 위험이 존재할 수 있습니다. 실제 서명 전 지갑에 표시되는 거래 내용과 대상 주소, 네트워크, 자산, 수량, 권한 및 예상 비용을 직접 확인하시기 바랍니다.