Skip to main content
QUICK REVIEW

[논문 리뷰] Efficient Logging for Blockchain Applications

Christopher Klinkmüller, Ingo Weber|arXiv (Cornell University)|2020. 01. 28.
Software System Performance and Reliability참고 문헌 5인용 수 5
한 줄 요약

이 논문은 이더리움 스마트 컨트랙트에서 비용 효율적인 로깅과 블록체인 데이터의 표준 형식(예: CSV, XES, 텍스트)으로의 효율적 추출을 가능하게 하는 구성 가능한 오픈소스 시스템인 이더리움 로깅 프레임워크(ELF)를 소개한다. ELF는 선언적 매니페스트를 통해 정적 및 실시간 로그 분석을 지원하며, 소스 코드에 접근하지 않더라도 로깅 코드를 생성하고 구조화된 데이터를 추출할 수 있도록 한다. 이는 네트워크 모니터링, 예측 시장, 게임 분석을 포함한 세 가지 실제 사례 연구를 통해 입증되었다.

ABSTRACT

Second generation blockchain platforms, like Ethereum, can store arbitrary data and execute user-defined smart contracts. Due to the shared nature of blockchains, understanding the usage of blockchain-based applications and the underlying network is crucial. Although log analysis is a well-established means, data extraction from blockchain platforms can be highly inconvenient and slow, not least due to the absence of logging libraries. To close the gap, we here introduce the Ethereum Logging Framework (ELF) which is highly configurable and available as open source. ELF supports users (i) in generating cost-efficient logging code readily embeddable into smart contracts and (ii) in extracting log analysis data into common formats regardless of whether the code generation has been used during development. We provide an overview of and rationale for the framework's features, outline implementation details, and demonstrate ELF's versatility based on three case studies from the public Ethereum blockchain.

연구 동기 및 목표

  • 이더리움을 위한 전용 로깅 라이브러리의 부재로 인해 탈중앙화 애플리케이션(dApp)의 효과적인 모니터링 및 분석이 저해되는 문제를 해결하기 위해.
  • 개발자가 스마트 컨트랙트에 직접 통합 가능한 비용 효율적인 로깅 코드를 생성함으로써 가스 오버헤드를 줄이기 위해.
  • 개발 단계에서 로깅이 사용되었는지 여부에 관계없이 블록체인 데이터를 표준 형식으로 추출하고 변환할 수 있는 유연하고 선언적인 프레임워크를 제공하기 위해.
  • 공개 및 프라이빗 이더리움 블록체인에서 실시간 모니터링과 역사적 분석을 위한 배치 및 스트리밍 로그 추출을 지원하기 위해.
  • 금융 시스템, 게임, 예측 시장과 같은 다양한 유형의 dApp을 대상으로 한 실제 사례 연구를 통해 프레임워크의 유연성을 입증하기 위해.

제안 방법

  • 프레임워크는 어떤 이더리움 데이터를 추출할지, 어떻게 변환할지, 어떤 형식으로 내보낼지를 지정하는 선언적 매니페스트 파일을 사용하며, 저수준의 구현 세부 정보를 추상화한다.
  • 매니페스트는 ANTLR4와 사용자 정의 규칙를 사용하여 문법적 및 의미적 검증을 수행하여 처리 전에 정확성을 보장한다.
  • 추출기 컴ponent는 Web3j를 통해 이더리움의 JSON-RPC API를 사용하여 노드를 쿼리하고, 데이터를 가져오며, 변환을 적용한 후 CSV, 텍스트, 또는 XES와 같은 대상 형식으로 내보낸다.
  • 생성기 컴ponent는 매니페스트에서 최적화된 로깅 코드를 유도하여 개발자가 스마트 컨트랙트에 효율적인 로깅을 직접 통합할 수 있도록 한다.
  • 프레임워크는 두 가지 모드를 지원한다: 배치(기존 데이터의 한 번성 내보내기)와 스트리밍(블록 단위로 지속적인 내보내기, PoW 체인에서는 리오르그로 인한 오버라이트 가능)
  • 구현은 자바 13 기반으로, XES 내보내기에 OpenXES를 활용하고, CSV/텍스트에 표준 라이브러리를 사용하여 호환성과 성능을 확보한다.

실험 결과

연구 질문

  • RQ1개발자는 어떻게 이더리움에서 비용 효율적인 로깅을 통해 스마트 컨트랙트를 효율적으로 인스트루멘터라이징하여 애플리케이션 모니터링과 분석을 지원할 수 있는가?
  • RQ2스마트 컨트랙트 소스 코드에 접근하지 않더라도, 원시 블록체인 데이터에서 분석 가능한 구조화된 데이터를 어떻게 추출할 수 있는가?
  • RQ3어떤 메커니즘이 다양한 유형의 dApp(금융 시스템, 게임, 예측 시장 등)에 걸쳐 다양한 로깅 및 분석 워크로드를 지원하는 일반적인 프레임워크가 되도록 하는가?
  • RQ4사용자 정의 구현 대비, 선언적이고 구성 기반의 접근 방식이 블록체인 로그 추출에 있어 성능 및 확장성 특성에 어떻게 영향을 미치는가?
  • RQ5이러한 프레임워크는 배치 및 스트리밍 모드를 통해 얼마나 실시간 모니터링과 역사적 분석를 가능하게 할 수 있는가?

주요 결과

  • ELF는 선언적 매니페스트를 통해 스마트 컨트랙트에 비용 효율적인 로깅 코드를 생성함으로써 가스 오버헤드를 줄이고 배포 용이성을 향상시킨다.
  • 프레임워크는 소스 코드에 접근하지 않더라도 이더리움 노드에서 다수의 표준 형식(예: CSV, 텍스트, XES)으로 선택적이고 구성 가능한 데이터 추출을 지원한다.
  • ELF의 스트리밍 모드를 통해 근접 실시간 로그 분석이 가능하지만, 블록 재조정으로 인해 PoW 체인에서는 오버라이트가 발생할 수 있다.
  • 프레임워크는 네트워크 통계 모니터링(14줄의 매니페스트), Augur 예측 시장에서의 컨트랙트 레지스터 업데이트 추적(234줄의 매니페스트), CryptoKitties의 라이프사이클 분석(60줄의 매니페스트)을 포함한 세 가지 실제 사례 연구에 성공적으로 적용되었다.
  • CryptoKitties 사례에서 ELF는 특정 블록 범위 내에서 태어난 고양이에 대해 필터링하여 노이즈 없는 XES 로그 추출을 가능케 했으며, 이는 기존 도구인 BloXES로는 구현이 어려운 사례였다.
  • 프레임워크의 설계는 기술적 독립성을 보장한다. 표준화된 이더리움 JSON-RPC API에 의존하기 때문에, 어떤 호환되는 노드 클라이언트나 블록체인 네트워크와도 호환된다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.