Constantinople 하드포크

Petersburg 포함 · 메인넷 2019-02-28

주소를 미리 정할 수 있는 CREATE2와 비트 시프트 옵코드를 넣고, 블록 보상을 2 ETH로 줄였습니다.

무엇이 달라졌나

사용자
바로 눈에 띄는 변화는 거의 없었습니다. 비트 시프트 옵코드가 들어가 일부 계약의 연산 비용이 조금 내려갔고 블록 보상이 3 ETH에서 2 ETH로 줄어 새로 발행되는 ETH 양이 줄었습니다. 이후 스마트 계약 지갑이 널리 쓰게 된 '배포 전에 주소를 미리 알 수 있는' 방식도 이 포크의 CREATE2에서 시작됐습니다.
지갑·앱 개발자
가장 많이 달라진 쪽입니다. CREATE2는 배포자 주소, 임의 값(salt), 초기화 코드로 계약 주소를 미리 정합니다. 그래서 계약을 아직 올리지 않은 상태에서도 주소를 알려 주고 나중에 배포할 수 있게 됐습니다. 비트 시프트 옵코드(SHL, SHR, SAR)는 곱셈과 나눗셈으로 흉내 내던 연산을 한 번에 처리해 가스를 아낍니다. EXTCODEHASH는 다른 계약의 코드 해시만 싸게 읽어 와 코드 전체를 복사하지 않고도 어떤 계약인지 확인할 수 있습니다. 함께 넣으려던 저장소 가스 조정안(EIP-1283)은 재진입 공격 위험이 발견되어 Petersburg에서 빠졌습니다.
L2
CREATE2가 제안된 이유 중 하나가 상태 채널(state channel)이었습니다. 아직 체인에 없는 계약 주소를 양쪽이 미리 믿고 쓸 수 있어 분쟁이 생길 때만 계약을 실제로 배포하는 방식이 가능해졌습니다. 당시에는 오늘날의 롤업이 없었고 이 포크가 L2에 직접 바꾼 것은 이 정도입니다.
노드 운영자
하드포크라서 모든 노드가 정해진 블록 전에 클라이언트를 업데이트해야 했습니다. 난이도 폭탄(difficulty bomb)이 12개월 연기되어 블록 시간이 점점 늘어나는 일을 막았습니다. 당시 블록을 만들던 채굴자는 보상이 블록당 3 ETH에서 2 ETH로 줄었습니다. 검증자는 아직 없던 시기라 해당 사항이 없습니다.

주요 EIP

← 하드포크 · 로드맵