위험 경고: '가상화폐', '블록체인'이라는 이름으로 불법 자금 모집 위험에 주의하세요. — 은행보험감독관리위원회 등 5개 부처
검색
로그인
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt
BTC
ETH
HTX
SOL
BNB
시장 동향 보기
Vitalik: 기술적 관점에서 "샤딩"의 장점 설명
ECN以太坊中国
特邀专栏作者
2021-05-19 14:58
이 기사는 약 8991자로, 전체를 읽는 데 약 13분이 소요됩니다
샤딩은 이더리움의 확장성 미래의 핵심입니다.

출처 | vitalik.ca

저자 | 비탈릭 부테린

출처 | vitalik.ca

교정해 주신 Dankrad Feist와 Aditya Asgaonkar에게 특별히 감사드립니다.


샤딩은 이더리움 확장성의 미래이며 이더리움 생태계가 초당 수천 건의 트랜잭션을 달성하여 대부분의 사람들이 그것을 사용하고 이더리움 사용자가 될 수 있도록 하는 열쇠입니다. 그러나 샤딩은 이더리움 생태계와 더 넓은 블록체인 생태계에서 가장 잘못 이해되고 있는 개념 중 하나입니다. 고유한 특성이 있지만 종종 더 약하고 다른 보안 속성을 가진 기술과 혼동되는 매우 구체적인 개념 집합을 나타냅니다. 이 게시물의 목적은 샤딩의 특정 속성을 소개하고 다른 비샤딩 기술과 구별하며 이러한 속성을 달성하기 위해 샤딩 시스템이 희생해야 하는 사항을 소개하는 것입니다.

이미지 설명

범례: 이더리움 샤딩 시스템, 원본 사진은 Quantstamp가 디자인한 Hsiao-wei Wang의 사진입니다.

확장 가능한 불가능한 삼각형

샤딩을 도입하는 가장 좋은 방법은 솔루션으로 이어진 확장성 불가능 삼각형 문제를 설명하는 것으로 시작하는 것입니다.

확장성의 불가능 삼각형에 따르면 블록체인은 세 가지 특성을 달성하고자 하지만 단순한 기술적 수단을 사용하면 세 가지 특성 중 두 가지만 구현할 수 있습니다. 세 가지 속성은 다음과 같습니다.

➤ 확장성: 블록체인은 소비자용 노트북과 같은 단일 일반 노드보다 더 많은 트랜잭션을 처리하고 확인할 수 있습니다.

➤ 탈중앙화: 블록체인의 운영은 소수의 대규모 중앙 집중식 참여자 그룹과 독립적일 수 있습니다. 이는 일반적으로 대부분의 노드가 정직하더라도 소비자 등급 노트북으로 액세스할 수 없는 노드 그룹을 신뢰해서는 안 된다는 의미로 이해됩니다.

➤ 보안:

블록체인은 공격하려는 많은 수의 노드에 저항할 수 있습니다.이상적으로는 노드의 50%를 저항해야 합니다.일반적으로 노드의 25% 이상을 저항해야 하지만 5%의 노드만 저항하는 것은 보안을 보장할 수 없습니다.

다음은 세 가지 유형의 "간단한 솔루션"이지만 이러한 솔루션은 세 가지 속성 중 두 가지만 구현합니다.

➤ 기존 블록체인에는 비트코인, PoS/샤딩 이전의 이더리움, 라이트코인 및 기타 유사한 블록체인이 포함됩니다. 이러한 블록체인은 전체 노드를 실행하는 모든 참가자에 의존하여 모든 트랜잭션을 확인하므로 분산화 및 보안을 보장하지만 확장성은 보장하지 않습니다.

➤ 높은 TPS 블록체인에는 DPoS 체인이 포함되지만 다른 많은 블록체인도 포함됩니다. 이러한 종류의 블록체인은 일반적으로 10-100 사이의 합의를 유지하기 위해 소수의 노드에 의존하며 사용자는 대다수의 노드를 신뢰해야 합니다. 위에서 정의한 대로 이 솔루션은 확장성과 보안을 달성하지만 탈중앙화는 달성하지 못합니다.

