이더리움 확장성의 과거와 현재에 대한 4차원 해석
원래 번역: 블록 유니콘
원래 번역: 블록 유니콘

“블록체인은 확장할 수 없습니다' 아마 백만 번은 들었을 겁니다. 몇 년 전에는 이것이 업계에 실질적인 위협으로 느껴졌습니다. 초당 15개의 거래도 처리할 수 없다면 어떻게 은행 계좌가 없는 사람들을 은행에 보낼 수 있을까요?
그러나 큰 질문은 혁신을 주도하고 블록체인 확장성은 큰 것입니다. 그것은 엔지니어와 과학자들의 관심을 빠르게 끌었고 오늘날 우리는 블록체인이 확장될 수 있다는 확신이 점점 커지고 있습니다. 실제로 현재 논쟁의 대부분은 어떤 확장성 솔루션이 승리할지에 초점이 맞춰져 있습니다.
첫 번째 레벨 제목요약
"확장성 트릴레마"에 직면
유명한 "확장성 트릴레마"를 언급하지 않고는 확장성에 대해 이야기할 수 없습니다. 이 용어는 블록체인이 보유하도록 설계된 세 가지 속성인 확장성, 분산화 및 보안을 설명하기 위해 Vitalik에 의해 만들어졌습니다. 분명히 지금까지 이러한 속성 중 두 가지를 구현할 수 있습니다. 그러나 세 가지를 동시에 얻는 것은 매우 매우 어렵습니다.
이유를 이해하기 전에 용어를 명확히 합시다.
1. 확장성이는 블록체인이 TPS(초당 거래 수)로 측정되는 많은 수의 거래를 처리할 수 있음을 의미합니다.
2. 탈중앙화즉, 블록체인은 "신뢰할 수 있는" 노드의 작은 클러스터가 아니라 전 세계의 많은 "신뢰할 수 없는" 노드에 의해 실행됩니다.
3. 보안이는 네트워크의 일정 비율의 노드가 악의적인 경우에도 블록체인이 공격에 저항할 수 있음을 의미합니다. 이상적으로는 악성 노드의 최대 50%를 처리할 수 있어야 합니다.
첫 번째 레벨 제목

탈중앙화 및 보안

삼각형의 아래쪽에는 비트코인 및 이더리움 1.0(1계층)과 같은 전통적인 블록체인이 있습니다.
이러한 유형의 블록체인은 다음과 같습니다.
탈중앙화: 예. 전 세계 누구나 마이닝 노드가 되기로 선택할 수 있기 때문입니다. 전 세계 수천 명의 광부들이 비트코인 및 이더리움 네트워크 보안에 관여하고 있습니다. 또한 자신을 광부로 승인할 필요가 없으며 완전히 신뢰할 수 없습니다.
안전: 예. 네트워크의 모든 노드가 블록체인 사본을 보관하고 모든 트랜잭션을 확인하기 때문입니다. 또한 작업 증명은 최대 50%의 악성 노드를 처리하도록 설계되었습니다.
첫 번째 레벨 제목
안전하고 확장 가능
삼각형의 오른쪽은일반적인 높은 TPS 체인안전

안전:예. 모든 "선거" 노드는 권한이 있으므로 시스템에서 상대를 제어합니다.
확장 가능:할 수 있다. 적은 수의 선출된 노드가 언제든지 새로운 블록을 생성하기 때문에 우리는 더 높은 트랜잭션 처리량과 더 낮은 대기 시간을 달성할 수 있습니다. 즉, 모든 노드가 모든 트랜잭션을 확인해야 하는 경우보다 낮은 상호 작용 비용을 의미합니다.
탈중앙화 :첫 번째 레벨 제목
확장 가능하고 탈중앙화됨
삼각형의 왼쪽에는 Cosmos, Polkadot 및 Avalanche와 같은 다중 체인 생태계가 있습니다. 이러한 시스템에는 모두 더 큰 블록체인 네트워크의 일부로 통신하는 많은 독립적인 블록체인 네트워크가 있습니다.

확장 가능:분산:
분산:때에 따라 다르지. 생태계의 각 블록체인에는 블록체인을 검증하는 일련의 노드가 있습니다. 생태계의 일부 체인에는 많은 유효성 검사기가 있는 반면(예: 분산화가 필요한 스테이블 코인 체인) 다른 체인에는 소수 또는 하나만 있을 수 있습니다(예: 많은 분산화가 필요하지 않은 엔터프라이즈 체인). 따라서 탈중앙화의 정도는 우리가 언급하는 생태계의 체인에 따라 다릅니다.
안전:그다지 안전하지 않습니다. 생태계의 한 체인이 손상되면 시스템의 나머지 부분에 파급 효과가 있을 수 있습니다. 예를 들어 체인 B가 공격을 받고 체인 A, C, D가 모두 이에 종속되어 있으면 다른 체인도 영향을 받습니다.
보시다시피 블록체인을 확장하려는 다양한 시도가 있지만 거의 항상 이 세 가지 속성 중 하나가 희생됩니다. 비탈릭과 이더리움 커뮤니티는 이 타협을 꺼려했으며 그들의 목표는 세 가지 모두를 얻는 것입니다.
첫 번째 레벨 제목
계층 1 및 계층 2 확장 이해
최고 수준에서1 단계스케일링은 핵심 블록체인 자체를 확장하는 것을 말합니다. 반대로 레이어 2 스케일링은 메인 블록체인 레이어에서 메인 체인과 통신할 수 있는 별도의 레이어로 트랜잭션을 이동하는 것을 말합니다.

첫 번째 레벨 제목

