대중 과학: ETH 1.x 및 상태 비저장 노드 소개
편집자 주: 이 기사의 출처는이더리움 애호가(ID: ethfans)편집자 주: 이 기사의 출처는
이더리움 애호가(ID: ethfans)
, 저자: Lai Jack Lai Yanting, 승인을 받아 Odaily에서 재인쇄함.
이 글은 eth 1.0에 존재하는 다양한 문제점을 분석하고, 이더리움 재단에서 제안한 eth 1.x 업그레이드 관련 변경 사항이 현재 이더리움의 곤경을 어떻게 개선할 수 있는지 소개합니다.
eth 1.x는 무엇입니까
이더리움 2.0에 대한 연구는 오랫동안 진행되어 현재까지(2020/06) 아직 정식 런칭까지는 2~3년이 소요되며 eth 2.0은 비콘체인(Beacon Chain)과 다수의 조합으로 전개될 예정이다. eth 1.0은 eth 2.0의 샤드 체인 중 하나가 되려면 수정 및 업그레이드해야 합니다. 이는 현재의 이더리움 1.0 블록체인이 변경되어야 하며 향후 5-10년 동안 계속 운영 및 개발될 것임을 의미합니다. 그리고 eth 1.x는 이더리움 1.0의 업그레이드 버전 이름입니다.
첫 번째 레벨 제목
이더리움 1.0의 단점과 문제점
Ethereum 1.x를 소개하기 전에 먼저 Ethereum의 현재(2020/06) 문제를 인식해야 eth 1.x의 배경과 해결하려는 문제점을 완전히 이해할 수 있습니다.
보조 제목
2020/05년부터 가스 가격 상승으로 인해 개발자와 고주파 사용자가 불만을 제기했습니다.이 이유는 이더리움 사용자 수의 증가뿐만 아니라 스마트 계약 상호 작용의 비율이 증가했기 때문입니다. 많은 Gas(단순히 ETH 전송 비율이 희석됨)로 인해 Ethereum 네트워크가 계속 정체됩니다.
- etherscan.io -
이러한 상황에 직면한 채굴자 커뮤니티는 2020/6/19 UTC에 투표하여 각 블록의 가스 한도를 10,000,000에서 12,000,000으로 늘렸습니다.
이미지 설명
어떤 사람들은 12,000,000 Gas Limit이 여전히 혼잡한데 왜 그것을 늘리지 않느냐고 생각할 수도 있습니다. 그 이유는 Gas Limit의 증가로 인해 각 블록의 처리 시간이 길어지고 Uncle Blocks의 수가 증가하여 네트워크의 합의 메커니즘이 건강하지 않게 되고 채굴자는 많은 추가 계산을 소비해야 하기 때문입니다. 처리를 위해.
또한 독립 노드와 소규모 마이닝 풀이 Uncle Blocks를 채굴하기가 더 쉽기 때문에 장기적으로 블록 생성에 대한 보상 기대치가 낮아지면 일부 노드가 생계를 유지하고 네트워크를 떠나게 됩니다. 이것은 이더리움 네트워크를 더욱 중앙 집중화하고 대규모 마이닝 풀에 더욱 중앙 집중화하여 네트워크의 장기적인 건강과 보안을 위험에 빠뜨릴 것입니다.
보조 제목
문제 (B): 상태 폭발
점점 더 많은 스마트 계약이 배포되고 계약 상호 작용이 많아짐에 따라 Ethereum 네트워크가 저장해야 하는 "상태"의 크기가 "비례 시리즈"로 증가하고 있습니다. 상태의 성장은 노드의 저장 공간에 반영됩니다.
또한 이에 따라 블록 검증의 난이도가 높아져 전체 네트워크 지연이 발생하고 TPS가 더욱 감소합니다.
- Roadmap of Ethereum tweeted by Vitalik on 2020/3/19 -
이 과정은 마치 따뜻한 물에 개구리를 끓이는 것과 같지만 몇 년이 지나면 이더리움 네트워크에 엄청난 보안 문제가 발생하게 됩니다. 전에.
이미지 설명
eth 1.x other
첫 번째 레벨 제목
이더리움의 미래
eth 2 phase 2 and beyond
2020년 3월 19일, Vitalik은 트위터에서 향후 5년에서 10년 동안 이더리움 개발을 위한 로드맵을 공유했습니다. 로드맵은 주로 다음 네 부분으로 구성됩니다.
eth 2 phase 1
eth 1.x 무국적
eth 2 단계 0 준비(핵심 경로, eth 1 ➔ eth 2 병합에 집중, PoW 제거)
eth1 ➔ eth2 병합 사양 및 구현
eth 1.x 무국적
그 중 "eth 1.x 무국적"은 eth1➔eth2 합병의 가장 중요한 조건이라고 할 수 있는데, 본고에서는 "무국적"을 주축으로 하여 관련 소개를 하고자 한다.
첫 번째 레벨 제목
이더리움 블록체인의 본질은 채굴자들이 유지하는 분산된 대규모 "상태 머신"이기 때문에 블록 수가 증가함에 따라 상태를 변경하고 계속 진행합니다. 이더리움의 완전한 "상태"에는 모든 개별 계정 및 잔액의 현재 상태는 물론 EVM에서 배포되고 실행되는 모든 스마트 계약의 전체 메모리가 포함됩니다.
이더리움 네트워크는 전체 네트워크의 모든 노드의 합의를 얻은 각 블록 높이에서 하나의 "상태"만 가지고 있습니다. 이 "상태"는 각각의 새로운 블록에서 변경되고 블록과 함께 블록체인에 연결됩니다.
이미지 설명
- 이미지 출처: https://blog.ethereum.org/ -
보조 제목
노드가 상태를 읽는 데 더 많은 시간이 걸리고 트랜잭션 처리 속도가 느려집니다.
새로운 상태 트리를 구성하는 데 시간이 오래 걸리고 블록 검증 속도가 느려집니다.
요약
채굴자가 트랜잭션 처리를 완료하면 많은 수의 해시 값 계산을 포함하는 새로운 상태로 구성된 트리 구조 상태 트리를 구성해야 합니다. 루트 해시를 계산한 후 새로운 블록 헤더를 구성하고 새로운 블록을 패키징할 수 있습니다.
요약
일반적으로 "상태" 및 "노드 크기"가 지속적으로 증가하면 새로운 전체 노드의 시작 비용이 크게 증가합니다. "저장 공간" 및 "동기화 시간"에 대한 수요가 증가하면 네트워크의 전체 노드 수 감소.
또한 이더리움 네트워크의 전반적인 성능 저하가 불가피합니다. 시간이 많이 걸리는 상태 트리 쿼리 및 계산이 증가하고 이더리움에서 점점 더 많은 계약 트랜잭션이 발생함에 따라 TPS가 더 감소하여 네트워크가 더 혼잡해지고 더 높은 가스 가격 경쟁이 발생할 수 있습니다.
eth 1.x의 제안
상태의 지속적인 성장은 이더리움 네트워크의 건강에 상당한 영향을 미치기 때문에 솔루션 중 하나는 "이더리움 네트워크에서 상태의 필요성을 제거"하는 것입니다. 2020년 3월 19일에 Vitalik이 발표한 이더리움의 향후 로드맵을 자세히 살펴보고 일련의 솔루션을 확인하십시오.
텍스트
이미지 설명
The 1.x Files: The Updated Stateless Tech Tree (April 2, 2020)
The 1.x Files: A Primer for the Witness Specification (May 4, 2020)
The 1.x Files: EIP 1559 and the Ethereum Improvement Horizon (June 16, 2020)(Up to date)
-2020/4/2 업데이트된 eth 1.x 기술 트리-
첫 번째 레벨 제목
eth 1.x의 목적
보조 제목
(A) eth 1.0의 수명 연장
블록이 계속 증가함에 따라 eth 1.0 블록체인의 보안, 안정성 및 탄력성을 유지하여 사람들이 상태의 일부만 다운로드하도록 선택하고 저렴한 하드웨어에서 노드를 실행할 수 있습니다.
보조 제목
(B) eth 2.0과의 인터페이스
eth 2.0의 샤드는 상태 비저장이므로 "상태 비저장"은 eth 2.0 블록 검증에 참여하기 위한 전제 조건입니다. eth 1.0이 eth 2.0과 호환되려면 원활한 전환과 eth 2.0과의 인터페이스를 위해 stateless 작업을 지원해야 합니다.
이 두 가지 목표를 달성하기 위해 맨 오른쪽 스킬 트리 끝에 "Stateless Ethereum"을 볼 수 있습니다. 그러나 전체 이더리움 네트워크가 상태를 기반으로 존재하기 때문에 "무상태" 이더리움이라는 용어는 다소 부정확할 수 있습니다.
특히 이더리움 네트워크의 일부 노드가 "전체 이더리움 상태의 사본을 유지"하는 것을 필수 사항이 아닌 옵션으로 만드는 방법을 찾는 것입니다. 따라서 현재 이더리움 네트워크는 전체 네트워크의 완전한 상태를 보존하지 않는 경량 노드를 지원해야 합니다. "상태 비저장 노드"는 네트워크의 새 블록 검증에 참여합니다.
(1) 블록 증인 메커니즘
(3) 데이터 구조를 바이너리 시스템(Binary)으로 변환
(1) 블록 증인 메커니즘
상태 비저장 노드가 유효성 검사에 참여하는 방법
간단하게 설명하자면 전체 네트워크의 상태 정보를 가지고 있는 "Full State Node"는 새로운 블록을 패키징할 때 "Block Witness"를 생성하여 전체 네트워크의 상태를 저장하지 않는 "stateless node"가 되도록 하는 것입니다. 네트워크 새로운 블록은 블록 증인이 제공하는 정보로 확인할 수 있습니다.
"증인 차단"이란 무엇입니까?
앞서 언급했듯이 이더리움의 데이터 구조는 약 5억 개의 상태 값으로 구성된 Merkle-Patricia Trie입니다. 그러나 상태 값의 약 0.1%(약 500,000)만이 개인 계정의 ETH 잔액, 계약에 기록된 각 주소가 보유한 토큰 수와 같이 블록 높이에 따라 변경됩니다. 스마트 계약의 코드와 같은 상태 값의 99.9%, 0.3%의 Uniswap 수수료 매개 변수 및 기타 정보는 스마트 계약이 배포되면 변경되지 않습니다.
새로운 블록(현재 1,200만 가스 한도)은 최대 571개의 트랜잭션만 보유할 수 있기 때문에 관련된 상태 값 변경은 매우 제한적입니다. 그러면 모든 상태 값을 저장하지 않는 상태 비저장 노드는 트랜잭션에 관련된 상태 값과 관련 없는 해시 값을 완전한 상태의 노드에 요청하는 한 실제로 검증을 위해 Merkle Root를 계산할 수 있습니다. .
텍스트https://blog.ethereum.org/-
아래 그림과 같이 하단에 있는 14개의 다이아몬드가 이더리움 네트워크의 모든 상태 값을 나타내고 녹색 상태 값을 변경하기 위한 새 블록의 트랜잭션이 하나만 있다고 가정하면 상태 비저장 노드는 실제로 녹색 원본 1개 필요 변경되지 않은 상태 값, 자주색 Hash 값 및 기타 6개 Hash 값 정보는 9개 Hash 값에 대해 14개 상태 값을 모두 갖지 않고 4개 Hash 값 계산을 통해 새로운 Root Hash(Merkle Root)를 계산할 수 있습니다. 계산.
이미지 설명
-이미지 출처:
상태 비저장 노드가 검증에 참여할 수 있도록 하기 위해 최근 연구 방향은 "블록 증인"이 "블록 헤더 블록 헤더"의 일부가 될 수 있고 새로 채굴된 블록과 함께 전체 네트워크 노드에 브로드캐스트할 수 있도록 합니다. 추가 "블록 감시 요청"을 시작하지 않고 블록을 확인하기 위한 상태 비저장 노드.
이러한 방식으로 상태 비저장 노드는 이더리움 네트워크의 새 블록 검증에 참여할 수 있습니다.
첫 번째 레벨 제목
(2) EVM 변경
state 값의 변경 및 연산은 모두 EVM에서 이루어지며, 마찬가지로 블록 증인도 풀노드의 EVM 연산을 통해 생성되어야 합니다. EVM의 변경 목표는 비용 및 인센티브 메커니즘과 밀접한 관련이 있으며, 주로 가스 소비 추정 및 노드 간 브로드캐스트 지연에 대한 영향을 줄이는 방법을 포함합니다.
블록 증인 가스 계산(증인 가스 회계)
추가 컴퓨팅 리소스를 사용하려면 전체 노드에서 블록 증인을 생성해야 하므로 해당 가스 비용이 발생하며 현재 이 비용은 거래 개시자가 부담하는 것이 더 타당합니다. 거래 개시자가 정확한 가스 한도를 설정하기 위해 거래를 보낼 때 추가 가스를 정확하게 추정할 수 있는 방법은 아직 연구 중이며 확정되지 않았습니다.
또한, 동일한 블록 내에서 하나 이상의 트랜잭션에 의해 상태 값이 변경되어 Gas의 이중 지불이 발생할 수 있다는 점을 고려하면 이 부분은 채굴자에게 추가 보상 수수료가 될 수 있습니다.
보조 제목
스마트 계약 코드 블록(Code Merkleization)
이때 또 다른 문제가 발생하는데, 스마트 컨트랙트의 풍부한 코드 중 극히 일부만이 트랜잭션 연산과 연관될 수 있기 때문에 "프로그램 코드 블록"이라는 개념이 제안되었습니다.
"코드 블록"은 스마트 컨트랙트의 Bytecode를 분할하는 방식입니다. 스마트 컨트랙트에서 트랜잭션과 관련된 코드를 분해하여 블록 증인의 일부로 제공합니다. 상태 노드는 작업 검증에 사용됩니다.
그 목적은 불필요한 코드 호출을 피하고 거대한 블록체인 증인 생성으로 인한 컴퓨팅 시간 증가와 노드 간 통신 지연을 피하는 것입니다.
(3) 데이터 구조를 바이너리 시스템(Binary)으로 변환
이더리움 연구원 이고르 만드리겐(Igor Mandrigen)이 진행한 실험(Binary Tries Experiment)에 따르면 이더리움 데이터 구조를 현재의 16진수(Hex)에서 이진수(Binary)로 변경하면 각 블록의 블록 증인 크기는 800~3,400kB에서 300~1,400kB로 변경하면 네트워크에서 블록 감시 전파의 지연 시간이 크게 줄어들어 블록 감시 메커니즘이 보다 이상적으로 실행될 수 있습니다.
그러나 Hex에서 Binary로 전환하는 구체적인 구현 방법과 전환 전략은 아직 완전히 확정되지 않았으며 관심 있는 친구들은 Ethereum Foundation에서 발표하는 관련 뉴스를 계속해서 주목할 수 있습니다.
무국적 이더리움 무국적 이더리움
지금까지 "블록 감시 메커니즘"을 도입하고 "EVM"에 필요한 변경을 수행하고 데이터 구조를 "바이너리 시스템"으로 변환하여 eth 1.x의 일반적인 모습을 설명했습니다.
상태 비저장 노드를 지원하는 1.x 네트워크는 Ethereum 1.0 블록체인 네트워크에 다음과 같은 주요 영향을 미칩니다.
i. 새로 가입한 노드에 더 친숙해집니다.
전체 네트워크 상태의 확장과 블록 높이의 증가로 인해 새 노드를 시작하기 위한 동기화 시간이 점점 더 길어질 것입니다(2020/06 기준으로 새 전체 노드를 시작하려면 최소한 그 이유는 전체 노드의 동기화는 제네시스 블록부터 시작하여 각 블록을 검증하고 동기화해야 하고 검증 블록은 블록 높이의 전체 네트워크 상태를 가져야 하므로 각 블록에서 동기화 상태는 현재 동기화 노드의 큰 병목 현상입니다.
비상태 노드 시대의 도래는 블록을 동기화하는 고통스러운 프로세스를 크게 개선할 것입니다.미래에는 "블록 헤더"와 "블록 증인"만이 블록 검증을 완료할 수 있습니다.동기화 노드 경험의 향상은 더 많은 것을 허용할 것입니다. 여러 사람이 노드를 실행하는 비용(시간 및 하드웨어 리소스)을 기꺼이 감당할 수 있습니다.
ii. 라이트 노드가 자급자족하게 됨
현재 이더리움 네트워크에서 라이트 노드는 독립적으로 새로운 블록을 검증하고 트랜잭션을 검증할 수 있는 능력이 없습니다. 라이트 노드는 트랜잭션 검증에 필요한 머클 증명 정보를 저장하지 않기 때문에 인접한 전체 노드에 p2p 요청을 보내 요청해야 합니다. 그러나 가벼운 노드 이제 지원을 제공하려는 Buddha Heart 전체 노드가 점점 더 적어지고 있습니다.
상태 비저장 메커니즘은 라이트 노드가 자신이 유지 관리하는 상태의 일부(자체 계정 및 계약의 잔액과 같은 정보)에 의존하고 다른 사람에게 묻지 않고 블록 헤더 및 블록 증인을 통해 독립적으로 확인하도록 도와줍니다.
iii.노드 네트워크 보안 개선
블록체인 네트워크의 보안은 새로운 블록의 검증에 참여할 수 있는 총 노드 수에 달려 있기 때문에 총 노드 수가 증가함에 따라 네트워크 공격 비용이 증가하여 블록체인의 위험을 효과적으로 줄일 수 있습니다. 패배하고 있는 시스템.
새로운 노드의 시작 비용 감소와 새로운 블록의 검증에 투자하는 다수의 라이트 노드로 인해 네트워크의 전반적인 보안이 크게 향상될 것입니다.
마지막 포인트도 핵심 포인트인데, 앞서 언급한 바와 같이 eth 2.0은 코어 비콘 체인과 다중 샤드 체인으로 구성될 것이며, 전체 네트워크의 상태는 다중 샤드에 의해 별도로 저장될 것입니다. 샤드마다 상태가 다르기 때문에 다른 샤드의 상태 정보를 저장하지 않습니다. 따라서 각 샤드에 대해 다른 샤드는 "상태 비저장 노드"와 같습니다.
결론적으로
여러 샤드 체인 간에 효과적으로 확인하고 동기화할 수 있으려면 "상태 비저장 확인 메커니즘"에 의존해야 합니다. 따라서 현재 eth 1.0이 향후 eth 2.0의 샤드 체인 중 하나가 될 수 있다면 stateless eth 1.x로 업그레이드하는 것이 중요한 단계입니다.
첫 번째 레벨 제목
결론적으로
위의 소개를 통해 독자들이 현재 eth 1.0에서 eth 1.x로 업그레이드하기 위해 필요한 변경 사항과 변경 완료 후의 미래에 대해 더 명확하게 이해해야 한다고 생각합니다.
eth 1.x 업그레이드가 완료되면 사람들은 저렴한 하드웨어로 자신의 상태 비저장 노드(라이트 노드)를 실행할 수 있으며 검증에 참여할 수 있는 더 많은 라이트 노드가 전체 네트워크의 보안을 더욱 유지할 수 있습니다.
상태 비저장 검증 메커니즘을 갖춘 eth 1.x만이 eth 2.0의 비컨 체인 및 기타 샤드 체인과 원활하게 인터페이스할 수 있으므로 공식적으로 이더리움 네트워크가 상태 비저장 검증 메커니즘 및 샤딩 기술 미래로 구축된 경량 eth 2.0에 진입할 수 있습니다.
위에 있는 경우
A. 명확하게 작성하지 못한 부분 B. 작성 개선을 위한 제안 C. 블록체인 기술에 대한 지식 콘텐츠를 작성하여 공유할 수 있기를 바랍니다.
아래에 의견을 남겨주시면 대단히 감사하겠습니다. 제 글이 저와 같이 블록체인 기술과 지식을 배우고자 하는 더 많은 친구들에게 도움이 되었으면 합니다. 읽은 후 무언가를 얻었다고 느끼면
박수 50번 줘https://medium.com/


