내부 트랜잭션: 사용자의 모든 크립토 트랜잭션 알림
작성자: Elan Halpern
Alchemy Notify 제품군은 이제 internal(스마트 컨트랙트) 트랜잭션이라는 새로운 기능을 포함하여 모든 ETH 및 Token transfer에 대한 알림을 제공합니다 — 사용자에게 트랜잭션의 모든 단계에 대한 완전한 투명성을 제공합니다.
Ethereum Address Activity 알림에 대한 개괄적인 내용은 이 블로그 포스트를 참고하세요.
Internal transaction이란 무엇인가?

Internal Transaction Notification
internal transaction이 무엇인지 이해하려면, 한 걸음 물러나 Ethereum에 존재하는 트랜잭션의 종류를 살펴보는 것이 도움이 됩니다. 트랜잭션은 Ethereum 체인의 상태 변화로, 데이터를 읽는 것이 아니라 체인에 데이터를 기록 하는 것을 의미합니다.
Ethereum에서 발생할 수 있는 상태 변화는 여러 가지가 있지만, 사용자들이 가장 관심을 갖는 것은 대체로 트랜잭션입니다. 사용자에게 트랜잭션을 알리기 위해, 개발자는 두 Ethereum 계정 간의 가치 교환인 transfer를 모니터링하는 Address Activity 알림에 연결할 수 있습니다.
Ethereum에는 세 가지 종류의 transfer가 있습니다:
ETH transfer
ETH transfer는 Ethereum의 네이티브 화폐를 사용하는 가장 기본적인 형태의 트랜잭션입니다.
Transfer 예시: Rishub가 Paul에게 0.5 ETH를 보냈습니다.
이를 얻는 방법은 각 새 블록을 스캔하여 트랜잭션 객체를 찾는 것입니다.
Token(ERC-20 및 ERC-721) transfer
Token transfer는 ERC-20 토큰이나 Non-fungible ERC-721 토큰(NFT)과 관련된 모든 transfer를 포함합니다.
Transfer 예시: Omar가 거래소(스마트 컨트랙트) 또는 다른 사용자로부터 10 AAVE를 구매합니다.
이러한 transfer를 얻는 일반적인 방법은 관심 있는 token contract의 event log를 살펴보는 것입니다.
Internal transfer
Internal transfer는 발신자(fromAddress)가 internal(스마트 컨트랙트) 주소인 Eth transfer입니다. 여기에는 한 스마트 컨트랙트가 다른 스마트 컨트랙트에 Eth를 보내는 경우나, 스마트 컨트랙트가 외부 주소로 Eth를 보내는 경우가 포함됩니다.
Transfer 예시: internal transfer는 매우 복잡하지만, 개발자와 사용자는 자신의 자금이 어디서 시작해서 어디로 도달하는지에 관심을 갖기 때문에 중요합니다. 다음은 두 개의 internal transaction을 보여주는 예시입니다:
Elan은 Sushiswap을 이용해 자신의 Sushi 토큰 일부를 ETH로 교환하고자 합니다. 이는 다양한 transfer가 관여하는 여러 단계의 과정입니다.
- 먼저, Elan은 Sushi 스마트 컨트랙트와 상호작용하여 token transfer를 통해 자신의 Sushi 토큰을 스마트 컨트랙트에 보냅니다.
- 그러면 스마트 컨트랙트는 Elan의 Sushi 토큰을 받아 또 다른 스마트 컨트랙트인 SUSHI/WETH 풀에 예치하며, 이 역시 token transfer에 해당합니다. 그 대가로 컨트랙트는 동등한 가치의 WETH를 받습니다.
- Elan은 WETH가 아닌 ETH를 원하기 때문에, Sushi 스마트 컨트랙트는 WETH 스마트 컨트랙트와 상호작용하여 WETH를 ETH로 교환합니다(언래핑). 이때 WETH 스마트 컨트랙트가 Sushi 스마트 컨트랙트로 ETH를 보냈으므로 internal transaction이 발생합니다.
- 그다음, Sushi 컨트랙트는 이 ETH를 다시 Elan에게 보내며, 이는 또 다른 internal transaction입니다(Sushi 스마트 컨트랙트가 외부 주소인 Elan에게 ETH를 보냄).
(3)과 (4)는 token transfer가 아닌 internal transaction입니다. ERC-20 토큰이 아닌 ETH가 교환되고 있기 때문입니다. 또한 이를 보내는 주체가 계정 주소가 아닌 스마트 컨트랙트 이기 때문에 external transfer도 아닙니다.
이제 internal transfer가 무엇인지 설명 하는 것조차 얼마나 복잡한지 감이 왔을 텐데, 이를 실시간으로 얻는 것이 어떨지 상상해 보세요. 만만치 않을 것입니다.
이렇듯 중요한 의미를 갖고 있음에도, internal transaction을 얻는 일은 실제로 꽤 까다로울 수 있습니다. 스마트 컨트랙트는 내부적으로 여러 겹의 internal contract call을 촉발할 수 있으며, 그중 일부는 가치가 전혀 연관되어 있지 않기도 합니다.
게다가 internal transaction은 ETH 및 token transaction과 같은 방식으로 온체인에 저장되지 않기 때문에, 이를 얻으려면 부모 트랜잭션에서 각 자식 트랜잭션까지 모든 call을 추적해야 합니다. 설상가상으로, 이런 종류의 추적을 실행하려면 개발자는 Parity Trace node라는 비싸고 오류가 발생하기 쉬운 특수한 소프트웨어에 접근해야 하며, 이는 동기화하는 데만 몇 주가 걸립니다.
사용자에게 트랜잭션의 모든 단계에 대한 실시간 정보를 제공하세요
external, token, internal transaction에 대한 알림을 통해, 사용자는 언제든 자신의 자금이 어디에 있는지 전체적인 그림을 파악할 수 있습니다. 이제 지갑은 복잡한 internal transaction을 포함해 자신의 계정과 관련된 transfer가 발생할 때마다 사용자에게 알림을 보낼 수 있습니다. 이러한 알림은 또한 개발자가 구축하고 상호작용하는 스마트 컨트랙트에 대해 더 많은 정보를 제공합니다.
Alchemy를 사용하면 세 가지 유형의 트랜잭션에 대한 알림을 손쉽게 설정할 수 있습니다. 여기서 무료 계정을 생성하여 몇 분 만에 Alchemy Notify에 대한 액세스를 활성화하세요.
트랜잭션 알림을 받는 데 3주가 아닌 3분만 투자하세요
직접 Parity Trace node를 동기화하고 몇 주를 기다릴 필요 없이, Alchemy와 3분 만에 통합하면 됩니다.
- Alchemy에 가입하기
- URL과 관련 주소로 웹훅 생성하기(새 웹훅을 생성할 수 있는 API도 제공됩니다)
- Alchemy가 알림을 보냅니다
- 사용자는 더 이상 자신의 암호화폐 거래 상태를 걱정할 필요가 없습니다
Alchemy 뉴스레터
출시 소식을 가장 먼저 받아보세요
뉴스레터 구독하기
Alchemy의 최신 제품 업데이트와 리소스 받기
이메일 주소를 입력하면 마케팅 커뮤니케이션 및 제품 업데이트 수신에 동의하게 됩니다. Alchemy는 저희 개인정보 처리방침에 따라 수집한 정보를 처리합니다. 언제든지 구독을 취소할 수 있습니다.
관련 아티클

Glamsterdam: Ethereum 개발자를 위한 완전 가이드
Glamsterdam이 Sepolia에서 가동 중입니다. 개발자에게 무엇을 의미하는지, 그리고 Alchemy가 네트워크 업그레이드에 어떻게 준비했는지를 담은 완전 가이드입니다.

도쿄에서 구축한다면 어떤 RPC 제공업체를 선택해야 할까
도쿄를 서비스하는 RPC 제공업체 다섯 곳을 다섯 개 체인에서 벤치마크했습니다. 비교 결과와, 지연 시간에 민감한 팀에게 차이가 어디서 나는지 정리합니다.

업계 최고 수준의 속도와 안정성을 위한 Solana RPC 읽기 아키텍처
Alchemy는 가장 낮은 Solana 읽기 지연 시간을 제공합니다: 9.21ms로, 차순위 제공업체보다 약 26% 빠릅니다.