BTC
ETH
HTX
SOL
BNB
시장 동향 보기
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt

ETH2.0이 온다, 캐스퍼를 아직 모르시나요? (둘)

Fractal
特邀专栏作者
이 기사는 약 4923자로, 전체를 읽는 데 약 8분이 소요됩니다
이 글은 이더리움 2.0에서 사용될 캐스퍼 프로토콜을 소개합니다.
AI 요약
이 글은 이더리움 2.0에서 사용될 캐스퍼 프로토콜을 소개합니다.

존재하다존재하다2009년 Vitalik의 원문에서 Casper FFG를 소개했는데, 이는 PoS로 생성된 블록을 PoS로 확인하여 시스템의 보안을 강화하는 것이지만 이는 과도기적인 해결책일 뿐 순수 PoS는 이더리움 2.0에서 사용될 예정입니다. , 이 글에서는 이더리움 2.0에서 사용될 캐스퍼 프로토콜을 소개합니다.

보조 제목

먼저 이더리움 2.0의 아키텍처가 어떤 모습인지 보자 그림 1과 같이 PoS 캐스퍼를 통해 생성되는 이더리움 2.0에는 비콘체인이라는 메인체인이 있을 것이다. 비콘 체인 아래에는 1024개의 샤드가 있으며 각 샤드는 독립적으로 데이터를 처리할 수 있습니다.

이미지 설명

그림 1 이더리움 2.0의 아키텍처

그림 1에서 볼 수 있듯이 Ethereum 2.0과 Ethereum 1.0은 두 개의 체인이 될 것이며 2.0 샤드가 구현된 후에도 1.0은 계속해서 Ethereum 2.0의 샤드로 작동할 것입니다. 이전 글에서 PoS 합의에 참여할 수 있는 Validator가 되어 지분을 담보로 할 수 있다고 소개했습니다. 해결해야 할 중요한 문제.

Validator가 되려면 사용자는 먼저 이더리움 1.0의 특수 계약에 트랜잭션을 전송하여 일정량의 ETH(현재 최소값은 32ETH)를 담보로 한 다음 사용자는 트랜잭션에 대한 증명을 받게 됩니다. 이 증명을 이더리움 2.0에 보여줌으로써 사용자는 그림 2와 같이 검증이 통과된 후 검증자가 됩니다.

이미지 설명

그림 2 이더리움 2.0에서 유효성 검사기 프로세스가 되기 위한 이더리움 1.0의 ETH 모기지사용자의 모기지 거래의 정확성을 검증하기 위해 Ethereum 2.0은 현재 Ethereum 1.0의 블록 정보와 모기지 계약의 모든 현재 거래로 구성된 Merkle의 루트 해시를 저장해야 합니다.완전한 Merkle 트리의 증명은 통화 거래의 정당성을 검증할 수 있습니다. 검증된 사용자는 Ethereum 2.0에서 검증자가 됩니다.

보조 제목

이더리움 2.0에서 Capser의 블록 생성 프로세스

  • 이전 기사에서는 PoW를 통해 블록을 생성하고 PoS를 사용하여 블록을 확정하는 Casper를 소개했습니다. 따라서 순수한 PoS 캐스퍼가 해결해야 할 문제는 블록 생성 방법입니다. 프로토콜 프로세스를 공식적으로 소개하기 전에 몇 가지 정의를 명확히 하겠습니다.

  • 유효성 검사기 컬렉션: V = V1 ... Vn, 각 유효성 검사기가 동일한 지분을 가지고 있다고 가정합니다.

  • 슬롯: 기본 시간 단위, 현재 6초로 설정됨.

  • 에포크: 64개의 슬롯이 에포크를 형성합니다.

위의 정의를 명확히 한 후 그림 3과 같이 Ethereum 2.0의 Capser 블록 생성 프로세스를 자세히 설명하겠습니다.

이미지 설명

그림 3 이더리움 2.0의 캐스퍼 합의 프로세스