➤ 다중 체인 생태계는 일반적으로 블록체인의 "외부 확장"을 의미합니다. 즉, 다양한 응용 프로그램을 다른 체인에 배포하고 교차 체인 통신 프로토콜을 사용하여 통신할 수 있습니다. 이는 탈중앙화 및 확장성을 달성하지만 공격자가 체인 중 하나(일반적으로 전체 생태계의 1% 미만)에서 다수의 합의 노드만 제어하면 피해를 입히고 연쇄 반응을 일으킬 수 있기 때문에 안전하지 않습니다. 다른 체인의 애플리케이션에 막대한 피해를 줍니다.

조각화 기술은 위에서 언급한 세 가지 특성을 동시에 구현할 수 있습니다. 샤딩된 블록체인은 다음과 같은 특징이 있습니다.

➤ 확장성: 처리하는 트랜잭션 볼륨이 단일 노드보다 훨씬 높습니다.

➤ 보안: 공격자는 몇 가지 리소스를 통해 시스템에 대한 부분 공격을 시작할 수 없으며 공격에 대해 전체 시스템을 제어할 수만 있습니다.

이 기사의 나머지 부분에서는 샤딩된 블록체인이 이러한 이점을 얻을 수 있는 방법에 대해 설명합니다.

첫 번째 레벨 제목

샤드의 무작위 샘플링

가장 이해하기 쉬운 샤딩 버전은 무작위 샘플링에 의한 샤딩입니다. 이더리움 생태계에 구축된 샤딩의 형태와 비교할 때 무작위 샘플링 샤드는 신뢰 속성이 약하지만 이더리움 샤딩에 적용된 기술은 더 간단합니다.


샤딩의 핵심 아이디어는 아래에 설명되어 있습니다. 10,000개의 검증자와 같이 매우 많은 수의 검증자와 100개의 블록과 같이 매우 많은 수의 검증할 블록이 있는 PoS 블록체인이 있다고 가정합니다. 다음 블록 세트가 생성될 때까지 어떤 단일 컴퓨터도 이 100개의 블록을 검증할 수 없습니다.

이 문제를 해결하려면 검증 작업을 무작위로 분배해야 합니다. 검증자 목록을 무작위로 섞은 다음 목록에서 처음 100명의 검증자를 선택하여 첫 번째 블록을 검증하고 두 번째 100명의 검증자를 선택하여 두 번째 블록을 검증하는 식으로 진행합니다. 무작위로 샘플링된 샤드는 이러한 방식으로 블록을 검증하거나 다른 작업을 수행하며, 무작위로 선택된 검증자를 위원회라고 합니다.

검증자가 블록을 검증한 후 서명을 발행하여 블록을 증명합니다. 다른 모든 노드는 100개의 전체 블록 대신 10,000개의 서명만 확인하면 되므로 특히 BLS 서명 집계 기술을 적용한 후에는 많은 작업 부하가 줄어들 것입니다. 각 블록의 브로드캐스트는 동일한 P2P 네트워크를 거치지 않고 서로 다른 서브넷을 거치게 되며, 노드는 자신이 담당하고 있는 블록이나 검증하고자 하는 다른 블록에 해당하는 서브넷에 합류하기만 하면 됩니다.

각 노드의 컴퓨팅 성능이 2배 증가하면 어떻게 될지 상상해 보십시오. 이제 각 노드에 대해 안전하게 검증할 수 있는 서명의 수가 2배로 증가하여 최소 공약 금액을 줄일 수 있고 검증인의 수를 2배로 늘릴 수 있으므로 위원회 대신 200개의 위원회를 생성할 수 있습니다. 100. 따라서 슬롯당 블록 검증 횟수는 100이 아닌 200에 도달할 수 있습니다. 또한 각 블록의 용량을 2배로 확장할 수 있습니다. 따라서 전체 블록체인 용량이 4배 증가합니다.

그 배후에 있는 원리를 수학적 용어로 설명할 수 있습니다. Big O 표기법에 따르면 "O(C)"를 사용하여 단일 노드의 컴퓨팅 성능을 나타냅니다. O(C)는 기존 블록체인이 처리할 수 있는 블록 크기를 나타냅니다. 위에서 언급했듯이 샤드 체인은 O(C) 크기의 블록을 병렬로 처리할 수 있습니다(각 노드는 고정된 수의 서명만 확인하면 되므로 각 노드는 각 블록을 확인하기 위해 O(1)의 오버헤드가 있음을 기억하십시오). 따라서 각 블록의 용량은 O(C)이고 샤드 체인의 총 용량은 O(C^2)입니다. 이것이 이러한 유형의 샤딩을 2차 샤딩이라고 부르는 이유이며, 2차 샤딩의 중요한 역할을 기반으로 샤딩이 장기적으로 블록체인을 확장하는 가장 좋은 방법이라고 믿습니다.