Ethereum의 초기 2계층 솔루션
텍스트
주 채널
상태 채널은 오랫동안 사용되어 왔기 때문에 새로운 것이 아닙니다. 다음은 작동 방식에 대한 간단한 설명입니다. 서로 거래하기를 원하는 두 사람 Alice와 Bob이 있다고 가정해 봅시다. Alice는 트윗할 때마다 Bob에게 $1를 지불합니다. 그러나 Bob은 매일 많은 트윗을 하기 때문에 이더리움을 트랜잭션에 사용하기에는 너무 느리고 비용이 많이 듭니다.
대신 "상태 채널"을 사용합니다.
앨리스는 이더리움 스마트 계약에 500달러를 투자했습니다.
Alice는 Bob에게 1달러를 주고 싶을 때마다 Bob에게 얼마를 주고 싶은지 나타내는 메시지에 서명합니다. 그녀는 Bob이 자금을 "현금화"할 준비가 될 때까지 메시지에 계속 서명합니다.
Bob은 상태 채널을 닫을 준비가 되었음을 나타내는 새 메시지를 제출합니다. Ethereum의 스마트 계약은 Alice와 Bob의 서명을 확인하고 Bob에게 지불해야 할 금액을 지불하고 나머지는 Alice에게 반환합니다.

첫 번째 단계와 마지막 단계만 블록체인에서 트랜잭션을 수행하도록 요구합니다. 이 단계 사이에서 Alice와 Bob은 지불을 나타내는 서명된 메시지를 무제한으로 서로 보낼 수 있습니다.
이 경우 이더리움 블록체인은 일회성 결제의 최종 트랜잭션을 처리하는 결제 계층으로만 사용되므로 기본 블록체인의 부담이 줄어듭니다.
첫 번째
첫 번째, 대부분의 거래는 오프체인에서 발생합니다. 즉, 두 당사자 간의 오프체인 업데이트는 블록체인 네트워크에서 처리하고 확인하는 데 추가 시간이 필요하지 않기 때문에 지불이 즉시 처리될 수 있습니다.
둘째, 상태 채널을 열고 닫을 때 온체인 트랜잭션만 수행하면 되기 때문에 지불 수수료가 더 낮습니다. 이는 대부분의 거래가 훨씬 낮은 수수료로 오프체인에서 이루어짐을 의미합니다.
그렇다면 이것이 최종 해결책이 아닌 이유는 무엇입니까? 상태 채널이 할 수 있는 일에는 한계가 있습니다.
예를 들어, 우리는 상태 채널에 속하지 않은 사람들과 거래하기 위해 상태 채널을 사용할 수 없으며 상태 채널에서 가능한 상태 업데이트 유형으로 제한됩니다. Uniswap과 같은 복잡한 애플리케이션은 Uniswap에서 두 개의 토큰을 교환할 때 스마트 계약이 자동으로 일련의 중간 단계를 실행하여 각 단계 서명에서 사용자에게 권한을 부여하지 않고 교환을 수행하기 때문에 상태 채널에서 사용할 수 없습니다.
상태 채널의 또 다른 단점은 채널을 인스턴스화하고 악의적인 상대방이 실제로 약정된 자금을 지불하지 않을 수 있는 상황을 방지하기 위해 유동성을 잠그도록 요구한다는 것입니다. 이것은 단일 채널에 대해서는 괜찮을 수 있지만 중간 채널에 고정된 유동성은 우리가 상태 채널 네트워크를 통해 지불을 시도할 때 오히려 "자본 비효율"을 만듭니다.
마지막으로 상태 채널에는 네트워크를 정기적으로 모니터링(또는 다른 사람에게 이 책임을 위임)할 수 있는 사람이 필요합니다. 이렇게 하면 자금이 안전하게 유지되어 또 다른 복잡성과 비효율성이 추가됩니다.
사이드 체인
사이드 체인
사이드 체인도 오랫동안 사용되어 왔으며 잘 이해되고 있습니다. 간단히 말해, 사이드체인은 메인 블록체인에 "고정"된 독립적인 블록체인입니다.
하나의 블록체인을 다른 블록체인에 "연결"한다는 것은 두 블록체인 간에 자산을 이동할 수 있음을 의미합니다. "단방향" 페그는 메인 블록체인에서 사이드체인으로 자산을 옮기는 곳이지 그 반대는 아닙니다. 이는 메인 블록체인에서 토큰을 사용할 수 없는 주소로 전송하여 "소각"한 다음 사이드체인에서 동등한 토큰을 "생성"함으로써 달성됩니다.

"양방향 페그"는 자산을 메인 블록체인과 사이드체인 안팎으로 이동할 수 있는 경우입니다. 이를 위해서는 메인 체인에서 토큰을 "잠금"한 다음 사이드 체인에서 동일한 양의 토큰을 "민트"해야 합니다. 원래 토큰으로 다시 전환하려면 사이드체인에서 토큰을 "소각"하고 메인체인에서 토큰을 잠금 해제합니다.

따라서 사이드체인은 메인 블록체인에 양방향으로 연결되는 새로운 블록체인을 만드는 것입니다. 더 빠른 거래를 원할 때 메인 체인에서 사이드 체인으로 자금을 이체하고 그곳에서 거래를 할 수 있습니다. 완료되면 자금을 메인 체인으로 다시 전송합니다.

Bitcoin 사이드 체인의 예는 Liquid Network입니다. Liquid Network는 비트코인에 고정되어 있어 더 빠르고 저렴한 비트코인 결제가 가능합니다. 또 다른 인기 있는 예는 이더리움에 고정된 사이드체인인 Polygon입니다.
사용자가 더 빠른 거래를 원할 때 일부 ETH를 잠그고 Polygon 사이드체인에서 동등한 양의 Matic 토큰을 생성할 수 있습니다. 폴리곤 사이드체인에서는 더 빠르고 저렴한 거래를 즐길 수 있습니다. 거래를 완료하면 Matic 토큰을 다시 ETH로 전환할 수 있습니다.

