치명적인 결함에 대한 해결 방법

MasterChef에는 사용 중에 수정할 수 있는 특정 결함이 있지만 사용자가 이를 인지하고 무엇을 할 수 있는 경우에만 가능합니다. 에 따르면 해결 방법은 다음과 같습니다. 글렙 지코프 그리고 블라드 코로브니코프(Vlad Korovnikov) 해시엑스.

탈 중앙화 거래소 (DEX)는 불과 XNUMX년 전만 해도 매우 드물었지만 오늘날에는 어디에나 있는 것 같습니다. 자신만의 개인 DEX를 보유한 수많은 프로젝트. 이는 블록체인 프로젝트가 DEX를 출시하기로 결정하더라도 완전히 처음부터 만들지는 않기 때문에 발생했습니다. 대신, DEX 코드의 기초는 종종 두 가지 주요 DEX 중 하나의 포크입니다. 스시 스왑 or 팬케이크 스왑.

Masterchef 스마트 계약

이 두 거래소는 MasterChef라는 특별한 스마트 계약 덕분에 DEX 공간에 거의 혁명을 일으켰습니다. MasterChef는 둘 다에 나타나므로 둘 중 하나의 포크로 만들어진 모든 DEX에도 나타납니다. 각각의 새로운 DEX는 동일한 기능을 공유하게 됩니다. 하지만 이는 MasterChef의 단점과 취약점을 공유한다는 의미이기도 합니다. 

그럼 사용자와 개발자가 MasterChef를 다룰 때 어떤 문제를 겪을 수 있는지 살펴보겠습니다. 그들은 무엇에 주의해야 합니까? 그리고 어떻게 접근해야 할까요?

DEX는 어떻게 작동하나요?

가장 먼저 주목해야 할 점은 MasterChef 계약은 팜이 수행할 수 있는 작업과 수행 방법을 제어하는 ​​Solidity로 작성된 스마트 계약이라는 것입니다. 대부분의 프로젝트에는 책임과 작업을 공유하는 여러 스마트 계약이 있습니다. 그러나 MasterChef 기반 프로토콜의 경우 농업과 관련된 모든 것을 처리하는 것은 이 단일 계약입니다.

탈중앙화 거래소를 사용하면 거래소에 돈을 입금하지 않고도 암호화폐를 교환할 수 있습니다. 지갑. 대신 자신의 지갑에서 스마트 계약에 자금을 입금합니다. 귀하는 이를 통제하고 계약에 백도어나 취약점이 없는 경우 자신의 자금에 접근할 수 있는 유일한 사람입니다.

또 다른 차이점은 CEX가 구매 및 판매에 주문서를 사용한다는 사실입니다. 이는 구매자와 판매자를 연결하는 반면 DEX는 AMM(자동화된 시장)을 사용한다는 것을 의미합니다. 만드는 사람) 얼마나 많은 유동성이 투자되었는지에 따라 자산 가격을 계산하는 거래 프로토콜입니다.

유동성은 사용자가 특정 쌍에 자금을 예치하고 프로토콜에 자금을 사용할 수 있도록 하는 유동성 풀에서 나옵니다. 그런 다음 누군가가 해당 쌍을 사용하여 자산을 구매하려고 하면 풀의 자금을 사용하여 주문이 즉시 이행됩니다. 한편, 유동성 풀에 자금을 예치한 사람들은 해당 특정 풀에 대한 LP 토큰을 얻습니다. 이는 보상을 공유할 권리를 제공합니다.

그리고 자금을 돌려받고 싶다면 받은 LP 토큰을 돌려주기만 하면 됩니다.

아시다시피 생성하는 방법에는 여러 가지가 있습니다. 산출량 암호화폐 보유에서. 농장은 유동성 제공에 대해 추가 보상을 제공합니다. 사용자는 DEX에 유동성을 추가하고 LP 토큰을 얻어 농장에 스테이킹합니다.

MasterChef: 취약점과 결함

우리는 DEX의 작동 방식과 유동성 풀의 작동 방식을 다루었습니다. 이제 MasterChef 취약점이 어디서 발생하는지, 프로세스에 어떤 영향을 미치는지, 그리고 일이 원활하게 진행되도록 하려면 어떤 접근 방식을 취해야 하는지 자세히 살펴보겠습니다.

MasterChef는 DEX에 유동성을 제공하여 수확량을 늘리는 데 사용되는 단일 스마트 계약입니다. 불행하게도 사용 중에 수정할 수 있는 특정 결함이 있지만 사용자가 이를 인지하고 무엇을 할 수 있는 경우에만 가능합니다.

손상된 계정

주의해야 할 가장 큰 문제 중 하나는 소유자 계정이 손상되는 것과 관련이 있습니다. 기본적으로 SushiSwap은 Uniswap에 비해 우위를 점할 수 있는 방법을 발명했습니다. 이 방법은 한 거래소에서 다른 거래소로 자산을 마이그레이션하는 것을 중심으로 이루어집니다. 이는 계약 소유자만 액세스할 수 있는 별도의 기능을 사용하여 계약에 의해 처리됩니다.