사람들은 종종 "100개의 위원회를 무작위로 구성하는 것과 100개의 개별 블록체인으로 분할하는 것이 어떻게 다른가요?"
차이점은 주로 다음 두 가지 측면에 있습니다.

1. 임의 샘플링은 공격자가 특정 샤드에 컴퓨팅 성능을 집중시키는 것을 방지할 수 있습니다. 100개의 블록체인으로 구성된 멀티체인 생태계에서 공격자는 전체 약정의 0.5%만으로도 피해를 입힐 수 있습니다. 즉, 블록체인 중 하나에 대해 51% 공격이 시작될 수 있습니다. 샤드 체인에서 공격자는 동일한 목표를 달성하기 위해 총 지분의 30-40%를 소유해야 합니다. 즉, 체인의 보안이 샤드 간에 공유됩니다. 물론 공격자는 운이 좋을 때까지 기다렸다가 실수로 하나의 샤드에서 컴퓨팅 파워의 51%를 획득할 수 있습니다. 공격 개시 횟수가 기하급수적으로 증가합니다. 지분이 30% 미만이면 공격을 시작하는 것이 거의 불가능합니다.

2. 샤드 중 하나에 불량 블록이 있으면 해당 블록을 받아들이지 않도록 전체 체인이 재구성되는데, 이를 긴밀한 결합이라고 합니다. 사회 계약에 따르면 단일 샤드에 불량 블록이 나타나더라도 메인 체인에서 받아들일 수 없으며 불량 블록이 발견되면 해당 샤드는 거부됩니다. 사회 계약 방법. 이 메커니즘을 통해 애플리케이션 관점에서 샤드 체인은 완벽한 보안을 누리고 계약 A는 블록체인 공격으로 인해 계약 B가 실패하고 전체 기록을 롤백하더라도 계약 B를 신뢰할 수 있습니다. 여기에는 트랜잭션도 포함됩니다. 계약 B의 문제로 인해 영향을 받는 계약 A에서

이 두 가지 차이점은 샤딩이 다중 체인 생태계로는 달성할 수 없는 단일 체인 조건의 주요 보안 속성을 보존하는 애플리케이션을 위한 환경을 생성하도록 합니다.

더 나은 보안 모델을 통한 샤딩 개선

보다 중앙 집중화된 높은 TPS 체인의 경우 주요 약점은 이 추가 보안이 부족하다는 것입니다. 이 블록체인은 일반 사용자가 노드를 실행하는 문화가 없으며 가질 수도 없기 때문에 커뮤니티가 강력하게 반대하더라도 주요 노드와 생태계 플레이어가 함께 모여 프로토콜 변경을 시행하는 것이 더 쉽습니다. 설상가상으로 기본적으로 사용자의 노드는 이 변경 사항을 수락합니다. 시간이 지나면 사용자가 눈치채겠지만 그때쯤이면 변경은 기정사실이 되어 변경을 거부하는 주된 조정 부담은 사용자가 부담하게 되고 굴러가는 고통스러운 결정을 내려야 한다. 다른 사용자가 완료되었다고 생각하는 하루 이상의 거래 기록.

이상적으로는 검증 방법이 위에서 언급한 51% 신뢰 가정을 피하고 완전히 검증될 수 있는 기존 블록체인의 높은 보안을 유지하는 샤딩 형태를 채택하고 싶습니다. 이것이 지난 몇 년 동안 우리가 수행한 대부분의 연구입니다.

첫 번째 레벨 제목

확장 가능한 전산 검증

51% 공격에 저항할 수 있는 확장 가능한 검증 문제를 두 가지 경우로 나눌 수 있습니다.

➤ 계산 확인: 계산을 완료하기 위한 모든 입력 데이터가 있다고 가정하고 특정 계산이 올바르게 수행되었는지 확인합니다.

➤ 데이터 가용성 검증: 계산 자체에 입력된 데이터가 어떤 형식으로 저장되고 필요한 경우 다운로드할 수 있는지 확인합니다. .