참고: Matic은 사이드체인의 상태를 이더리움에 주기적으로 커밋하므로 기술적으로 사이드체인이 아닙니다. 따라서 그들은 스스로를 "커밋 체인"이라고 부르는 것을 좋아합니다.

전반적으로 사이드체인은 일반적으로 확장성을 허용하는 다양한 합의 알고리즘을 사용하여 탈중앙화 및/또는 보안을 절충하기 때문에 확장 가능합니다.
첫 번째 레벨 제목
Plasma
Plasma는 트랜잭션을 기본 계층 밖으로 이동할 수 있는 또 다른 "계층 2" 솔루션입니다. Plasma에 대해 알아보기 전에 Plasma는 시간이 지남에 따라 여러 번 반복되었으며 각각 고유한 장단점을 가지고 있다는 점에 유의해야 합니다. Plasma가 제기하는 문제를 해결하기 위해 사람들이 만들려고 시도한 다양한 유형의 디자인이 나열된 Plasma 세계 지도를 확인할 수 있습니다.

물론 이 기사의 목적을 위해 개별 구현에 너무 집중하지 않고 플라즈마의 개념을 일반화해야 합니다. 더 깊이 파고들고 싶다면 세계지도를 꼭 확인하세요.
그렇다면 플라즈마란 무엇인가? 플라즈마는 기본적으로 메인 블록체인 외부에서 실행되는 일련의 스마트 계약(또는 "플라즈마 체인")입니다.

플라즈마 체인은 나무의 가지와 같고, 이더리움은 백본이며, 각 플라즈마 체인은 가지이며, 각 가지는 자체 블록체인 히스토리 및 계산을 가진 블록체인으로 간주됩니다.
"루트 블록체인"(즉, 이더리움 블록체인)은 플라즈마 체인에서 상태의 유효성을 강화하기 위해 "사기 증명"이라는 것을 사용합니다. 사기 증명은 데이터가 유효하지 않은지 확인하기 위해 누구나 수학적 증명을 사용할 수 있는 특정 데이터를 제공하는 메커니즘입니다.

각 플라즈마 블록체인은 트랜잭션 데이터를 루트 체인에 게시할 필요가 없습니다. 대신 각 플라즈마 체인에는 "연산자"가 있습니다. 이것은 중앙 집중식 행위자, 여러 개인을 대표하는 다중 서명 또는 운영자로 참여하는 위원회일 수 있습니다. 플라즈마 체인의 운영자는 플라즈마 체인에서 발생하는 전송의 머클 루트를 제출합니다.
참고: Merkle 트리의 작동 방식을 모르는 경우 계속 진행하기 전에 이 설명서를 읽는 것이 좋습니다. 높은 수준에서 Merkle 트리를 사용하면 대규모 데이터 세트(예: 블록의 트랜잭션)를 가져와 전체 데이터 세트를 나타내는 단일 루트 해시를 생성할 수 있습니다.

나중에 대규모 데이터 세트(즉, 트랜잭션 블록의 단일 트랜잭션)의 데이터 조각이 해당 데이터에 대한 분기를 제공함으로써 해당 데이터 세트에 존재한다는 것을 쉽게 증명할 수 있습니다.

누군가가 사기성 거래의 존재를 증명하려고 시도하는 경우 해시가 일치하지 않으며 우리는 즉시 알 수 있습니다.
좋아요, 플라즈마로 돌아갑니다.
각 플라즈마 체인은 발생한 전송의 Merkle 루트를 커밋합니다. 나중에 사용자가 자산을 플라즈마 체인에서 루트 체인으로 다시 이동하려고 할 때 사용자는 자산을 보낸 최신 트랜잭션의 Merkle 분기를 제출할 수 있습니다(현재 잔액이 플라즈마에서 대기하고 있음을 알 수 있을 정도로 최근) ). 이로써 누구나 사용자의 Merkle 포크가 사기임을 증명할 수 있는 챌린지 기간이 시작됩니다. Merkle 브랜치가 사기인 경우 사기 증거를 제출할 수 있습니다.
루트 블록체인은 Merkle 루트만 추적하기 때문에 메인 체인에서 발생하는 트랜잭션보다 훨씬 적은 데이터를 처리해야 합니다. 이렇게 하면 루트 블록체인에 저장되는 데이터의 양이 크게 줄어들고 루트 체인을 확장할 수 있습니다.
또한 특정 플라즈마 체인이 악의적으로 공격을 받으면 "대량 출구”。


기타 플라즈마는 누구에게나 자산을 보낼 수 있기 때문에 상태 채널보다 유리하지만 상태 채널에서는 상태 채널의 사람들과만 거래할 수 있습니다. 또한 사이드체인에 비해 플라즈마의 이점은 플라즈마 체인이 이더리움에 의해 보호된다는 것입니다.
두 가지(플라즈마 대 사이드체인)의 근본적인 차이점은 사이드체인에는 자체 보안 모델이 있다는 것입니다. 그들은 자체 합의 메커니즘과 상태를 검증하기 위한 별도의 노드 세트를 가지고 있습니다. 사이드체인이 공격을 받아도 메인체인은 아무 일도 일어나지 않으며 반대의 경우도 마찬가지입니다. 사이드 체인에 대한 공격이 발생할 경우 메인 체인은 사용자를 보호할 수 없습니다.
한편 플라즈마 등은종속 보안 모델, 각 플라즈마 체인은 트랜잭션을 확인하기 위해 자체 메커니즘을 사용할 수 있지만 여전히 이더리움 블록체인을 진실의 최종 중재자로 사용합니다. 비잔틴 공격의 경우 플라즈마 사용자는 이더리움으로 나갈 수 있습니다.
그러나 Plasma는 확장성이 떨어지는 솔루션으로 만드는 몇 가지 단점이 있습니다.
첫째, 사용자가 자산을 플라즈마 계약에서 메인 이더리움 블록체인으로 옮기려면 7일을 기다려야 합니다. 인출 거래가 사기가 아님을 사람들이 확인하기에 충분합니다. 그렇다면 플라즈마 체인의 Merkle 트리를 사용하여 사기 증거를 구성할 수 있습니다.
둘째, 각 플라즈마 체인에는 운영자가 Merkle 루트 커밋을 메인 체인에 게시해야 합니다. 이를 위해서는 머클 루트 약정을 체인에 정확하게 게시하기 위해 제3자에게 의존해야 합니다. 불행하게도 운영자는 악의적인 이유로 특정 거래를 메인 체인에 게시하는 것을 거부하는 소위 "데이터 가용성 공격"을 수행할 수 있습니다.

