허점으로 인해 콘스탄티노플 하드포크 지연
秦晓峰
@QinXiaofeng888
2019-01-16 04:03
本文约1691字,阅读全文需要约7分钟
하드포크 업그레이드가 다음주 월요일에 실시될 것인지에 대해 Hu Jingyu는 하드포크 업그레이드의 구체적인 시점은 미정이어야 한다고 말했습니다.

~에 따르면blog.ethereum 뉴스에 따르면 이더리움 개선 제안서(EIP 1283)에서 주요 보안 취약점이 발견되면서 당초 708만 번째 블록에서 진행할 예정이었던 콘스탄티노플 하드포크가 연기됐다.

이더리움 주간 창시자Evan Van Ness새로운 하드 포크 날짜는 금요일에 있을 다음 핵심 개발자 컨퍼런스 콜에서 결정될 것이라고 회사는 말했습니다. 이더리움 코어 개발자Afri Schoedon보조 제목

취약점이 발생하면 어떻게 해야 합니까?

EIP 1283 취약점 처리와 관련해 이더리움 관계자도 블로그를 통해 콘스탄티노플 하드포크가 연기될 예정, 즉 7,080,000번째 블록에서 포크되지 않을 것이라고 밝히고 관련 솔루션을 공개했다.

업그레이드 및 동기화가 완료된 노드, 채굴자, 거래소의 경우 Geth 또는 Parity의 새 버전이 출시된 후 제 시간에 버전을 업데이트해야 합니다. . 구체적인 계획은 다음과 같습니다.

  • Geth 버전: Geth 1.8.21로 업그레이드, Geth 1.8.19로 다운그레이드, Geth 1.8.20을 유지하려면 '-override.constantinople=9999999' 스위치를 사용하여 콘스탄티노플 포크를 무기한 연기하세요.

  • 패리티 버전: Parity Ethereum 2.2.7-stable 또는 Parity Ethereum 2.3.0-beta로 업그레이드하는 것이 권장되며, Parity Ethereum 2.2.4-beta로 다운그레이드하는 것은 권장되지 않습니다.

동시에 업그레이드되지 않은 노드, 지갑 및 토큰 보유자(네트워크 사용자)의 경우 지금 조치가 필요하지 않습니다.

보조 제목

취약점이란 무엇입니까?

오늘 0:00 베이징 시간에 스마트 계약 감사 회사ChainSecurity이더리움 콘스탄티노플 코드(EIP 1283)에 "재진입 공격"(관련 계약 공격, 사용자 잔액 또는 기타 중요한 변수 수정)으로 이어질 수 있는 취약점이 있다는 보고서를 게시했습니다.

재진입 공격이 발생하는 이유는 무엇입니까? ChainSecurity는 포크 전에 스토리지에 최소 5000개의 가스가 필요하며, 이는 계약을 호출하기 위해 "전송" 또는 "보내기"를 사용할 때 전송되는 2300개 가스보다 훨씬 많은 양입니다. 공격자는 일부 공용 기능을 호출하고 필요한 변수를 변경할 수 있습니다. 예를 들어 공격자는 공격자의 계약을 호출할 수 있으며 계정 잔액을 포함하여 취약한 계약의 변수를 성공적으로 변경하려면 2300 가스만 소비하면 됩니다.

물론 공격이 성공하려면 몇 가지 조건이 필요합니다.

  • "전송/보내기" 바로 다음에 상태 변경 작업이 오는 함수가 있어야 합니다. 이는 때때로 명확하지 않습니다.

  • 공격자는 상태를 변경하기 위해 기능 A에 액세스할 수 있는 기능 B가 있어야 하며 B의 상태 변경은 기능 A와 충돌합니다.

  • 함수 B는 1600 가스(2300 가스 요금 - 700 가스 호출 요금) 미만으로 실행해야 합니다.

ChainSecurity는 다음 측면을 확인하여 계약이 공격받는 것을 방지할 수 있음을 모든 사람에게 상기시킵니다.

  • 전송 이벤트 이후에 조치가 있는지 확인합니다.

  • 이러한 작업이 스토리지 상태를 변경했는지 확인합니다. 가장 일반적으로 일부 스토리지 변수를 할당하고 어떤 변수가 수정되었는지 확인하고 목록을 만듭니다.

  • 비관리자가 액세스할 수 있는 계약의 다른 메서드가 이러한 변수 중 하나를 사용하는지 확인합니다.

  • 메소드 자체가 스토리지 상태를 자체적으로 변경하는지 확인하십시오.

  • 보조 제목

버그는 언제 다시 발생합니까?

EIP 1283의 재진입 공격은 고질병인 이더리움의 개발 역사에서 여러 번 등장했다.

"사실 이 공격 방법은 이더리움에서 오랫동안 잘 알려져 있었습니다. 이더리움 커뮤니티가 이 문제를 고려하지 않았다고 생각하지 않습니다." 이더리움 연구원인 Hu Jingyu는 오데일리에 말했습니다.

재진입 공격의 가장 큰 영향은 DAO 계약 취약점 사건입니다. 당시 해커들은 The DAO 계약 허점을 이용해 4000만 달러 이상의 이더리움(ETH)을 송금했다. 자금을 되찾기 위해 이더리움 커뮤니티는 소프트포크와 하드포크를 진행하기로 했고, 그 결과 커뮤니티 내에서 이견이 생겨 일부는 기존 체인(현 ETC)에 남고, 일부는 진입을 선택했습니다. 새로운 포크체인(ETH).

Hu Jingyu에 따르면 일부 논리적 작업을 용이하게 하기 위해 Ethereum 스마트 계약은 "transfer() 및 send()" 호출 메서드를 남겼지만 개발자에게 보안 위험도 남겼습니다. "하지만 개발자가 이러한 보안 위험이 있다는 것을 알고 있는 한 코드를 작성할 때 보다 논리적인 판단을 함으로써 보안을 보장할 수 있습니다."

하드포크 업그레이드가 다음주 월요일에 실시될 것인지에 대해 Hu Jingyu는 하드포크 업그레이드의 구체적인 시점은 미정이어야 한다고 말했습니다.

秦晓峰
@QinXiaofeng888
作者文库