Litecoin

Web3 보안 시리즈: 다른 체인에 잘못 자금을 저장할 수 있습니까

2025/12/16 12:25
👤PANews
🌐ko
Web3 보안 시리즈: 다른 체인에 잘못 자금을 저장할 수 있습니까

암호화 된 세계에서 단일 클릭 오류는 &ldquao를 트리거 할 수 있습니다. 디지털 catastrophe &rdquao; 가장 일반적인 nightmares 중 하나는 잘못된 블록 체인에 자산을 전송하고 있습니다. 예를 들어, Etherma Sepolia에 EPH를 보내서 인터넷의 주소를 테스트하고 Etherleas에 실수로 전송되었습니다. 그런 경우 Ether 호스트 네트워크에서 misdirected를 자금을 복구 할 수 있습니까? 자산의 회복의 열쇠는 주소 수신의 유형입니다. 다른 상황의 빛에서 분석 될 것입니다。

1. 명세 시나리오 I: EOA

EOA 소개 (Externally Owned Account)는 우리가 자주 개인 키 또는 보조 단어에 의해 통제되는 일반 지갑 주소를 호출하는 것입니다。

자산의 복구를위한 필수 사항 :

  • EOA 주소로 자산을 전송합니다。
  • 이 타겟 EOA 주소는 개인 키 또는 메모가 있습니다. (보통 다른 지갑 주소, 또는 친구의 주소, 그리고 그는 협력에 의지)。
  • 대상 체인은 EVM 호환성 체인입니다。

자산 복구 방법:

COLLECTION EOA 주소 개인 키 홀더는 단순히 대상 체인에서 자금을 직접 인출 할 수 있습니다。

2. Scenario 두: 영수증 주소는 계약입니다

이것은 가장 desperate 장면 중 하나입니다. 스마트 계약의 주소가 개인 키에 의해 생성되지 않기 때문에, 아무도 스마트 계약에 개인 키를 가지고 EOA를 제어하는만큼 제어 할 수 없습니다. 그리고 계약이 처리 &ldquo에 대 한 사전 승인되지 않는 경우; 자산 &rdquo에 misdirected; 구조 함수, misdirected 자금은 영구적으로 계약에 잠겨 아무도 제거 할 수 없습니다。

일부 경우에, 그러나, 기회가있다. 그리고 우리는 ETHERWOOD 호스트 네트워크에 ETH를 잠그는 장면을 구축 할 예정이며, 우리는 돈을 얻는 방법에 대해 이야기 할 것입니다。

2.1. 장면 발표

사용자가 Sepolia Test Network 컨트랙트를 호출하기 위해 시도 한 장면은 ETH를 토큰으로 전송하지만, 트랜잭션이 시작되었을 때, 주요 네트워크에 잘못 연결되었지만, ETH가 주요 네트워크 계약으로 잠긴 결과. 특정 시나리오 건설 프로세스는 다음과 같습니다 :

1. 명세. Ether의 Sepolia 테스트에서, Projecter (EOA)는 계약 실현을 배포했습니다, 계약의 주요 함수가 ETH를 입금하여 해당 ATokeen을 만들기 위해, 최소 토큰 함수에 대한 대략적인 코드가 표시됩니다. 배포가 가정됩니다 A. 그것은 중요 한 주의ETH를 직접 추출 할 수있는 A의 기능은 없습니다。

2. 명세. Ether의 Sepolia 테스트에서 Projecter (EOA)는 플랜트 계약을 배포했습니다, 계약의 기능은 계약의 성능과 최소 대행사 계약 (클론)의 배포에 제공된 주소에 근거를 둡니다 (기능 deproyProxyByImplation에 의해 표시된 것과 같이). 여기에서 B. Suppose에서 배포를 지원하면 deployProxyByImplementation 함수를 호출하므로 계약 A 주소는 _implication으로 입력됩니다에이전트 계약은 C에서 A에 배포되었습니다。

3. 명세 사용자는 Sepolia에서 ETH로 이동하여 토큰을 캐스팅하기 위해 웹을 테스트하고 싶었으므로 프록시 계약 C 주소로 전화를 시작, 일반적으로 프록시 계약 C는 계약 A의 MintTokens 기능에 더 호출하여 사용자 작업을 완료합니다. 그러나 사용자가 호출되면 Etherwood 호스트 네트워크에 잘못 연결되었습니다. 그래서 사용자는 Ether 호스트의 C 주소로 ETH를 직접 전송합니다。사용자의 돈은 일시적으로 주요 네트워크의 C 주소에 잠겨 있었다。

2.2. 중요한 지식 점

특정 구호 프로그램을 제시하기 전에, 구호에 대한 기본 지식 포인트는 발표됩니다。

2.2.1. 만들고 & create2

create and Create2는 Solidity에서 공통된 두 개의 배포 계약입니다。

  • 계약의 배포 시점에서 계약의 주소는 계약의 내용의 결정에 따라 결정되었습니다。
  • 계약의 배포의 시간에, 계약 주소는 더 이상 거래의 후원의 비정규에 의존하지만 다음 4 매개 변수와 관련。
    • 0xff를
    • 새로운 계약에 대한 계약 주소를 생성 (주소)
    • 매개 변수 (salt)
    • 컨트랙트 생성하기 (init_code)

2.2.2. 최소 기관 계약 (클로즈)

https://docs.openzeppelin.com/contracts/4.x/api/proxy#cones

