이더리움 스마트 계약의 투기적 병렬 실행: 실증적 성능 분석
초록
본 연구는 이더리움 블록체인에 기록된 과거 트랜잭션 데이터를 재현해, 모든 트랜잭션을 병렬로 실행하고 충돌이 발생한 경우 롤백 후 순차 실행하는 투기적 실행 모델의 잠재적 속도 향상을 평가한다. 2016년 약 8배, 2017년 말에는 약 2배 수준의 가속이 관찰됐으며, 소수의 인기 계약이 충돌의 대부분을 야기한다는 사실을 발견하였다.
상세 분석
이 논문은 이더리움 스마트 계약이 본질적으로 튜링 완전성을 갖는 프로그램이라는 점에서 정적 의존성 분석이 어려움을 강조한다. 따라서 저자들은 “투기적 실행(speculative execution)”이라는 동적 접근법을 채택했는데, 이는 각 트랜잭션의 읽기·쓰기 집합을 실행 중에 추적하고, 두 트랜잭션이 동일한 저장소 위치에 대해 하나 이상이 쓰기를 수행하면 충돌로 판단한다. 충돌이 감지된 트랜잭션은 즉시 롤백되고, 이후 순차 단계에서 재실행된다. 이 방식은 충돌이 드물 때 높은 병렬성을 확보할 수 있지만, 충돌이 빈번하면 오히려 오버헤드가 증가한다는 전제가 있다.
실험 설계는 크게 두 부분으로 나뉜다. 첫째, 이더리움 전체 체인(2016‑2017년)에서 7개의 대표 기간을 선정하고, 각 기간마다 10번째 블록을 추출해 전체 트랜잭션을 재현했다. 둘째, 가상의 병렬 EVM을 16, 32, 64 스레드 환경에서 시뮬레이션했으며, 트랜잭션 실행 시간을 가스 사용량과 바이트코드 명령 수 두 가지 지표로 추정했다. 이중 “읽기·쓰기 집합을 별도로 구분”하는 것이 충돌 탐지 정확도에 크게 기여한다는 점을 확인했다.
결과는 시간에 따라 급격히 변한다. 2016년 초에는 블록당 평균 트랜잭션 수가 비교적 적어 충돌 비율이 낮았고, 8배에 달하는 속도 향상이 가능했다. 그러나 2017년 말에는 일일 트랜잭션 수가 급증하면서 충돌이 빈번해졌고, 최종적으로는 2배 수준으로 감소했다. 특히, 전체 충돌의 70% 이상이 상위 5% 계약에서 발생했으며, 이들 계약은 주로 토큰 전송, 탈중앙화 거래소, 그리고 간단한 토큰 발행 로직을 포함한다.
추가 실험에서는 (1) 읽기·쓰기 집합을 하나의 집합으로 합쳐 충돌을 과대 평가했을 때 속도 향상이 크게 감소하고, (2) 다단계 투기적 실행(여러 병렬 단계 후 재시도)도 큰 이득을 제공하지 못함을 보였다. 이는 현재 EVM의 메모리 모델이 “읽기‑쓰기” 구분 없이 전체 접근을 충돌로 간주하면 병렬화가 거의 불가능함을 시사한다.
한계점으로는 실제 병렬 EVM 구현이 없기 때문에 시뮬레이션 기반 추정에 의존했다는 점이다. 또한, 롤백 비용을 가스와 명령 수만으로 단순화했으며, 네트워크 전파 지연이나 블록 생성 시간 등 실제 시스템 레이어의 영향을 고려하지 않았다. 그럼에도 불구하고, 이 연구는 블록체인 실행 엔진 설계 시 “충돌 최소화”와 “인센티브 기반 계약 설계”가 병렬성을 확보하는 핵심 전략임을 실증적으로 보여준다.
댓글 및 학술 토론
Loading comments...
의견 남기기