Skip to main content
QUICK REVIEW

[논문 리뷰] Blockchain Superoptimizer

Julian Nagele, Maria A. Schett|arXiv (Cornell University)|2020. 05. 12.
Blockchain Technology Applications and Security참고 문헌 13인용 수 5
한 줄 요약

이 논문은 SMT 해결을 사용하여 더 저렴한, 의미적으로 동일한 EVM 바이트코드 시퀀스를 자동으로 발견하는 Ethereum 가상 머신(EVM) 바이트코드를 위한 슈퍼옵티마이저 ebso를 제안한다. EVM 의미 체계를 SMT 공식으로 표현함으로써 ebso는 가스 비용을 줄이는 최적화를 발견하며, 한 번의 사례에서 최대 20,220g의 절감을 이룩한다. 이는 SMT 기반 슈퍼옵티마이제이션이 실제 스마트 컨트랙트에 대해 실현 가능하고 효과적이라는 것을 보여준다.

ABSTRACT

In the blockchain-based, distributed computing platform Ethereum, programs called smart contracts are compiled to bytecode and executed on the Ethereum Virtual Machine (EVM). Executing EVM bytecode is subject to monetary fees---a clear optimization target. Our aim is to superoptimize EVM bytecode by encoding the operational semantics of EVM instructions as SMT formulas and leveraging a constraint solver to automatically find cheaper bytecode. We implement this approach in our EVM Bytecode SuperOptimizer ebso and perform two large scale evaluations on real-world data sets.

연구 동기 및 목표

  • Ethereum에서 스마트 컨트랙트를 실행하는 데 드는 높은 비용을 해결하기 위해 자동으로 더 저렴한 바이트코드 시퀀스를 발견하는 것.
  • Ethereum의 명확한 가스 비용 모델을 고려할 때, SMT 해결을 통한 슈퍼옵티마이제이션이 EVM 바이트코드에 대해 실현 가능한지 탐색하는 것.
  • 실제 스마트 컨트랙트에서 기본 및 비한계 초과 슈퍼옵티마이제이션 전략을 평가하여 성능과 최적화 효과를 비교하는 것.
  • 경쟁 컨트랙트에서 매우 최적화된 코드와 이더리움 메인넷에서 가장 자주 호출된 컨트랙트에서 최적화를 식별하고 검증하는 것.
  • SMT 솔버의 한계와 편향, 특히 비결정성 행동과 확장성 문제에 대해 슈퍼옵티마이제이션에서 영향을 미치는 요소를 분석하는 것.

제안 방법

  • 바이트코드 동작에 대한 형식적 추론을 가능하게 하기 위해 EVM 명령어 의미 체계의 일부를 SMT 공식으로 인코딩하는 것.
  • 두 가지 슈퍼옵티마이제이션 전략을 구현: 기본 전략(후보 시퀀스를 나열하고 SMT를 통해 동치성 검증)과 비한계 전략(나열을 솔버 제약 조건 내에 인코딩하는 것).
  • 최소 비용의 지침 시퀀스를 유지하면서 기능적 동치성을 보존하는 최소 비용 지침 시퀀스를 찾기 위해 최신 SMT 솔버(CVC4, Vampire 등)를 사용하는 것.
  • 벤치마킹 및 솔버 비교를 위해 SMT-LIB 형식으로 생성된 SMT 제약 조건을 내보내는 것.
  • 두 가지 실제 데이터셋에 도구를 적용: 경쟁 컨트랙트(가장 낮은 가스를 위해 최적화된 코드)와 이더리움 메인넷에서 가장 많이 호출된 2,500개의 컨트랙트.
  • 공통적인 최적화 패턴을 캐싱하고 일반화하여 효율성을 향상시키고 향후 피크홀 최적화 통합을 지원하는 것.

실험 결과

연구 질문

  • RQ1SMT 기반 슈퍼옵티마이제이션은 실제 스마트 컨트랙트의 EVM 바이트코드 가스 비용을 효과적으로 줄일 수 있는가?
  • RQ2기본 전략과 비한계 전략은 실제 이더리움 컨트랙트에서 최적화 커버리지와 성능 측면에서 어떻게 비교되는가?
  • RQ3어떤 종류의 최적화가 가장 흔히 발견되며, 솔버가 이를 발견하는 능력에 영향을 미치는 요소는 무엇인가?
  • RQ4SMT 솔버의 비결정성과 성능 한계가 최적의 바이트코드 시퀀스 발견에 얼마나 큰 영향을 미치는가?
  • RQ5이 도구는 매우 최적화된 또는 프로덕션 수준의 스마트 컨트랙트에서 이전에 알려지지 않은 최적화를 식별할 수 있는가?

주요 결과

  • ebso는 이미 매우 최적화된 스마트 컨트랙트로 구성된 경쟁 데이터셋에서 19개의 최적화를 발견하여, 수작업 최적화된 코드조차도 추가로 향상시킬 수 있음을 보여주었다.
  • 이더리움 메인넷에서 가장 많이 호출된 2,500개의 컨트랙트에서 비한계 슈퍼옵티마이제이션(uso) 전략은 총 943개의 최적화를 발견했으며, 모든 블록에 걸쳐 총 17,871g의 가스 절감을 이룩했다.
  • 기본 슈퍼옵티마이제이션(bso) 전략은 184개의 최적화를 발견했으며, 평균 블록당 6,903g의 가스 절감을 이뤘다. bso는 더 작은, 영향력이 큰 블록에 집중함으로써 uso(29.63%) 대비 높은 평균 가스 절감률(46.1%)을 기록했다.
  • 비록 bso의 최적화 비율이 더 높았지만, bso는 오직 393건의 경우에서 최적 결과를 도출했고, uso는 943건의 경우에서 최적 해를 발견하여, 그보다 더 뛰어난 확장성과 완전성을 보여주었다.
  • 놀랍게도 bso는 uso가 놓친 21개의 최적화를 발견했으며, 이는 모두 낮은 가스 비용(<10g)을 가진 짧고 복잡한 블록을 포함하고 있었다. 이는 솔버의 비결정성 행동이 검색 결과에 영향을 줄 수 있음을 시사한다.
  • 가장 높은 절감 효과는 중복된 스토리지 접근 패턴에서 유래했으며, 5개의 지침 시퀀스를 빈 프로그램으로 대체함으로써 5,220g에서 20,220g의 가스 절감을 이룩했다.

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

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

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

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