GGmon
ZkEVM이란 무엇이며 이더리움 생태계를 어떻게 향상시킬 수 있나요? 본문
시작
- 영지식 이더리움 가상 머신(zkEVM)은 영지식 증명(ZKP) 기술과 호환되는 방식으로 스마트 계약을 실행할 수 있는 이더리움 상태 머신입니다.
- zkEVM은 이더리움에서 영지식 롤업(zk-rollup)의 기능을 확장하여 탈중앙화 애플리케이션(DApp)을 지원합니다.
- zkEVM을 사용하면 ZKP를 사용하여 기존 및 새로운 이더리움 프로젝트를 쉽게 배포하여 이더리움 생태계를 향상시킬 수 있습니다.
소개
원래 이더 리움 개발자들은 2014년에 네트워크를 처음 제안했을 때 ZKP 기술을 고려하지 않았습니다. 그러나 최근 몇 년 동안 ZKP는 주목을 받았으며 블록체인 공간에서 훨씬 더 두드러진 역할을 할 것으로 예상됩니다.
이렇듯 ZKP 기술과 이더리움의 가상머신을 결합하려는 노력은 더욱 심화되었다. zkEVM이 무엇인지 이해하기 위해 먼저 두 가지 기본 개념인 zk-rollups 및 EVM을 간략하게 살펴보겠습니다.
ZKP는 "Zero-Knowledge Proof(제로지식 증명)"의 약자로, 암호학과 컴퓨터 과학 분야에서 사용되는 기술입니다. 이 기술은 한 주체가 다른 주체에게 어떤 정보를 알려주지 않으면서 그 정보의 정확성을 증명하는 것을 가능하게 합니다.
ZKP는 인증 및 보안 프로토콜에 사용됩니다. 예를 들어, 한 사람이 자신이 특정 비밀을 알고 있음을 다른 사람에게 증명하고 싶을 때, ZKP를 사용하여 그 비밀을 공개하지 않으면서도 그 진위를 입증할 수 있습니다. 이는 민감한 정보를 보호하면서도 신뢰성과 안전성을 유지할 수 있는 방법을 제공합니다.
ZKP는 프라이버시와 보안이 중요한 분야에서 널리 사용되며, 블록체인 기술과도 관련이 있습니다. 예를 들어, 암호화폐 트랜잭션에서 송신자가 자신의 잔고를 증명할 수 있는 동시에 실제 잔고를 공개하지 않는 것이 가능합니다. 또한, 블록체인에서 스마트 계약을 검증하고 특정 조건을 만족하는지 확인하는 데에도 사용될 수 있습니다.
ZKP는 두 개체 간의 상호작용에서 중요한 역할을 할 수 있으며, 신뢰성과 개인정보 보호를 강화하는 데 도움을 줄 수 있는 강력한 도구입니다.
Zk-롤업(zk-rollup)이란 무엇입니까?
롤업은 메인 체인 외부에서 수많은 트랜잭션 실행을 컴파일하고 데이터를 단일 트랜잭션으로 메인 네트워크로 다시 보내는 스케일링 솔루션입니다. 이 프로세스는 이러한 트랜잭션 실행 비용을 줄이면서 처리량을 증가시킵니다.
이더리움에서는 롤업 내의 트랜잭션이 압축되어 단일 트랜잭션을 확인하는 비용으로 이더리움 메인넷에 제출됩니다. 이더리움 메인넷은 결산을 제공하고 롤업에 포함된 트랜잭션 데이터를 검증합니다.
zk-롤업은 정보 자체를 공개하지 않고 정보의 유효성을 확인할 수 있는 암호화 기술인 ZKP 기술을 사용하는 일종의 롤업입니다. zk-rollups는 모든 트랜잭션 데이터를 Ethereum 메인넷에 게시할 필요가 없습니다. 그들은 상태 차이(예: 사용자 계정 상태 변경)와 유효성 증명만 필요하므로 프로세스에서 가스 요금을 낮춥니다.
zk-rollups의 보안은 증명을 확인하고 무신뢰를 달성하기 위해 암호화 수단을 사용하는 ZKP 암호화에서 비롯됩니다. 이것은 낙관적 롤업과 같은 다른 롤업과 다릅니다. 경제 게임 이론에서 보안이 제공되며 악의적인 행위자는 잠재적 손실로 인해 인센티브가 줄어들고 도전자는 인센티브에 의해 동기가 부여됩니다.
EVM이란 무엇입니까?
EVM은 이더리움 계정 시스템과 스마트 계약이 실행되는 상태 시스템입니다. 모든 스마트 계약 실행은 EVM을 트리거하여 이전 상태에서 새 상태로 전환합니다. EVM은 한 블록에서 다른 블록으로 새롭고 유효한 상태를 계산하기 위한 규칙을 정의합니다.
상태는 이더리움에서 중요한 개념입니다. 이더리움의 현재 상태를 나타내는 Merkle Patricia Trie 데이터 구조이며 누구나 현재 블록에서 제네시스 블록까지 트랜잭션 정보를 추적할 수 있습니다. 이더리움 유지에 관련된 모든 노드는 연속성과 합의를 보장하기 위해 존재하며, 이를 통해 각 노드는 정확한 현재 상태를 볼 수 있습니다. EVM은 이러한 일관성을 유지하는 데 중요한 역할을 합니다.
Merkle Patricia Trie는 블록체인과 분산 시스템에서 사용되는 데이터 구조입니다. 이 데이터 구조는 이더리움(Ethereum) 블록체인에서 상태(State) 저장에 사용되는 주요한 구조입니다.
Merkle Patricia Trie는 Trie(트라이)라고도 알려진 데이터 구조의 변형입니다. Trie는 키-값 쌍을 저장하고 검색하는 데 사용되는 트리 형태의 데이터 구조입니다. Merkle Patricia Trie는 이 트리 구조에 Merkle Tree의 원리를 추가하여 더욱 안전하고 효율적인 방식으로 데이터를 저장합니다.
Merkle Patricia Trie는 키(Key)와 값(Value)의 쌍을 저장하는 노드들의 계층적인 구성으로 이루어져 있습니다. 키는 블록체인에서 사용되는 어떤 데이터나 상태를 식별하는데 사용되며, 값은 해당 키에 연결된 데이터를 나타냅니다. 노드들은 해시 함수를 사용하여 키와 값을 해싱한 해시 값으로 식별됩니다.
Merkle Patricia Trie의 중요한 특징은 변경 내역 추적과 상태의 유지입니다. 데이터의 변경이 있을 때마다 기존 Trie 구조를 변경하는 것이 아니라 변경된 데이터를 참조하는 새로운 Trie 구조를 만들어서 변경 내역을 추적합니다. 이를 통해 데이터의 무결성을 유지하고 효율적인 상태 검색과 확인을 가능하게 합니다.
이더리움에서는 Merkle Patricia Trie를 사용하여 계정 정보, 계약 코드, 트랜잭션 상태 등을 저장하고 검색합니다. 이를 통해 블록체인의 상태 변화를 추적하고, 데이터의 일관성과 보안을 유지합니다.
ZkEVM은 어떻게 작동합니까?
EVM은 기본적으로 ZKP를 지원하지 않습니다. zkEVM은 모든 정보가 정확하다는 증거를 제공하면서 이더리움 상태의 연속성을 보장하는 것을 목표로 합니다. 이러한 방식으로 이러한 프로세스의 계산과 관련된 다양한 요소가 보안 및 개인 정보를 유지하면서 확인됩니다.
zkEVM은 Ethereum 환경을 zk-rollups로 복제하여 이를 수행합니다. 초기 상태를 취하고 모든 트랜잭션을 계산한 다음 수반되는 ZKP와 함께 업데이트된 새 상태를 출력합니다. 이 증명은 모든 트랜잭션을 개별적으로 검증할 필요 없이 초기 상태와 새 상태의 출력 모두의 정확성을 확인하는 검증자 스마트 계약에 제출됩니다.
zkEVM은 EVM을 기반으로 하기 때문에 개발자는 ZKP 개발 작업을 수행하지 않고도 이더리움 DApp 및 스마트 계약을 zkEVM으로 쉽게 포팅할 수 있습니다. 즉, zkEVM을 사용하면 이전에 zkEVM 없이 지원되었던 토큰 스왑 및 지불 외에도 zk-rollup이 스마트 계약을 실행할 수 있습니다.
EVM의 호환성 기능으로 인해 개발자는 zkEVM과 함께 제공되는 향상된 보안을 즐기면서 기존 EVM 도구와 프로그래밍 언어인 Solidity를 사용하여 새로운 제품을 구축할 수 있습니다. 동일한 혜택이 사용자에게도 적용됩니다. 동일한 DApp과 친숙한 도구를 계속 사용할 수 있지만 보안 및 개인 정보 보호가 강화됩니다.
EVM 호환성 대 EVM 동등성
블록체인이 EVM 호환이라고 하면 Solidity 프로그래밍 언어로 작성된 DApp을 배포할 수 있는 환경을 제공한다는 의미입니다. Solidity는 Ethereum 네트워크에서 실행되는 스마트 계약을 개발하도록 설계되었습니다.
실제로 이더리움 개발자는 이더리움에서 기존 DApp의 코드를 복사하여 붙여넣고 최소한의 수정으로 다른 EVM 호환 체인에 배포할 수 있습니다. 사용자의 경우 모든 EVM 호환 체인 주소는 이더리움 주소와 동일합니다.
이는 주소가 Metamask 및 Trust Wallet과 같은 주류 지갑과 호환됨을 의미합니다. 현재 주요 EVM 호환 체인에는 BNB Chain, Avalanche C-Chain 및 Polygon이 있습니다.
EVM 호환성은 EVM 동등성과 혼동되어서는 안 됩니다. 즉, DApp 개발자 관점에서 레이어 2 롤업은 레이어 1 이더리움과 거의 동일합니다. 운영 체제 비유를 사용하면 EVM 동등성은 사용자의 이전 컴퓨터와 새 컴퓨터가 모두 Apple 운영 체제에서 실행되는 경우 Apple Cloud를 통해 파일 및 설정을 복원하는 것과 유사합니다.
반대로 EVM 호환성은 새 컴퓨터가 Windows 시스템으로 전환되면 원본 파일을 클라우드 스토리지를 통해 다운로드하고 변환해야 기본 설정 및 이전 파일을 복구할 수 있음을 의미합니다.
다양한 유형의 ZkEVM
Ethereum이 원래 ZKP 기술을 지원하도록 설계되지 않았기 때문에 EVM을 사용하여 직접 ZKP를 생성하고 검증하는 것은 매우 느립니다. 경우에 따라 몇 시간이 걸릴 수도 있습니다. 그러나 EVM 호환성과 ZKP 효율성 간의 균형을 유지하는 것이 중요합니다.
Ethereum 창립자 Vitalik Buterin은 zkEVM을 다음 네 가지 유형으로 분류했습니다. 블록체인 트릴레마와 유사하게 ZKP 성능 효율성과 EVM 호환성 간에 서로 다른 장단점이 있습니다.
블록체인 트릴레마(Blockchain Trilemma)는 블록체인 기술이 가진 한계와 제한성을 설명하기 위해 사용되는 개념입니다. 이 개념은 블록체인 기술이 분산화, 보안, 확장성 세 가지 중에서 두 가지만 동시에 달성할 수 있다는 것을 강조합니다.
블록체인 트릴레마에서 말하는 세 가지 요소는 다음과 같습니다.
- 분산화(Decentralization): 블록체인 기술이 분산화되어 있으면, 중앙 집중식 시스템과는 달리 중앙에서의 결함(failure)을 방지하고 누구나 시스템에 참여할 수 있습니다. 이것은 블록체인의 신뢰성과 안정성에 중요한 역할을 합니다.
- 보안(Security): 블록체인 기술이 안전하다면, 누구도 시스템에서 정보를 변경하거나 해킹을 할 수 없습니다. 이것은 블록체인의 무결성을 유지하는 데 매우 중요합니다.
- 확장성(Scalability): 블록체인 기술이 확장 가능하다면, 더 많은 트랜잭션 처리와 같은 기능을 지원할 수 있습니다. 이것은 블록체인의 유용성을 높이는 데 매우 중요합니다.
블록체인 트릴레마는 이러한 요소들이 서로 충돌할 수 있음을 나타냅니다. 예를 들어, 블록체인이 분산화되면 보안성과 확장성이 저하될 수 있습니다. 이러한 한계와 제한성은 블록체인 기술을 개선하고 발전시키는 데 중요한 과제입니다.
유형 1: 컨센서스 수준 동등성 — 이더리움과 완전히 동등한 zkEVM
합의 수준에서 유형 1 zkEVM(enshrined rollup이라고도 함)은 이더리움과 동일하며 zkEVM 체인 상태 및 트랜잭션은 이더리움과 동일합니다. 블록을 상호 검증하고 이더리움 실행 클라이언트와 직접 사용할 수 있습니다.
Type 1 zkEVM은 이더리움 자체의 확장성을 높이고 이더리움 메인넷에 직접 도입할 수 있습니다. 단점은 ZKP 효율성이 매우 낮고 확인을 위해 많은 양의 계산이 필요하다는 것입니다. 해결책은 향후 zk-SNARK에 대규모 병렬 유효성 검사기 또는 특수 집적 회로를 사용하는 것입니다.
ZK 효율성이 높은 Type 1 zkEVM은 zkEVM의 가장 이상적인 형태일 것입니다. 현재 이러한 유형의 zkEVM을 구축하거나 탐색하는 많은 프로젝트가 있습니다.
zk-SNARK는 "Zero-Knowledge Succinct Non-Interactive Argument of Knowledge"의 약자로, 제로지식 짧은 비대화식 증명(Zero-Knowledge Succinct Non-Interactive Proof)을 나타냅니다. zk-SNARK는 암호학과 컴퓨터 과학 분야에서 사용되는 기술로, 데이터의 일부분을 증명하는 데 사용됩니다.
zk-SNARK는 제로지식 증명(ZKP)의 한 유형으로, 한 주체가 어떤 정보를 알고 있음을 다른 주체에게 증명하면서도 실제 정보를 노출하지 않고 증명할 수 있는 강력한 기술입니다. zk-SNARK를 사용하면 데이터의 일부분을 선택하여 그 부분이 특정 조건을 만족하는지를 증명할 수 있습니다.
zk-SNARK는 다음과 같은 주요 특징을 가지고 있습니다:
- 제로지식(Zero-Knowledge): zk-SNARK는 증명하는 주체가 어떤 정보를 알고 있는지를 노출하지 않으면서도 해당 정보의 유효성을 입증합니다. 검증자는 증명을 검증할 수 있지만, 실제 정보를 알 수 없습니다.
- 간결성(Succinctness): zk-SNARK는 증명의 크기가 입력 데이터의 크기와 관계없이 매우 작고 고정된 크기를 가지는 특징을 가지고 있습니다. 이는 증명의 검증과정이 매우 효율적이고 빠르게 수행될 수 있도록 합니다.
- 비대화식(Non-Interactive): zk-SNARK는 한 번의 증명 생성으로 검증자와 상호작용이 필요하지 않는 특징을 가지고 있습니다. 따라서 증명자는 증명을 한 번 생성한 후에는 검증자와의 상호작용 없이 증명을 제출하고 검증을 받을 수 있습니다.
zk-SNARK는 프라이버시와 보안이 중요한 분야에서 사용됩니다. 예를 들어, 블록체인에서는 zk-SNARK를 사용하여 트랜잭션의 유효성을 증명하면서도 개인의 거래 내역을 외부에 노출하지 않을 수 있습니다. 또한, 빅데이터 분석, 인증 및 신원 확인, 옥션 등 다양한 응용 분야에서도 활용될 수 있습니다.
유형 2: 바이트코드 수준 등가 — EVM과 완전히 동일
유형 2는 EVM과 완전히 동일하지만 이더리움은 아닙니다. 데이터 구조(예: 블록 구조 및 상태 트리) 측면에서 Ethereum과 다르며 ZK 친화적이지 않은 일부 스택 작업을 삭제합니다.
Ethereum의 기존 DApp, 디버깅 도구 및 개발자 인프라와 완벽하게 호환됩니다. 바이트코드 수준의 등가성은 증명 시간을 크게 단축시키지는 못하지만 속도를 높일 수 있습니다. Type 2의 분명한 단점은 ZK와 시너지 효과가 없고 낮고 비싼 효율로 비싸다는 것입니다.
유형 2.5: 유형 2와 유사하지만 가스 요금이 수정되었습니다.
Type 2.5는 Type 2의 장점과 단점을 공유하지만 가스 요금이 약간 낮습니다.
유형 3: 바이트코드 수준 등가 — EVM과 거의 동일
Type 2를 기반으로 하는 Type 3은 향상된 ZK 효율성을 위해 호환성을 더 희생합니다. 프리컴파일과 같이 zkEVM에서 구현하기 어려운 기능을 삭제하므로 이 기능이 필요한 DApp에서 사용되는 일부 코딩을 다시 작성해야 합니다.
유형 4: 개발 언어 수준 동등성 — EVM과 동등한 고급 언어
유형 4 EVM은 ZK 성능이 가장 높지만 호환성은 상대적으로 떨어집니다.
마무리 생각
zkEVM 구현의 주요 목적은 ZKP 계산 지원을 스마트 계약 실행으로 확장하고 그렇게 함으로써 DApp을 모든 EVM 호환 프로토콜로 확장하는 것입니다. 그러나 ZKP의 애플리케이션은 여기서 멈추지 않습니다.
ZKP 기술은 잠재적으로 Web2 사용 사례 와 호환될 수 있습니다. 다양한 Web2 사용 사례를 ZKP와 결합하면 Web3 애플리케이션을 더 매끄럽고 사용자 친화적으로 만들 수 있습니다. 또한 기존 인터넷 브라우저에 이미 익숙한 사용자에게 Web3 에 대한 액세스 권한을 부여하여 Web3 채택을 촉진합니다.
'IT' 카테고리의 다른 글
삼각 차익 거래란 무엇이며 어떻게 사용하나요? (0) | 2023.05.13 |
---|---|
GameFi의 일반적인 보안 문제는 무엇인가요? (0) | 2023.05.12 |
NFT를 만드는 방법 (0) | 2023.05.10 |
Crypto Gaming 코인이란 무엇인가요? (1) | 2023.05.09 |
상향식 주식 분석 (0) | 2023.05.08 |