블록체인의 블록 유효성 검사에는 계산 및 데이터 가용성 검사가 모두 포함됩니다. 즉, 블록의 트랜잭션이 유효하고 블록의 새로운 상태 루트 해시가 해당 트랜잭션의 올바른 실행임을 확신해야 하지만 Make도 필요합니다. 데이터를 다운로드한 사용자가 상태를 계산하고 블록 처리를 계속할 수 있도록 블록의 충분한 데이터가 실제로 게시되었는지 확인합니다. 두 번째 요점은 매우 미묘하지만 중요한 개념인 데이터 가용성 문제에 관한 것입니다. 이 문제는 아래에서 설명합니다.

확장 가능한 계산 검증은 두 가지 유형의 기술인 사기 증명 및 ZK-SNARK를 사용하여 비교적 쉽게 구현할 수 있습니다.

사기 증명은 확장성을 보장하면서 계산을 검증할 수 있습니다.

다음은 두 가지 유형의 기술에 대한 간략한 소개입니다.

➤ 사기 증명(fraud proof)은 계산 결과를 받아들이는 시스템으로, 담보 보증금이 있는 사람에게 다음과 같은 형식의 메시지에 서명하도록 요청할 수 있습니다. "입력 X를 사용하여 C를 계산하면 출력 Y"를 얻습니다. 기본적으로 메시지를 신뢰하게 되지만, 예치금을 예치한 다른 사람들은 계산 결과에 이의를 제기할 기회를 갖게 됩니다. 그들은 "동의하지 않습니다. 출력은 Y가 아니라 Z여야 합니다."라는 메시지에 서명할 수 있습니다. 모든 노드가 계산을 수행합니다. 이 두 당사자 중 한 사람의 오류로 인해 보증금이 손실되고 잘못된 계산에 기반한 모든 계산이 다시 수행됩니다.

"정상적인 경우"에서는 복잡한 계산을 실행할 필요가 없고 단일 서명만 확인하면 되므로 사기 증명에 기반한 계산이 확장됩니다. 챌린지 후 계산을 온체인에서 확인해야 하는 특별한 경우가 있지만, 원래 청구자 또는 챌린저 중 하나가 많은 보증금을 잃기 때문에 이를 트리거하는 데 비용이 많이 들기 때문에 특별한 경우는 드뭅니다. ZK-SNARK는 개념적으로 더 간단하고 검증을 위해 계산을 더 저렴한 증명으로 대체하지만 그 배후의 수학은 훨씬 더 복잡합니다.

확장 가능한 형태로 계산을 검증하지만 모든 데이터를 검증하려면 모든 노드가 필요한 준확장 가능한 시스템이 있습니다. 시스템이 일련의 압축 기술을 통해 계산을 통해 대부분의 데이터를 대체할 수 있다면 효율성을 크게 높일 수 있습니다. 그것이 롤업이 하는 일입니다.

첫 번째 레벨 제목

데이터 가용성의 확장성 검증이 더 어렵습니다.

사기 증명은 데이터 가용성을 확인하는 데 사용할 수 없습니다. 작업의 사기 증명은 원래 진술이 제출되면 작업의 입력 데이터가 온체인에 게시되어 누군가가 도전을 시작하면 도전의 실행이 정확히 동일하다는 조건을 기반으로 합니다. 원래 실행의 "환경". 데이터 가용성 확인의 경우 체인에 게시하는 경우 확인해야 하는 데이터 양이 너무 많기 때문에 위 작업을 구현할 수 없습니다. 따라서 데이터 가용성을 위해 사기 방지 체계를 생성하는 방법이 핵심 문제가 되었습니다.누군가 "데이터 X가 사용 가능하다"고 주장할 수 있지만 체인에 게시하지 않고 도전자가 나타날 때까지 기다렸다가 데이터를 게시합니다. 도전을 시작한 후 전체 네트워크에 네트워크의 다른 참가자가 도전자가 틀렸다고 생각하게 합니다.

아래 그림의 "어부의 딜레마"는 그 이유를 잘 설명할 수 있습니다.

"어부의 딜레마"의 핵심 아이디어는 두 가지 상황을 포함합니다. 하나는 V1이 악의적인 게시자이지만 V2는 정직한 도전자이고 다른 하나는 V1이 정직한 게시자이고 V2가 악의적인 도전자라는 것입니다. 두 경우 모두 당시 특정 데이터를 다운로드하려고 시도하지 않은 사람에게는 아무런 차이가 없습니다. 물론 확장 가능한 분산형 블록체인에서 각 개별 노드는 데이터의 작은 부분만 다운로드할 것으로 예상되므로 소수의 노드만이 분기를 넘어 모든 것을 알 수 있습니다.

