Az intelligens szerződéses biztonsági gondolkodásmód

blog 1NewsDevelopersEnterpriseBlockchain ExplainedEvents and ConferencesPressHírlevelek

Iratkozzon fel hírlevelünkre.

Email cím

Tiszteletben tartjuk a magánéletét

HomeBlogBlockchain fejlesztés

Az intelligens szerződéses biztonsági gondolkodásmód

5 biztonsági elv, amelyet minden Ethereum fejlesztőnek ismernie kell, valamint alapvető kompromisszumok. Készítette ConsenSys 2020. június 17-én. Feladva 2020. június 17-én

Blockchain Security

A ConsenSys Diligence, blokklánc biztonsági szakértőkből álló csapatunk.

Bár az ipar beérik, az intelligens szerződések fejlesztése még mindig viszonylag új és érett terület. Ezért állandó változásokra kell számítania a biztonsági környezetben, mivel új hibákat és biztonsági kockázatokat fedeznek fel, valamint új bevált módszereket fejlesztenek ki. Tanulás és követés legjobb gyakorlatok csak a kezdete annak a biztonsági munkának, amelyet intelligens szerződés-fejlesztőként kell elvégeznie.

Az intelligens szerződéses programozás más mérnöki gondolkodásmódot igényel, mint amit megszokhat. A meghibásodás költsége magas lehet, és a változás is nehéz lehet, ami bizonyos szempontból jobban hasonlít a hardveres programozáshoz vagy a pénzügyi szolgáltatások programozásához, mint a webes vagy mobil fejlesztéshez. Ezért nem elegendő védekezni az ismert sebezhetőségek ellen. Ehelyett meg kell tanulnia egy új fejlesztési filozófiát.

Felkészülés a kudarcra

Minden nem triviális szerződésben hibák lesznek. Ezért a kódodnak képesnek kell lennie arra, hogy kecsesen reagáljon a hibákra és a sérülékenységekre.

  • Szüneteltesse a szerződést, ha a dolgok rosszra fordulnak („megszakító”).
  • A veszélyeztetett pénzmennyiség kezelése (árkorlátozás, maximális felhasználás).
  • Legyen hatékony frissítési útvonala a hibajavításokhoz és fejlesztésekhez.

Óvatosan indítsa el

A teljes gyártási kiadás előtt mindig jobb elkapni a hibákat.

  • A teszteket alaposan tesztelje, és adjon hozzá teszteket, ha új támadási vektorokat fedeznek fel.
  • Biztosítani bug bounties alfa tesztnet kiadásoktól kezdve.
  • Futtatás fázisokban, növekvő felhasználással és teszteléssel az egyes fázisokban.

Legyen egyszerű a szerződések

Az összetettség növeli a hibák valószínűségét.


  • Győződjön meg arról, hogy a szerződés logikája egyszerű.
  • Modulálja a kódot, hogy a szerződések és a funkciók kicsiek legyenek.
  • Használjon már megírt eszközöket vagy kódot, ha lehetséges (pl. Ne forgassa el saját véletlenszám-generátorát).
  • Előnyben részesítse az egyértelműséget a teljesítmény mellett.
  • A blokkláncot csak a rendszer decentralizálást igénylő részeihez használja.

Maradj naprakész

Kövesse nyomon az új biztonsági fejleményeket.

  • Amint felfedezik, ellenőrizze a szerződéseiben az esetleges új hibákat.
  • A lehető leghamarabb frissítsen bármely eszköz vagy könyvtár legújabb verziójára.
  • Használjon új, hasznosnak tűnő biztonsági technikákat.

Legyen tisztában az EVM sajátosságaival

Bár a programozási tapasztalatok nagy része releváns lesz az Ethereum programozás szempontjából, néhány buktatóval kell tisztában lenni.

  • Legyen rendkívül óvatos a külső szerződéses hívásokkal kapcsolatban, amelyek rosszindulatú kódokat hajthatnak végre, és megváltoztathatják a vezérlés folyamatát.
  • Értse meg, hogy nyilvános funkciói nyilvánosak, és rosszindulatúan és bármilyen sorrendben hívhatók fel. Az intelligens szerződések privát adatait szintén bárki megtekintheti.
  • Tartsa szem előtt a gázköltségeket és a blokkolt gázkorlátot.
  • Ne feledje, hogy az időbélyegek pontatlanok egy blokkláncon: a bányászok néhány másodpercen belül befolyásolhatják a tranzakció végrehajtásának idejét.
  • A véletlenszerűség nem triviális a blokkláncban, a véletlenszám-generálás legtöbb megközelítése egy blokkláncon játszható.

Alapvető kompromisszumok

Az intelligens szerződéses rendszer felépítésének és biztonságának értékelésekor több alapvető kompromisszumot kell figyelembe venni. Bármely intelligens szerződéses rendszer általános ajánlása az alapvető kompromisszumok megfelelő egyensúlyának meghatározása.

