Lösningarna för de fatala bristerna

MasterChef har vissa brister som kan åtgärdas under användning, men bara om användarna är medvetna om dem och vad de kan göra. Här är lösningen, enligt Gleb Zykov och Vlad Korovnikov av HashEx.

Decentraliserade utbyten (DEX) brukade vara ganska sällsynt för bara två korta år sedan, men idag verkar det som om de finns överallt. Många projekt har sina egna personliga DEX:er. Detta hände för att när ett blockchain-projekt bestämmer sig för att lansera en DEX, gör de det inte helt från början. Istället är grunden för DEX:s kod ofta en gaffel av en av två stora DEX:er — SushiByt or PannkakaSwap.

Masterchef Smart Contract

Dessa två börser revolutionerade ganska mycket DEX-utrymmet tack vare ett speciellt smart kontrakt kallat MasterChef. MasterChef förekommer i båda av dem, och så visas det också i alla DEX som gjordes som en gaffel av en av dessa två. Varje ny DEX får dela samma funktioner. Men det betyder också att den delar MasterChefs brister och sårbarheter. 

Så låt oss ta en titt på vilka problem användare och utvecklare kan stöta på när de hanterar MasterChef. Vad ska de vara uppmärksamma på? Och hur ska man närma sig dem?

Hur fungerar DEXer?

Det första att notera är att ett MasterChef-kontrakt är ett smart kontrakt skrivet i Solidity som styr vad en gård kan göra och hur den kan göra det. I de flesta projekt finns det flera smarta kontrakt som delar ansvaret och arbetet. Men när det kommer till MasterChef-baserade protokoll är det detta enda kontrakt som tar hand om allt angående jordbruket.

Decentraliserade börser gör att du kan växla kryptovalutor utan att behöva sätta in pengar i börsens plånbok. Istället sätter du in pengar till smarta kontrakt från din egen plånbok. Du är den enda personen som kontrollerar det och kan komma åt dina egna pengar om kontrakten inte har bakdörrar eller sårbarheter.

En annan skillnad ligger i det faktum att CEX:er använder orderböcker för köp och försäljning. Detta innebär att de matchar köpare med säljare, medan DEX:er använder AMM (Automated Market Maker) protokoll för handel, som beräknar priset på tillgångarna beroende på hur mycket likviditet som investeras.

Likviditet kommer från likviditetspooler, som är pooler till vilka användare kan sätta in pengar för specifika par och göra medel tillgängliga för protokollet. Sedan, när någon försöker köpa tillgångar med det paret, fullföljs deras beställning omedelbart med hjälp av pengarna från poolen. Under tiden får personer som satte in pengar till likviditetspoolen LP-tokens för den specifika poolen. Detta ger dem rätt att dela belöningar.

Och om de någon gång vill få tillbaka sina pengar behöver de bara ge tillbaka LP-polletterna som de fått.

Som du kanske vet finns det flera sätt att generera utbyten från kryptoinnehav. Gårdar ger ytterligare belöningar för att tillhandahålla likviditet. Användare lägger till likviditet till DEX, får LP-tokens och satsar dem på gårdar.

MasterChef: Sårbarheter och brister

Vi har täckt hur DEX fungerar och hur likviditetspooler fungerar. Så låt oss ta en närmare titt på var MasterChef-sårbarheterna kommer in, hur de påverkar processen, samt vilket tillvägagångssätt du behöver ta för att säkerställa att saker och ting fortsätter att gå smidigt.

MasterChef är ett enda smart kontrakt som används för jordbruksavkastning genom att tillhandahålla likviditet i DEX. Tyvärr har den vissa brister som kan åtgärdas under användning, men bara om användarna är medvetna om dem och vad de kan göra.

Intrång i konton

Ett av de största problemen att se upp med kretsar kring att ägarkontona äventyras. I grund och botten uppfann SushiSwap en metod som gjorde att den kunde få ett försprång mot Uniswap. Den metoden kretsar kring att migrera tillgångar från en börs till en annan. Detta hanteras av kontraktet med en separat funktion som endast är tillgänglig för kontraktets ägare.

Denna migrering kan dock sluta med att vara anpassad till i princip vilket kontrakt som helst, utan några begränsningar, vilket slutade med att bli ett stort förbiseende. Så om ägarkontot äventyras kan detta resultera i ett nytt migreringskontrakt som skulle skicka alla bas-LP-tokens i alla jordbrukspooler till en godtycklig adress. Detta skulle leda till en massiv förlust av investerade tillgångar.