어느 쪽이 옳은지 식별할 수 없기 때문에 데이터 가용성을 위한 효과적인 사기 방지 솔루션을 생성하는 것 또한 불가능합니다.

사람들은 종종 "일부 데이터를 사용할 수 없으면 어떻게 합니까? ZK-SNARK는 모든 것의 유효성을 보장할 수 있지만 충분하지 않습니까?"라고 묻습니다.

안타깝게도 데이터 유효성만으로는 블록체인 기능을 유지하기에 충분하지 않습니다. 그 이유는 블록체인을 검증할 수 있지만 모든 데이터를 사용할 수 없는 경우 사용자는 데이터를 업데이트하고 향후 블록을 검증하기 위한 증거를 생성할 수 없기 때문입니다. 공격자가 블록을 생성할 수 있으면 블록을 검증할 수 있지만 데이터를 사용할 수 없으므로 블록체인의 작동을 효과적으로 방해할 수 있습니다. 일부 공격자는 사용자가 몸값을 지불할 때까지 특정 사용자의 계정 데이터를 업로드할 수 없으므로 이는 단순한 활성 문제가 아닙니다.

이 문제가 근본적이고 좋은 해결책이 없다는 강력한 정보 이론적 주장이 있습니다(암호 누산기 사용 등). 자세한 내용은 이 문서를 참조하십시오.

그렇다면 다운로드하지 않고 1MB의 데이터를 사용할 수 있는지 어떻게 확인합니까? 이것은 불가능하게 들립니다!

핵심 솔루션은 데이터 가용성 샘플링이라는 기술입니다. 이 기술은 다음과 같이 작동합니다.

1. 이레이저 코드 도구를 통해 N개의 세그먼트가 있는 데이터를 2N개의 데이터 세그먼트로 분할하므로 N개의 데이터 세그먼트만 전체 데이터를 복원할 수 있습니다.

2. 사용자가 가용성을 확인하려는 경우 모든 데이터를 다운로드하는 대신 사용자가 임의로 블록 내 위치(30과 같은 상수)를 선택하고 선택한 위치의 데이터가 모두 발견된 경우에만 블록을 수락합니다. 블록에서 .

삭제 코딩을 사용하여 문제를 "100% 데이터 가용성 확인"(즉, 모든 데이터가 사용 가능한지 확인)에서 "50% 데이터 가용성 확인"(즉, 데이터의 절반 이상 사용 가능)으로 변경할 수 있었습니다. 무작위 샘플링은 50% 사용성 문제를 해결합니다. 가용 데이터가 50% 미만인 경우 이 두 가지 검사 중 적어도 하나는 불가능하며, 50% 이상의 데이터가 가용한 경우 일부 노드는 블록의 가용성을 알지 못하지만 하나의 정직한 노드는 삭제 코드 재구성 프로그램을 실행하여 블록 데이터의 나머지 50%를 복구할 수 있습니다. 따라서 1MB 블록의 가용성을 확인하기 위해 1MB의 데이터를 다운로드할 필요 없이 몇 KB만 다운로드하면 됩니다. 이렇게 하면 각 블록이 데이터 가용성 검사를 받을 수 있습니다. 효율적인 데이터 검사를 위해 P2P 서브넷을 사용하는 방법은 이 게시물을 참조하세요.

ZK-SNARK 증명을 통해 데이터 삭제 코드의 정확성도 검증할 수 있으며, 머클 트리의 분기를 사용하여 각 데이터 블록을 검증합니다. 또 다른 검증 방법은 케이트 커미션(KZG Commitment)과 같은 다항식 커미션을 사용하는 것으로, 기본적으로 커미션은 각 요소를 증명하는 간단한 구성 요소와 정확성 검증을 통해 삭제 코딩되며, 이는 영화에서 사용하는 이더리움 기술입니다.

요약: 모든 데이터의 정확성을 보장하는 방법은 무엇입니까?

