병합이 Ethereum의 응용 프로그램 계층에 미치는 영향

이더리움의 지분 증명(The Merge)으로의 전환이 임박했습니다. 데브넷이 세워지고 사양이 확정되고 커뮤니티 활동이 본격적으로 시작되었습니다. 병합은 이더리움이 최종 사용자, 스마트 계약 및 dapp에 대해 작동하는 방식에 최소한의 영향을 미치도록 설계되었습니다. 즉, 강조할 가치가 있는 몇 가지 사소한 변경 사항이 있습니다. 자세히 알아보기 전에 전체 병합 아키텍처에 대한 컨텍스트를 제공하는 몇 가지 링크가 있습니다.

  • 로드맵 발전
  • 병합 후 클라이언트 아키텍처

이 게시물의 나머지 부분에서는 독자가 위의 내용에 익숙하다고 가정합니다. 더 깊이 파고 싶은 사람들을 위해 병합에 대한 전체 사양은 여기에서 확인할 수 있습니다.

  • 실행 계층
  • 합의 계층
  • 엔진 API

블록 구조

병합 후에는 작업 증명 블록이 네트워크에 더 이상 존재하지 않습니다. 대신 기존의 작업증명 내용은 Beacon Chain에서 생성된 블록의 구성요소가 됩니다. 그러면 Beacon Chain을 이전 작업 증명 합의 레이어를 대체하는 이더리움의 새로운 지분 증명 합의 레이어로 생각할 수 있습니다. 비콘 체인 블록에는 ExecutionPayloads가 포함됩니다. , 현재 작업 증명 체인의 블록과 동일한 병합 후 블록입니다. 아래 이미지는 이 관계를 보여줍니다.

최종 사용자 및 애플리케이션 개발자의 경우 이러한 ExecutionPayloads Ethereum과의 상호 작용이 일어나는 곳입니다. 이 계층의 트랜잭션은 여전히 ​​실행 계층 클라이언트(Besu, Erigon, Geth, Nethermind 등)에서 처리됩니다. 다행히도 실행 계층의 안정성으로 인해 Merge는 최소한의 주요 변경 사항만 도입합니다.

채굴 및 Ommer 블록 필드

병합 후 작업 증명 블록 헤더에 이전에 포함된 여러 필드는 지분 증명과 관련이 없기 때문에 사용되지 않습니다. 도구 및 인프라에 대한 중단을 최소화하기 위해 이러한 필드는 데이터 구조에서 완전히 제거되지 않고 0 또는 데이터 구조와 동등한 것으로 설정됩니다. 블록 필드에 대한 전체 변경 사항은 EIP-3675에서 확인할 수 있습니다.

필드 일정한 값 댓글 오머 [] RLP([]) =0xc0 ommersHash 0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347 =Keccak256(RLP([])) 난이도 0 nonce 0x0000000000000000

지분 증명은 작업 증명과 같은 ommers(a.k.a. uncle blocks)를 생성하지 않기 때문에 각 블록의 이러한 목록(ommers )는 비어 있고 이 목록의 해시(ommersHash )는 빈 목록의 RLP로 인코딩된 해시가 됩니다. 마찬가지로 어려움nonce 작업 증명의 기능이며 0으로 설정됩니다. , 바이트 크기 값을 존중하면서.

mixHash , 다른 마이닝 관련 필드는 0으로 설정되지 않고 대신 비콘 체인의 RANDAO 값을 포함합니다. 이에 대한 자세한 내용은 아래를 참조하세요.

블록해시 &어려움 opcode 변경

병합 후 BLOCKHASH opcode는 계속 사용할 수 있지만 작업 증명 해시 프로세스를 통해 더 이상 위조되지 않는다는 점을 감안하면 이 opcode에서 제공하는 의사 난수는 훨씬 약해집니다.

이와 관련하여 어려움 opcode(0x44 ) 업데이트되고 RANDOM으로 이름이 변경됩니다. . 병합 후 비콘 체인에서 제공하는 임의성 비콘의 출력을 반환합니다. 따라서 이 opcode는 애플리케이션 개발자가 BLOCKHASH보다 더 강력하지만 여전히 편향될 수 있는 임의성의 소스가 됩니다. .

RANDOM에 의해 노출된 값 ExecutionPayload에 저장됩니다. 여기서 mixHash , 작업 증명 계산과 관련된 값이 저장되었습니다. 페이로드의 mixHash 필드 이름도 random으로 변경됩니다. .

다음은 어려움 &랜덤 opcode는 병합 전후에 작동합니다.

미리 병합하면 0x44가 표시됩니다. opcode는 난이도를 반환합니다. 블록 헤더의 필드. 병합 후 opcode, 이름이 RANDOM으로 변경됨 , 이전에 mixHash가 포함된 헤더 필드를 가리킵니다. 이제 무작위를 저장합니다. 비콘 체인 상태의 값입니다.

EIP-4399에 공식화된 이 변경 사항은 온체인 애플리케이션에 병합이 발생했는지 여부를 평가하는 방법도 제공합니다. EIP에서:

<블록 인용>

