병렬 EVM: 병렬 처리의 이상과 현실
[낙관적 실행의 우려되는 문제]
1) 재실행 비용의 증대
• 상태 불일치가 자주 발생할 경우, 롤백 및 재실행으로 인해 성능 저하가 발생할 수 있음
• 예를 들어, 트랜잭션 A와 B가 동일한 계정을 참조하고, A가 상태를 변경했다면 B는 잘못된 상태를 읽고 실행될 가능성이 높음.
2) 비용-효율성
• 낙관적 실행이 재실행 횟수를 크게 줄이지 못한다면, 오히려 순차 처리보다 느릴 수 있음
3) 병렬 안전성
• 입력 및 출력 비교를 지속적으로 추적하는 작업이 추가적인 계산 오버헤드를 초래할 수 있음/
낙관적 실행은 병렬성을 높이는 데 효과적일 수 있지만, 트랜잭션 간 종속성이 높은 경우에는 성능 저하를 피하기 어려울 가능성 존재.
[스케줄링 및 종속성 예측의 우려되는 문제]
1) 정적 분석의 한계
• 많은 스마트 컨트랙트는 실행 시점에 상태를 참조하거나 외부 호출을 포함하기 때문에, 정적 코드 분석만으로 모든 종속성을 정확히 예측하는 것은 어려움.
• 특히 DeFi 플랫폼이나 NFT 거래와 같이 복잡한 상태 변경이 빈번한 경우, 정적 분석의 정확도가 떨어질 가능성이 높음.
2) 추가적인 계산 비용
• 종속성을 분석하고 스케줄링하는 작업이 실행 비용에 추가됨.
• 트랜잭션 수가 많거나 복잡도가 높은 경우, 분석 오버헤드로 인해 병렬 처리의 이점이 감소할 수 있음.
스케줄링 및 종속성 예측은 병렬 처리의 핵심 기술이지만, 스마트 컨트랙트의 동적 특성으로 인해 완벽히 예측하기는 어렵고, 비용의 증가를 유발할 수 있음.
[상태 병합 의 우려되는 문제]
1) 병합 충돌 처리
• 병합 과정에서 동일한 상태를 동시에 변경한 트랜잭션이 발견되면, 이들을 순차적으로 재실행하거나 충돌 해결 로직을 추가함.
• 이러한 작업은 병렬 처리의 성능 이점을 감소시킬 수 있음.
2) 병합 비용
• 병렬로 실행된 상태를 병합하는 과정에서 추가적인 계산 및 스토리지 비용이 발생.
• 특히 병합 대상이 많은 경우(예: 상태 업데이트가 많은 대규모 블록)는 병합 비용이 크게 증가할 가능성.
상태 병합은 병렬 처리 후 일관성을 보장하기 위한 필수 단계지만, 충돌 및 병합 비용은 병렬 처리의 성능 이점을 제한할 수 있음.
https://x.com/hyeon__dev/status/1876276084271960180
105
4시간 전