Ethereum 병합 테스트넷 Kintsugi 버그로 분할, 여기에 이유가 있습니다.

이더리움 네트워크의 병합 이벤트는 현재 사용 중인 작업 증명 모델에서 지분 증명 합의 모델로의 전환입니다. 이 합병은 현재의 이더리움 메인넷 시스템과 종종 이더리움 2.0이라고 불리는 새로운 비콘 체인이 하나의 블록체인으로 합쳐진다는 것을 의미합니다.

병합을 테스트하기 위해 Kintsugi 테스트넷이 XNUMX월에 배포되었습니다. 테스트넷의 목적은 다양한 엣지 케이스를 실행하고 시스템이 어떻게 작동하는지 관찰하는 것입니다. Kintsugi에서 테스트를 실행하는 데 참여한 개발자 중 한 명은 다음과 같습니다. 마리우스 반 데어 바이덴, Geth(Go-Ethereum) 클라이언트 팀과 함께 일하는 이더리움 코어 개발자.

“테스트넷은 몇 주 동안 완벽하게 실행되었습니다. 지난 주에 나는 유효하지 않은 블록을 보내는 fuzzer를 만들었습니다. 블록에는 트랜잭션, 이전 블록의 해시, 가스 한도 등과 같은 많은 정보가 포함되어 있습니다.”라고 Marius van der Wijden은 말합니다.

일부 구현은 블록을 실행하고 확인하지 않았습니다.

fuzzer는 개발자들 사이에서 함수나 다른 코드 조각에 대한 임의 입력을 생성하고 어떤 식으로든 중단되도록 하기 위해 사용하는 일반적인 유형의 테스트 도구입니다. 잘못된 형식의 예기치 않은 입력을 생성하고 시스템에 어떤 일이 발생하는지 관찰하는 것입니다.

van der Wijden이 만든 fuzzer는 유효한 블록을 생성하고 그 중 하나의 요소를 변경하여 무효화합니다. 사용하는 한 가지 기술은 요소를 다른 요소로 변경하는 것입니다. 이 경우 fuzzer는 blockhash를 부모 해시로 변경했습니다.

“노드는 이렇게 변경된 블록을 거부해야 합니다. 그러나 부모 해시가 유효한 블록 자체를 가리키기 때문에 일부 구현에서는 실제로 블록을 실행 및 확인하지 않고 대신 캐시에서 조회했습니다. 이전 블록이 유효하고 캐시에 있기 때문에 새 블록도 유효하다고 가정했습니다.”라고 van der Wijden은 설명합니다.

두 번 네트워크 분할

그 결과 네트워크의 절반인 Geth 클라이언트는 블록을 거부하고 나머지 절반인 Nethermind 및 Besu 클라이언트는 블록을 수락하여 올바른 상태에 대한 두 가지 다른 보기를 갖게 되었기 때문에 체인이 분할되었습니다. 설상가상으로 그 위에 또 다른 문제가 있었습니다.

van der Wijden에 따르면 Lighthouse-Geth, Prysm-Geth, Lodestar-Geth, Nimbus-Geth 및 Teku-Geth로 구성된 Geth 체인 노드도 이들 사이에서 분할됩니다.

van der Wijden은 "이 분할은 아직 조사 중이지만 Teku에도 실패한 캐싱 메커니즘이 있는 것 같습니다."라고 말했습니다.

작성 시점에 Kintsugi 테스트넷의 여러 포크가 존재하고 모든 노드가 올바른 포크에 있다고 생각하기 때문에 네트워크는 더 이상 마무리되지 않습니다.

“우리는 네트워크를 다시 하나로 모을 수 있는 방법을 찾아낼 것입니다. 우리는 이미 Nethermind 클라이언트를 업데이트했으며 해당 노드는 이제 올바른 체인에 있습니다. 노드의 33% 이상이 Teku이기 때문에 여전히 Teku에 대한 수정이 필요합니다. 그렇지 않으면 체인이 완료되지 않습니다.”라고 van der Wijden은 말합니다.

사건은 좋은 결과를 가져옵니다.

van der Wijden에 따르면 이 사건은 Ethereum 병합의 추가 테스트를 금지하거나 지연하지 않으며 병합 자체를 지연시키지도 않습니다. 실제로 van der Wijden은 이 사건이 실제로 네트워크가 제대로 실행되고 있었다면 테스트하기 어려웠을 엣지 케이스를 테스트하는 데 도움이 되었다고 말합니다.

“장기간의 미완성 기간은 노드에게 어려운 일이며 현재 노드가 어떻게 행동하는지 확인하는 것이 매우 중요합니다. 우리는 테스트넷이 결국 다시 모일 것이라고 생각하지만 흥미로운 엣지 케이스를 테스트할 수 있는 기회를 제공하기 때문에 수동으로 수정하려고 할 것이라고는 생각하지 않습니다.”

“아직 합병이 예정되어 있지 않기 때문에 합병이 지연될 것이라고 생각하지 않습니다. 그러나 그것은 테스트가 얼마나 중요한지를 보여줍니다. 합병이 정말 잘 진행되고 있다고 생각합니다. 소프트웨어를 허용 가능한 상태로 만드는 데 몇 주가 더 필요하고 테스트하는 데 몇 달이 필요합니다.”라고 van der Wijden은 말합니다.

메인넷에서 이런 일이 발생한다면?

흥미로운 질문은 이와 같은 버그가 메인체인에서 발생했다면 어떤 일이 벌어졌을까 하는 것입니다.

“우리는 꽤 일찍 테스트를 시작했기 때문에 이와 같은 몇 가지 버그를 예상했습니다. 우리가 꽤 잘하는 버그를 찾아서 수정하고 코드를 릴리스한 다음 모든 스테이커에게 노드를 업데이트해야 한다고 알려야 하기 때문에 메인넷의 그러한 버그는 꽤 불쾌할 것입니다. 일부 사용자가 개발을 너무 밀접하게 따르지 않기 때문에 마지막 부분은 제 생각에 어려운 부분입니다."라고 van der Wijden은 말합니다.

자세한 내용은 관심 있는 독자가 Marius van der Wijden의 트윗 사건에.

크립토슬레이트 뉴스레터

암호화폐, DeFi, NFT 등의 세계에서 가장 중요한 일일 이야기의 요약을 제공합니다.

를 얻을 수 가장자리 cryptoasset 시장에서

유료 회원으로서 모든 기사에서 더 많은 암호화 통찰력과 컨텍스트에 액세스하십시오. 암호화 슬레이트 에지.

온 체인 분석

가격 스냅 샷

더 많은 맥락

$ 19 / 월에 지금 가입 모든 혜택 살펴보기

출처: https://cryptoslate.com/ethereum-merge-testnet-kintsugi-split-by-bug-heres-why/