Infrua를 파괴함으로써 기본적으로 모든 Rollup을 파괴할 수 있습니다.Infrua를 파괴함으로써 기본적으로 모든 Rollup을 파괴할 수 있습니다.
이더리움은 롤업을 핫 테크놀로지로 만드는 롤업을 중심으로 한 2.0 로드맵을 확정했고, 레이어2 확장을 위한 주류 기술이 되었다고도 할 수 있다. 영지식 증명 증명과 결합하면 롤업은 레이어2 기술 솔루션의 마스터가 될 것입니다.다음은 가상 롤업 공격에 대한 설명입니다. 일부 수정 및 의견을 포함하여 White Plan 팀에서 구성했습니다.보조 제목
Optimistic Rollup은 이더리움 네트워크에 블록 정보를 저장하기 위해 calldata를 사용하여 수행됩니다. 이 프로세스를 통해 누구나 이더리움 노드를 운영하고 롤업 상태를 다운로드할 수 있습니다. 그러나 실제로 일부 사람들은 자체 이더리움 노드를 운영하지 않고 관리 솔루션(예: Infura)에 의존합니다.텍스트
유효한 롤업 체인을 빠르고 저렴하게 구축하려면 거래를 수행하고 상태를 구축하고 이더리움 네트워크 외부의 다른 위치에 저장하기만 하면 됩니다. 롤업 코디네이터가 이더리움 노드로부터 상태 히스토리를 수신하면 코디네이터는 상태 트랜잭션을 재생하여 데이터가 유효한지 여부를 결정할 수 있습니다. 그러나 코디네이터는 상태가 체인에 존재하는지 확신할 수 없으며 가장 좋은 방법은 이더리움 노드에 요청하는 것입니다.Untrust라는 Ethereum 노드 서비스를 상상해보십시오. Untrust는 Ethereum dapp을 위한 저비용 인프라를 제공합니다. 신뢰하지 않기로 선택하면 특정 롤업을 보고 허구의 역사를 만들 수 있습니다. 일부 실제 트랜잭션에서 통신 데이터를 추출하고 이를 가상 트랜잭션과 혼합하여 준가상 이력을 생성할 수도 있습니다.이런 식으로 그들은 현재 상태의 완전히 다른 해시를 생성하지만 이것은 블록이 Untrust의 Rollup 연산자를 사용하여 커밋(온체인)되는 경우에만 발견됩니다(사기일 수 있음).이러한 유형의 공격은 특별히 강력하지 않습니다. 공격자는 서명을 위조할 수 없고 직접 자금을 훔칠 수 없지만 롤업에서 자신의 활동에 대해 거짓말을 할 수 있습니다.Untrust가 점점 더 복잡해지고 있다고 상상해 보십시오. 그들은 MoneyMover라는 롤업을 공격하기로 결정했습니다.MoneyMover 주소에 대한 요청이 수신되면 완전히 분리된 이더리움 네트워크를 실행하는 노드에서 정보를 반환합니다. 이 별도의 이더리움 네트워크에서 Untrust는 대부분의 트랜잭션을 미러링하고(계정 잔액을 유사하게 보이게 함) 필요할 때 자체(가짜) 트랜잭션을 주입합니다.이제 Untrust가 MoneyMoverRollup으로 지불하는 사이트를 찾았다고 가정합니다. 이 사이트는 Ethereum 네트워크에 액세스하기 위해 Untrust를 연결하는 자체 MoneyMover 코디네이터를 실행합니다.Untrust는 사이트에서 운영하는 MoneyMover 코디네이터가 유효한 결제로 감지한 미러 네트워크에서 가상 거래를 했습니다. Untrust는 이제 비용을 지불하지 않고 사이트에 대한 액세스를 제공합니다. 웹사이트는 거래를 제출하거나 다른 이더리움 공급자로 전환할 때만(즉, 데이터를 다른 노드와 동기화하기 위해) 이 가상 지불을 발견합니다.보조 제목
위의 공격은 코디네이터가 자체 이더리움 노드를 실행하지 않는 경우에만 의미가 있습니다. 이것이 문제가 되는 몇 가지 상황이 있습니다.1. 코디네이터 데이터의 하위 소비자는 자신이 받은 데이터가 온체인에 존재하는지 알 수 있는 방법이 없으며, 소비자가 직접 해당 노드를 실행하지 않기 때문에 코디네이터가 사용하는 eth 노드를 신뢰할 수 없습니다.2. 사기 증명자(악의적인 거래를 증명하는 당사자)는 사기가 감지된 경우에만 거래를 제출하기 때문에 이 공격에 특히 취약합니다. 악의적인 eth 노드는 블록체인 데이터에서 유효하지 않은 트랜잭션을 제거하고 다른 상태 해시를 반환할 수 있습니다. 사기 증명자는 상태 해시가 조작되었음을 알 수 있는 방법이 없으며 사기 청구를 하지 않을 것입니다.3. eth 노드 운영자는 롤업 코디네이터에게 거짓말을 하여 잘못된 상태 거래 또는 잘못된 사기 청구를 제출하도록 속입니다. 이런 일이 발생하면 악의적인 eth 노드 운영자는 효과적인 거래 상대방 역할을 하고 스테이킹된 자금을 수집할 수 있습니다.작업 증명 체인의 맥락에서 코디네이터는 블록 데이터를 요청하고 그것이 충분히 어려운지 확인할 수 있습니다. 현재 난이도의 절반 이상을 확인하면 대부분의 공격이 재정적으로 불가능해집니다.지분 증명 체인에서는 악의적인 eth 노드가 투표되지 않은 주소의 서명을 제공할 수 있으므로 이 프로세스가 실행 불가능해집니다. 쿼리 시간에 담보 금액을 약속함으로써 이를 수행할 수 있습니다.덜 우아한 솔루션은 평판이 좋은 노드에 지속적으로 서명하고 이미 온체인에 존재하는 롤업 상태 해시 목록을 게시하는 것입니다. 목록은 IPFS와 같은 서비스에 게시할 수 있습니다. 코디네이터 노드는 알려진 평판이 좋은 공개 키(Rollup Creator, EF 등)의 미리 설정된 목록을 포함할 수 있습니다.코디네이터는 다음과 같은 경우 롤업 데이터가 실제임을 알고 있습니다.2. 모든 상태 해시는 평판이 좋은 소스(노드)에 의해 서명됩니다.이렇게 하면 롤업 데이터가 유효하고 허구가 아님을 확인하고 롤업 노드가 모든 이더리움 노드를 사용하여 데이터를 동기화할 수 있습니다.위는 "jchancehud"에서 논의한 Rollup 보안 공격의 가능성입니다.주된 이유는 Rollup이 오프체인 상태이고 많은 상태에서 정보 동기화가 시기 적절하지 않기 때문입니다."jchancehud"에 따르면 오프체인 상태가 유효한지 확인해야 하는 당사자는 동기화를 다른 이더리움 전체 노드의 데이터를 확인하기 위해 궁극적으로 보안을 위해 많은 플랫폼이 이더리움 노드를 실행해야 함을 의미합니다.위에서 언급한 가상 공격 방식에 대해 이더리움의 레이어2 솔루션 팀인 SKALE Labs의 CTO인 "Konstantin Kladko"는 "정말 흥미롭다! Infrua를 파괴함으로써 기본적으로 모든 Rollup을 파괴할 수 있다는 것을 보여주는 것 같다"고 말했다. ”물론 이는 Infura를 통해 이더리움과 통신하는 제품을 의미하며, Infura는 대규모 이더리움 노드 서비스를 수행하며 Infura가 이더리움 네트워크에서 가장 큰 단일 취약점이 될 것인지에 대한 논의도 있었습니다. 이러한 단일 지점 보안 위험은 최대한 방지하기 위해 주로 다중 노드 로드 밸런싱 방식으로 처리됩니다."jchancehud"에 대한 논의에서 가장 흥미로운 점은 개발자 "adlerjohn"이 이 가상 "공격"이 낙관적 롤업뿐만 아니라 zkRollup에도 적용 가능하며 실제로 모든 스마트 계약에 적용할 수 있다고 제안했다는 것입니다.따라서 "adlerjohn"은 비트코인 백서 8절에서 정보가 맞는지 틀린지 확인하는 방법이 있다고 제안했습니다. 즉, 검증자가 가장 긴 체인을 결정하고 가장 긴 체인을 신뢰합니다. 알려진 체계, 이 체계는 대부분의 계산이 정직할 필요가 없는 잘못된 정보를 제공하는 Sybil 노드를 방지하는 데 사용할 수 있습니다.
이미지 설명
또한 "adlerjohn"은 Rollup의 상태 루트를 이벤트로 보낼 수 있고 심지어 이더리움 상태에 저장할 수 있으며 위조된 트랜잭션에 대해 쿼리할 수도 있다고 제안했습니다(예를 들어 비트코인 백서의 섹션 7은 다음을 나타냅니다. 블록헤더 검증으로 확인할 수 있음) .
이미지 설명
Plan Bai에 대한 참고 사항: 실행 가능한 최소 합병 합의의 해석은 다음 링크에 있습니다.그러나 "adlerjohn"이 제안한 방법을 사용하는 것이 설계하기 더 어려울 것으로 예상됩니다.토론 끝에 "jchancehud"는 "adlerjohn"에게 이 공격 예측이 ZKRolup에 적용되는지 확실하지 않다고 답했습니다. 그러나 ZK 증명은 생성하기가 더 어렵기 때문에 적어도 더 어려울 것입니다. 이러한 방식으로 롤업을 생각하는 것은 널리 채택되는 경우 특히 중요합니다.롤업 코디네이터는 노드를 사용하기 전에 노드의 모든 블록 헤더를 확인할 수 있으며 이는 시간과 대역폭이 많이 들지만 또 다른 잠재적 솔루션입니다. 그러나 사용자는 신뢰할 수 있는 eth 라이트 노드를 실행하는 것이 좋습니다. 유효성 검사 문제가 해결된 경우 가벼운 노드를 실행하면 이벤트를 쿼리할 수도 있습니다.토론이 끝나면 보안, 확장성 및 효율성을 달성하기 위해 엔지니어링 아이디어에 따라 이러한 솔루션을 시도할 수 있지만 논의 아이디어가 서로 다르기 때문에 구현 프로세스가 어려울 수 있음을 알 수 있습니다. 개발자는 마지막에 코드를 합성해야 하며 네트워크 구조, 클라이언트, 언어 및 운영 인터페이스와 같은 많은 문제를 포함합니다.