이 경우 운영자는 유효하지 않은 블록을 증명할 수 없는 상태에서 네트워크가 유효하지 않은 블록을 수락하도록 설득할 수 있습니다. 이는 다른 사용자가 블록체인의 정확한 상태를 알 수 없도록 합니다. 이것은 또한 사람들이 증명을 구축하기 위한 정보가 부족하기 때문에 블록이나 트랜잭션을 생성하는 것을 방지합니다. 사기와 달리 데이터 가용성 공격은 고유하게 귀속되지 않습니다. 우리는 공격이 일어나고 있는지 알 방법이 없습니다.
운영자는 사기성 트랜잭션을 제출하는 것과 같이 보다 명시적인 방식으로 악의적으로 작업할 수도 있습니다. 이 경우 사람들은 위에서 언급한 것처럼 "대량 철수"할 수 있습니다. 그러나 이들은 실제로 구현하기가 훨씬 더 어려운 것으로 입증되었습니다. 많은 사용자가 대규모로 출금을 원할 경우 메인 체인에 정체가 발생할 수 있으며 사용자가 적시에 출금하지 못해 자금 손실이 발생할 수 있습니다.
셋째, Plasma는 거래되는 자산의 소유자가 있어야 합니다. 이는 소유자의 동의 없이 트랜잭션(예: 승인된 주소로 ERC 20 토큰 전송)을 효과적으로 불가능하게 하므로 플라즈마 체인의 보안을 보장합니다. Plasma는 단순한 전송에 가장 적합하지만 트랜잭션이 복잡해짐에 따라 디자인 공간이 불규칙해집니다.
위의 이유로 Polygon과 OMG Networks는 처음에 확장을 위해 Plasma 아키텍처를 추구했지만 포기했습니다.
요약
요약
상태 채널, 사이드체인 및 플라즈마와 마찬가지로 롤업은 "계층 2" 솔루션입니다. 실제로 롤업은 트랜잭션을 오프체인으로 일괄 처리하고 업데이트를 메인 블록체인에 게시한다는 점에서 플라즈마와 매우 유사합니다. 그러나 주요 차이점은 집계를 통해 트랜잭션의 각 배치에 대한 트랜잭션 데이터도 온체인에 게시한다는 것입니다. Plasma에서는 Merkle 루트만 게시합니다.
즉, 집계를 통해 트랜잭션 처리는 오프체인에서 수행하지만 트랜잭션 데이터는 온체인에 게시합니다. 우리가 온체인에 게시하는 데이터의 양은 집계된 트랜잭션을 로컬에서 검증하는 데 필요한 최소 양입니다. 데이터를 온체인에 넣으면 누구나 사기를 감지하고 인출을 시작하거나 트랜잭션 일괄 생성을 시작할 수 있습니다. 따라서 롤업은 플라즈마 체인이나 사이드체인보다 더 높은 보안을 보장합니다.
롤업과 플라즈마의 또 다른 주요 차이점은 데이터 가용성에 대해 걱정할 필요가 없다는 것입니다. 결국 우리는 트랜잭션 데이터를 메인 체인에 게시합니다. 이것은 엄청난 승리입니다.
롤업을 사용하여 롤업 레이어 내에서 EVM 버전을 효과적으로 실행합니다. 이는 이더리움에서 가능한 모든 트랜잭션이 롤업에서 실행될 수 있음을 의미합니다.
이것은 우리가 여전히 트랜잭션 데이터를 온체인에 게시한다면 이것이 레이어 1을 어떻게 확장합니까? 확장성은 여전히 메인 체인의 데이터 대역폭에 의해 제한되지 않습니까?
예. 여기서 핵심은 롤업을 통해 5배에서 100배의 확장성을 얻을 수 있지만 무한한 확장성은 얻지 못한다는 것입니다. 롤업은 또한 우리가 온체인에 게시하는 트랜잭션 데이터의 양을 최소화하기 위해 많은 멋진 압축 트릭을 사용하므로 그렇지 않은 경우보다 훨씬 적은 데이터가 온체인에 저장됩니다.

동시에 우리는 오프체인 트랜잭션 실행의 모든 무거운 작업을 Rollup에 아웃소싱합니다. 트랜잭션 실행 중에 트랜잭션은 Ethereum 가상 머신(Ethereum Virtual Machine)에 의해 실행되어야 합니다.EVM) 상태(예: 스토리지, 계정 잔액 등)를 처리하고 상호 작용합니다. 이것은 비싸다.
첫 번째 레벨 제목
요약을 자세히 살펴보십시오.
이제 뒤에서 롤업이 어떻게 작동하는지 살펴보겠습니다.
메인 체인에는 롤업 레이어의 현재 상태를 유지하는 "롤업 계약"이 있습니다. 여기에는 트랜잭션을 수행하는 사용자의 계정 잔액과 그 안에 존재하는 계약의 스마트 계약 코드가 포함됩니다. 즉, 롤업 계약은 롤업 레이어에서 트랜잭션의 "상태 루트"를 추적합니다.