Det bör noteras att denna funktion nu är bekant för utvecklare, och så slutar den med att tas bort direkt i gafflar. Men om det förblir närvarande bör det omedelbart tas som en röd flagga.

En annan sak att notera är att i vissa MasterChef-gafflar kan ägaren av kontraktet ändra utsläppshastigheten utan några begränsningar. Om kontot äventyras kan dock en angripare sätta en mycket hög utsläppshastighet, vilket skulle leda till devalvering av token.

Det finns ett ganska enkelt sätt att lösa detta helt enkelt genom att se till att alla funktioner som är tillgängliga för ägaren av kontraktet kräver auktorisering av flera signaturer. På så sätt, om en enda adress äventyras, skulle dåliga skådespelare inte kunna göra mycket med den. En annan sak att göra är att lägga till ett tillfälligt block (Timelock-kontrakt) för att anropa migreringsfunktionen. På så sätt har användaren mer tid att fatta ett beslut och börsen måste meddela dig om migreringen eller någon annan misstänkt transaktion.

Lägger till identiska jordbrukspooler

En annan ganska uppenbar men förbisedd fråga uppstår när det ursprungliga kontraktet inte tar hänsyn till bearbetning av identiska jordbrukspooler, vilket innebär att kontraktet hotar att beräkna jordbruksbelöningen felaktigt.

Detta är inte ett stort problem om MasterChef används på rätt sätt, eftersom ägaren inte skulle lägga till identiska pooler med avsikt. Faktum är att i korrekt fungerande börser verifieras dessa saker och att skapa en dubblettpool är starkt förbjuden. Så, om du startar poolskapandet och du är på väg nerför vägen för att skapa en dubblett av den befintliga poolen, bör systemet kunna rapportera ett fel. Eller föreslå att du lägger till dina pengar till den befintliga poolen istället för att skapa en ny.

Beräknar inte mängden deponerade tokens

Av någon anledning tenderar folk att glömma att överväga vad som kan hända om tokens med provision på överföringar eller rebase-tokens läggs till som pooler till MasterChef-kontraktet. Vad som händer är en uppdelning i hur belöningarna beräknas, eftersom kontraktskoden lägger till tillgångar till pooler endast genom att anropa vissa funktioner. Detta innebär att om du lägger till tokens till adressen kommer de att kombineras med tillgångarna som redan finns i poolen. Men beräkningarna för belöningar för sådana tokens kan gå sönder vilket leder till sårbarheter.

Rätt fungerande plattformar bör beräkna mängden medel som överförs för jordbruk separat genom att kontrollera det faktiska överförda beloppet som tar hänsyn till provisioner. På så sätt görs belöningsberäkningarna korrekt.

MasterChef: Slutsats

MasterChef är ett enda smart kontrakt som används för jordbruksavkastning genom att tillhandahålla likviditet i DEX. Tyvärr har den vissa brister som kan åtgärdas under användning, men bara om användarna är medvetna om dem och vad de kan göra. 

Ovan har vi täckt flera saker som kan hända och hur dessa problem kan undvikas. Men det bör noteras att det finns fler av dem, såsom utspädning av belöningar om tokens skickas direkt till kontraktsadressen, problem med startblocksändringar, gasoptimeringar och mer. 

Det finns med andra ord sårbarheter och frågor att tänka på och hålla ett öga på. Men totalt sett är MasterChef ett revolutionerande kontrakt som i stort sett har möjliggjort decentraliserade utbyten. Så så länge du fortsätter att använda den noggrant och är medveten om dess brister och hur du åtgärdar dem, borde du klara dig.

Om författarna

Gleb Zykov

Gleb Zykov är medgrundare och CTO på a Defi säkerhet och analysföretag HashEx.

​​Vlad Korovnikov är Junior Smart Contract revisor och utvecklare.

Har litetnågot att säga om Masterchef-lösningar eller något annat? Skriv till oss eller gå med i diskussionen i vår Telegramkanal. Du kan också fånga oss Tik Tok, Facebook, eller Twitter.

Villkor

All information på vår webbplats publiceras i god tro och endast för allmän information. Alla åtgärder som läsaren vidtar på informationen på vår webbplats är strikt på deras egen risk.

Källa: https://beincrypto.com/masterchef-smart-contracts-the-workarounds-for-the-fatal-flaws/