이더리움 확장성 과제: 상태 데이터
편집자 주: 이 기사의 출처는이더리움 애호가(ID: ethfans)편집자 주: 이 기사의 출처는
이더리움 애호가(ID: ethfans)
이더리움 애호가(ID: ethfans)
, 저자: Trustnodes, 번역 및 교정: Min Min & A Jian, 승인을 받아 Odaily에서 재인쇄함.
이더리움에서 사용 가능한 블록 가스의 상한선을 늘렸지만 블록의 크기(데이터 양)에는 큰 변화가 없었습니다.
위의 그림에서 알 수 있듯이 이더리움의 블록 데이터 크기와 블록 가스의 상한선 사이에는 분명히 일정한 관계가 있습니다. 꺾은선형 차트의 경우 상승 추세도 표시됩니다. 그러나 둘의 관계는 다소 복잡하다.
이더리움의 가스는 작업을 수행하기 위해 소비되는 컴퓨팅 리소스의 양을 측정하는 추상 단위입니다.
계약은 튜링 완료이므로 트랜잭션에 루프 구조를 무한대로 포함할 수 있습니다. (무한 루프에 빠지지 않도록) 이더리움은 단일 블록에 사용할 수 있는 가스의 상한을 현재 1,200만 개로 설정했습니다.
이미지 설명
-2020년 6월 이더리움 거래량-
블록 가스 한도가 50% 증가했음에도 불구하고 이더리움의 거래량은 여전히 사상 최고치를 밑돌고 있습니다. 대부분의 Gas가 토큰 거래나 스마트 컨트랙트 거래에 사용되기 때문입니다.
간단한 토큰 거래를 수행하면 80,000 가스가 소비되는 반면, 이더 전송 거래는 20,000 가스를 소비합니다. dapp 트랜잭션 실행은 상황에 따라 다르지만 일반적으로 토큰 트랜잭션보다 가스 소비가 높습니다.
대조적으로 Bitcoin은 훨씬 간단합니다. 기본 트랜잭션은 250바이트입니다. ).
Ethereum에는 계정 시스템을 사용하기 때문에 프로토콜 수준의 트랜잭션 압축이 없습니다.
계정 관리를 용이하게 하기 위해 Ethereum 네트워크는 새 블록이 추가될 때마다 상태를 업데이트합니다. Ethereum Foundation의 Griffin Ichiba Hotchkiss는 다음과 같이 말했습니다.
"완전한 이더리움 '상태'는 모든 계정과 잔액의 현재 상태, 그리고 EVM(이더리움 가상 머신)에서 배포되고 실행되는 모든 스마트 계약의 '메모리'를 의미합니다. 이더리움 블록체인에서 완성되는 모든 모든 블록은 전체 네트워크가 동의하는 단 하나의 상태를 가집니다. 새 블록이 체인에 추가될 때마다 상태가 변경되고 업데이트됩니다."
가장 간단한 비교를 위해: 비트코인 상태는 UTXO(미사용 유효 트랜잭션 출력)를 나타냅니다. 이더리움의 상태든 비트코인의 상태든 이해하기 어려운 개념입니다. 간단히 말해서 네트워크의 메모리(램) 또는 스냅샷입니다. 따라서 계약에 포함된 계정 잔액과 코드 기능이 공개적으로 표시됩니다.
제네시스 블록에서 이더리움을 동기화하려면 약 1주일이 걸리는 4억 개의 "노드"를 통과해야 합니다.
블록이 생성될 때마다 전체 이더리움 네트워크(이더리움 클라이언트를 실행하고 모든 이더리움 블록체인 블록을 저장하는 컴퓨터)의 10,000개 이상의 전체 노드가 로컬에서 업데이트되어 약 3,000개의 상태 트리 "노드"가 업데이트됩니다.
이는 컴퓨터의 메모리가 15초마다 블록을 동기화해야 하고 디스크가 각 블록의 이더리움 네트워크에 대한 변경 사항을 계속 읽고 써야 한다는 것을 의미합니다.
따라서 변경 사항이 많을수록 컴퓨터의 메모리와 디스크가 더 많이 사용되며 리소스가 상한선에 도달하면 전체 네트워크의 진행이 동기화될 수 없습니다.
동기화가 불가능하다는 것은 기록을 다운로드할 수 없다는 것이 아니라 전체 네트워크와 동시에 트랜잭션 처리를 완료할 수 없다는 것을 의미합니다.
또한 작년 한 논문에서는 프로그래머에게 "실행 비용(Gas)과 사용된 리소스(CPU 및 메모리 등)의 양"을 정확하게 연관시키는 수학적 모델을 구성하는 것이 간단한 문제가 아니라고 지적했습니다.
이 논문은 또한 다음과 같이 말합니다. , 우리는 모든 주요 이더리움 클라이언트 구현이 취약하며 소비자 등급 하드웨어에서 실행되는 경우 공격 시 네트워크를 따라갈 수 없다는 것을 입증했습니다.”
마찬가지로 Bitcoin 시스템에서 공격자가 확인하기 어려운 블록을 생성하면 컴퓨터 마이닝 시스템이 충돌할 수도 있습니다. 그러나 누군가 이렇게 하면 6.25 BTC 블록 보상을 잃을 가능성이 높으며, 채굴 풀이 이렇게 하면 모든 채굴자를 잃을 가능성이 매우 높습니다.
그러나 이더리움 시스템에서 공격자가 잃는 것은 계약을 발행하는 비용뿐이며, 연구원의 발견에 따르면 이 손실은 공격의 영향에 정비례하지 않습니다.
물론 클라우드 서비스 제공업체인 Infura를 통해 노드를 실행할 수 있습니다. Ethereum 네트워크의 대부분의 작업은 Infura의 노드에서 수행됩니다.
Ethereum 인큐베이터 ConsenSys의 설립자 Joseph Lubin에 따르면 ConsenSys는 최근 AMD와 협력하여 "차세대 분산 컴퓨팅, 스토리지 및 대역폭"을 만드는 것을 목표로 하는 W3BCLOUD를 만들었습니다.
그러나 현재 실제 솔루션은 블록체인 계약 수준의 샤딩입니다.
이미지 설명
-이더리움 스케일링 계획(2020년 6월)-
오른쪽의 세 가지 확장 솔루션은 독립적인 네트워크 환경과 블록체인을 가지고 있으며 이더리움과 통신을 구축했습니다. 그러나 현재로서는 이러한 네트워크가 서로 통신하지 않습니다.
역사가 반복된다면 첫 번째 단계는 모두가 서로 통신할 수 있도록 많은 독립적인 세계 컴퓨터를 상호 연결하는 것일 수 있습니다.
처음에는 랩톱이 있으면 해당 랩톱의 데이터에만 액세스할 수 있었습니다. 나중에 기술 혁신으로 서로 다른 랩톱이 연결되었고(처음에는 케이블을 통해) 이웃의 랩톱에 있는 데이터에 액세스할 수 있었습니다.
이러한 컴퓨터는 서로 통신할 수 있으므로 모든 사람이 데이터에 액세스하도록 허용할 수 있지만 원하지 않는 한 모든 사람이 데이터를 저장할 필요는 없습니다.
데이터 공유를 담당하는 사람만 데이터를 저장해야 합니다. 서로의 데이터를 볼 수 있도록 다른 사람의 컴퓨터에 연결하기만 하면 됩니다.
즉, OMG와 ZK 간의 통신을 구현해야 합니다. 비트코인과 이더리움 사이에 통신을 설정할 수 없는 이유는 서로 다른 프로토콜이기 때문입니다. 그러나 여전히 두 가지를 연결하려는 프로젝트가 있습니다.
이러한 데이터 클러스터가 서로 통신하도록 허용하면 모두 동일한 프로토콜에서 실행되는 한 확장성에 더 이상 제한이 없습니다.
이것은 달성하는 데 많은 시간이 걸리는 것입니다. 이러한 관점에서 보면 사토시 나카모토와 그레고리 맥스웰 모두 다른 시간 수준에서 고려하기 때문에 옳다는 것을 알 수 있습니다.