"상태 루트"는 키-값 맵으로 구성되며 여기서 키는 주소이고 값은 계정입니다. 각 계정에는 잔액, nonce, 코드(스마트 계약에만 해당) 및 스토리지(스마트 계약에만 해당)의 최대 4가지 속성이 있습니다.

집계 계층에서 트랜잭션이 발생하면 상태 변경이 발생합니다. 물론 이는 상태 루트도 업데이트해야 함을 의미합니다. 그러나 각 트랜잭션의 상태 루트를 업데이트하는 대신 트랜잭션이 메인 체인의 요약 계약으로 "일괄 처리"됩니다. 배치에는 배치 트랜잭션의 압축된 형식과 배치 트랜잭션에 대해 처리된 데이터를 나타내는 업데이트된 상태 루트가 포함됩니다.
메인 체인의 롤업 계약은 배치의 이전 상태 루트가 현재 상태 루트와 일치하는지 여부를 확인합니다. 그렇다면 상태 루트를 새 상태 루트로 전환합니다.

게시된 트랜잭션 데이터는 EVM에서 실제로 해석되지 않으므로 상태에 액세스하거나 쓰지 않습니다. 이는 비용이 너무 많이 듭니다. 대신 압축된 트랜잭션 데이터를 집계 계약에 "calldata" 매개변수로 게시합니다.
그렇기 때문에 Solidity에서 calldata(데이터 구조를 저장하는 방법)는 가장 저렴한 스토리지 형식입니다. 실제로 calldata 매개변수로 전달되는 매개변수는 이더리움 상태에 전혀 저장되지 않으므로 많은 가스 비용을 피할 수 있습니다. 동시에 이더리움 노드는 블록을 생성할 때 트랜잭션 데이터(이력 로그에)를 계속 저장할 수 있습니다.
기민한 독자라면 Plasma와 Rollup의 차이점이 무엇인지 궁금할 것입니다. 이것이 주요 차이점입니다. 집계를 사용하면 상태 루트와 함께 트랜잭션 데이터를 온체인에 게시합니다. Plasma를 사용하면 트랜잭션의 상태 루트를 게시하기만 하면 됩니다.
Merkle 루트를 루트 체인에 게시하는 운영자가 있는 Plasma와 달리 롤업을 통해 누구나 새로운 트랜잭션 배치를 온체인 롤업 계약에 게시할 수 있습니다. 이에 대해서는 나중에 자세히 살펴보겠습니다.
다시 한 번 질문을 하게 됩니다. 우리는 트랜잭션 데이터를 메인 체인에 게시하고 온체인에서 실행하지 않기 때문에 메인 체인에 게시된 트랜잭션 데이터와 상태 루트가 사기가 아니라는 것을 어떻게 알 수 있습니까?
첫 번째 레벨 제목
낙관적 요약
이름에서 낙관적 롤업이 무엇인지 추측할 수 있습니다. 새로운 트랜잭션 배치가 메인 체인에 "롤업"될 때 각 배치의 상태 루트와 해시가 게시되지만 실제로 트랜잭션이 적어도 출판 당시에는 제대로 실행되지 않았습니다.
이러한 방식으로 우리는 새로운 상태 루트와 트랜잭션 데이터를 메인 체인의 집계 계약에 "낙관적으로" 게시합니다. 누군가 메인 체인에 새로운 상태 루트를 게시하면 롤업 스마트 계약은 단순히 그들의 말을 받아들입니다.
누군가 롤업 스마트 계약에 잘못된 상태 전환이 발행되었음을 발견하면 "사기 증명"을 생성할 수 있습니다.
사기 증거에는 다음이 포함됩니다.
"이전 상태"의 증거 또는 거래가 적용되기 전의 상황
"사후 상태" 증명 또는 트랜잭션 적용 후 상태를 처리하는 방법
상태 전환 중에 적용된 거래 증명
작업 흐름은 간단합니다. 이 사기 증거는 메인 체인의 요약 계약에 게시됩니다. 그런 다음 계약 증명 증명이 집계되고 트랜잭션 논리가 사전 상태에 적용됩니다. 그런 다음 결과를 사후 상태와 비교합니다. 불일치가 있는 경우 배치를 발행한 사람이 트랜잭션을 올바르게 적용하지 않았음을 증명합니다. 그런 다음 스마트 계약은 해당 거래 배치와 모든 후속 배치를 되돌립니다.
첫 번째 레벨 제목
ZK 요약
낙관적 롤업이 "유죄가 입증될 때까지 무죄" 사고방식을 사용하는 경우 ZK 롤업은 "신뢰하지 않고 확인" 사고방식을 사용합니다.
ZK 롤업을 사용하면 각 배치에는 상태 루트가 배치 트랜잭션 실행의 올바른 결과임을 증명하는 ZK-SNARK라는 암호화 증명이 포함됩니다. ZK-SNARK 증명은 zk-rollup 레이어에서 트랜잭션이 실행된 후 블록체인 상태의 변화를 나타내는 해시입니다. 이 유효성 증명은 롤업 계약에 게시되므로 누구나 롤업 레이어의 특정 배치에서 트랜잭션을 확인하는 데 사용할 수 있습니다.
여기서 마법은 ZK-SNARK가 작동하는 방식에 있습니다. 이를 통해 데이터를 공개하지 않고 기본 데이터의 증명을 생성할 수 있습니다. 나중에 누구나 데이터 자체에 액세스할 수 없더라도 데이터가 존재하는지 확인할 수 있습니다.
텍스트
어떤게 더 좋아?
비용
비용
"비용"은 추상적으로 큰 의미가 없지만 비용을 세분화하면 낙관적 롤업과 ZK 롤업의 성능이 갈라지기 시작합니다.
체인에 새 배치를 게시하기 위한 가스 비용: 낙관적 롤업 비용이 저렴합니다. 우리는 새로운 상태 루트와 데이터를 낙관적으로 릴리스하므로 거래가 쉽습니다. ZK 롤업은 더 비쌉니다. 온체인에서 새 배치를 출시할 때 ZK-SNARK의 유효성 증명을 확인해야 합니다. 이것은 계산상 더 비쌉니다.
체인에 게시된 트랜잭션당 가스 비용: 낙관적 집계가 더 비쌉니다. 나중에 사기 증거를 확인하기 위해 충분한 데이터를 온체인에 게시해야 합니다. ZK 롤업 비용이 더 낮습니다. 누구나 배치의 정확성을 확인하기에 충분하기 때문에 대부분의 거래 데이터를 생략할 수 있습니다.
오프체인 계산 비용: 낙관적 집계는 비용이 적게 듭니다. 트랜잭션을 실행/검증하지 않고 새로운 상태 루트만 게시합니다. 즉, 배치가 올바른지 확인하기 위해 새 배치 생성과 새 트랜잭션 실행을 지켜볼 사람이 여전히 필요합니다. ZK 롤업은 더 비쌉니다. ZK-SNARK는 계산 비용이 많이 듭니다(20~1000배 더 비싸지만 혁신을 통해 계속 저렴해지고 있음).
속도
속도
낙관적 롤업이 느립니다. 일반적으로 사용자는 자산을 출금하기까지 일주일 정도 기다려야 합니다. 이것은 사용자가 실제로 소유하지 않은 롤업 레이어에서 토큰을 인출하려고 시도하는 경우 누군가에게 사기 증명을 발행할 수 있는 충분한 기회를 제공할 수 있습니다.
ZK 롤업이 빠릅니다. 사용자는 일반적으로 자산을 인출하기 위해 10분 미만을 기다립니다. 집계된 모든 상태가 이미 확인되었기 때문에 인출을 처리하기 위해 다음 배치까지 기다려야 합니다.
참고: "빠른 인출"을 사용하여 이 1주일의 대기 기간을 피할 수 있는 몇 가지 방법이 있습니다. 이는 메인 체인에서 자금의 "쿠키 단지"를 유지 관리하는 유동성 공급자를 통해 이루어집니다. 사용자가 신속하게 자금을 인출하면 풀의 자금에 대한 IOU를 유동성 공급자에게 제공하고 메인 체인의 유동성 공급자로부터 즉시 지불(수수료)을 받습니다.
나중에 1주일 기간이 끝나고 사용자가 풀링 레이어에서 자산을 되찾으면 사용자는 유동성 공급자에게 빚진 자금을 보낼 수 있습니다. 유동성 공급자는 유효성 검사기 노드를 실행하여 롤업에서 사용자의 트랜잭션을 검증한 후 메인 체인에서 사용자에게 자금을 제공하여 위험을 더욱 줄일 수 있습니다.
그러나 NFT 중 하나만 존재하고 유동성 공급자가 온체인에서 동일한 NFT를 생성할 수 없기 때문에 NFT에서는 이 "빠른 인출" 방식이 불가능합니다.
복잡한
낙관적 롤업은 더 간단하고 사기 증명의 개념은 오랫동안 사용되어 왔기 때문에 솔루션은 비교적 간단합니다.
ZK 롤업은 더 복잡하고 ZK-SNARK는 새롭고 수학적으로 복잡합니다.
광범위한
낙관적 롤업은 일반화하기 쉽고 엔지니어는 OVM(Optimistic Virtual Machine)이라는 EVM 호환 가상 머신을 구축하여 이더리움에서 처리할 수 있는 모든 트랜잭션을 낙관적 롤업으로 처리할 수 있습니다.
확장성
확장성
낙관적 롤업은 확장성이 떨어집니다. 데이터를 온체인에 게시할 때 일반적으로 일부 상태(예: 거래 세부 정보)와 증인(예: 거래 당사자의 동의를 증명하는 디지털 서명)이 포함됩니다. 낙관적 롤업을 사용하면 사람들이 나중에 사기를 증명할 수 있도록 모든 거래에 대한 증인을 게시해야 합니다. 증인은 거래 데이터의 3~10배에 달하는 많은 저장 공간을 차지합니다.
ZK 롤업은 더 확장 가능합니다.안전
안전
낙관적 롤업은 덜 안전하며 낙관적 롤업은 체인 보안을 보장하기 위해 암호 경제학에 의존합니다. 즉, 그들은 사람들이 온체인에 게시된 배치를 보고 사기를 감지하도록 장려해야 합니다.
ZK 롤업은 더 안전합니다.ZK 롤업은 수학에 의존하며 인센티브가 필요하지 않습니다. 그들은 암호경제학이 아닌 암호학을 사용합니다.
이제 우리는 이것들을 분해했습니다. 어느 것이 더 낫습니까? 여전히 말하기는 어렵지만 이러한 프로그램 뒤에 있는 엔지니어가 수행한 훌륭한 작업에 대한 증거입니다. Optimism 및 Arbitrum과 같은 팀이 이더리움 개발자가 이미 사용할 수 있는 낙관적 롤업에 열심히 노력하고 있습니다. StarkWare 및 Zksync와 같은 회사가 이더리움에 일반 ZK 롤업을 제공합니다.
두 솔루션 모두 초기 단계에 있습니다. 그러나 낙관적 롤업은 덜 복잡하고 오늘날 범용 컴퓨팅에 사용할 수 있기 때문에 채택에 가까워졌습니다. 반면에 ZK 롤업은 따라잡는 데 시간이 좀 걸리겠지만 많은 엔지니어들은 ZK 롤업이 우수한 기술이라고 생각할 것입니다. 결국 그들은 암호경제학보다는 수학에 의존하고 있으며 낙관적 롤업보다 더 확장 가능합니다.
첫 번째 레벨 제목
요약의 영리함
롤업의 지속적인 문제에 대해 논의하기 전에 롤업이 매우 효율적으로 사용하는 압축 트릭을 살펴보겠습니다.