1. 각 에포크가 시작될 때마다 난수 생성기에 의해 난수가 생성되고 Validator 집합 V는 평균 64개의 부분으로 나누어 S1, S2, ..., S64를 얻는다.

2. epoch에서 각 슬롯 i는 1단계에서 생성된 난수에 따라 Si에서 Validator를 선택하여 후보 블록을 제출하고 슬롯 i에서 후보 블록을 제출한 검증자를 Proposer_i로 쓰고 제출된 후보 블록을 Write B_i .

3. 각 슬롯 i에 대해 Proposer_i를 제외한 Si의 나머지 Validator는 B_i에 투표하고 투표는 증명으로 작성됩니다.5. 각 슬롯 i에 대해 슬롯 i의 블록(B_i)을 수신하거나 3초를 기다린 후 Proposer_i를 제외한 Si의 나머지 유효성 검사기는 그의 관점에서 현재 체인의 헤드를 게시합니다.

LMD GHOST(Lastest Message Driven GHOST)

보조 제목

이 새로운 최적 체인 선택 알고리즘을 소개하기 전에 이더리움 1.0 - GHOST의 최적 체인 선택 알고리즘을 상기해 봅시다. GHOST 알고리즘의 주요 아이디어는 블록체인의 경우 시간 지연과 악의적인 노드의 존재로 인해 많은 포크가 생성될 것이며 포크가 발견되면 하위 트리의 최대 총 난이도를 최적의 체인으로 선택합니다. , 그림 4와 같이:

이미지 설명

그림 4 GHOST 프로토콜

PoW 프로토콜에서 GHOST 프로토콜은 문제가 없지만 PoS 프로토콜은 자연스럽게 Lang Range 공격의 영향을 받습니다. 그러나 현재 비어 있고 과거로 돌아가서 과거 위치에서 거래를 수행합니다 포크는 많은 수의 불법 블록을 생성하며 GHOST 프로토콜은 시스템의 보안을 보장할 수 없습니다. 그림 5와 같이:

이미지 설명

그림 5: 랭 범위

공격자는 과거 위치에 노란색 블록을 생성하고 하위 트리 B의 총 난이도는 10이며 보라색 블록은 최적 체인의 지점이 됩니다. 투표 전에 토큰을 저당해야 하지만 자신의 토큰을 상환한 후 공격자는 토큰 몰수에 대한 걱정 없이 유효성 검사기 시대에 무모하게 행동할 수 있습니다.

따라서 이 문제를 해결하기 위해 이더리움 2.0은 새로운 알고리즘인 LMD GHOST(최신 메시지 구동 GHOST)를 설계했습니다. LMD GHOST의 주요 아이디어는 포크가 있는 체인의 경우 체인의 헤드를 찾는 과정에서 포크 포인트를 만났을 때 현재 에포크에서 더 많은 Validator를 지원하는 하위 트리를 선택하는 것입니다. 계약의 주요 프로세스는 다음과 같습니다.

포크가 있는 체인의 경우:

    2、M=[M1,…,1. H는 생성 블록과 같습니다.

Mn]은 Validator의 최신 뉴스입니다.

3. M에서 가장 많이 지원되는 자식 노드를 선택하고 H로 설정합니다.

4. 자식 노드가 없을 때까지 단계 (2-3)을 반복합니다.

지금까지 Ethereum 2.0의 Casper가 블록을 생성하는 방법을 소개했으며 다음 부분은 후보 블록을 마무리하는 방법입니다.

보조 제목

블록 확인

이전 글에서 정당화되고 확정된 체크포인트에 대해 설명했고, 확정된 체크포인트 이전의 노드가 최종적으로 확정됩니다. 간단히 말해서, 이더리움 2.0의 캐스퍼는 각 epoch를 하나의 체크포인트로 간주하고 체크포인트에 대한 증명 투표를 통해 체크포인트의 정당성과 확정 상태를 결정하는데, 정당성과 확정을 결정하는 핵심 논리는 위에서 설명한 것과 유사합니다. 다음으로 블록이 정당화 및 완료 상태로 들어가는 방법을 설명하겠습니다.

