EIP-160 EXP 연산 가스비 인상 (EXP cost increase)
최종 확정 · 수수료·가스 · 원문 상태 Final · 2016-10-20 작성
EVM의 거듭제곱 연산(EXP)에 매기는 가스 비용을 지수 1바이트당 10에서 50으로 올립니다. 블록 2,675,000의 스퓨리어스 드래곤(Spurious Dragon) 하드포크부터 적용된 확정 변경입니다.
왜 필요한가
이더리움에서는 모든 연산에 가스(gas)라는 수수료 단위가 붙습니다. 가스 가격은 그 연산을 처리할 때 노드가 실제로 쓰는 컴퓨팅 비용에 맞춰 정해져야 합니다. 어떤 연산이 실제 부담보다 훨씬 싸게 책정되어 있으면, 적은 수수료만 내고도 네트워크 전체 노드에 큰 계산 부담을 지울 수 있게 됩니다. 원문의 근거(Rationale)에 따르면 벤치마크 결과 거듭제곱 연산인 EXP는 당시 실제 비용 대비 약 4~8배 싸게 책정되어 있었습니다. 이 EIP는 그 간극을 줄이기 위해 EXP의 가스 비용 가운데 지수 크기에 비례하는 부분을 1바이트당 10가스에서 50가스로 올립니다. 연산 가격을 실제 비용에 가깝게 맞춰 네트워크가 제값을 받고 일하게 만드는 조정입니다.
무엇이 바뀌나
지금
- EXP 비용이 10 + 지수 1바이트당 10가스입니다
- 벤치마크 기준으로 실제 처리 비용보다 약 4~8배 싸게 책정되어 있습니다
EIP-160 이후
- EXP 비용이 10 + 지수 1바이트당 50가스로 오릅니다
- 가스 가격이 실제 처리 비용에 더 가까워집니다
누구에게 영향이 있나
- 스마트컨트랙트 개발자: EXP를 쓰는 코드의 가스 비용이 지수 크기에 따라 올라가므로, 포크 이후 실행 비용이 달라집니다.
- 사용자: 거듭제곱 연산이 들어간 트랜잭션의 수수료가 이전보다 올라갈 수 있습니다.
- 클라이언트 팀: 블록 2,675,000부터 새 가스 규칙을 적용하도록 구현을 바꿔야 했습니다.
- 노드 운영자: 계산 부담이 큰 연산이 제값을 받게 되어 저평가된 연산을 이용한 부하가 줄어듭니다.
심층 설명
비용 변경 명세
block.number >= FORK_BLKNUM 조건이 성립하면 EXP의 가스 비용이 '10 + 지수 1바이트당 10'에서 '10 + 지수 1바이트당 50'으로 바뀝니다. 고정 비용 10은 그대로 두고 지수 크기에 비례하는 부분만 바이트당 10에서 50으로 올린 것입니다. 따라서 지수가 클수록 인상 폭이 커지고 비용 전체로 보면 최대 5배 가까이 오를 수 있습니다.
적용 시점과 범위
이 변경은 스퓨리어스 드래곤 하드포크의 일부로 들어갔습니다. 파라미터는 FORK_BLKNUM 2,675,000, CHAIN_ID 1입니다. 즉 체인 ID 1인 이더리움 메인넷에서 블록 번호 2,675,000부터 새 가스 규칙이 적용됩니다.
인상 근거
원문 근거는 한 문장입니다. 벤치마크 결과 EXP가 당시 약 4~8배 저평가(underpriced)되어 있다는 것입니다. 가스 가격이 실제 연산 비용보다 낮으면 그 연산을 반복 호출하는 쪽이 지불하는 수수료에 비해 네트워크가 지는 부담이 커지므로, 바이트당 비용을 10에서 50으로 올려 가격을 실측에 가깝게 맞췄습니다. 원문은 4~8배라는 범위만 제시할 뿐 벤치마크의 세부 방법은 담고 있지 않으며 자세한 논의는 References에 링크된 EIP-160 이슈를 가리킵니다.
문서 상태
상태는 Final이며 2016년 10월 20일에 작성됐습니다. 제안자는 비탈릭 부테린(Vitalik Buterin)입니다. 이미 확정되어 메인넷에 적용이 끝난 변경이므로 내용이 더 바뀔 여지는 없습니다.