
이 기사의 출처:CSDN이 기사의 출처:liuchengxu,번역하다:
원본 링크:
원본 링크:https://medium.com/@icebearhww/ethereum-sharding-and-finality-65248951f649
존재하다Ethereum Casper 101존재하다
블록체인 확장성 문제sharding doc .
블록체인 확장성 문제
블록체인 확장성 문제
증가하는 거래.
현재 블록 생성 프로세스는 확장성이 제한적입니다. 블록의 가스 한도는 블록의 컴퓨팅 용량을 제한합니다. 블록 가스 한도를 늘리거나 블록 시간을 크게 줄이면 부실률이 높아지고 네트워크의 공격 저항 능력이 약화됩니다.
불충분한 병렬 처리. 첫째, 기존 EVM은 트랜잭션을 순차적으로 순차적으로 처리합니다. 둘째, 보안 및 분산화를 위해 각 전체 노드는 모든 트랜잭션을 실행하고 전체(또는 정리된) 상태 트리를 저장합니다.EIP 648 — Easy parallelizability
용어
먼저, 메인 체인(현재 메인넷 체인으로 이해할 수 있음)과 샤드 체인의 다른 수준에 있는 개체 간의 차이점을 살펴보겠습니다.
이미지 설명
트랜잭션이 "collation"에 로드될 것이라고 간단히 생각할 수 있습니다. 블록과 마찬가지로 데이터 정렬도 체인의 상위 데이터 정렬을 가리킵니다(샤드 체인 참조). "조합원"이 된다는 것은 POS 샤드 체인에서 새로운 조합을 지명할 자격이 있다는 것을 의미합니다.
이미지 설명
기본 보조 샤딩
샤드 체인의 합의는 메인 체인에 따라 다릅니다.
샤드 체인의 합의는 메인 체인에 따라 다릅니다.
사이드체인과 유사하게 데이터 정렬에는 메인체인에 기록되어야 하는 작은 증명 세트만 있습니다. 이것이 우리가 블록체인을 확장하는 방법에 대한 기본 아이디어입니다.
샤드 체인의 트랜잭션은 자체 독립 공간에 있으며 샤드 유효성 검사기는 관심 있는 샤드만 확인하면 됩니다.
유효성 검사기 관리자 계약(VMC)
유효성 검사기 관리자 계약(VMC)
메인 체인에 샤드 체인을 추가하기 위해서는 메인 체인에 VMC(Validator Manager Contract)라는 특별한 계약이 필요합니다. VMC는 이 샤딩 메커니즘의 핵심입니다. VMC의 목적은 다음과 같이 요약할 수 있습니다.
지분 증명 시스템. 유효성 검사기가 잘못 작동하면 지분이 악용됩니다.
의사 무작위 샘플링. 적격 조합자는 현재 블록 해시를 시드로 사용하여 샘플링됩니다. 기본적으로 검증인은 자신의 지분을 VMC에 입금하고 검증 코드 주소(검증 코드 주소)는 VMC 내부의 글로벌 검증인 풀 목록(글로벌 검증인 풀 목록)에 기록됩니다. 시스템은 인증자 목록에서 샤드 체인 인증자를 샘플링하고 지정된 "기간(기간, 기간은 아래에서 설명함)" 내에서 지정된 샤드의 인증자로 지정합니다. 이 접근 방식을 사용하면 검증자가 검증자가 되는 시기 또는 검증자가 될 샤드를 미리 예측하는 것이 불가능합니다.
데이터 정렬 헤더 유효성 검사. VMC에는 =로 데이터 정렬 헤더의 유효성을 검사하고 유효한 데이터 정렬 헤더 해시를 기록하는 addHeader(bytes collationHeader) 함수가 있습니다. 이 기능은 즉각적인 온체인 검증을 제공합니다.
교차 샤드 통신. UTXO 모델을 활용하여 메인체인에서 거래를 하고 영수증(Receipt ID로)을 생성함으로써 사용자는 지정된 샤드에 이더를 입금할 수 있습니다. 샤드 체인의 사용자는 주어진 영수증 ID로 영수증 소비 트랜잭션을 생성하여 영수증을 사용할 수 있습니다.
샤드 내에서 Collation을 지명하는 방법은 무엇입니까?
샤드 내에서 Collation을 지명하는 방법은 무엇입니까?
"기간"은 블록 시간의 경계 창으로 정의됩니다(예: PERIOD_LENGTH = 5는 기간당 5개의 블록을 의미합니다). 이는 에포크당 샤드당 유효한 데이터 정렬이 1개 이하임을 의미합니다.
이미지 설명
유효성 검사기가 적격한 조합자로 샘플링되어 새 조합을 제안하면 조합자는 가장 최근의 조합을 확인하고 트랜잭션을 보내서 addHeader 함수를 호출해야 합니다. 새 조합을 제출하기 위해 조합기 주기 10을 샘플링하는 경우 이는 addHeader 트랜잭션이 주기 10에 포함되어야 함을 의미합니다. 즉, 트랜잭션이 블록 번호 10 * PERIOD_LENGTH에서 블록 번호(10 + 1) * 사이에 있어야 합니다. PERIOD_LENGTH - 1 사이.
이미지 설명
-그림 2(b).슬라이스의 경우 기간에는 하나의 데이터 정렬만 있으며 블록은 서로 다른 슬라이스의 여러 addHeader 트랜잭션을 포함할 수 있습니다-
샤드 체인에 대한 포크 선택 규칙
샤드 체인에 대한 포크 선택 규칙
그림 3(a)의 예에서는 메인 체인에 두 개의 포크가 있고 아래 그림의 두 번째 체인이 가장 긴 유효 메인 체인입니다. 블록 B3이 헤드 블록이므로 데이터 정렬 C3이 헤드 데이터 정렬임을 쉽게 알 수 있습니다.
이미지 설명
그런 다음 그림 3(b)의 블록 B3'이 도착합니다. 블록 B3이 블록 B3'보다 점수가 높다고 가정하면 위의 체인이 여전히 가장 긴 메인 체인입니다.
이미지 설명
마지막으로 그림 3(c)는 블록 4에 도달합니다. 이 샤드의 경우 데이터 정렬 C3이 데이터 정렬 C2보다 점수가 높지만 하위 체인이 가장 긴 유효 메인 체인이므로 이제 데이터 정렬 C2가 헤드 데이터 정렬입니다.
이미지 설명
추가 정보: 또 다른 디자인 - Vlad Zamfir의sharded fork choice rule
이미지 설명
- 블록체인이 확정되기 전에 원자화될 수 있음을 보장하는 우아한 디자인 -
확장성과 보안 간의 균형
— Blockchain Trilemma in Sharding FAQ
분산화, 확장성 및 보안의 세 가지 속성에 대해 블록체인 시스템은 최대 세 가지 중 두 가지만 선택할 수 있습니다.3시스템 보안 보장으로 인해 확장성이 제한됨
. TPS(초당 트랜잭션 수)를 높이기 위해 트랜잭션을 샤드에 분산하는 동시에 각 트랜잭션에 대한 컴퓨팅 리소스도 줄입니다.
샤딩의 중요한 메커니즘 중 하나는 체인에서 난수를 생성하는 방법입니다.
협력자가 선택될 확률은 유효성 검사기의 예치금과만 관련되고 비례해야 합니다.
유효성 검사기가 참여할 샤드를 예측하거나 임의로 선택할 수 있는 경우 부정직한 유효성 검사기가 서로 결탁하여 적응형 공격을 시작할 수 있습니다.제어 샤딩.
-그림 4. 전통적인 다수 공격(51% 공격)-
이미지 설명
-그림 5. 샤드에 대한 1% 공격-
암시적 최종성 대 명시적 최종성
암시적 최종성 대 명시적 최종성
먼저 샤딩 메커니즘이 POW와 POS 체인 모두에 적용될 수 있어야 함을 선언해야 합니다. 그럼에도 불구하고 캐스퍼와 같은 명시적 완결성은 샤딩을 더욱 강력하게 만들 수 있습니다.일반적인 POW 체인에서 최종성은 확률적이며,절대적인Casper the Friendly Finality Gadget (“FFG”). 간단히 말해서 블록에 수천 개의 확인이 있더라도 체인을 다시 작성할 수 있습니다. 대신 넣어
암호화 경제 메커니즘은 명시적으로 프로토콜(프로토콜 내)에서 POS에 적용되어 POS가 최종화되었는지 여부를 보장합니다(we-can-check-if-its-finalized-for-us).
메인 체인의 완결성은 다음에 달려 있습니다.
메인 체인의 완결성은 다음에 달려 있습니다.
기본 샤딩에서 샤드 체인은 메인 체인에 고정됩니다.
샤드 유효성 검사기의 경우 1단계에서 샤드가 블록체인 용량을 100배 확장하기를 원하므로 이 100개 샤드의 모든 유효성 검사기는 정확하고 효과적인 헤드 대조를 얻기 위해 VMC 상태를 모니터링해야 합니다. 유효성 검사기는 자신이 조합자인지 가능한 한 빨리 확신하는 것이 중요합니다. 일반 사용자의 경우 2단계에서 교차 샤드 트랜잭션을 적용하면 일반 사용자도 VMC에서 입금 정보(영수증 ID)를 검색해야 합니다.
명시적 최종성은 상태 비저장 클라이언트를 돕습니다.
명시적 최종성은 상태 비저장 클라이언트를 돕습니다.무상태 클라이언트의 기본 원칙은 전체 상태 트리를 저장하지 않고 대신 상태 트리 루트만 저장한다는 것입니다. 보관 클라이언트는 전체 상태 트리를 저장하고 주어진 데이터 정렬에 필요한 Merkle 분기를 제공합니다. 이러한 Merkle 분기를 통해 상태 비저장 클라이언트는 상태 트리의 일부를 구축하고 。
유효성 검사기가 샘플링되고 다시 섞이는 즉시 동기화가 트리거됩니다. 상태 비저장 클라이언트 메커니즘을 사용하면 재셔플링(즉, 유효성 검사기가 감지한 샤드 변경 및 샤드 체인 동기화) 비용이 0에 가깝습니다. ) 샤드를 동기화합니다.
이미지 설명
-그림 6. Stateless 클라이언트 모델 그림 6. Stateless 클라이언트 모델-
동기화 프로세스가 매우 빠를 수 있으므로 상태 비저장 클라이언트 모델은 각 데이터 정렬 간에 섞일 수 있습니다. 이것은 스토리지 압력과 오버헤드를 줄일 뿐만 아니라 빈번한 샘플링이 적응형 공격에 대한 저항력을 얻을 수 있기 때문에 시스템을 더 안전하게 만듭니다.after about 2.5 “epoch times”Casper FFG는 명시적인 완결성 임계값을 제공합니다., 그건,125 블록 시간
결론
결론
이더리움 샤딩 설계의 현재 개념과 명시적 완결성이 샤딩 메커니즘에 어떤 이점을 줄 수 있는지에 대해 간략하게 소개했길 바랍니다. 프로토콜 설계에 대한 자세한 내용은 다음을 참조하십시오.ETHResear.ch그리고sharding doc。
그리고
틀린 부분이나 불명확한 표현이 있으면 수정해주세요!