Ideális intelligens szerződéses rendszer a szoftvertervezés részrehajlásából moduláris, a kód másolása helyett újrafelhasználja a kódot, és támogatja a frissíthető összetevőket. Egy ideális intelligens szerződéses rendszer egy biztonságos architektúra-elfogultságból, megoszthatja ezt a gondolkodásmódot, különösen az összetettebb intelligens szerződéses rendszerek esetében.

Vannak azonban fontos kivételek, ahol a biztonsági és a szoftverfejlesztési bevált gyakorlatok nem biztos, hogy összehangolódnak. Mindegyik esetben a megfelelő egyensúlyt úgy kapjuk meg, hogy meghatározzuk a tulajdonságok optimális keverékét a szerződéses rendszer dimenziói mentén, például:

  • Merev vagy frissíthető
  • Monolitikus vs. moduláris
  • Másolat és újrafelhasználás
Merev vagy frissíthető

Míg több erőforrás, beleértve ezt is, hangsúlyozza a alakíthatósági jellemzőket, például a Killable, Upgradeable vagy Modifiable mintákat, a képlékenység és a biztonság között alapvető kompromisszum van.

A alakíthatósági minták definíció szerint hozzáadják a bonyolultságot és a lehetséges támadási felületeket. Az egyszerűség különösen hatékony a bonyolultsággal szemben azokban az esetekben, amikor az intelligens szerződéses rendszer nagyon korlátozott funkcionalitást végez előre meghatározott, korlátozott ideig, például kormányzás nélküli véges időtartamú token-adásvételi szerződéses rendszer.

Monolitikus vs. moduláris

A monolit önálló szerződés az összes tudást helyileg azonosíthatóvá és olvashatóvá teszi. Noha kevés olyan nagy intelligenciájú intelligens szerződéses rendszer van, amely monolitként létezik, érvelni kell az adatok és az áramlás szélsőséges helye mellett – például a kódellenőrzés hatékonyságának optimalizálása esetén.

A többi itt figyelembe vett kompromisszumhoz hasonlóan a biztonsági bevált gyakorlatok is elterjednek az egyszerű, rövid életű szerződésekben a szoftverfejlesztési bevált gyakorlatoktól, a bonyolultabb, örökös szerződéses rendszerek esetében pedig a szoftverfejlesztési bevált gyakorlatok felé..

Másolat és újrafelhasználás

Az intelligens szerződéses rendszer a szoftverfejlesztés szempontjából maximalizálni kívánja az újrafelhasználást, ahol ésszerű. A szerződés kódjának újrafelhasználására a Solidity-ban sokféle lehetőség van. A kódok újrafelhasználásának eléréséhez általában a legbiztonságosabb módja annak, hogy korábban bevezett, korábban már telepített szerződéseket használjon.

A sokszorosításra gyakran hivatkoznak azokban az esetekben, amikor a saját tulajdonú, korábban telepített szerződések nem állnak rendelkezésre. Olyan erőfeszítések, mint Az OpenZeppelin’s Solidity Library törekedjen olyan minták biztosítására, hogy a biztonságos kód ismétlés nélkül újra felhasználható legyen. Bármely szerződéses biztonsági elemzésnek tartalmaznia kell minden olyan újrafelhasználott kódot, amely korábban nem hozott létre olyan szintű bizalmat, amely arányos lenne a cél intelligens szerződéses rendszer kockázatának.

Az alkalmazások felépítése és elindítása az Ethereumon vitathatatlanul a legizgalmasabb határ a szoftvermérnökök számára, de ehhez folyamatos fenyegetésmodellezésre, biztonsági ellenőrzésre és az események elhárítására van szükség.

A szorgalmi csapat itt van, hogy segítsen ébernek maradni és bizalmat szerezni a telepítésekben.

Foglaljon le egy Blockchain biztonsági spot ellenőrzést

1 napos áttekintéseink már a kezdetektől segítenek a biztonság beépítésében a blokklánc kódjába, így hosszú távon időt és pénzt takaríthat meg. Foglaljon ma ma SecuritySmart szerződésekHírlevélFeliratkozás hírlevelünkre a legfrissebb Ethereum hírekről, vállalati megoldásokról, fejlesztői erőforrásokról és egyebekről. E-mail címExkluzív tartalomHogyan készítsünk sikeres blokklánc terméketWebinárium

Hogyan készítsünk sikeres blokklánc terméket

Hogyan állítsunk be és futtassunk Ethereum csomópontotWebinárium

Hogyan állítsunk be és futtassunk Ethereum csomópontot

Hogyan készítsünk saját Ethereum API-tWebinárium

Hogyan készítsünk saját Ethereum API-t

Hogyan hozzunk létre közösségi tokentWebinárium

Hogyan hozzunk létre közösségi tokent

Biztonsági eszközök használata az intelligens szerződés-fejlesztésbenWebinárium

Biztonsági eszközök használata az intelligens szerződés-fejlesztésben

A pénzügyi eszközök digitális eszközei és a DeFi jövőjeWebinárium

A pénzügyek jövője: digitális eszközök és DeFi

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me
Like this post? Please share to your friends:
Adblock
detector
map