논스(nonce): 일반적인 이더리움 트랜잭션에서는 이중 지출 공격을 방지하기 위해 논스를 포함합니다. 롤업은 블록체인의 이전 상태를 사용하여 다시 계산할 수 있으므로 완전히 생략합니다. 이러한 방식으로 요약은 가능할 때마다 데이터를 계산으로 바꿉니다.
가스 가격: gwei(1 gwei는 10^-9 ETH)로 표시하는 대신 가스 가격을 고정 가격 범위로 제한하는 것이 좋습니다. 따라서 거래에서 가스 가격을 기록하는 데 필요한 저장 공간을 크게 줄일 수 있습니다. 데이터가 합산됩니다!
수수료: 위와 동일.
To: 주소는 20바이트 길이에 RLP 인코딩을 위한 1바이트를 더한 것입니다. 요약은 주소를 포함하는 대신 주소에 대한 인덱스 매핑을 저장할 수 있으며 "to" 필드(예: 1234)에만 인덱스를 포함할 수 있습니다. 전체 위치 자체를 렌더링하는 대신 좌표를 대상에 그대로 두는 것과 같습니다.
값: ETH 및 ERC-20 토큰은 소수점 이하 9자리까지 있기 때문에 "값" 필드는 9바이트입니다. Aggregate는 대신 값을 최대 소수점 이하 3자리로 제한하여 6바이트를 절약할 수 있습니다. 매우 기능적으로 보입니다!
서명: 위에서 언급했듯이 디지털 서명된 "증인"은 많은 저장 공간을 차지합니다. 롤업은 BLS 서명(서명 집계 및 키 집계를 위한 알고리즘)을 사용할 수 있습니다. 이를 통해 많은 서명을 하나로 집계할 수 있어 저장 공간을 많이 절약할 수 있습니다!
이 모든 압축 트릭을 사용하여 이 모든 것을 실행해 보겠습니다. ETH 전송을 위해 얼마나 많은 바이트를 절약할 수 있습니까? 일반적인 ETH 전송에는 112바이트가 필요하지만 이러한 모든 압축 트릭을 사용하면? 단 12바이트로 효율성이 거의 10배 향상되었습니다!
텍스트
텍스트
첫 번째 레벨 제목
확장성에는 한계가 있습니다
지금까지 롤업과 플라즈마 및 사이드 체인과 같은 다른 레이어 2 솔루션 간의 주요 차이점을 살펴보았습니다. 기억하시겠지만 롤업은 연산을 오프체인으로 이동하지만 데이터는 온체인에 저장합니다. 이는 데이터 가용성 문제를 해결하는 데 매우 유용할 수 있습니다. 그러나 트랜잭션 데이터를 온체인에 저장하기 때문에(비록 매우 압축된 형식이지만) 여전히 이더리움의 저장 용량에 의해 제한됩니다.
이론적 TPS가 롤업을 사용하는 것을 보기 위해 대략적인 수학을 할 수 있습니다.
온체인에 저장된 바이트당 데이터 비용: 16 가스
온체인에 저장된 바이트당 데이터 비용: 16 가스
블록당 최대 바이트: ~781,000바이트(1,250만 가스/바이트당 16가스)
롤업을 사용한 ETH 전송에 필요한 데이터 바이트: 12바이트(이전 섹션의 수학 참조)
블록당 트랜잭션: ~65,000(블록당 ~781,000바이트 / ETH 전송당 12바이트)
Ethereum의 평균 블록 시간: 13초
초당 트랜잭션: ~5000 TPS(블록당 약 65,000 트랜잭션/블록당 13초)
물론 이 수학은 블록의 모든 트랜잭션이 ETH 전송이고 블록에 배치 집계 트랜잭션 외에는 아무것도 없다고 가정합니다. 이는 가능성이 매우 낮습니다. 대부분의 블록에는 16개 이상의 가스 요금이 드는 일부 레이어 1 트랜잭션을 포함하여 다양한 트랜잭션이 포함됩니다. 또한 이것이 ZK 롤업 배치인 경우 약 500,000 가스에 해당하는 SNARK 증명 온체인 검증 비용은 포함되지 않습니다.
그럼에도 불구하고 이것은 집계된 TPS를 사용하기 위한 시작점을 제공합니다. 5,000은 Visa가 분명히 가지고 있는 65,000 TPS에 근접하지 않지만 오늘날의 이더리움 TPS보다 훨씬 낫습니다.
부서진 이동성
롤업 기술은 이더리움 프로토콜 자체가 아닌 독립적인 프로젝트로 만들어졌습니다. 따라서 여러 가지 다른 집계 기술이 동시에 있을 것이며 여기에서 유동성이 깨지게 됩니다.
유동성이 메인 체인에서 롤업으로 이동함에 따라 다른 롤업 네트워크의 유동성이 "파괴"됩니다. 집계 간에 통신하기 위한 메커니즘이 있으면 이 문제를 해결할 수 있지만 일부 영리한 엔지니어는 이미 이에 대해 작업하고 있습니다!
구성 가능성 감소
이더리움 기반 구축의 주요 이점 중 하나는 구성 가능성입니다. 이더리움에 구축된 모든 새로운 프로토콜은 다른 프로토콜이 그 위에 쉽게 구축할 수 있는 레고 블록과 같습니다. 예를 들어 이것이 DeFi를 매우 강력하게 만드는 것입니다. 그것은 우리가 돈 레고 블록을 만들 수 있게 해주었다.
애플리케이션과 유동성이 롤업으로 이동하면 구성 가능성이 일부 손실됩니다. 결국 집계 계층과 메인 체인 간에 메시지와 트랜잭션을 전달하는 것은 기본 계층의 컨텍스트에서만큼 쉽지 않습니다.
그러나이 문제가 해결되는 것은 시간 문제 일 수 있습니다. 서로 다른 집계에 존재하는 스마트 계약이 여전히 서로 통신할 수 있는 세상을 확실히 볼 수 있습니다. 언제나 그렇듯이, 우리는 이러한 문제를 해결하는 데 있어 소수의 명석한 엔지니어에 불과합니다.
집중
메인 체인에 새 배치를 게시하는 데 실제로 책임이 있는 사람에 대해 논의하는 것을 게을리했으므로 다시 돌아가 보겠습니다.
대부분의 롤업은 작업을 수행하기 위해 "시퀀서"에 의존합니다. 시퀀서는 트랜잭션을 일괄 처리하고 결과를 온체인 롤업 계약에 게시하는 노드입니다. Arbitrum, Optimism 및 StarkNet의 경우 시퀀서는 자체적으로 실행되는 단일 노드입니다.

