메인 콘텐츠로 건너뛰기
Sunnyside Labs(이전 명칭 Test in Prod)와 OP Labs는 OP Chain의 블록 시간을 1초로 줄일 수 있는지 연구했습니다. 블록 시간을 줄이는 것이 안전한지 검증하려면, 프로덕션 환경에서 블록이 최대 gas를 사용할 때 node가 1초 이내에 블록을 생성할 수 있는지 확인해야 합니다. 즉, 블록이 최대 gas를 사용할 때 블록 생성 시간이 1초 미만이어야 합니다. 우리는 여러 클라이언트(op-geth 및 op-reth)를 사용하여 Base의 모든 블록에 대한 블록 생성 시간을 벤치마크하고, 데이터를 다양한 gas 범위로 그룹화했습니다.

방법 및 원시 데이터

이 GitHub 저장소에는 테스트 방법, 데이터 세트, 클라이언트 버전, 원시 데이터가 포함되어 있습니다. 다음 벤치마크는 이 노트북에서 확인할 수 있습니다.

벤치마크

그림 1과 2는 블록 5492540부터 9816497까지 op-geth archive node와 full node를 사용한 Base node의 블록 생성 시간 분포를 보여 줍니다. 25M ~ 30M gas를 사용한 블록의 평균 블록 생성 시간은 각각 0.58초와 0.36초로, 1초 미만임을 알 수 있습니다. 그림 3은 블록 5492540부터 9816497까지 op-reth archive node를 사용한 Base node의 블록 생성 시간 분포를 보여 줍니다. op-geth의 archive node와 비교하면 op-reth가 모든 범위에서 더 나은 성능을 보입니다. 연구 과정에서, 체인이 더 많은 상태와 트랜잭션을 저장하여 더 많은 과거 데이터에 접근해야 할수록 node가 블록을 생성하는 데 걸리는 시간이 유의미하게 늘어난다는 사실을 발견했습니다. 그래서 그림 4와 5에서는 최신 블록을 벤치마크했습니다. 평균적으로 full node와 archive node 모두 혼잡한 블록을 제시간에 생성할 수 있었습니다. 높은 gas 사용 범위의 평균 블록 생성 시간은 이전 블록과 비슷하지만, 전체 평균 블록 생성 시간은 최신 블록에서 더 높다는 점에 주목할 필요가 있습니다. archive node의 25m~30m gas 범위를 확대해 보면 평균값인 0.51초가 우려스러울 수 있습니다. 하지만 히스토그램(그림 6)의 이상치 때문에 평균이 p50(0.4초)과 차이가 난다는 점에 유의해야 합니다. 또한 블록 진행(Sequencer)은 비동기적 특성을 가지므로 평균보다 p50이 더 중요한 지표입니다. Sequencer가 블록 시간이 지난 후 블록을 봉인하면 트랜잭션 포함을 중단하고, 현재 처리 중인 트랜잭션은 다음 블록으로 넘깁니다. 따라서 sequencer는 1초 미만이 걸린 대부분의 트랜잭션을 제시간에 블록에 포함하고, 이상치는 다음 블록에 포함할 수 있습니다. 그러므로 가장 높은 gas 범위(25m~30m gas)에서도 대부분의 경우 시스템이 1초 안에 블록을 생성할 수 있을 것으로 기대할 수 있습니다. 결과적으로, node는 i3en.3xlarge 인스턴스(또는 유사한 사양)로 최고 수준의 프로덕션 부하가 걸린 Base Mainnet의 최신 블록을 1초 안에 생성할 수 있음을 알 수 있습니다.

예상 영향

Verifier

  • 제네시스부터 동기화: OP Chain의 블록 시간이 1초로 줄어들면, verifier가 L1 파생(derivation)을 통해 제네시스부터 체인을 동기화하는 데 더 오래 걸릴 수 있습니다. 하지만 OP Stack은 engine sync를 지원하므로 verifier에게 큰 문제가 되지 않을 것으로 예상합니다.
  • 최신 블록(tip) 따라가기: 연구 결과에 따르면 node가 가장 높은 gas 범위에서도 1초 이내에 블록을 생성할 수 있으므로, verifier가 tip을 따라가는 데 문제가 생길 가능성은 낮습니다. 특히 대부분의 verifier는 full node입니다.

Sequencer

  • 블록 진행: 앞 단락에서 언급했듯이, 데이터는 더 짧은 블록 시간에서도 문제가 없을 것임을 시사합니다.

한계

Base Mainnet의 최신 블록 평균 블록 생성 시간이 0.19초이므로, 현재로서는 블록 시간을 1초로 줄이는 데 문제가 없을 것으로 데이터는 시사합니다. 한 가지 우려되는 점은 체인이 진행될수록 블록 생성에 더 오래 걸린다는 벤치마크 결과입니다. 시간이 지나면서 체인이 더 많은 상태를 저장하고 사용량이 2017년 Ethereum처럼 정점까지 급증하면, 그때는 성능 패치가 필요할 수 있습니다. 하지만 이 연구는 Base Mainnet이 현재 트래픽의 2배를 처리한다고 가정한다는 점도 주목할 필요가 있습니다. 즉, 블록 시간을 절반으로 줄이면서도 (2초 블록 시간으로 운영되던) 현재와 같은 gas를 사용한다고 가정합니다. 또한 Base Mainnet의 평균 블록 gas 사용량은 10M입니다. 모든 블록이 이 연구가 초점을 맞춘 최고 gas 수준(25M)에 도달하려면 다시 2.5배가 필요합니다. 따라서 이 연구는 체인이 현재 Base Mainnet 대비 약 5배의 트래픽(블록 시간 2배 * gas 사용량 2.5배)을 처리한다고 가정합니다.

참고 자료

gas limit 상향을 위한 Base의 이전 연구: replayor