100개의 블록이 있고 모든 블록의 정확성을 효율적으로 확인하기 위해 위원회에 의존하고 싶지 않다고 가정합니다. 이 목표를 달성하기 위해서는 다음과 같은 조치를 취해야 합니다.

  • ➤ 각 클라이언트는 각 블록에 데이터 가용성 샘플링을 수행하여 각 블록의 데이터가 사용 가능한지 확인하고 동시에 블록의 전체 크기가 MB 이상인 경우에도 블록당 몇 KB의 데이터를 다운로드해야 함 . 모든 데이터 가용성 문제가 올바르게 응답된 후에만 클라이언트 피어에서 블록을 수락합니다.

  • ➤ 데이터 가용성이 확인되면 정확성을 확인하기가 더 쉬워집니다. 정확성은 두 가지 기술로 확인됩니다.

예치금을 걸고 있는 일부 참가자가 각 블록의 정확성을 증명하는 서명을 제공할 수 있는 사기 증명을 사용할 수 있습니다. 다른 도전자 또는 피셔맨 노드는 무작위 검사를 수행하고 전체 블록을 전체적으로 처리하려고 시도합니다. 데이터 가용성이 이미 확인되었기 때문에 다른 노드는 항상 데이터를 다운로드하고 특정 블록을 완전히 처리할 수 있습니다. 유효하지 않은 블록이 발견되면 노드는 모든 사람이 확인할 수 있는 챌린지를 발행합니다. 블록이 불량 블록으로 판명되면 이 블록을 기반으로 하는 모든 블록을 다시 계산해야 합니다.

ZK-SNARK 기술을 사용할 수 있습니다. 이와 같이 각 블록의 정확성을 이 기술로 검증할 수 있습니다.

➤ 위의 두 가지 경우 블록의 크기에 관계없이 각 클라이언트는 블록에 대해 소량의 검증 작업만 수행하면 됩니다. 사기 증명을 위해 블록은 때때로 온체인에서 완전히 검증되어야 하지만 도전조차 엄청나게 비싸기 때문에 이런 경우는 드뭅니다.

위 내용은 원문 요약입니다! 이더리움 샤딩의 경우 단기 계획은 샤드의 블록에 데이터만 포함하는 것입니다. 즉, 이러한 샤드의 역할은 순전히 "데이터 가용성 엔진"이며, Layer2 롤업의 역할은 안전한 데이터 공간을 사용하고 사기 방지 또는 ZK-SNARK 기술을 활용하여 보안성을 유지하면서 높은 트랜잭션 처리량을 달성하는 것입니다. 그러나 높은 처리량 실행 "인플레이스"를 위한 내부 시스템을 만드는 것도 가능합니다.

샤딩 시스템의 주요 속성은 무엇입니까? 장단점은 무엇입니까?

샤딩의 주요 목표는 전통적인 비샤딩 블록체인의 가장 중요한 보안 속성을 최대한 상속하는 동시에 모든 노드가 모든 트랜잭션을 확인할 필요가 없도록 하는 것입니다.

조각화는 기본적으로 이러한 요구 사항을 충족할 수 있습니다. 다음은 전통적인 블록체인의 특징입니다.

➤ 검증 노드가 블록이 유효하지 않음을 감지하고 무시하기 때문에 유효하지 않은 블록을 블록체인에 추가할 수 없습니다.

➤ 데이터를 사용할 수 없는 블록은 유효성 검사기가 데이터를 다운로드하고 무시하도록 선택할 수 없기 때문에 블록체인에 추가할 수 없습니다.

  • 보안이 강한 샤드 블록체인의 특징은 다음과 같습니다.

  • ➤ 다음과 같은 이유로 유효하지 않은 블록을 블록체인에 추가할 수 없습니다.

  • 사기 증거는 블록을 신속하게 감지하고 전체 네트워크에 잘못된 블록임을 알리고 생성자에게 엄중한 불이익을 줄 것입니다.

  • 또는 유효하지 않은 블록에 대해 유효한 ZK-SNARK 증명을 생성할 수 없기 때문에 ZK-SNARK를 통해 정확성을 확인하십시오.

  • ➤ 사용할 수 없는 데이터가 있는 블록은 다음과 같은 이유로 블록체인에 추가할 수 없습니다.

블록의 사용 가능한 데이터가 50% 미만인 경우 각 클라이언트에 대해 데이터 가용성에 대한 샘플 검사가 하나 이상 실패하여 클라이언트가 블록을 거부하게 될 것이 거의 확실합니다.

블록 데이터의 50% 이상이 사용 가능한 경우 나머지를 복구하는 데 하나의 정직한 노드만 필요하므로 사실상 전체 블록 데이터를 사용할 수 있습니다.