블록을 정당화하는 방법이제 캐스퍼는 에포크를 64개의 슬롯으로 나누는데, 마지막 슬롯을 epoch_boundary_slot이라고 하고, 그 해시를 epoch_boundary_hash로 써서 에포크를 표현하고, 에포크를 체크포인트로 본다. 체인이 맵을 유지하게 하고, 우리는 그것을 justified_hashes라고 부르며, 저장 형식은

. epoch_boundary_hash(이전 epoch에서 가장 작은 슬롯이 있는 블록의 해시) 및 latest_justified_hash(epoch_boundary_hash가 참조하는 justified_hash epoch에서 최신 블록의 해시)라는 두 필드를 유효성 검사기의 증명에 추가합니다. justified_hashes의 슬롯과 동일합니다. 최신 해시가 있는 경우에만 이 증명이 유효합니다.체인은 최신 정당화 해시를 추적하므로 동일한 epoch_boundary_hash를 선택하면 동일한 latest_justified_hash에 투표합니다. 이제 에포크 경계 동안 상태가 어떻게 전환되는지 살펴보겠습니다. 체인에 대해 마지막 4 epoch의 epoch_boundary_block B1, B2, B3, B4를 가정합니다. 여기서 B4는 해당 epoch의 최신 epoch_boundary_block이고 해당 슬롯은 B1_slot, B2_slot, B3_slot, B4_slot, B3_slot = B4_slot - 64로 기록됩니다. 등. Validators의 2/3 이상이 B4를 epoch_boundary_block으로 선택하면 다음을 넣습니다.

justified_hashes를 추가했습니다.

epoch_boundary_block이 정당화되기 위한 조건은 Validators의 2/3 이상이 자신의 증명 epoch_boundary_hash에서 블록을 가리키고, 블록이 justified_hashes에 포함되면 해당 블록이 정당화되고 블록이 이미 있음을 증명하는 상태입니다. justified는 상위 체인에 기록됩니다.

블록을 마무리하는 방법

정당화 상태를 확인한 후 다음 단계는 블록을 파이널라이즈 상태로 만드는 방법을 결정하는 것입니다.

B4 및 B3이 justified_hashes에 있는 경우 epoch_boundary_block으로 B4에 투표한 증명은 B3을 latest_justified_hash로 선택하고 B3을 완료합니다.

B4, B3 및 B2가 justified_hashes에 있는 경우 epoch_boundary_block의 증명으로 B4에 투표하고 latest_justified_hash로 B2를 선택하고 B2를 완료합니다.

B3, B2 및 B1이 justified_hashes에 있는 경우 epoch_boundary_block의 증명으로 B3에 투표하고 latest_justified_hash로 B1을 선택하고 B1을 완료합니다., epoch_boundary_block을 h(t)로, latest_justified_hash를 h(s)로 간주하면 블록의 확인 과정을 더 쉽게 이해할 수 있습니다.

보조 제목

다른 작은 것들

캐스퍼의 완전한 작동을 위해 아직 해결해야 할 작은 일들이 몇 가지 있습니다.

페널티 조건

Noting at Stake 공격을 방어하기 위해 사용자는 PoS의 검증자가 되기 위해 토큰을 저당 잡습니다. 유효성 검사기의 페널티 조건은 다음과 같습니다.

1. 동일한 Validator가 동일한 에포크에서 두 개의 다른 증명을 발행할 수 없습니다. 2. 동일한 Validator는 두 개의 증명을 발행할 수 없습니다. epoch_boundary_blocks는 각각 t1과 t2이고 latest_justified_hash는 s1과 s2이고 s1입니다.

이 벌칙 조건은 앞선 글의 벌칙 조건과 동일합니다.

유효성 검사기 교체 조건

Dynasty(B)는 블록 B에서 제네시스 블록까지의 최종 에포크 수를 나타냅니다. 1/64 Validator는 두 왕조 사이에서 교체될 수 있습니다.

포크 선택 조건

가장 최근에 완성된 블록부터 시작하여 LMD GHOST를 수행합니다.

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