Ethereum (이하 eth)2.0 은 2018 년부터 개선한 지 4 년이 되었다. 기존 eth 1.0 은 pow 컨센서스를 기반으로 한 체인입니다. Pow 컨센서스는 주로 다음과 같은 문제가 있습니다.세계 랭킹 1 위오피스타 공식 포털 포털 주소는 어디입니까
에너지를 낭비하다.
성능이 낮아 초당 십여 건의 거래만 처리할 수 있다.
데이터는 한 노드에 완전히 중앙 집중식으로 저장됩니다.
산력 집중 문제, 칩 거물 이론상 51% 산력 공격 능력이 있다.
Eth 2.0 의 가장 중요한 변경 사항은 pow 를 pos 와 분할 체인으로 바꾸는 것입니다. Eth 2.0 의 주요 목표는 다음과 같습니다.
한 노드에서 block 데이터를 읽고 쓰는 문제를 해결하는 데이터의 읽기 및 쓰기 조각입니다. Pos 알고리즘을 통해 TPS 를 높여 과도한 중심화 민화를 방지하고, 어떤 민간용 기계 (나무 곰팡이파) 도 32 개의 ETH 만 담보하면 validator 노드가 될 수 있다.
다음은 eth2.0 기본 아키텍처입니다
위 그림에서는 모든 sharding chain 을 조정하는 별도의 체인인 beacon chain 을 보여 줍니다. 위 그림의 shard1 ~ shard100 을 보세요. Beacon chain 의 block 이 1 ~ 100 의 shard block 관리를 담당하고 있음을 나타냅니다.
Eth1.0 ~ 2.0 은 phase 로 반복됩니다. 구체적인 시간 노드는 2018 년부터 시작됐다. "분명히, delay 는 오랜 시간이 걸렸습니다."
Phase 0: beacon chain 네트워크 구축.
Phase 1: 데이터를 읽고 쓸 수 있는 분할 네트워크를 구축합니다.
Phase2: EVM 은 분할 네트워크를 지원합니다.
다음은 각 업그레이드와 관련된 몇 가지 기술적 세부 사항입니다. 여기에서 구체적인 기술에 대해 자세히 알아볼 수 있습니다.
Beacon chain 네트워크는 전체 eth2.0 의 핵심 요소로서 validator 의 등록 및 담보를 담당하고 validator 를 Committee 에 무작위로 할당하여 pos 투표를 합니다. Eth 2.0 은 블록의 무작위성을 보장하고 가짜 예측을 방지하기 위해 RANDAO (난수 생성기) random+DAO 를 도입했습니다. 그것의 간단한 원리는 다음과 같습니다:
한 무더기의 사람들이 한 방에 앉아 있고, 한 사람이 임의로 숫자를 주고, 마지막으로 숫자를 주는 사람이 다른 사람이 준 숫자를 합산한 다음 난수 seed 로 사용한다고 가정해 봅시다. (데이비드 아셀, Northern Exposure (미국 TV 드라마), 남녀명언) 마지막 사람이 자신이 예측할 수 있는 수치를 제시하지 못하도록 VDF(Verifiable Delay Functions) 를 만들어 최종 난수를 산출해야 한다.
Beacon chain 도 block chain 시스템으로, validator 가 pos 컨센서스 알고리즘을 통해 각 block 에 투표해야 합니다. 매 12 초마다 slot 을 동기화하고 각 slot 에서 block 을 생성합니다. 32 개의 슬롯은 하나의 epoch 를 구성합니다. 여기서 slot 과 epoch 의 역할은 먼저 불표 () 를 누른 다음, 다음에 소개하겠습니다. 먼저 투표 과정을 말씀드리겠습니다.
각 epoch 라운드에서 validator 는 무작위로 Committee 에 할당되어 투표할 것이다. 각 slot 은 임의로 하나의 proposer 를 block producer 로 선택합니다. 다른 validator 는 이 블록이 합법적인지 확인하기 위해 투표 (POS) 할 것이다. 3 분의 2 이상의 동의가 통과된다면 3 분의 1 이상의 반대표는 합의에 이르지 못할 것이다. (비잔틴 합의). Validator 는 proposer 와 validator 역할을 모두 가질 수 있지만 드문 경우입니다.
공모를 막기 위해 각 epoch 에서 validator 는 무작위로 Committee 에만 할당됩니다. 각 Committee 는 그들이 인접한 두 블록에 연속으로 투표하도록 하지 않을 것이다. Eth2.0 은 수학적으로 validator 가 공모할 확률이 1 조 분의 1 을 넘는다는 것을 보증한다.
위에서 볼 수 있듯이 slot 의 역할은 validator 간 분산 환경을 동기화하는 데 사용되며, 각 slot 의 분할 투표는 validator 의 공모를 줄이고, 각 epoch 이후 validator 와 Committee 는 다시 셔플 투표를 합니다.
현재 beacon chain 은 pos 의 투표 검증만 실행했으며, sharding block 과 관련된 데이터는 아직 보지 못했습니다. 자세한 내용은 beaconscan 을 참조하십시오. Beacon chain 과 sharding chain 을 결합하는 방안도 보이지 않았다. 그러나 지역 사회에는 이미 sharding chain 에 대한 많은 토론이 있으니, 우리는 한번 탐구해 볼 수 있다.
Eth2.0 은 shred 를 64 개로 나눕니다. 각 shred 는 자체 내부의 데이터 읽기 및 쓰기만 담당하며 체인 간 읽기 및 쓰기 작업에는 beacon chain 의 조정이 필요합니다. 여기서 sharding chain 이 해결해야 할 중요한 문제는 거래 및 계약을 수행할 때 글로벌 데이터가 필요하고 다른 노드와 효율적으로 상호 작용하는 방법입니다. 커뮤니티 토론에는 동기식 및 비동기식 두 가지 시나리오가 있습니다.
동기화
두 shred 의 block 을 동시에 변경하다. 양쪽에서 상태 동기화 통신이 이루어져야 합니다.
비동기
Shred 를 가로지르는 거래가 shred A 의 계좌 A 에서 10 원을 뺀 다음 shred B 의 계좌 B 에 10 원을 추가해야 한다고 가정해 봅시다. Shred A 는 먼저 receipt 를 만들었습니다 (A 의 돈, 대상 계정 주소, 대상 shred, 금액). Shred B 는 이 receipt 를 받은 후 먼저 검증을 수행하고 검증이 성공하면 계좌 B 에 10 원을 추가합니다. 이 receipt 는 검증 가능해야 하며 double spending 을 방지해야 합니다. shred A 에 고유한 자체 성장 ID 를 지정해야 합니다. Shred B 는 소스 shred A 의 이 ID 를 추적하기만 하면 이 돈이 쓰였는지 알 수 있다.
여기서 주목해야 할 것은 sharding A 가 돈을 공제하고 receipt 를 만드는 중간 상태가 있다는 것이다. Sharding B 는 생성된 receipt 상태를 자체 shred 와 동기화합니다.
Eth 2.0 클라이언트 아키텍처에서 중간 계층의 컨센서스 계층 (Consensus Layer, 이하 CL) 및 실행 (이하 EL) 프로토콜은 실제로 설계에서 컨센서스와 실행을 분리하는 것이지만 실제로는 Eth 2.0 엔지니어링의 아키텍처만 해석할 뿐, 실제 컨센서스와 실행은 여전히 연결되어 있습니다.
합의와 묶음이 무슨 뜻인지, 내가 나중에 집행한 결과를 참고할 수 있다.
먼저 Eth 2.0 의 CL 및 EL 아키텍처를 소개한 다음 Merge 가 PoS 체인에 PoW 를 통합한 후 응용 프로그램 및 개발자에게 미치는 영향에 대해 설명합니다.
클라이언트를 CL 및 EL 로 세분화합니다
여기 자료는 Hsiao-Wei Wang 의’ 에테르방 The Merge 합병의 기술면 게으름뱅이 가방 (2022-04 판)’ 의 서류를 참고하는데, 그 안에는 많은 링크가 들어 있다.
Eth 1.0 및 Eth 2.0 합의 메커니즘
Eth 1.0 의 공감대 메커니즘은 PoW 와 Fork Choice Rule 로 구성되며, 노드는 새로운 최상위 블록에 있을 때 먼저 PoW 의 유효성을 검증하고, 새 체인에 비해 수집된 작업이 사실인지 여부에 따라 새 체인을 채택합니다.
Eth 2.0 도 같은 구성인데, W 가 바뀌는 것도 같은 구성인데, W 가 바뀌는 것 뿐, 그것이 선택한 체인 검증자 (Validator) 는 Po 의 검증 (Attestation) 수이며, 새로운 검증자는 검증자의 검증자 노드이기도 하고 가중치가 높은 체인을 선택하게 된다. (빌 게이츠, 인증자, 인증자, 인증자, 인증자, 인증자, 인증자, 인증자)
거래 실행, 검증
이전 세션 노드가 새 블록을 수신할 때 수행한 단계가 실제로 한 단계 줄었습니다. 블록 내의 트랜잭션을 실행 및 검증하여 트랜잭션이 유효한지 확인하기 때문입니다. 이러한 블록을 포함시키면 체인이 바깥쪽으로 갈라질 수 있습니다.
Eth Eth 1.0 의 클라이언트에서 PoW, Fork Choice Rule 및 실행 트랜잭션이 바인딩되었는지 확인합니다. 네가 뛰어가서 검증할 때, 매번 그것이 받은 새로운 이 세 단계를 실행한다. 그러나 Eth 2.0 클라이언트에서 이 세 단계는 각각 PoS 선택 규칙을 CL 에 전달하고 검증 트랜잭션을 EL 에 전달하는 단계로 구분됩니다.
Eth 1.0 의 청크
예를 들어, 현재 Eth 2.0 클라이언트의 Prysm CL, 그 EL 은 누구입니까? Merge 에서 원래 Geth 는 PoW 및 Eth 1.0 의 선택 규칙을 검증하는 다음 작업으로, Fork 의 검증 트랜잭션을 수행하여 Eth 2.0 의 EL 이 됩니다.
Eth 2.0 의 청크를 보면 EL 의 컨텐츠/컨텐츠가 Eth 1.0 의 청크와 동일하다는 것을 알 수 있다
CL 과 EL 의 협력 방식
CL 과 EL 로 분해한 후 구성 요소는 달리기를 선택할 수 있지만 스스로 CL (예: Prysm) 을 시작할 수 있다는 것을 의미하며, EL (예: Geth) 은 다른 사람과 함께 공유된다. 지금의 광산처럼 광산에 가입하면 PoW 만 계산하고 교환가방 거래는 책임지지 않는다. CL 과 EL 을 직접 실행할 수도 있습니다.
그리고 CL 사이에 좋은 API (엔진 API) 가 정의되어 활성화됩니다. CL 이 새로운 할부를 받을 때마다 관련 EL 콘텐츠를 요청 EL 로 명명하고, EL 의 블록인 경우 CL 선택 규칙에 따라 CL 선택 블록으로 대표되는 체인의 가장 긴 체인 알림, EL "현재 블록은 이 지역" 블록입니다. 내부 트랜잭션을 적용하고 최신 상태를 계산하고 업데이트하십시오. "
CL 과 EL 간의 상호 작용
CL 과 EL 이 분리되면 자체 독립과 독립 네트워크 사이도 대표됩니다. 이를 사용하는 EL 과 각각 독립적이고 독립적이며, CL 과 그들 사이의 p2 길도 독립적입니다.
원래 개발자의 이용 체인에 있는 데이터의 웹 3.eth 사용은 여전히 그대로 유지되고, 뒤에는 웹 3.eth 가 자료를 가지러 갈 것이다. CL 과 EL 은 각각 다른 P2P 네트워크를 사용하여 다른 CL 또는 EL 을 사용할 수 있습니다. EL 은 원래 Eth 1.0 의 devp2 를 사용하고, CL 은 각각 Eth 2.0 의 libp2p 를 사용합니다. Web3.beaconweb3.beacon
CL 과 EL 간의 상호 작용 및 외부와의 상호 작용 방식
예를 들어, 원래 Geth 노드 (P2P 네트워크 포함, CL 경로 사용, 단지 컨센서스 (PoW, k Choice Rule) 의 구성 요소가 분리되어 개발자가 사용하는 웹 3 패키지 web3.js 또는 ETHERS. 를 독립 노드 (Prysm) 로 담당하고 있다고 가정해 보겠습니다.
여기서 알 수 있는 것은 EVM 트랜잭션인지 아니면 갈 devp2p 네트워크인지 CL 노드 대신 EL 노드로 가는 것인지 알 수 있습니다. 즉, CL 노드가 제안 블록을 제안할 준비가 된 검증자인 경우 EL 이 자신의 블록을 구성하는 데 도움을 줄 수 있도록 EVM 트랜잭션이 들어 있어야 합니다. (데이비드 아셀, Northern Exposure (미국 TV 드라마), 성공명언) CL 은 CL 의 블록이어야 하지만, 안에는 Attestation 과 EVM 의 다양한 거래가 들어 있습니다.
통합의 영향
통합 후 서비스 사용이 발생할 수 있습니다. 개발자에게 영향을 미치지만 프로젝트, 어플리케이션 또는 어플리케이션이 영향을 받을 수 있는지 미리 생각해 보고 일찍 마이그레이션할 가능성은 거의 없습니다. 정보의 어수선한 공급원이 되는 응용 프로그램.
합병이 에테르의 애플리케이션 계층에 어떤 영향을 미칩니까
참고: 이 문장 는 2022 년 3 월에 사양에 대한 최신 변경 사항을 반영하여 업데이트되었습니다. 여기에는 이름 바꾸기가 포함됩니다.
블록 시간
PoS 에서 12 초마다 한 기간씩 2 기간을 선택합니다. 각 기간, 각 기간은 한 기간을 담당하고, 각 기간은 한 기간을 담당하며, 각 기간에는 검증자 제안이 있습니다. 검증자가 온라인이 아니거나 블록을 제출하지 않을 경우 다른 검증자가 이 빈자리를 사용하여 다음 블록을 배양해야 합니다. 12 초의 슬롯을 연기하고 시간이 더 있어야 합니다. (데이비드 아셀, Northern Exposure (미국 TV 드라마), 성공명언)
DIFFICULTY opcode 이름 변경 및 횡령
우선, PoW 가 없고, 다시 한번 난이도가 없다는 개념을 바꾸지만, 이 변경으로 인해 DIFFICULTYopcode 를 사용하는 계약이 직접 떨어질 수 있기 때문에 DIFFICULTYopcode 는 PREVRANDAO 라는 이름을 붙이고, 각 것을 넣는 것으로 바꿀 것이다. (데이비드 아셀, Northern Exposure (미국 TV 드라마), Northern Exposure (미국 TV 드라마), 예술명언) 디피컬티 (DIFFICULTY) 가 이 opcode 계약에서 합병할 수 있었던 telegram 의 공식 다운로드 장소는 더 이상 이 값을 가정한 뒤 계속 증가할 수 없는 숫자가 무질서한 숫자가 될 것이다.
BLOCKHASH opcode 의 가치는 맛있는 음식에 의해 즐길 것이다.
Block Hash 블록의 내용은 광부가 결정하지만, 내부의 내용은 광부가 계산한 결과이므로 블록 체인에 의해 결정되어야 합니다. 블록 체인의 내용은 블록 체인에 의해 결정되고, 블록 체인의 내용도 쉽게 결정되지 않기 때문입니다. (데이비드 아셀, Northern Exposure (미국 TV 드라마), 블록명언) 광부들은 PoW 결과를 계산했기 때문에 입망 후 블록 발견 결과를 대표하는 Block Hash 가 마음에 들지 않았다. 이때 PoW 를 포기하고 다시 계산하면 이번 블록 보상 기회를 포기했다.) (윌리엄 셰익스피어, Northern Exposure (미국 TV 드라마), 스포츠명언) , 계약은 BLOCKHASHopcode 의 값을 사용하여 난수 출처를 가정합니다.
PREVRANDAO 는 Pos 의 검증자 (Pos 광부) 가 Pos 의 내용 (블록) 에서 찾아야 한다는 것은 식은 죽 먹기다. Po 보다 더 빈번하고 어려운 위험이 있지만, 이 데이터 소스는 엉망진창이다.
이 인증자가 제공하는 자주 변경되는 숫자 중 하나가 다른 인증자가 제공하는 숫자이기 때문에 각 인증자의 범위는 제한될 가능성이 높습니다. 이 블록의 슬롯 선택은 일을 하지 않고 각 슬롯을 그대로 유지합니다 (이렇게 하는 것이 그에게 가치가 있다면). 블록 체인의 검증자가 제안합니다.
PREVRANDAO opcode 에 대한 보안 분석에 대한 자세한 내용은 EIP 4399 의 보안 분석 섹션을 참조하십시오.
확실성
이는 PoS 보다 가장 큰 영향 중 하나입니다. Block Confirmation 보다 더 신뢰할 수 있는 Finality 참조를 보유하고 있습니다. 네트워크가 정상적으로 허가되고 공격자가 없는 경우 약 2 개의 epoch (약 12 분) 블록이 Finalized 에 의해 최종적으로 이 블록이 대표하는 이미지가 공개됩니다.
포크 선택 규칙 및 안전 헤드
12 확실성은 어떤 앱에 시간이 좀 오래 걸릴 수도 있고, 다른 방법이 없을 수도 있고, 1 분만 더 지나면 지속적인 결과가 나올 수도 있고, 12 에 최종 확정될 수도 있고, 이 기간 동안 인터넷 문제로 갈라질 수도 있기 때문에, 나는 여전히 이 기간 동안 갈림길이 하나 있다. 왜냐하면 telegram 공식 다운로드 방법이 어떻게 인터넷 선택 규칙을 찾을 수 있는지 체인하기 때문이다. (알버트 아인슈타인, Northern Exposure (미국 TV 드라마), 성공명언)
물론, 이 블록들은 PoW 와 마찬가지로 블록 확인 메커니즘을 통해 확률 보장을 하는 데 사용된다. 각 블록에는 검증자의 증명서가 기록되어 있다. 블록에 있는 증명의 이 수를 통해 검증자는’ 포함 또는 비블록’ 보다 더 녹화된 참조를 가질 수 있다.’ 이 블록의 증명’ 은 검증자의 1/6 에 불과한 Attestation, 중국 틱톡(더우인), 분기된 전파자의 확률이 높다’,’ 이 블록
따라서 이 새로운 분기 선택 규칙은 새로운 시간 레이블 safe 를 가져옵니다. 원래 개발자는 기본 latest 시간 레이블로 보입니다. 새로 받은 블록에 대한 정보를 노드에 알려 주십시오. Safe 태그는 노드를 요청하는 것이 시간 태그입니다. Fork Choice Rule 을 계산한 후, 충분히 안정된 라벨의 정보를 느꼈다. 일반적으로 레이블의 블록은 약 4 블록 동안 지속됩니다. 따라서 Merge 에서 개발자는 safeweb3latest 가 기본적으로 latest 를 사용하는지 아니면 safe 를 사용하는지, 그리고 사용하려는 응용 프로그램의 라벨을 사용한다는 점에 유의해야 합니다.
전신: https://t.me/blckchainfans