Matter Labs: 왜 우리는 8월에 zkSync 2.0을 출시하지 못했나요?
편집: 체인 포착기
2021년 3월 27일, 우리는 zkSync 1.x와 2.0의 계획을 발표했습니다.
우리는 zkSync 1.x를 메인넷에 성공적으로 업그레이드 배포했지만, 8월에 zkSync 2.0을 출시하겠다는 우리의 예측을 충족하지 못했습니다. 이 글에서는 지연, 단계적 출시 테스트넷 및 공정한 메인넷 시작에 대해 논의하겠습니다.
왜 지연되었나요?
3월 초, 우리는 zkSync 2.0의 설계를 완료하고 구축에 필요한 시간을 추정했습니다. 가스 비용이 계속해서 높은 상황에서, 우리의 설계는 안전성과 시간을 우선시하며 효율성, 최적화 및 이더리움과의 호환성 측면에서 몇 가지 절충을 했습니다. ------ 라인의 기본 제한으로 인해 라인 환경을 EVM에 적응시키는 것은 간단하지 않았습니다.
그러나 메인넷 출시 시간을 우선시하지 않은 중요한 결정이 있었습니다: LLVM 선택. 처음부터 사용자 정의 컴파일러를 구현하는 것이 더 빠르지만, 장기적으로는 LLVM 외에는 선택의 여지가 없었습니다. LLVM은 산업급 제품(LLVM은 macOS와 iOS의 필수 요소)에 종사하는 엔지니어들에 의해 구축된 것으로, 산업급 제품을 생산하기 위한 최첨단 컴파일러 프레임워크로, 우리는 디버거, 링커, 어셈블러, 역어셈블러 및 바이너리 유틸리티를 고려해야 했습니다. 우리는 단순히 컴파일러를 신속하게 출시하고 싶었지만, LLVM을 활용함으로써 우리의 컴파일러는 모든 고전적 최적화, 20,000개 이상의 회귀 테스트 및 3,000개의 통합/실행 테스트, 낮은 유지 관리 부담을 갖추게 되었습니다.
5월에는 우리의 노드와 VM이 준비되었지만, 우리의 아키텍처와 LLVM 간에 예기치 않은 비호환성이 존재하여 프레임워크에 통합하는 데 추가 시간이 필요했습니다. 우리는 세 가지 핵심 구성 요소 중 하나가 부족한 테스트넷을 열고 싶지 않았지만, 초기 비용이 있더라도 우리는 처음부터 LLVM을 채택하기로 한 결정을 고수했습니다. Matter Labs는 안전성이나 코드 품질에서 절대妥協하지 않을 것입니다. 최상의 산업급 관행을 따르는 것은 느리지만, 대안은 기술 부채로 프로그래밍하는 것입니다. 부채는 언젠가 갚아야 합니다.
zkSync 2.0 구축은 긴장감 넘치는 연구 개발 과정이었습니다:
- snark 친화적인 EVM과 동일한 주소 공간 내의 각 계정 데이터 가용성 전략은 이전에 시도된 적이 없습니다;
- 컴파일러, zkEVM 및 노드의 요구를 동시에 해결해야 했습니다.
구현이 연구와 밀접하게 관련되어 있기 때문에, 우리는 더 낮은 비용, 더 나은 호환성 또는 더 편리한 인터페이스를 제공하는 더 나은 솔루션을 찾는 경우가 많았습니다:
- 우리는 컴파일러의 효율성을 높이기 위해 몇 차례 반복 작업을 수행했으며, 이는 우리의 VM을 더 효율적으로 만드는 방법에 대한 아이디어를 제공했습니다(자세한 내용은 기술 통찰력 게시물에서 확인할 수 있습니다);
- 우리의 API와 SDK는 Web3 API 및 ethers와 매우 유사하므로, 우리는 두 가지를 지원하기 위해 추가적인 zkSync L2 특정 기능을 추가하기로 결정했습니다;
- 우리는 거래 실행 추적 길이 제한을 해제하는 방법을 찾아 임의 크기의 거래를 가능하게 했습니다.
6월과 7월 동안 가스 가격이 평균 20 Gwei로 유지되면서, 우리는 시간 압박이 줄어들었다고 느꼈습니다. 더 나은 방법이 명확하게 보일 때 우리는 출시하고 싶지 않았습니다. 이제 우리는 모든 개선 사항을 통합하여 가능한 한 파괴적인 업그레이드를 피할 것입니다. 현재 우리가 개발 중인 버전은 3월에 발표한 버전보다 기능이 더 많고, 비용이 더 낮으며, 더 호환성이 좋고 편리합니다.
그러나 우리는 당신에게 솔직하게 말하고 싶습니다. 8월을 목표로 하는 것은 매우 야심찬 목표입니다. 우리는 이제 효율성과 이더 호환성의 개선을 포기하더라도 품질에서妥協하지 않는 배달이 불가능하다는 것을 분명히 알고 있습니다. 이것이 기술 혁신의 최전선 연구 개발의 본질입니다: 어떤 예측도 항상 많은 미지의 요소를 둘러싼 추측입니다.
상태 업데이트
6개월 동안 우리는 다음을 구현하고 테스트했습니다:
- 실행 노드
- zkEVM(라인 및 실행 환경)
- Solidity 및 Zinc 컴파일러(Uniswap v2를 성공적으로 컴파일하고 테스트했습니다)
우리는 다음을 마무리하고 있습니다:
- Web3+ API(완전한 지원을 제공하는 기본 제공 Web3 API + zkSync L2 특정 기능)
- 이더+ SDK
- L1에서 L2로의 통신(검열 저항에 중요합니다: zkSync의 자금은 L1 거래를 통해 인출할 수 있으며, 스마트 계약에서 먼저 이동해야 할 수도 있습니다.)
진행 중:
- 라인/증명기 및 데이터 가용성 프로토콜을 실행기 노드에 통합
- L2에서 L1으로의 통신(예: L2에서 L1 계약을 트리거)
- Vyper 개발자: Vyper 팀은 현재 Vyper-to-LLVM 프론트엔드를 구축 중이며, 우리의 컴파일러 팀은 그들과 긴밀히 협력하여 zkSync 2.0에서 Vyper로 스마트 계약을 원활하게 배포할 수 있도록 하고 있습니다.
테스트넷 계획
우리는 테스트넷을 세 단계로 나누어 개방할 것입니다:
- North Star
몇 주 후, 우리는 프로토콜의 첫 번째 버전을 출시할 것입니다. 우리는 이러한 팀과 긴밀히 협력하여 공개 테스트넷을 출시할 때 피드백과 수정을 촉진하고 오류와 도전을 최소화하기를 희망합니다. 이 단계에 관심이 있으시면 이 양식을 작성해 주세요. - Spotlight Search
그런 다음, 우리는 콘텐츠를 생성할 의향이 있는 사람들에게 개방하고자 합니다. 이는 트윗 스레드에서 블로그 게시물, 전체 개발자 시연 비디오에 이르기까지 다양합니다. 우리의 목표는 테스트넷을 완전히 열 때 다양한 유용한 리소스를 언제든지 사용할 수 있도록 하고, 우리의 시스템에 대한 또 다른 테스트로 삼는 것입니다. 글쓰기나 기술 콘텐츠 제작을 좋아하신다면 이 양식을 작성해 주세요. - Kindergarten
테스트넷이 모든 사람에게 개방됩니다.
메인넷 출시
Matter Labs는 모든 프로토콜과 인프라가 공정하고 공정한 방식으로 배포되고 운영될 수 있는 중립적인 2층을 구축하는 데 전념하고 있습니다.
따라서 우리의 메인넷 출시는 공정한 출시가 우리에게 매우 중요합니다: 우리는 모든 사람에게 동등한 조건에서 zkSync에서 프로젝트를 준비하고 시작할 시간을 제공할 것입니다.
우리는 끝에 가까워지고 있습니다! 더 큰 변화는 없을 것으로 예상되며, 우리는 모든 활동 부품을 통합하고 편리한 SDK를 구현하며 문서를 작성하기 위해 노력하고 있습니다.