[Devcon 6] Day 1 on Ethereum Transaction Insight
Understanding Transactions in EVM-Compatible Blockchains Powered by Opensource
[Devcon 6] Devcon 시리즈
- [Devcon 6] Day 1 on Ethereum Transaction Insight
- [Devcon 6] Day 2 on Update of EVM
- [Devcon 6] Day 3 on Ethereum Assembly
- [Devcon 6] Day 4 on Post-Merge Ethereum Client Architecture
개요
Ethereum Transaction Data(Hexdecimal)만 보고 그 내용이 무엇인지 파악할 수 있는 사람이 있을까? (물론, 있을 수도 있다) 하지만 나를 포함한 대부분의 사람들은 16진수가 트랜잭션 데이터인지도 모를 것이다. 이더리움의 트랜잭션은 RLP 를 통해 Decode 되어야 비로소 우리가 해석할 수 있게 되는데 이 과정에서 호출한 주소의 Contract 의 ABI 가 필요하다.
Contract 의 ABI 는 어떻게 얻을 수 있을까? 이는 전적으로 Contract 의 Code를 알고 있는 사람에게 의존한다. Etherscan 과 같은 Block Explorer 도 Contract 의 운영자에게 code 를 받아 validate 하는 로직으로 구성되어 있다. 여기서, 보통 Contract 의 운영자는 사용자들의 사용을 유도하기 위하여 Contract 의 Code 와 ABI 를 공개할 동기를 갖는다.
그렇다면, 보통 사용자들은 Block Explorer 를 통해서 Ethereum 의 Transaction 을 분석하게 될 것이다. 이 문서에서는 Block Explorer 나 여러 트랜잭션 분석기 들을 비교하고 더욱 User 친화적이고 투명성을 제공하는 rotki 를 소개하겠다.
Transaction Analysis Tools
Etherscan
장점
- 사용하기 쉬움
- 무료
단점
- 중앙화
- decode 되지 않는 트랜잭션들
- Closed source
TheGraph
장점
- 하나의 프로토콜에 대해 최적화
단점
- query를 공부하여 사용해야 한다.
- local app 들과 함께 동작하지 않는다.
Get Transaction Data for an Account
트랜잭션을 단순히 분석하는 것도 사용자들에게 도움을 주지만 정말 중요한 것은 하나의 Account 에 대한 Transaction 내역을 얻는 것이다. 이를 위하여 사용할 수 있는 도구들은 다음과 같다.
Etherscan APIs
https://docs.etherscan.io/api-endpoints/accounts#get-a-list-of-normal-transactions-by-address
장점
- 사용하기 편하다.
단점
- 한번 호출에 10000개 까지의 트랜잭션을 얻을 수 있다.
- 호출에 한도가 있다.
- 중앙화 되어있다. (Data 가 Etherscan 에 존재하고 API 호출을 모니터링할 수 있다)
Trueblocks
https://trueblocks.io/docs/using/introducing-chifra
장점
- 탈중앙화 되어있고, local 노드로부터 모든 데이터를 얻을 수 있다.
- 매우 빠르다.
- 다른 사람들과 index 를 공유한다.
단점
- 설치하기 힘들다.
- local 노드가 요구된다.
- index 를 만들어야 한다.
Rotki
rotki 는 Crypto 자산을 전문으로 하는 자산 관리 및 회계 응용프로그램이다. 모니터링에 필요한 Data 들은 모두 사용자의 컴퓨터에 암호화되어 저장되며 rotki 의 서버에는 저장되지 않는다.(오픈소스에서 빌드) 파악한 대략적인 기능은 다음과 같다.
- Bitcoin, Ethereum 등 계정 모니터링
- ENS 지원
- 이벤트 redecode(decode 커스터마이징)
- 주요 거래소(Kraken, Poloniex, Bittrex, Bitmex, Bitfinex, Binance 등) API key를 통하여 자산 모니터링
- 주요 거래소(Binance, ShapeShift.com, uphold.com) 거래기록 파일 Import
구조
정식으로 설명은 없지만 분석한 구조는 다음과 같다.
- rotki client
- rotki server
- nodes (bitcoin, ethereum, …)
- central exchange server (Kraken, Binance, …)
rotki client 는 하단의 주체들에게 data 를 요청하고 필요하다면 local 에 저장한다.
결론
rotki 는 분명히 사용자들에게 많은 정보를 쉽게 제공할 수 있다. 이는 정보의 비대칭성을 해결할 수 있고, 블록체인의 철학과도 일맥상통한다. 하지만 개인 사용자가 사용하기에는 설치 및 초기 설정에 난이도가 있다.
감히 추측해보자면, 현재의 기술력으로 웹 서비스를 출시 한다면 Etherscan 을 뛰어넘는 Explorer 가 될 수 있다고 생각한다.