Berlin 하드포크
메인넷 2021-04-15
상태 접근 가스 비용을 조정하고, 여러 거래 형식을 담을 수 있는 틀(타입 거래)을 만들었습니다.
무엇이 달라졌나
- 사용자
- 상태를 처음 읽는 비용이 올라, 여러 컨트랙트나 저장 공간을 한 번에 건드리는 거래는 수수료가 전보다 늘었습니다. 대신 같은 거래 안에서 한 번 읽은 곳을 다시 읽는 비용은 내려갔습니다. 접근할 주소와 저장 공간을 미리 적어 두는 접근 목록(access list) 거래를 쓰면 늘어난 비용 일부를 돌려받을 수 있었습니다. 이더를 한 곳에 보내는 단순 송금은 달라지지 않았습니다.
- 지갑·앱 개발자
- 거래 맨 앞에 종류를 표시하는 틀(타입 거래)이 생겼습니다. 지갑과 라이브러리는 기존 거래와 새 형식을 함께 읽고 서명할 수 있게 고쳐야 했습니다. 이 틀 위에 접근 목록 거래가 첫 새 형식으로 올라갔습니다. 컨트랙트 개발자는 상태를 처음 읽는 비용이 오른 만큼 가스 사용량을 다시 재야 했습니다. 큰 수의 거듭제곱 나머지를 구하는 연산(MODEXP)은 비용이 내려가 RSA 서명 검증 같은 암호 연산이 싸졌습니다.
- 노드 운영자
- 상태 접근 비용을 올린 이유는 디스크를 읽는 작업이 실제 부담보다 싸게 매겨져 있어, 이를 노려 블록 처리 시간을 늘리는 공격 통로가 됐기 때문입니다. 비용이 맞춰지면서 이런 거래로 노드를 느리게 만드는 여지가 줄었습니다. 그 밖에는 정해진 블록 전에 클라이언트를 새 버전으로 올리는 것 말고 직접 달라지는 것은 없었습니다.