zkPorter: Layer-2 컴포저블 확장성
편집자 주: 이 기사의 출처는이더리움 애호가(ID: ethfans)이더리움 애호가(ID: ethfans)
요약
, 저자: Alex Gluchowski, 번역: A Jian, 승인을 받아 Odaily에서 재인쇄함.
첫 번째 레벨 제목
요약
확장성이 뛰어나고 원자적으로 구성 가능한 블록체인 네트워크에서 zkRollup과 샤딩을 결합할 수 있는 새로운 Layer-2 확장성 기술 "zkPorter"를 제안합니다.
문제 #1: 트랜잭션 처리량 ≠ 확장성 ⚖️
트랜잭션 처리량은 전체 네트워크에서 처리되는 총 트랜잭션 수로 측정되며 확장성은 단일 노드에서 처리되는 트랜잭션 수로 측정됩니다. zkRollup은 보안성과 유용성을 모두 만족시키는 최고의 Layer-2 스케일링 솔루션이라고 할 수 있습니다. (편집자 주: "다양한 이더리움 레이어 2 확장 체계 평가 및 비교" 기사 끝에 있는 하이퍼링크 참조) 그러나 zkRollup은 트랜잭션 데이터가 여전히 필요하기 때문에 메인 네트워크에 비해 약 100배의 확장성 향상만 제공합니다. 모든 전체 노드에 브로드캐스트합니다. zkRollup은 처리량을 선형적으로만 증가시킬 뿐 기하급수적인 확장성을 제공하지 않는다고 주장할 수 있습니다.
zkRollup은 Eth1에서 최대 3000 TPS를 처리할 수 있지만 Eth2 구현의 세부 사항에 따라 보수적인 추정치는 샤드된 Eth2에서 최소 20,000 TPS입니다. 최대 24,000 TPS에 달하는 Visa의 처리량과 비교하면 이는 이미 엄청난 성과이지만 오늘날 은행 계좌가 없는 수십억 명의 사람들을 돕고 싶기 때문에 더 많은 것을 위해 노력해야 합니다.
DeFi의 부상은 구성 가능성이 성공의 열쇠임을 의미합니다. 자유롭게 결합할 수 있는 "통화 구성 요소"로서 DeFi 애플리케이션은 신뢰할 수 없는 프로토콜을 계층화하여 잠금 해제할 수 있는 잠재적 가치를 입증합니다. 프로젝트가 자체 확장 솔루션만 고려한다면 결국 커뮤니티 공유 구성 가능한 확장 메커니즘에 의해 생성된 보안 및 네트워크 효과로부터 격리될 것입니다.
zkPorter를 소개합니다 🎉
이 논문에서는 위의 모든 문제를 해결할 것을 약속하는 새로운 영지식 증명 기반 스케일링 체계인 zkPorter를 시연합니다.
보조 제목
zkPorter 설명 🥜
반면에 영지식 증명에 기반한 확장 체계는 여전히 데이터 가용성 문제를 직접적으로 해결하지 못합니다. 상태 데이터를 사용할 수 없게 되면 자금이 동결됩니다. zkRollup과 Validium은 서로 다른 방법을 사용하여 데이터 가용성 문제를 처리합니다(편집자 주: "ZK 롤업과 Validium의 비교" 기사 끝에 있는 하이퍼링크 참조).
zkPorter는 데이터 가용성 문제를 해결하기 위해 zkRollup 개념과 샤딩 개념을 결합한 하이브리드 접근 방식을 사용합니다. 각각 고유한 데이터 가용성 체계(해당 샤드의 스마트 계약에 의해 정의됨)가 있는 여러 샤드를 지원할 수 있습니다. 동시에 샤드 선택은 개별 계정 수준에서 제어됩니다(샤드 선택은 개별 계정 수준에서 제어됨).
zkPorter는 상태 유효성과 데이터 가용성에 대한 우려를 분리합니다. 상태 유효성(유효한 상태 전환이 발생해야 함)은 Layer-1의 보안 보장을 상속하면서 기하급수적 확장성을 제공하는 영지식 증명 도구에 의해 균일하게 구현됩니다. 반면 데이터 가용성은 샤드 자체에 위임되어 다양한 솔루션을 자유롭게 실험할 수 있습니다. 필요한 곳에 통일을, 해결책이 없는 곳에 자유를(In necessariis unitas, in dubiis libertas)!
보조 제목
zkPorter의 결합성: 스테로이드에 대한 블록체인의 인터넷 💊
그런 다음 zkPorter가 사용해보도록 하십시오! zkPorter의 모든 계정은 동일한 주소 공간을 공유하며 zkPorter의 기본 샤드 0에서 실행되는 zkRollup을 통해 다른 계정과 상호 운용할 수 있습니다. 높은 트래픽 요구 사항 및/또는 특정 데이터 가용성 요구 사항이 있는 프로토콜은 자체 프로토콜 인터페이스를 자체(zkPorter) 샤드에 배치할 수 있습니다. 보안, 비용 및 처리량 절충에 대해서는 나중에 설명합니다.
zkPorter는 여러 프로토콜이 원활하게 상호 운용되도록 합니다. 단일 원자 거래는 서로 다른 zkPorter 샤드에서 여러 스마트 계약을 호출할 수 있습니다. 뿐만 아니라 샤드 내의 트랜잭션은 다른 샤드의 데이터를 포함하여 전체 zkPorter 상태에 액세스할 수 있습니다. 이 기능은 예를 들어 정보 입력 메커니즘에서 정보를 읽는 데 사용할 수 있습니다.
zkPorter 모델을 zk 호르몬이 있는 블록체인 인터넷으로 생각할 수 있습니다.
보조 제목
zkPorter 샤딩: 보안 및 오버헤드 💸
zkPorter의 샤드 0은 완전한 데이터 가용성과 이더리움의 보안 보장을 갖춘 zkRollup입니다. 샤드 0은 zkPorter에서 가장 비싼 샤드가 될 것이며 거래 비용은 메인넷 거래의 약 1/100입니다.
샤드 0 이외의 샤드는 자체 스마트 계약에서 자체 데이터 가용성 체계를 정의합니다. 이러한 다른 샤드는 추가로 10-100배의 트랜잭션 비용 절감 및 처리량 향상을 위해 체인의 데이터 가용성을 희생합니다. zkPorter는 "zkPorter Guardians"라고 하는 선택적 유효성 검사기 메커니즘을 도입하여 프로토콜이 프로토콜 이해 관계자를 프로토콜 샤드에 대한 데이터 가용성 보증인으로 참여하도록 초대할 수 있습니다. 가드 메커니즘을 사용하는 샤드는 지분 증명 합의 메커니즘을 실행하므로 참여 검증인의 1/3이 정직한 상태를 유지하는 한 샤드 사용자는 언제든지 자신의 데이터를 가지고 종료할 수 있습니다.
유연한 데이터 가용성은 zk Porter의 핵심 설계 목표입니다. 각 프로토콜이 자체 체계를 설계하도록 허용함으로써 zkPorter는 다양한 체계를 지원하고 모든 사람의 요구에 적응할 수 있습니다. 보안 가정 신뢰할 수 있는 중앙 집중식 참가자를 보증인으로 적용하면 권한 증명 합의 메커니즘을 달성할 수 있습니다. 그리고 거버넌스 토큰이 있는 애플리케이션은 자체 지분 증명 합의 메커니즘을 구현하여 자체 샤드를 보호할 수 있습니다. 샤드의 자금 금액이 잠긴 유효성 검사기 예치금을 초과하지 않도록 하십시오. 삭제 코딩 메커니즘을 사용하여 검증자가 데이터를 삭제하지 않았음을 증명할 수 있습니다. 예를 들어 비트코인 네트워크의 비교적 단순한 특성과 적은 수의 트랜잭션을 고려할 때 zkPorter 샤드의 유효성 검사기는 작업 증명 기반 Satoshi 합의를 실행하는 샤드 내에서 비트코인 구현을 생성할 수 있습니다. 이들 모두는 zkPorter의 Guardian 유효성 검사기 설정과 결합되거나 모두 독립적으로 실행될 수 있습니다.
zkPorter는 처음부터 확장을 염두에 두고 설계되었습니다. zkPorter 프로토콜은 각 샤드의 데이터 가용성 및 유효성 오버헤드를 매우 낮은 수준으로 줄입니다. 새 샤드를 추가하는 한계 비용은 기본 zkRollup에 중첩된 데이터를 포함하여 발생하는 비용과 비교하여 대수적입니다. 이를 통해 zkPorter는 수억 개의 계정을 지원하도록 효율적으로 확장할 수 있습니다.
마지막으로 영지식증명 기술을 통해 사용자 개인정보를 보호할 수 있습니다. zkRollup을 zkPorter의 기본 요소로 사용하면 이러한 트랜잭션의 내용을 공개하지 않고도 상태 전환의 유효성을 입증할 수 있다는 고유한 이점이 있습니다.
보조 제목
건축 🏛
실제로 zkPorter는 zkRollup 및 Validium과 매우 유사합니다. Layer-1에 배치된 스마트 계약은 자금을 호스팅하고 계정 상태의 Merkle 루트를 기록합니다. 실제 상태 데이터는 각 샤드에 대한 zkPorter 유효성 검사기 및 데이터 보증인에 의해 오프 체인으로 유지됩니다. 우리는 이를 "상태 트리"라고도 합니다.
샤딩된 스마트 계약은 자체 상태 전환 규칙을 정의합니다. zkPorter 블록이 승인되면 블록은 상태 전환을 일으킵니다. Layer-1의 트랜잭션이 Merkle 루트를 새 값으로 대체합니다. 이 트랜잭션은 새 값이 유효한지 확인하는 데 사용되는 영지식 증명을 확인해야 합니다. 즉, 블록의 모든 트랜잭션이 유효한지 확인해야 합니다.
zkPorter에서 각 샤드에 대한 계정은 상태 트리의 별도 하위 트리에 저장되어야 합니다. 또한 각 샤드 하위 트리에는 자체 샤드 유형에 대한 정보가 포함되어야 하며 상태 가용성 정책을 정의하는 스마트 계약 계정을 참조해야 합니다.
샤드의 유형이 zkRollup이라고 가정하면 계정 상태를 변경하는 샤드의 모든 트랜잭션은 상태 변경을 레이어 1 호출 데이터(zkRollup과 마찬가지로)로 게시해야 합니다.
동시에 둘 이상의 샤드 상태를 수정하는 모든 트랜잭션은 zkRollup 모드에서 실행되어야 합니다.
특정 샤드 내의 계정에만 영향을 미치는 다른 모든 트랜잭션은 일반 샤드 모드에서 실행할 수 있습니다("샤드 트랜잭션"이라고 함). 블록이 샤드 S에 일부 샤드 트랜잭션을 포함하는 경우 다음 규칙을 따라야 합니다.
추가 요구 사항을 수행하기 위해 샤드에 수반되는 스마트 계약을 호출해야 합니다(예: 샤드 합의 참가자의 서명 확인).사례 연구 💼
나는 zkPorter의 잠재력을 보여주기 위해 4가지 사례를 사용하여 서로 다른 응용 프로그램을 원활하게 결합하고 동시에 각 응용 프로그램의 요구 사항을 충족하도록 트랜잭션 볼륨을 확장할 수 있는 방법을 보여줍니다.
보조 제목
사례 1: Reddit 커뮤니티 포인트
2020년 6월 Reddit은 The Great Reddit Scaling Bake-Off 프로그램을 시작하여 각 커뮤니티가 커뮤니티 포인트 시스템을 통해 자체 하위 레딧을 호스팅할 수 있는 기회를 제공하고 Layer-2 솔루션이 자신의 재능을 보여줄 수 있도록 했습니다. 분명히 커뮤니티 포인트 시스템을 위한 솔루션은 안전하고 분산되어 있고 사용하기 쉬워야 하며 다른 타사 애플리케이션(지갑, 계약)과의 상호 운용성을 유지하고 수십만 건의 트랜잭션을 처리할 수 있어야 합니다. 커뮤니티 포인트는 세 가지 방법으로 zkPorter로 구현할 수 있습니다.
옵션 1: zkSync에서 실행(zkPorter 샤드 0)
커뮤니티 포인트를 이더리움 메인넷에 연결하기 위해 Reddit은 zkSync 위에서 직접 기존 zkRollup 기능을 사용할 수 있습니다. zkSync는 Eth1에서 3000 TPS에 도달할 수 있습니다. 월간 활성 Reddit 사용자 5억 명 모두가 적극적으로 참여하고 있다고 가정합니다. 각 사용자가 매월 평균 1개의 발행 트랜잭션, 1개의 소각 트랜잭션(가입비 지불) 및 2개의 전송을 보낸다고 가정하면 커뮤니티 포인트 시스템에 필요한 평균 부하는 다음과 같습니다.
5억 × 4 / (30 × 24 × 60 × 60)은 대략 700 TPS와 같습니다.
이것은 zkRollup의 현재 처리량의 1/4에 불과합니다.
옵션 2: zkPorter 가드에 의해 확인된 Reddit 특정 샤드에 넣습니다.
트랜잭션 처리량의 탄력성을 높이고 사용자 비용을 줄이기 위한 경우 Reddit은 기본 샤드에서 Reddit 특정 샤드로 Reddit 트랜잭션을 전송할 수 있습니다. Reddit은 사용자에게 데이터 가용성 보장을 제공하기 위한 자체 체계를 자유롭게 선택할 수 있습니다. 가장 간단한 솔루션은 사용자에게 지분 증명으로 구현된 데이터 가용성 보장을 제공하는 기존 zkSync 가드 구현입니다. Reddit이 Guardian 템플릿을 사용하는 것 외에도 Reddit의 서버에 데이터를 저장하는 것이 좋습니다. 이 모드에서는 수비수가 2/3 다수의 공격을 받더라도 Reddit이 대처할 수 있으므로 사용자는 편안히 앉아 휴식을 취할 수 있습니다. 이에 따라 Reddit 서버 오류 또는 공격으로 인해 사용자 데이터가 뒤집히지 않습니다.
세 번째 방법은 Reddit이 트랜잭션 처리량을 최대화하고 사용자 비용을 최소화하도록 선택할 수 있다는 것입니다. 즉, Reddit 커뮤니티를 전용 샤드에 놓고 가드 메커니즘 대신 맞춤형 데이터 가용성 솔루션을 사용하는 것입니다. 지분 증명 합의에 기반한 실행 가능한 솔루션은 2/3 다중 서명 메커니즘(2/3 다중 서명)과 결합된 커뮤니티 기반 데이터 가용성을 기반으로 합니다.
상호 운용성
계획의 가능한 구현을 상상해보십시오. Reddit 및 Reddit 사용자는 각 상태 전환의 유효성을 증명하기 위해 서명을 보낼 것입니다. 예를 들어 Reddit은 총 서명 가중치의 1/3을 차지하고 2/3를 사용자에게 배포할 수 있습니다. 서명 가중치의 2/3 다수 메커니즘(서명 가중치의 2/3 결합)과 결합하면 Reddit 샤드의 상태 전환이 유효한지 확인하기에 충분합니다. 사용자는 잘못된 상태 전환에 대한 게시자의 예치금을 공제하는 것과 같이 자신이 보는 잘못된 전환의 증거를 게시하도록 인센티브를 받을 수 있습니다.
이 체계의 거래 비용은 영지식 증명을 생성하는 데 필요한 비용만 충당합니다(현재 거래당 1/1000달러이며 향후 기하급수적으로 감소할 예정임).
상호 운용성
zkSync에 배포된 DeFi 프로토콜(zkSync의 Curve, zkSync의 Compound 등)을 사용하여 거래/대여/대출하는 것과 같이 다른 샤드의 스마트 계약과 쉽게 상호 작용합니다.
커뮤니티 포인트를 zkRollup 샤드의 사용자에게 이전(최대 보안을 위해)
zkSync 이외의 스마트 계약과 상호 작용하기 위해 토큰을 Ethereum 메인넷으로 신속하게 인출합니다.
보조 제목
사례 2: 스마트 지갑/암호화폐 은행(Argent, Dharma, MyKey 등)
스마트 지갑은 스마트 계약으로 구현된 지갑으로, 사용자가 프라이버시 및 상호 운용성 기능을 얻을 수 있도록 도와줍니다(예: Layer-2 확장 솔루션에 원활하게 연결할 수 있음). Argent와 같은 일부 스마트 지갑은 신규 사용자를 안내하는 과정에서 사용자에게 일정 비율의 거래 수수료를 선택적으로 보조하기도 합니다. 현재 가스 가격(75 Gwei)과 이더리움 가격($320)에서 거래는 $0.5입니다. 스마트 지갑은 전체 가스 오버헤드를 줄이기 위해 스마트 계약을 사용하여 zkRollup 기능을 호출할 수 있습니다.
다음은 간단한 3단계로 가능한 구현입니다.
1단계: zkRollup 샤딩
스마트 지갑 계정은 zkSync와 같은 zkRollup 솔루션으로 마이그레이션할 수 있습니다. zkSync 내 지갑 간 전송은 저렴하지만 zkSync에서 메인넷으로 전송되는 트랜잭션은 약간 더 비싸고 더 오래 걸립니다(마무리하는 데 약 5-10분).
2단계: zkSync Guardian + Wallet Operator Sharding
신규 사용자를 충분히 유치한 후 zkRollup 운영 비용으로 인해 지갑 운영자는 전용 샤드 시작을 고려할 수 있습니다. 위의 Reddit 섹션에서 우리는 이 접근법에 대해 자세히 설명했습니다. 사용자 기반을 독립 실행형 zkSync 가디언(Reddit의 경우 커뮤니티 구성원, 여기에서는 프로토콜 참가자일 수 있음)으로 마이그레이션하고 지갑 운영자는 데이터 가용성을 보장합니다. 샤딩은 지갑 운영자 또는 대부분의 zkSync 가드가 손상되지 않는 한 안전합니다. 이 옵션은 또한 지갑 운영자를 위한 유연한 수수료 공유 계획의 가능성을 열어줍니다.
어느 시점에서 지갑의 사용자 기반이 너무 커져서 지갑을 거버넌스 토큰이 관리하는 샤드로 마이그레이션해야 할 수 있습니다. 이 샤드는 여전히 zkSync 네트워크의 일부이며 zkRollup 모드에서 다른 모든 샤드의 서비스에 액세스할 수 있습니다.
개인 정보 보호 고려 사항
프라이버시 기능은 위의 어느 단계에서나 쉽게 구현할 수 있다는 점을 추가로 설명해야 합니다. 프라이버시는 영지식 증명 없이는 달성하기 어렵습니다. 그러나 zkRollup의 이점은 계정이 즉각적인 개인 정보 보호를 얻을 수 있고 보안 및 분산화를 희생하지 않고도 네트워크 참여 비용을 크게 줄일 수 있다는 것입니다.
보조 제목
사례 3: DeFi 프로토콜 및 DEX(Loopring, IDEX, Curve, Coumpound 등)
향후 처리량 병목 현상을 예상하여 IDEX 및 Loopring과 같은 여러 주요 DeFi 애플리케이션은 자체 확장성 솔루션 배포에 투자했습니다. 이것은 한편으로는 가스 가격이 높을 때 경쟁 우위를 제공하고 다른 한편으로는 확장성 기술/희생에 대한 더 깊은 이해를 제공하기 때문에 현명한 조치입니다.
그뿐만 아니라 초단타 거래를 지원하고자 하는 분산형 거래소의 경우 단일 주문을 완료하려면 매우 많은 수의 거래가 필요하기 때문에 단일 거래에 대한 수수료는 가능한 한 작아야 합니다.
격리된 확장성에는 구성성 또는 네트워크 효과가 부족합니다.
영지식 증명 기술의 잠재력이 완전히 드러남에 따라 점점 더 많은 사람들이 영지식 증명이 대량 채택의 핵심이라는 것을 깨닫고 있습니다. 동시에 ZKP 분야의 혁신 속도는 매우 빠르기 때문에 속도를 따라잡기 위해 자체 전담 연구 개발 팀이 있어야 합니다. 그러나 복잡한 암호화 알고리즘이 제대로 감사되고 구현되지 않으면 심각한 보안 허점이 기다리고 있을 수 있습니다. 암호화 분야의 황금률은 여전히 사실입니다. 자신 만 아는 암호화 세트를 만들지 마십시오.
zkPorter는 이 문제를 해결합니다. DeFi 프로토콜은 트랜잭션 비용을 제어하면서 고급 확장성 기술과 강력한 네트워크 효과를 기반으로 구축할 수 있습니다. 이를 위해 프로토콜은 zkPorter 내에 자체 샤드를 생성하여 프로토콜 토큰 보유자의 합의로 이를 보호할 수 있습니다. 이것은 또한 유연한 수수료 공유(또는 수수료 보조금)의 기회를 열어줍니다.
사례 4: 소액 결제(Brave, Livepeer, Storj 등)많은 수의 낮은 가치 전송(소액 거래)을 처리해야 하는 프로토콜은 Validum과 유사한 샤드(즉, 여러 참가자가 데이터 가용성을 보장하기 위해 간단한 다중 서명을 사용할 수 있도록 하는 샤드)를 구현하여 거래 수수료를 부과할 수 있습니다. 지식 증명의 생성 비용은 충분합니다(현재 트랜잭션당 약 $0.001이며 향후 크게 감소할 것으로 예상됨).
이와 같이 소액 거래 플랫폼을 통합하면 사용자는 잔액이 일정 금액을 초과한 후 자동으로 zkRollup 샤드로 잔액을 이체할 수도 있습니다.
첫 번째 레벨 제목
앞으로 🛣
zkPorter는 초기에 zkSync 로드맵의 일부로 구현될 것입니다.
이 비전을 위해 다음에 할 일은 다음과 같습니다.
zkSync에 대한 일반 스마트 계약 지원 제공
가드 보호 샤드를 활성화하기 위해 zkSync 토큰 배포
zkSync가 이더리움 메인넷에서 출시되었으며 이제 허가 없이 zkRollup 모드를 사용할 수 있습니다. 우리는 처리량이 Ethereum 2.0으로 마이그레이션하기 전에 향후 2년 동안 Ethereum 커뮤니티의 요구를 충족하기에 충분하다고 생각합니다. 그러나 우리는 맞춤형 유통 솔루션과 긴밀한 파트너십에 대한 논의와 구현을 환영합니다.
여기로 연락주세요.


