Olvasási idő: 6 jegyzőkönyv
Ebben a blogban felvázoltuk a likviditási befektetési protokollok fogalmát és a befektetési protokollok auditálási irányelveit. Az irányelvek számos sebezhető pontra vonatkoznak, mint például a visszavonási mechanizmusokra, kerekítési hibákra, külső hívásokra, díjlogikára, hurkokra, struktúrákra, tét időtartamára stb. Ez a blogbejegyzés hasznos referencia lesz a tét protokollok auditálásához, és segíthet azonosítani a potenciális hibákat. .
Mi az a likviditási befektetés?
A likviditási befektetés lehetővé teszi a felhasználók számára, hogy a likviditás feláldozása nélkül tétet szerezzenek kriptovalutában, és jutalmakat szerezzenek. Ahelyett, hogy egy meghatározott időtartamra zárolnák érméiket, a felhasználók egy folyékony tokent kaphatnak, amely a megtett eszközeiket jelképezi. Ezzel a tokent bármely más kriptovalutához hasonlóan lehet kereskedni vagy használni, így a felhasználók tetszés szerint használhatják eszközeiket, miközben tét jutalmakat is szerezhetnek.
Például 100 ETH-ja van az Ethereum hálózaton. Ahelyett, hogy határozott időre zárolná ETH-ját, használhat egy likviditási befektetési szolgáltatást, például a Lido-t az ETH kockáztatására, és cserébe kaphat egy stETH nevű folyékony tokent. A stETH segítségével továbbra is kereskedhet vagy felhasználhatja a megtett ETH-t, miközben tét jutalmakat keres.
Kezdjük a befektetési szerződések auditálásával:
Vizsgálja meg az összes rendelkezésre álló audit-specifikációt, mielőtt belekezdene a szerződéskódba. Lehet fehér papír, README fájlok vagy valami más formájában. Ezek alapján képet kaphat arról, hogy mit fog tartalmazni a szerződéskód.
Amikor megnézi az adásvételi szerződés könyvvizsgálati specifikációját, ügyeljen a következőkre:
- A díjak típusai és számításaik.
- Jutalmazási mechanizmus a téttel ellátott tokenekért
- A tulajdonos jogköre
- Tartani fog a szerződésben az ETH-t?
- Milyen jelzőket tartalmaz a szerződés?
- Eredeti szerződés, ahonnan villás
Ellenőrizze, hogy a specifikációk megegyeznek-e a kóddal. Kezdje a díjakkal és a tokenomikával, majd a tulajdonos jogosultságának érvényesítésével. Ellenőrizze, hogy minden jutalom és díjérték összhangban van-e a dokumentációval.
Sebezhető helyeket keresni?
1. Jutalomfelvételi mechanizmus:
Ellenőrizze, hogy a tét token jutalmazó mechanizmus megfelelően van-e végrehajtva, és hogy a jutalmakat igazságosan és arányosan osztják-e el az összes téttel rendelkező személy között. A projektek kétféle módon oszthatják ki a jutalmakat: vagy automatikusan, időszakosan, vagy maguk a felhasználók kérésére. A kivonási funkció a protokoll üzleti logikájának megfelelően megvalósítható és testreszabható.
Íme néhány ellenőrző pont:
- Ellenőrizze, hogy valamelyik felhasználó képes-e többet kivenni, mint a jutalma + a tét összege.
- Ellenőrizze a túlcsordulást/alulcsordulást az összeg kiszámításánál
- Ellenőrizze, hogy bizonyos paraméterek negatív hatással lehetnek-e a jutalmakra a számítás során.
- Ha ebben a függvényben block.timestamp vagy block.number használatos. Ellenőrizze, hogy kihasználható-e bármilyen módon.
2. Díj logika:
Ha a befizetés és a kifizetés bizonyos díjköteles, akkor ellenőrizze, hogy egyetlen felhasználó sem tudja megkerülni a díjat. Ezenkívül ügyeljen az esetleges túlcsordulási vagy alulcsordulási problémákra. Csak a rendszergazda vagy a tulajdonos jogosult a díjbeállítások módosítására. Győződjön meg arról is, hogy megállapították-e a maximális díjak küszöbértékét, megakadályozva, hogy az adminisztrátor túl magas összeget állapítson meg.
3. Az LP token verési/égetési mechanizmusa:
Ellenőrizze, hogy a pénzverési és égetési mechanizmusokat megfelelően alkalmazták-e. Az égési függvénynek meg kell fordítania a minta függvény által végzett összes állapotváltozást. Ezenkívül alapvető fontosságú annak ellenőrzése, hogy a felhasználók megkapják-e a megfelelő mennyiségű tokent az első tét során, amikor a készlet üres.
A verési és égetési függvények logikája matematikailag ellenőrizhető, hogy felfedjen minden rejtett sebezhetőséget. Ezenkívül a verett LP tokenek teljes készlete nem haladhatja meg a kockázott eszközöket.
4. Kerekítési hibák:
Annak ellenére, hogy bizonyos kisebb kerekítési hibák jellemzően elkerülhetetlenek és nem aggodalomra adnak okot, jelentősen megnövekedhetnek, ha lehetőség nyílik a többszörözésre. Keressen olyan szélső eseteket, amikor a kerekítési hibákból hasznot húzhat az ismételt kockázással és eltávolítással.
Annak megállapítására, hogy a kerekítési hibák jelentős összeget halmozhatnak fel hosszabb időn keresztül, matematikailag kiszámíthatjuk a lehetséges kerekítési hibák tartományát.
5. Tétezés időtartama:
Győződjön meg arról, hogy a szerződésben szereplő vállalási időtartam számításai összhangban vannak a megadott üzleti logikával. Az időtartam-ellenőrzések megkerülésével ellenőrizze, hogy a felhasználók nem válthatnak-e be jutalmakat a tét időtartamának lejárta előtt. Ezenkívül ellenőrizze, hogy a tét időtartamát a támadó kihasználhatja-e több jutalom megszerzésére.
6. Külső hívások és tokenkezelés:
A legtöbb külső hívás a token szerződésekre irányul. Tehát meg kell határoznunk, hogy a tét szerződés milyen típusú tokeneket kezel. Alapvető fontosságú, hogy ellenőrizze a külső hívásokat az esetleges hibák és visszatérési támadások szempontjából. A deflációs tokenek vagy az átviteli díjjal járó tokenek, mint például a Safemoon, problémát jelenthetnek, ha logikájuk nincs megfelelően implementálva.
7. Ármanipulációk ellenőrzése:
A gyorskölcsönnel történő ármanipuláció az egyik leggyakoribb feltörés a DeFi projekteken. Előfordulhatnak olyan helyzetek, amikor a rosszindulatú szereplők gyorskölcsönök segítségével manipulálhatják az árakat nagy mennyiségű tokenek tétje vagy eltávolítása során. Gondosan tekintse át a befektetési és -kivonási funkciókat, hogy elkerülje a szélsőséges eseteket, amelyek gyorskölcsön-alapú ármanipulációs támadásokhoz és más felhasználók pénzének elvesztéséhez vezethetnek.
8. Néhány további ellenőrzés:
- Hurkok: Ha a szerződéses logika magában foglalja a tömbök hurkolását, fontos annak biztosítása, hogy a blokkgáz-korlátot ne lépjék túl. Ez akkor fordulhat elő, ha a tömb mérete nagyon nagy, ezért meg kell vizsgálnia, milyen funkciók növelhetik a tömb méretét, és hogy bármely felhasználó kihasználhatja-e azt DoS támadásra. Nézd meg ezt jelentést.
- Struktúrák: A kockáztatási szerződések a struct típust használják a felhasználói vagy készletadatok tárolására. Egy függvényen belüli struktúra deklarálásakor vagy elérésekor fontos meghatározni, hogy a „memória” vagy a „tárhely” értéket használja-e. Segíthet megtakarítani egy kis gázt. További információért kérjük, tekintse meg a ehhez a cikkhez.
- Elöl futó: Keressen olyan forgatókönyveket, amelyekben a rosszindulatú szereplők bármilyen tranzakciót lebonyolíthatnak a maguk javára.
- Funkció láthatósági/hozzáférési ellenőrzések: Bármely külső vagy nyilvános funkcióhoz bárki hozzáférhet. Ezért fontos annak biztosítása, hogy egyetlen közfeladat sem végezhet érzékeny tevékenységet. Alapvető fontosságú annak ellenőrzése, hogy a tétbemutató protokoll megfelelő ellenőrzéseket valósított-e meg, hogy megakadályozza az illetéktelen hozzáférést mind a tétbe helyezett érmékhez, mind a rendszer infrastruktúrájához.
- Centralizációs kockázatok: Fontos, hogy ne adjunk túlzott hatáskört a tulajdonosnak. Ha az adminisztrátori cím veszélybe kerül, az jelentős károkat okozhat a protokollban. Ellenőrizze, hogy a tulajdonos vagy a rendszergazdai jogosultságok megfelelőek-e, és győződjön meg arról, hogy a protokoll rendelkezik-e tervvel az olyan helyzetek kezelésére, amikor a rendszergazda privát kulcsai kiszivárognak.
- ETH / WETH kezelés: A szerződések gyakran tartalmaznak speciális logikát az ETH kezelésére. Például, ha az msg.value > 0, a szerződés átalakíthatja az ETH-t WETH-vé, miközben továbbra is lehetővé teszi a WETH közvetlen fogadását. Ha a felhasználó a WETH-t adja meg pénznemként, de ETH-t küld a hívással, ez feltörhet bizonyos invariánsokat, és helytelen viselkedéshez vezethet.
Eddig tárgyaltuk a likviditási befektetési protokollokat és az ilyen protokollok auditálási irányelveit. Dióhéjban, a likviditási befektetés lehetővé teszi a felhasználók számára, hogy a likviditás feláldozása nélkül szerezzenek tétjutalmakat. Felvázoltuk azokat a sérülékeny pontokat, amelyekre a könyvvizsgálóknak figyelniük kell a kockáztatási szerződésekben, mint például a visszavonási mechanizmusok, a díj logika, az LP token verési/égetési mechanizmusa, a kerekítési hibák, a tét időtartama, a külső hívások és az ármanipulációs ellenőrzések.
Javasoljuk az auditoroknak, hogy vizsgálják meg az auditálási specifikációkat, párosítsák a specifikációkat a kóddal, és ellenőrizzék a díjakat és a tokenomikai érvényesítést. Javasoljuk továbbá a további ellenőrzéseket, például a tömbök hurkolását, a memória vagy a tárhely megadását a struct típusú adatokhoz és az előre futó forgatókönyveket. Ezek az irányelvek hasznosak lesznek a kockáztatási protokollok auditálásához, és segítenek azonosítani a lehetséges hibákat.
11 Nézetek
- SEO által támogatott tartalom és PR terjesztés. Erősödjön még ma.
- Platoblockchain. Web3 metaverzum intelligencia. Felerősített tudás. Hozzáférés itt.
- Forrás: https://blog.quillhash.com/2023/03/10/guidelines-for-auditing-staking-protocols/
- :is
- $ UP
- 100
- a
- Képes
- hozzáférés
- igénybe vett
- Hozzáférés
- Szerint
- cselekvések
- szereplők
- További
- Ezen kívül
- cím
- admin
- Előny
- Minden termék
- lehetővé téve
- lehetővé teszi, hogy
- összeg
- és a
- bárki
- megfelelő
- VANNAK
- Sor
- AS
- Eszközök
- At
- támadás
- Támadások
- figyelem
- könyvvizsgálat
- könyvvizsgálat
- könyvvizsgálók
- hatóság
- automatikusan
- elérhető
- alapján
- alap
- BE
- előtt
- kezdődik
- Kezdet
- Blokk
- Blog
- szünet
- bogarak
- éget
- üzleti
- by
- számít
- számítások
- hívás
- hívott
- kéri
- TUD
- nem tud
- gondosan
- esetek
- Okoz
- bizonyos
- Változások
- ellenőrizze
- Ellenőrzések
- kód
- érmék
- Veszélyeztetett
- koncepció
- Vonatkozik
- tartalmaz
- szerződés
- szerződések
- ellenőrzés
- ellenőrzések
- megtérít
- tudott
- terjed
- kritikus
- cryptocurrency
- Valuta
- szabott
- dátum
- Defi
- defi projektek
- deflációs
- letét
- Határozzuk meg
- közvetlenül
- tárgyalt
- terjeszteni
- megosztott
- dokumentum
- dokumentáció
- dokumentumok
- DOS
- alatt
- pénzt keres
- bevételt hozó
- él
- bármelyik
- biztosítására
- hibák
- alapvető
- megalapozott
- stb.
- ETH
- Ethereum
- ethereum hálózat
- példa
- haladja meg
- rendkívül
- Exploit
- Hasznosított
- külső
- meglehetősen
- díj
- díjak
- kevés
- Fájlok
- vezetéknév
- rögzített
- Vaku
- gyorshitelek
- követ
- A
- forma
- gyakori
- ból ből
- funkció
- funkciók
- alapok
- GAS
- kap
- Ad
- Nő
- irányelvek
- hack
- fogantyú
- Kezelés
- Legyen
- segít
- Rejtett
- Magas
- tart
- Holdings
- HTTPS
- ötlet
- azonosítani
- Hatás
- végre
- fontos
- in
- tartalmaz
- Növelje
- információ
- Infrastruktúra
- helyette
- vizsgálja
- kérdések
- IT
- ITS
- kulcsok
- nagy
- vezet
- STRANDFÜRDŐ
- mint
- LIMIT
- Folyadék
- FOLYÉKONY JELZŐ
- fizetőképesség
- hitel
- Hitelek
- néz
- keres
- le
- LP
- készült
- Manipuláció
- Mérkőzés
- matematikailag
- maximális
- mechanizmus
- Memory design
- esetleg
- kisebb
- menta
- Minted
- verése
- hibákat
- több
- a legtöbb
- negatív
- hálózat
- szám
- of
- on
- ONE
- Más
- vázolt
- tulajdonos
- Papír
- paraméterek
- Fizet
- Teljesít
- időszak
- időszakos
- Hely
- terv
- Plató
- Platón adatintelligencia
- PlatoData
- kérem
- pont
- medence
- lehetséges
- állás
- potenciális
- hatáskörök
- megakadályozása
- megakadályozása
- ár
- Áraink
- magán
- Saját kulcsok
- kiváltságok
- Probléma
- Nyereség
- projektek
- protokoll
- protokollok
- nyilvános
- hatótávolság
- kap
- kapott
- ajánl
- megvált
- TÖBBSZÖR
- jelentése
- kérni
- eredményez
- visszatérés
- fordított
- Kritika
- Jutalom
- Jutalmak
- kockázatok
- feláldozása
- biztonságos hold
- Megtakarítás
- forgatókönyvek
- érzékeny
- szolgáltatás
- beállítás
- beállítások
- kellene
- jelentős
- jelentősen
- egyetlen
- helyzetek
- Méret
- So
- néhány
- valami
- különleges
- leírás
- specifikációk
- meghatározott
- tét
- fogadott
- Staked ETH
- érdekeltek
- kockára
- Jutalmak tétele
- kezdődött
- Állami
- STETH
- Még mindig
- tárolás
- tárolni
- tárgy
- lényeges
- ilyen
- kínálat
- hogy
- A
- A háztömb
- azok
- Őket
- maguk
- ebből adódóan
- Ezek
- küszöb
- idő
- időbélyeg
- nak nek
- jelképes
- tokenomika
- tokenek
- Végösszeg
- kereskedelem
- forgalmazott
- tranzakció
- átruházás
- típusok
- jellemzően
- feltárni
- us
- használ
- használó
- Felhasználók
- érvényesítés
- érték
- Értékek
- ellenőrzött
- ellenőrzése
- keresztül
- sebezhetőség
- Sebezhető
- Út..
- módon
- WETH
- Mit
- vajon
- ami
- míg
- fehér
- fehér papír
- lesz
- val vel
- visszavonul
- visszavonás
- belül
- nélkül
- te
- A te
- zephyrnet