기존의 높은 TPS 체인은 조각화가 없기 때문에 위의 특성을 달성할 수 없습니다. 다중 체인 시스템이 직면한 문제는 공격자가 공격할 체인을 선택하면 쉽게 제어할 수 있고 시스템의 체인도 보안을 공유할 수 있지만 보안이 낮으면 공격자와 다를 바가 없다는 것입니다. 기존의 높은 TPS 체인.또한 기존 블록체인의 모든 단점을 상속할 것입니다.보안이 높으면 공유 보안은 위의 샤딩 기술을 더 복잡하게 구현한 것일 뿐입니다.

사이드체인은 구현에 매우 의존적입니다.채굴자 또는 검증자를 공유하는 경우 일반적으로 기존의 높은 TPS 체인의 약점에 노출되기 쉽고, 채굴자 또는 검증자를 공유하지 않으면 다중 체인 생태계의 약점에 직면하게 됩니다. 샤드 체인은 이러한 문제를 방지합니다.

그러나 샤딩 시스템에는 몇 가지 숨겨진 위험도 있습니다. 특히 다음과 같은 측면에서:

➤ 적응형 적의 공격 발생 시 위원회에만 의존하는 샤드체인은 대응이 어렵고 책임을 묻기도 어렵다. 즉, 공격자가 실시간으로 노드 모음을 손상시키거나 종료하도록 선택할 수 있는 경우 위원회를 방해하기 위해 소수의 노드만 공격하면 됩니다. 또한 공격자가 강한 회복력을 가지고 있든 전체 서약의 50%를 소유하고 있든 상관없이 위원회가 파괴되면 전체 네트워크는 공격에 참여하는 소수의 노드, 즉 위원회에 있는 노드만 확인할 수 있습니다. , 그리고 그로 인한 벌금 금액은 적은 양의 서약에 불과합니다. 이것은 사기 증명 또는 ZK-SNARK와 결합된 데이터 가용성 샘플링이 무작위 샘플링 기술을 보완하는 중요한 또 다른 주요 이유입니다.

➤ 이러한 중복 응답은 온라인 클라이언트 수가 충분한 데이터 가용성 샘플링 요청을 생성하기에 충분한 경우에만 항상 블록 데이터의 최소 50%를 구성합니다. 실제로 이것은 수백 명의 클라이언트가 온라인 상태여야 함을 의미하며 이 수가 클수록 개별 노드 용량에 대한 시스템 용량의 비율이 높아집니다. 이것은 소수 N 신뢰 모델입니다. 물론 비 샤드 체인 노드의 데이터 가용성 측면에서 N 신뢰 모델만큼 강력하지는 않지만 일반적으로 매우 신뢰할 수 있습니다.

➤ 샤드 체인이 사기 증명에 의존하는 경우 네트워크가 너무 느리면 사기 증명이 데이터가 잘못되었음을 나타내기 전에 노드가 블록을 완료할 수 있다는 타이밍 가정을 기반으로 합니다. 다행스럽게도 규칙을 엄격히 준수하면 유효하지 않은 블록이 발견되면 모든 유효하지 않은 블록이 롤백됩니다.시간 매개 변수는 사용자가 설정합니다.너무 오래 기다리면 비용이 발생할 수 있지만 더 신중한 사용자가 더 안전합니다. 그렇더라도 이 메커니즘은 사용자 경험을 약화시킬 수 있습니다. ZK-SNARK를 사용하여 유효성을 확인하면 이 문제를 해결할 수 있습니다.

➤ 전송해야 하는 원시 데이터의 양이 훨씬 많아 극단적인 네트워크 조건에서 실패 위험이 증가합니다. 적은 양의 데이터는 많은 양의 데이터보다 전송하기 쉽고 강력한 정부가 블록체인을 검열하려고 하면 안전하게 숨길 수 있습니다. 블록체인 브라우저가 전체 체인의 정보를 유지하려면 더 많은 데이터를 저장해야 합니다.

이는 데이터 유효성 검사가 집중해야 하는 문제이지만, 우리의 관점에서는 중앙 집중식 레이어 2 서비스보다 더 많은 애플리케이션을 온체인에서 실행함으로써 사용자 레이어 중앙 집중화를 줄이는 것이 위의 측면보다 더 주목할 만합니다. 즉, 실제로 이러한 문제, 특히 마지막 두 가지 문제는 샤드 체인의 처리량을 특정 크기 이상으로 늘리는 데 실질적인 제한을 부과합니다. 2차 샤딩은 제한된 2차성만 달성할 수 있습니다.