알아요. "탈중앙화"는 블록체인의 핵심입니다. 매우 효율적이지만 분명히 매우 중앙화되어 있습니다. 시퀀서가 실패하거나 트랜잭션을 검열하면 어떻게 될까요?
음, 그렇게 간단하지 않습니다. 이러한 프로젝트가 현재 이 경로를 사용하는 이유는 이 방법을 사용하여 반복하는 것이 더 쉽고 빠르기 때문입니다. 중앙 집중화의 위험을 줄이기 위해 시간이 지남에 따라 대부분의 롤업은 분류기의 일종의 분산화를 원하며 많은 사람들이 그렇게 할 계획이 있습니다.
시퀀서의 분산화는 어떻게 작동합니까? 몇 가지 방법이 있습니다. 한편으로 우리는 시퀀서가 다음 배치를 만들 기회를 갖기 위해 토큰을 스테이킹해야 하는 지분 증명과 같은 시스템을 만들 수 있습니다. 또는 분류자가 선출되고 잘 되지 않으면 선출되지 않는 위임 지분 증명을 할 수 있습니다.
첫 번째 레벨 제목
나란히 비교
푸. 롤업에 대해 더 잘 이해하고 이더리움이 확장성 솔루션으로 롤업(그리고 샤딩!)에 베팅하는 이유를 알고 있기를 바랍니다. 물론 롤업은 그 이전의 거인의 어깨 위에 있습니다. 사이드체인, 상태 채널 및 플라즈마 없이는 롤업을 가질 수 없었을 것입니다.