최소 기관 계약, 또한 종종 Cloones 계약으로 언급, 그것의 현실화에 대한 지정된 계약에 지적하는 매우 낮은 비용 (Gas)에 에이전트 계약을 배포하는 아이디어를 기반으로했다. Cones 계약에서 프록시 계약은 ClineDeterministic 함수를 통해 프록시 계약을 배포함으로써 2 또는 예를 작성하거나 작성하여 배포할 수 있습니다。

clineDeterministic 기능에서는, 창조한 기관 계약의 바이트 부호는 체재에서 아주 짧습니다: 0x363d3d373d3d363d73&t; 현실화 계약의 > 주소; 5af43d8203e903d91602b57fd5bff3, 직접 계약의 주소의 realization를 위한 바이트 부호에 암호로 하고, 대리인 계약 degate에 모든 통화에게 불립니다。

cloneDeterministic 기능에서 볼 수 있듯이, 그것은 create2의 수단으로 프록시 계약을 만듭니다생성 된 프록시 계약의 주소는 계약 설립자, 소금, 계약 실현의 주소, 고정 바이트 코드 및 계약 실현의 바이트 코드와 관련이 있습니다。

2.3. 구조 프로그램

여기에서 C 주소에 사용자를 구출하는 방법. 주요 아이디어는 계약 코드를 배포하고, 주요 네트워크 C 주소를 가지고 ETH를 추출합니다. 특정한 조작 단계는 다음과 같이 입니다:

1. 명세 플랜트 계약은 메인 네트워크 B에 동일한 주소를 배포하고 테스트합니다。같은 플랜트 계약 주소는 에이전트 계약이 공장 계약 주소와 관련하여 계산했기 때문에 라인 Deterministic 배포 에이전트 계약에 대한 후속 호출. Sepolia의 s 거래에서 온라인 배포 공장에 대한 계약을 테스트, 트랜잭션 (프로젝트 소유자 's 주소)에 배포 한 사람의 비례를 취득, 프로젝트 파티의 비례를 이동 (EOA) 배포 공장에 대한 계약 이전에 비례에 주소, 그리고 그 다음 주 네트워크에 식물에 대한 계약을 배포, 배포하는 사람의 위치와 비례는 온라인 배포에 대한 테스트와 동일, 온라인 배포 공장에 대한 주요 네트워크에 대한 배포。

2. 명세 같은 주소의 배포 계약 A 주요 네트워크에 테스트 네트워크。일부 #Minimum Agent Contract (Clones) # 에이전트 계약이 Clones Contract의 Clane Deterministic 함수를 통해 배포되는 것으로 언급되어, 이는 계약 주소의 참여 소금과 계약 주소의 실현에 관련이 없으며 계약의 바이트 코드와 관련이 없습니다. 그래서우리가해야 할 모든 것은 주소 A에 계약을 넣어, 계약의 세부 사항은 프록시 주소의 계산에 영향을 미치지 않습니다。그래서 우리는 주소 A에서 ETH를 직접 추출 할 수있는 기능을 구축 할 수 있습니다, 코드는 다음과 같습니다。

테스트 네트워크에서 계약 Realization A는 프로젝트 공급자의 주소 (EOA)에 의해 배포됩니다. 따라서 유사하게, 계약 Realization A의 위치는 거래 및 비의 연산자와 관련이 있습니다. 따라서, 온라인 배포 현실화의 거래를 관찰 A, 관련된 비를 찾는, 주요 온라인 프로젝트 제공 업체의 주소를 밀어 (EOA) 지정된 noce에, 계약 실현 A를 배치하는 충분하다。

3. 명세 TEST NETWORK C와 같은 주소로 주요 웹 사이트에 배포하는 에이전트 계약。온라인 배포 에이전트 계약 C의 트랜잭션을 관찰, 소금 정보를 얻을, 공장 계약 B의 배포 ProxyByImplementation 기능에 호출, 계약 A의 주소를 전달, 매개 변수로 소금 주요 네트워크의 주소 C에 에이전트 계약을 배포합니다。

4. 명세 출금에 대한 주요 네트워크 에이전트 계약 C 호출。Project Party Address (EOA)는 에이전트 계약 C 인출 기능을 호출하고 자금 수령을 설계하고 에이전트 계약 C에서 냉동 ETH를 성공적으로 제거하고 관련 사용자에게 반환합니다。

2.4. 요약

위에서 언급 한 구호 프로그램에서 볼 수 있듯이, 자금을 구출 할 때 자금을 구출 할 수있는 여러 가지 조건이 있습니다. 계약 배포자가 대상 체인에 관련된 비례를 사용하지 않는 사실과 같은 사실, 자금이 인출 기능이 있거나 다양한 방법으로 배포 될 수있는 사실 (계약은 Clones와 같은 에이전트로 업그레이드되거나 사용 될 수 있음)。

그래서, 거래를 할 때, 당신은 조심해야, 체크 모든 거래는 신중하게 시작, 당신은 당신이 계약과 상호 작용하기 전에 ZAN을 사용할 수 있습니다AI 스캔GAP 스캐닝 도구는 계약 보안을 감지합니다. ZAN 컨트랙트 보안 감사팀에 연락하여 자금을 도와드릴 수 있습니다。

이것은 ZANTeam (X 계정)에 의해@zan_team에& Antchain OpenLabs (X 계정)웹 사이트카라@카라6289) 글。

QQlink

ไม่มีแบ็คดอร์เข้ารหัสลับ ไม่มีการประนีประนอม แพลตฟอร์มโซเชียลและการเงินแบบกระจายอำนาจที่ใช้เทคโนโลยีบล็อกเชน คืนความเป็นส่วนตัวและเสรีภาพให้กับผู้ใช้

© 2024 ทีมวิจัยและพัฒนา QQlink สงวนลิขสิทธิ์