그러나 이 마이그레이션은 기본적으로 어떤 제한도 없이 모든 계약에 맞춰 조정될 수 있어 결국 큰 실수가 되었습니다. 따라서 소유자 계정이 손상되면 모든 파밍 풀의 모든 기본 LP 토큰을 임의의 주소로 보내는 새로운 마이그레이션 계약이 발생할 수 있습니다. 이는 투자 자산의 막대한 손실로 이어질 것입니다.

이 기능은 이제 개발자들에게 친숙하므로 결국에는 즉시 제거된다는 점에 유의해야 합니다. 포크. 그러나 여전히 존재한다면 이는 즉시 위험 신호로 간주되어야 합니다.

주목해야 할 또 다른 사항은 일부 MasterChef 포크에서는 계약 소유자가 제한 없이 방출 속도를 변경할 수 있다는 것입니다. 그러나 계정이 손상되면 공격자는 매우 큰 방출 비율을 설정할 수 있으며 이는 토큰의 가치 하락으로 이어질 수 있습니다.

계약 소유자가 사용할 수 있는 모든 기능에 다중 서명 인증이 필요하도록 하면 이 문제를 쉽게 해결할 수 있습니다. 이렇게 하면 단일 주소가 손상되면 악의적인 행위자가 해당 주소로 많은 작업을 수행할 수 없게 됩니다. 또 다른 작업은 마이그레이션 함수 호출 시 임시 블록(Timelock 계약)을 추가하는 것입니다. 이렇게 하면 사용자는 결정을 내릴 수 있는 더 많은 시간을 갖게 되며 거래소는 마이그레이션이나 기타 의심스러운 거래에 대해 귀하에게 알려야 합니다.

동일한 농업 풀 추가

상당히 명백하지만 간과되는 또 다른 문제는 원래 계약이 동일한 농업 풀 처리를 설명하지 않을 때 나타납니다. 즉, 계약이 농업 보상을 잘못 계산할 위험이 있음을 의미합니다.

MasterChef를 올바르게 사용하면 소유자가 의도적으로 동일한 풀을 추가하지 않으므로 이는 큰 문제가 되지 않습니다. 실제로 제대로 운영되는 거래소에서는 이러한 사항을 검증하고 중복 풀을 생성하는 것을 강력히 금지하고 있습니다. 따라서 풀 생성을 시작하고 기존 풀의 복제본을 생성하는 경로로 향하는 경우 시스템에서 오류를 보고할 수 있어야 합니다. 또는 새 풀을 만드는 대신 기존 풀에 자금을 추가하는 것이 좋습니다.

예치된 토큰 수량을 계산하지 않음

어떤 이유로 사람들은 전송 수수료가 있는 토큰이나 리베이스 토큰이 MasterChef 계약에 풀로 추가되면 어떤 일이 발생할 수 있는지 고려하는 것을 잊어버리는 경향이 있습니다. 계약 코드는 특정 기능을 호출해야만 풀에 자산을 추가하기 때문에 보상이 계산되는 방식이 붕괴됩니다. 즉, 주소에 토큰을 추가하면 이미 풀에 있는 자산과 결합됩니다. 그러나 그러한 토큰에 대한 보상 계산이 깨져 취약점이 발생할 수 있습니다.

제대로 운영되는 플랫폼은 수수료를 고려한 실제 이체금액을 확인하여 농업에 이체된 자금의 양을 별도로 계산해야 한다. 이렇게 하면 보상 계산이 올바르게 수행됩니다.

MasterChef: 결론

MasterChef는 DEX에 유동성을 제공하여 수확량을 늘리는 데 사용되는 단일 스마트 계약입니다. 불행하게도 사용 중에 수정할 수 있는 특정 결함이 있지만 사용자가 이를 인지하고 무엇을 할 수 있는 경우에만 가능합니다. 

위에서 우리는 발생할 수 있는 몇 가지 상황과 이러한 문제를 피할 수 있는 방법을 다루었습니다. 그러나 토큰이 계약 주소로 직접 전송되는 경우 보상 희석, 시작 블록 변경 문제, 가스 최적화 등과 같은 문제가 더 있다는 점에 유의해야 합니다. 

즉, 염두에 두고 지켜봐야 할 취약점과 이슈가 있다는 것이다. 그러나 전반적으로 MasterChef는 분산형 교환을 거의 가능하게 한 혁신적인 계약입니다. 따라서 계속 주의 깊게 사용하고 결함과 해결 방법을 알고 있는 한 괜찮을 것입니다.

저자 소개

글렙 지코프

글렙 지코프 의 공동 창립자이자 CTO입니다. DeFi 보안 분석 회사 해시엑스.

​​블라드 코로브니코프 주니어 스마트 계약 감사자이자 개발자입니다.

일부있어tMasterchef 해결 방법이나 다른 것에 대해 말씀해주실 수 있나요? 우리에게 편지 쓰기 또는 우리의 토론에 참여 전보 채널. 당신은 또한 우리를 잡을 수 있습니다 Tik , 페이스북트위터.

책임 부인

당사 웹 사이트에 포함 된 모든 정보는 선의로 일반 정보 목적으로 만 게시됩니다. 독자가 당사 웹 사이트에있는 정보에 대해 취하는 모든 조치는 전적으로 자신의 책임입니다.

출처: https://beincrypto.com/masterchef-smart-contracts-the-workarounds-for-the-fatal-flaws/