탈중앙화, 보안 및 확장성의 "트릴레마" 프레임워크를 사용하여 롤업을 다른 레이어 2 솔루션과 비교하는 것도 유익합니다. 다재다능함이라는 추가 차원을 추가하겠습니다. 수년에 걸쳐 우리는 메인 체인에서 수행할 수 있는 모든 작업을 수행하는 데 사용할 수 있도록 레이어 2 솔루션이 다재다능해야 한다는 것이 중요하다는 것을 깨달았습니다.

이는 롤업이 탈중앙화, 보안 및 일반성을 희생하지 않고 적절한 확장성을 제공한다는 것을 분명히 보여줍니다.
그러나 장단점은 확장성입니다. 우리는 여전히 데이터를 온체인에 저장하기 때문에 데이터를 오프체인에 저장하는 레이어 2 스케일링 솔루션에 비해 확장성에 제한이 있습니다. 또한 단기적으로 롤업은 중앙 집중식 분류기에 의존하므로 보안이 저하됩니다. 그러나 이것은 단기적인 문제이며 시간이 지남에 따라 롤업은 주문자를 분산시켜 플라즈마, 사이드 체인 및 상태 채널보다 우수한 기술로 만들 수 있습니다.
그렇다면 롤업이 성배일까요? 당신이 결정하도록하겠습니다.
PS..
간결함을 위해 롤업 작동 방식에 대한 많은 흥미로운 세부 정보를 생략했습니다. 그러나 "Validium"이라는 새로운 레이어 2 확장 체계도 없습니다.
Validium은 데이터와 계산을 오프체인으로 이동한다는 점에서 Plasma와 유사합니다. 주요 차이점은 Validium이 거래를 검증하기 위해 사기 증명에 의존하지 않는다는 것입니다. 대신 운영자는 영지식 증명을 사용하여 새로운 상태 커밋을 수행해야 하므로 운영자가 잘못된 상태 전환을 진행하는 것이 불가능합니다.
결론적으로
결론적으로
이 게시물은 내가 예상했던 것보다 훨씬 길었습니다. 여전히 읽고 있다면 당신은 내 타입입니다.
다소 길긴 하지만 집계에 대한 기본적인 이해를 위해 알아야 할 최소한의 정보입니다. 결국 롤업은 이더리움 확장성 솔루션의 절반에 불과합니다. 나머지 절반은 샤딩입니다. 웹 3.0 애플리케이션 구축에 관심이 있다면 다음 DappCamp 코호트에 등록하여 이더리움에서 안전한 스마트 계약을 구축하고 배포하는 방법을 배우십시오.