그런데 처리량이 너무 높으면 샤드 체인의 보안 위험이 나날이 높아지는데, 이것이 슈퍼 2차 샤딩으로의 확장을 포기하는 주된 이유이기도 합니다. 유한한 2차성을 유지하는 2차 샤드가 적절한 중간 값으로 보입니다.

첫 번째 레벨 제목

블록 생산은 중앙 집중화되지만 검증 조각화가 가능합니까?

사람들은 종종 샤딩에 대한 대안을 제안하는데, 이는 중앙 집중식 높은 TPS 체인과 유사한 구조를 사용하는 것입니다.또한 데이터 가용성 샘플링 및 샤딩을 사용하여 데이터 유효성 및 가용성을 확인합니다.

이 솔루션은 기존의 중앙 집중식 높은 tps 블록체인을 개선할 수 있지만 여전히 샤딩 시스템보다 훨씬 덜 강력합니다. 이러한 이유 중 일부는 다음과 같습니다.

1. 높은 TPS 체인에서는 블록 생산자의 검토 행동을 감지하기가 더 어렵습니다.

검열을 모니터링하려면 다음 중 하나가 필요합니다. (i) 모든 트랜잭션을 볼 수 있고 합법적인 트랜잭션이 입력되지 않았는지 확인하거나 (ii) 블록 생성자 간에 1-of-N 신뢰 모델을 사용하고 블록을 업로드할 수 없음을 확인합니다. 체인에. 중앙 집중식 높은 TPS 체인에서는 노드 수가 적고 1-of-N 신뢰 모델조차도 깨지기 쉽기 때문에 첫 번째 포인트 달성이 불가능하고 두 번째 포인트 달성이 더 어렵습니다. 체인의 블록 시간이 DAS(Data Availability Sampling)에 비해 너무 빠르면(대부분의 중앙 집중식 높은 TPS 체인이 그렇듯이) 노드의 블록이 너무 느리게 게시된다는 이유만으로 거부되지 않는다는 것을 증명하기 어렵습니다.

2. 대다수의 블록 생산자와 생태계 구성원이 프로토콜 변경을 시행하려고 하면 변경이 인기가 없더라도 사용자의 클라이언트는 변경을 확실히 감지하지만 커뮤니티의 경우 변경을 거부하고 포크를 훨씬 더 어렵게 만듭니다. 기존 규칙을 기반으로 블록체인을 유지 관리하는 데 비용이 많이 드는 새로운 고처리량 노드를 실행해야 할 필요성.

3. 중앙 집중식 인프라에서는 외부 공격자가 검열을 구현하기가 더 쉽습니다. 블록 생산 노드는 트랜잭션 처리량이 높고 감지하기가 매우 쉽고 이러한 노드를 종료하기 쉽습니다. 전용 HPC를 검토하는 것은 단일 사용자의 노트북에서 검토하는 것보다 정치적으로나 물류적으로 훨씬 쉽습니다. 편집: 전용 HPC를 감사하는 것이 개별 사용자 노트북을 추적하는 것보다 논리와 실행 면에서 더 쉽습니다.

4. 전체 체인이 1-3개 회사의 클라우드 서비스에서 실행되기 때문에 고성능 컴퓨팅을 중앙 집중식 클라우드 서비스로 이전하는 것은 더 큰 압력에 직면하고 위험이 증가합니다. 많은 블록 생산자가 동시에 실패하면 증가할 것입니다. 대규모 블록체인 충돌 위험. 유효성 검사기가 모두 개별 하드웨어에서 실행되는 샤드 체인은 이 공격에 덜 취약합니다.

시스템이 적절하게 분할된 후에는 기본 계층으로 더 적합할 수 있습니다. 샤딩된 기본 계층을 기반으로 롤업(예: DeFi용 동기식 구성 가능성이 있는 처리량이 많은 필드)을 구축하여 항상 중앙 집중식 생산 시스템을 생성할 수 있습니다. 그러나 기본 레이어가 중앙 집중식 블록 생성에 의존하는 경우 더 분산된 레이어 2를 그 위에 구축할 수 없습니다.

ETH
Vitalik
Odaily 공식 커뮤니티에 가입하세요