출처: https://chainnews.kr/1891-2/
목 적
이더리움의 2019년 마지막 하드포크인 이스탄불이 12월 8일 진행됐다. 이번 이스탄불 하드포크에는 이더리움의 알고리듬과 보안면에서 여러가지 중요한 변경 사항을 담고 있다. 또한 향후 이더리움 확장성(scalability)을 강화하기 위한 내용도 다수 포함돼 업계 관계자들의 관심을 끈다.
이에 온더팀은 이스탄불 하드포크의 내용을 간단히 요약해 보고, 이더리움 생태계에 미칠 영향을 평가해 보았다. 국내외 블록체인 개발업체들이 해당 내용을 참고해 향후 자체 체인 및 디앱 개발에 도움이 되기를 기대하는 마음이다.
요 약
다른 체인 및 레이어2 블록체인과의 상호 운용성을 위한 새로운 기능들이 추가되었고, 네트워크에 부담되는 기능들의 비용을 일부 재조정하여 이더리움이 더욱 안정적으로 동작할 수 있는 기반이 마련되었다.
EIP – 152 도입으로 Zcash, Zencash, BitcoinGold 등 Blake 2를 이용하는 블록체인과 이더리움의 운용의 폭이 넓어짐
EIP – 1108 도입으로 영지식 증명을 쓰는 블록체인 솔루션들이 싸고 빠르게 연산 가능해지는 등 많은 수혜를 입을 전망
EIP – 1344 도입으로 레이어 2 블록체인 등 이더리움의 확장성 솔루션이 수혜를 받게 됨
EIP – 1884 도입으로 외부로부터의 공격, 특히 DDos 공격으로부터 보다 이더리움이 안전해짐
EIP – 2028 도입으로 레이어 2 블록체인등 이더리움의 확장성을 수월하게 증대시킬 수 있음
EIP – 2200 도입으로 이더리움의 비효율적인 거래비용을 절감
구체적 평가 사항
EIP-152: Equihash PoW 검증이 가능해짐. Equihash PoW 알고리즘은 blake2b 해시함수를 사용함. Equihash PoW 알고리즘을 쓰는 프로젝트로 Zcash, ZenCash, Bitcoin Gold가 있음.
1. blake2 해시 함수들(blake2b, blake2s, blake2bp, ….) 들을 만들 수 있는 포괄적인 함수(generic function)을 구현하여 모든 종류의 blake2 해시 함수를 지원 가능. blake2는 keccak보다 속도는 더 빠르고 안정성은 비슷한 장점을 가져 블록체인이 아닌 일반적인 SW에서도 MD5, SHA256의 대안으로서 많이 사용됨.
2. Equihash(blake2 기반) PoW를 쓰는 코인들의 라이트 노드의 기능을 수행하는 Relay 컨트랙트를 만들어 서비스할 수 있게 되었다. 기존에 이와 같은 서비스를 하기 위해서는 blake2b 해시 함수를 컨트랙트로 직접 구현했어야 했는데, 이스탄불 하드포크 이후 이를 프리컴파일 컨트랙트로 지원해서 더욱 값싸고 빠르게 Relay 서비스를 할 수 있게 되었다.-> 정리하면 Blake2를 이용하는 블록체인과 이더리움 사이의 상호운용성이 크게 향상
3. Relay가 가능해짐에 따라 Equihash PoW를 사용하는 암호화폐와의 아토믹 스왑도 좀더 싸고 빠르게 할 수 있게 되었음.
4. Zcash와의 아토믹 스왑으로 인해 이더리움의 프라이버시 문제를 어느정도 해결해줄 수 있다. 즉 이더리움에서 zcash의 프라이버시를 이용할 수 있는 여지가 생겼다.
EIP-1108: ECADD, ECMUL, Pairing check
→ 요약 : 타원곡선 암호 연산 비용 감소 → 영지식증명을 쓰는 솔루션들 수혜
1. 해당 프리컴파일 컨트랙트는 zkSNARKs의 검증을 도와주는 것들이다. 해당 프리컴파일 컨트랙트의 가스 비용이 감소함에 따라 zkSNARKs를 사용하는 프라이버시 프로젝트 그리고 레이어 2 솔루션 프로젝트에게 이점이 생겼다. 수혜를 받은 대표적인 프로젝트로(zkSNARKs를 사용하는 프로젝트들임, zkSNARKs에 대한 증거를 offchain에서 만들고, 이 증거(proof)에 대한 검증은 이더리움의 스마트 컨트랙트가 하는 방식을 사용하는) Matter labs에서 개발하고 있는 플라즈마 (zkSNARKs를 블록 검증할 때 사용함), 프라이버시 솔루션을 개발하고 있는 Aztec이 있다.
EIP-1344: chainId opcode
→ 요약 : 체인 식별자 기능 강화 → 레이어2 블록체인 수혜
1. 스마트 컨트랙트가 체인을 구분짓는 체인 아이디(chainId)를 조회할 수 있게 된다. 그렇기 때문에 컨트랙트에서도 특정 체인을 따르도록 할 수 있게 되었다.
2. 특히 레이어 2 솔루션에서는 부모 체인에 의존적이다. 만약 부모 체인에서 하드포크가 발생해도(chainId가 변경되어도) 해당 체인을 따르도록 할 수 있다.
EIP-1884: cost of EVM opcode의 변경
→ 이더리움에 데이터가 많아지면서 연산의 비용 증가 → 이더리움 도스공격 저항성 강화
1. 각각의 옵코드(opcode)들은 노드가 사용하는 컴퓨터 리소스 정도에 맞춰서 매겨진 것들임. 그래서 컴퓨터 리소스 사용량의 정도와 가스 가격 사이에서 밸런스가 중요함.
2. 이 밸런스가 깨지면 공격 벡터가 생김. 예를 들어 특정 오퍼레이션의 컴퓨터 리소스 사용 정도는 크지만 가스는 많이 소모되지 않으면, 해당 오퍼레이션으로 이더리움 네트워크에 공격을 가할 수 있음.
3. 이 밸런스를 EIP-1884를 통해 재조정했다. 이로 인해 이더리움 네트워크에 DoS 공격에 대한 저항성이 더욱 향상되었다.
EIP-2028: cheaper call data
→ 이더리움에 데이터를 싣는 비용 감소 → 저장 및 연산 부담이 줄면서, 세컨 레이어 솔루션들 수혜
1. 트랜잭션의 데이터 필드에 실리는 데이터를 calldata라고 부른다. 예를 들어, Calldata는 다음과 같이 사용될 수 있다.
2. STARKs나 SNARKs와 같은 Proof 시스템에서 큰 연산에 대한 무결성을 입증할 수 있는 proof를 제출하는 용도.
3. fraud proofs를 사용하는 솔루션들 또한 Merkle Proof를 제출하는 용도.
4. Layer 2 솔루션에서 데이터 가용성(data availability) 문제를 Calldata에 데이터를 둠으로써 해결.
5. stateless client라고 불리는 컨셉에서 “block proofs”를 제출하는 용도로도 사용될 수 있음.
EIP-2200: → 트랜잭션 실행간 데이터 수정 비용 감소
1. SSTORE의 비효율적인 가스비 사용을 바꾸려고 제안된 EIP다. 비효율적인 가스비 사용이란 트랜잭션이 실행되면서 SSTORE를 통해서 최종적으로 상태가 안바뀌는 경우에도 가스를 많이 소모하는 것을 막기 위한 것임. 즉 트랜잭션 실행간 특정 스토리지의 값이 10이였다가 20이였다가 30이였다가 40이 된 경우, (10->20), (20->30)에서의 가스비를 더 적게 내도 된다는 제안. 결국 중요한 것은 10이였던 스토리지 값이 40이 된 것이니까.
2. 이에 대한 제안으로 이전 콘스탄티노플 하드포크에 포함된 EIP1283이 포함되었다. 하지만 reentrancy 문제로 인해, 제외되었고 EIP1283은 EIP1706과 결합되어 EIP2200으로 제안되었다.
3. EIP1706은 reentrancy를 막아주는 장치를 두는 것에 대한 제안이다.
크게 정리하면,
Align the costs of opcodes with their computational costs and improve denial-of-service attack resilience
-> computational 비용과 opcode의 비용을 맞췄다. 이에 따라 dos 공격에 더욱 저항성을 가지게 되었음.
Make layer 2 solutions based on SNARKs and STARKs more performant.
-> SNARKs 그리고 STARKs를 기반으로 한 layer 2 솔루션 또는 프라이버시 솔루션들에게 큰 도움이 된다.
Enable Ethereum and Zcash to interoperate
Ethereum와 Zcash(Equihash PoW를 사용하는 프로젝트들)간의 상호운용성이 커졌다. (하드포크 이전 방식은, blake2b를 컨트랙트로 작성해서 구현했기 때문에 더 큰 비용이 들었다.)
첨 언 : 이스탄불 하드포크가 Onther의 Tokamak 네트워크에 끼칠 영향
이스탄불 하드포크의 영향으로 영지식 증명이 이더리움에서 좀더 수월하게 구동될 수 있고, 플라즈마 등 Layer 2 솔루션들에게 유리한 이더리움 생태계가 조성될 전망. 토카막도 수혜의 대상이 될 가능성이 높음. 이제 이더리움 온체인에서 zkSNARKs의 검증비용이 줄어들었기 때문에, 토카막에서도 간단한 상태 연산들만을 다룰 경우 zkSNARKs를 통해 연산의 유효성을 저렴하게 검증할 수 있게 되었다.
토카막은 플라즈마이기 때문에 부모 체인의 특정 체인 아이디(chainId)를 따르는 스펙이 추가되어 다양한 플라즈마간에 계층 설계에 매우 유리해짐. calldata의 비용이 감소했기 때문에 블록의 제출과정 및 챌린지 과정 등 온체인에 데이터를 전달하는 과정 대부분에 있어서 그 비용이 감소되어 레이어2 플라즈마의 상호운용성과 안정성 향상에 도움이 됨.
- [2022/06/30] 아이콘파이(ICONFi), 6월 30일 이더리움 하드포크관련 공지
- [2021/04/16] 이더리움 ‘베를린 하드포크’ D-1, 달라지는 것들은?
- [2019/08/20] 이더리움 이스탄불 하드포크 임박...6개 기능 추가 확정