또한 이 EIP에서 제안한 변경 사항을 통해 스마트 계약에서 PoS로의 업그레이드가 이미 발생했는지 여부를 결정할 수 있습니다. 이것은 DIFFICULTY opcode의 반환 값을 분석하여 수행할 수 있습니다. 2**64보다 큰 값 PoS 블록에서 트랜잭션이 실행되고 있음을 나타냅니다.

차단 시간

병합은 이더리움의 평균 블록 시간에 영향을 미칩니다. 현재 작업 증명이 진행 중인 블록은 실제 블록 시간에 상당한 차이가 있는 평균 ~13초마다 들어옵니다. 지분 증명 하에서 블록은 검증자가 오프라인이거나 제 시간에 블록을 제출하지 않아 슬롯을 놓친 경우를 제외하고 정확히 12초마다 발생합니다. 실제로 이것은 현재 <1%의 슬롯에서 발생합니다.

이는 네트워크에서 평균 블록 시간이 1초 이하로 감소함을 의미합니다. 계산에서 특정 평균 블록 시간을 가정하는 스마트 계약은 이를 고려해야 합니다.

안전 헤드 및 최종 블록

작업 증명 아래에는 항상 재구성의 가능성이 있습니다. 응용 프로그램은 일반적으로 표준 체인에서 제거되거나 "확인"될 가능성이 없는 것으로 처리하기 전에 새 헤드 위에 여러 블록이 채굴되기를 기다립니다. 병합 후에는 대신 완료된 개념이 있습니다. 그리고 안전 머리 블록. 이러한 블록은 작업 블록의 "확인된" 증명보다 훨씬 더 안정적으로 사용할 수 있지만 올바르게 사용하려면 이해의 전환이 필요합니다.

최종 블록은 2/3 이상의 검증인이 정식으로 승인한 블록입니다. 충돌하는 블록을 생성하려면 공격자가 총 지분의 최소 1/3을 소각해야 합니다. 이 글을 쓰는 시점에서 이것은 이더리움에서 100억 달러 이상(또는 250만 ETH 이상)을 나타냅니다.

안전한 머리 블록은 정상적인 네트워크 조건에서 표준 체인에 포함될 것으로 예상되는 블록입니다. 네트워크 지연이 4초 미만이고 정직한 대다수의 검증인이 있고 포크 선택 규칙인 안전한 머리에 대한 공격이 없다고 가정합니다. 결코 고아가 되지 않을 것입니다. 다양한 시나리오에서 세이프 헤드를 계산하는 방법을 자세히 설명하는 프레젠테이션을 여기에서 볼 수 있습니다. 또한 안전한 머리의 가정 및 보장 다음 논문에서 공식적으로 정의되고 분석됩니다.

병합 후 실행 계층 API(예:JSON RPC)는 안전한 헤드를 반환합니다. 기본적으로 최신을 요청할 때 블록. 정상적인 네트워크 조건에서 안전한 머리 그리고 체인의 실제 끝은 동일합니다(안전한 머리가 몇 초만 뒤따라오는 경우). 안전 머리 현재 작업 증명 최신보다 재구성될 가능성이 적습니다. 블록. 지분 증명 체인의 실제 팁을 노출하려면 안전하지 않은 플래그가 JSON RPC에 추가됩니다.

완료된 블록은 또한 새로운 finalized를 통해 JSON RPC를 통해 노출됩니다. 깃발. 이것은 작업 확인서의 증거를 더 강력하게 대체할 수 있습니다. 아래 표에 요약되어 있습니다.

블록 유형 합의 메커니즘 JSON RPC 재구성 조건 머리 작업 증명 최신 예상대로 주의해서 사용해야 합니다. 머리 지분 증명 안전하지 않음 예상대로 주의해서 사용해야 합니다. 안전한 머리 지분 증명 최신 가능, 큰 네트워크 지연 또는 네트워크 공격이 필요합니다. 확인됨 작업 증명 N/A 가능성이 낮음, 확인 수> #의 경쟁 깊이 체인을 채굴하는 데 대다수의 해시레이트가 필요합니다. 완료 지분 증명 완료 매우 가능성이 낮음, 최소 1/3을 줄여야 하는 경쟁 체인을 완료하려면 2/3 이상의 검증인이 필요합니다.

다음 단계

이 게시물이 애플리케이션 개발자가 많은 기대를 모은 지분 증명으로의 전환을 준비하는 데 도움이 되기를 바랍니다. 앞으로 몇 주 안에 더 광범위한 커뮤니티에서 테스트할 수 있는 수명이 긴 테스트넷이 제공될 것입니다. 또한 인프라, 도구 및 응용 프로그램 개발자가 질문을 하고 The Merge에 대한 최신 기술 업데이트를 들을 수 있는 Merge 커뮤니티 호출이 있습니다. 거기서 만나요 👋🏻

<시간 />

"안전한 머리" 섹션의 핵심 콘텐츠를 제공한 Mikhail Kalinin과 이 게시물의 초안을 검토한 Danny Ryan 및 Matt Garnett에게 감사합니다.


이더 리움
  1. 블록체인
  2. 비트코인
  3. 이더 리움
  4. 디지털 화폐 교환
  5. 채광