SB Crypto
블록체인, 메타버스, NFT 등 Web3 이모저모😎
채팅방: https://t.me/web3subinchat
* 모든 의견은 개인 의견이며, 제가 속한 회사, 조직 등을 대변하지 않습니다. 모든 내용은 특정 자산에 대한 경제적 조언이 아니며, 이에 대해 책임지지 않습니다.
📈EVM 기반 온체인 데이터 이해하기
Twitter 원문 읽기
이더리움을 포함하여 EVM 기반 데이터는 대부분 유사한 형태로 저장됩니다. 그렇기에 EVM 기반 데이터의 기본적인 형태만 알아도 Dune에서 데이터를 찾는 것이 상당히 쉽습니다. 한 번 같이 살펴봅시다.[ethereum.transactions ethereum.blocks]low-level에서 이더리움 데이터는 어떻게 생성되나요? 간단하게 설명하면-(1) 트랜잭션 생성(송금할 주소, 금액, 가스 등 설정) (2) 지갑의 개인키를 통한 트랜잭션 서명 (3) 트랜잭션 전송 (4) 노드에서 트랜잭션 검증 및 선택 후 블록 생성- 과정을 거칩니다. 이 과정의 트랜잭션과 블록 정보는 이더스캔에서 보는 데이터와 거의 같게 저장됩니다.[ethereum.logs, CallTable]트랜잭션이 컨트랙트와 상호작용하게 되는 경우 2가지 추가 데이터를 확인할 수 있는데 (1) 컨트랙트에 작성되어 있는 Event 데이터 (2) 컨트랙트 함수 호출이라면 FunctionCall. ethereum.log 데이터에는 이런 event 기록이 모두 저장되어 있습니다. FunctionCall의 경우, Dune에 제출된 컨트랙트 별로 CallTable을 확인할 수 있습니다. 없다면 Dune에 제출도 가능합니다![ethereum.traces]EOA(Externally Owned Account)-EOA, EOA→CA(Contract Account)로 보내는 경우가 아닌 EOA-CA-EOA나 EOA-CA-CA-EOA 등의 여러 과정을 거치는 경우에 첫 tx 외는 Internal Txs라 합니다. transactions에 기록되는 것이 아니고, traces에서 observe할 수 있습니다. 이런 데이터는 ethereum.traces에 기록됩니다. Dune에서는 보통 transactions 데이터를 기준으로 여러 지표를 계산하나 보다 정확한 계산을 위한 traces가 필요할 수 있습니다.[erc20_ethereum.evt_Transfer]근데 erc20/721/1155 등은 표준이 정해있으니 FunctionCall이나 Event에 대해 쉽게 추상화 테이블을 만들 수 있죠. 쉽게는 approve/transfer, from/to, amount, tokenId 정보가 제공되며, 이를 통해 거래량/거래 수 등 다양한 분석을 할 수 있습니다.[dex.trades, nft.trades]그리고 위의 데이터를 조합하여 각 dex와 nft marketplace 별로 데이터를 묶어놓은 데이터셋도 존재합니다. 다만 이 데이터를 사용할 때 새롭게 생겼거나 유동성이 적은 Protocol은 포함되어 있지 않을 수 있으니 DefiLlama 등의 다양한 데이터를 통해 데이터를 살펴보시기 바랍니다.[prices.usd]가격 오라클을 통해 받아온 가격 데이터입니다. 다만 마찬가지로 적은 거래량을 가진 토큰의 가격은 불러오지 못할 수 있으니 참고바랍니다. 특히 새로 생긴 밈코인을 분석할 때는 가격 데이터가 없을 수 있습니다. 이런 경우 dexscreener 등을 활용하여 여러 분석을 해보는 것을 추천합니다.
도움이 되었길 바라며, 기회가 되면 SQL 기본 문법으로 돌아오겠습니다👋
346
9