Prečo sú audity zabezpečenia inteligentných zmlúv také dôležité?

Povedať, že žijeme v „ére ICO“, je hrubé podhodnotenie.

Vytvorili príjmy v miliardách dolárov a v priebehu tohto procesu sa stali veľmi známym menom. Keďže však okolo nich prúdi toľko peňazí, je potrebné venovať zvýšenú pozornosť tomu, aby sa inteligentné zmluvy nevyužívali a aby generované peniaze boli bezpečné..

Chybné alebo neopatrné kódovanie môže viesť k množstvu útokov hackerov, ako je útok reentrancy, útok pretečenia / podtečenia atď. Pamätajte, že v konečnom dôsledku nejde iba o vaše peniaze.

Po tomto, poďme teda pochopiť, čo sú inteligentné zmluvy a aké rôzne typy zmlúv existujú.

Prečo sú audity zabezpečenia inteligentných zmlúv také dôležité?

Prečo sú audity zabezpečenia inteligentných zmlúv také dôležité?

Rôzne typy inteligentných zmlúv

Inteligentné zmluvy sú automatizované zmluvy. Vykonávajú sa samostatne s konkrétnymi inštrukciami napísanými na jej kóde, ktoré sa vykonajú po splnení určitých podmienok.

Prečo sú audity zabezpečenia inteligentných zmlúv také dôležité?

Viac informácií o inteligentných zmluvách sa dozviete v náš podrobný sprievodca tu.

Inteligentné zmluvy sú to, ako sa veci dajú robiť v ekosystéme ethereum. Ak chce niekto vykonať konkrétnu úlohu v ethereum, vytvorí inteligentnú zmluvu s jedným alebo viacerými ľuďmi.

Inteligentné zmluvy sú súborom pokynov napísaných pomocou programovacieho jazyka „solídnosť”, Ktorý funguje na základe Logika IFTTT aka AK-TOTO-POTOM-TOTO logika. V zásade platí, že ak je hotová prvá sada pokynov, vykonajte ďalšiu funkciu a potom ďalšiu a pokračujte ďalej, až kým nedosiahnete koniec zmluvy..

Existujú tri druhy inteligentných zmlúv:

  • Plne na reťazci štandardných kontraktov, ktoré neobsahujú žiadne etherové (ani žiadne vyhovujúce tokeny) prevody. Jedná sa o tie, ktoré sa najľahšie kontrolujú, pretože sa riadia konkrétnym štandardom. Pretože sú úplne na blockchaine a nemajú žiadne etherové prenosy, nie je zraniteľný voči útokom
  • Plne na reťazci štandardných kontraktov, ktoré umožňujú prenosy Etherov ako ICO. Audit týchto zmlúv je o niečo ťažší ako tých predchádzajúcich. Zmluvy, ktoré umožňujú ICO, sa zvyčajne riadia šablónami, ktoré uľahčujú audit.
  • Nakoniec máme zmluvy, ktoré majú mimoreťazcové interakcie ako Oracle, kanály atď. Je mimoriadne ťažké ich auditovať, pretože zahŕňajú niektoré operácie, ktoré sú mimo blockchainu. V skutočnosti nebude ťažké povedať, že úplný audit týchto zmlúv je takmer nemožný.

Dobre, takže teraz vieme, čo sú inteligentné zmluvy. Pozrime sa na význam kontroly týchto zmlúv.

Dôležitosť auditu

Je márne hovoriť vám o dôležitosti auditu bez toho, aby sme vám hovorili o najslávnejšom hackingu v krátkej histórii ICO..

DAO alias Decentralizovaná autonómna organizácia bola zložitá inteligentná zmluva, ktorá navždy spôsobila revolúciu v éteri. V podstate to mal byť decentralizovaný fond rizikového kapitálu, ktorý by financoval všetky budúce DAPPS vyrobené v ekosystéme.

Spôsob, akým to fungovalo, bol dosť priamy. Ak by ste chceli mať nejaké slovo v smere DAPPS, ktoré by bolo financované, potom by ste si museli kúpiť „DAO tokeny“ za určité množstvo éteru. Tokeny DAO boli indikátory toho, že ste teraz oficiálne súčasťou systému DAO.

Ako teda bude schválený a vybudovaný DAPPS? Najprv sa musia dostať na bielu listinu od kurátorov, ktorí boli v podstate známymi figúrkami vo svete éteru. Po získaní pečiatky schválenia dostanú držitelia tokenov DAO hlasovanie. Ak návrh získa pri hlasovaní súhlas 20%, získa potrebné finančné prostriedky na začiatok.

Potenciál DAO a flexibilita, kontrola a úplná transparentnosť, ktoré ponúkal, boli bezprecedentné; ľudia naskočili, aby získali svoj podiel na koláči. Za 28 dní od svojho vzniku nahromadil v crowdsale éter za viac ako 150 miliónov dolárov. V tom čase malo 14% všetkých doteraz vydaných éterových tokenov.

Mohlo by vás zaujímať, to je všetko dobré, ale ako človek vyjde z DAO? Čo ak bude schválený niektorý DAPP, ktorého nie ste veľkým fanúšikom, ako sa potom odhlásite z DAO? Aby ste to umožnili, boli vytvorené výstupné dvere s názvom „Rozdelená funkcia“. Pomocou tejto funkcie získate späť éter, ktorý ste investovali, a ak si to prajete, môžete si dokonca vytvoriť svoj vlastný „Child DAO“. V skutočnosti by ste sa mohli rozdeliť s viacerými držiteľmi tokenov DAO, vytvoriť si vlastný Child DAO a začať prijímať návrhy.

V zmluve bola jedna podmienka, po odštiepení od DAO by ste sa však museli držať svojho éteru 28 dní, kým by ste ich mohli minúť.

Takže zatiaľ vyzerá všetko pekne a rafinovane … až na to, že nastal jeden malý problém. Mnoho ľudí uvidelo túto možnú dieru a poukázalo na ňu. Tvorcovia DAO ubezpečili, že to nebude veľký problém. Jediná vec je, že to bol naozaj veľký problém. Práve táto vec vytvorila celú búrku, ktorá rozdelila ethereum na Ethereum a Ethereum Classic.

17. júna 2016 niekto využil túto medzeru v DAO a odsekol jednu tretinu finančných prostriedkov DAO. To je okolo 50 miliónov dolárov. Medzera, ktorú hackeri objavili, bola pri spätnom pohľade dosť jasná.

Ak si niekto prial opustiť DAO, môže tak urobiť odoslaním žiadosti. Funkcia rozdelenia bude nasledovať nasledujúce dva kroky:

  • Vráťte používateľovi jeho éter výmenou za jeho tokeny DAO.
  • Zaregistrujte transakciu v hlavnej knihe a aktualizujte interný zostatok tokenov.

Hacker urobil to, že v požiadavke urobil rekurzívnu funkciu, takže takto nasledovala funkcia rozdelenia:

  • Vezmite od používateľa tokeny DAO a dajte im požadovaný éter.
  • Rekurzívna funkcia predtým, ako mohli zaregistrovať transakciu, prinútila kód vrátiť sa a preniesť ešte viac éteru za rovnaké tokeny DAO.
  • Takto to pokračovalo a pokračovalo, až kým nebol éter v hodnote 50 miliónov dolárov vybratý a uložený v Child DAO a ako by ste čakali, pandemonium prešlo celou komunitou ethereum.

Takže zhrnutie všetkého.

DAO mal byť revolučný dApp, ktorý navždy zmení Ethereum. Avšak kvôli jednoduchej chybe v kóde inteligentného kontraktu bol hacker schopný odseparovať éter v hodnote 50 miliónov dolárov. Výsledkom bolo nasledovné:

  • DAO sa vyplo
  • Hodnota éteru klesla
  • Následná dráma rozdelila celú komunitu Ethereum na dve, Ethereum a Ethereum Classic.

DAO, viac ako čokoľvek iné, slúži ako pripomienka toho, prečo sa ICO musia uistiť, že investujú do kvalitných audítorských služieb. Skutočne smutnou časťou je, že sa tomu dalo vyhnúť, ak by bola zmluva predložená dostatočne slušnej audítorskej službe.

To zosobňuje aj hlavný problém, s ktorým sa stretávajú najmodernejšie inteligentné zmluvy: prepracovanie.

Väčšinu zmlúv vypracúva niekoľko vývojových pracovníkov, čo nevyhnutne vedie k zbytočne vysokej úrovni zložitosti. Táto vysoká úroveň zložitosti vedie k vyššej zraniteľnosti, ktorá zvyšuje útočnú plochu Dapp.

Po tom všetkom sa pozrime na základné prístupy, ktoré existujú pri audite zmlúv.

Základné prístupy k auditu

Existujú dva základné prístupy na inteligentný audit zmlúv:

  • Manuálna analýza kódu
  • Automatická analýza kódu.

Manuálna analýza kódu

Ak máte vývojový tím slušnej veľkosti, mali by ste vykonať manuálnu analýzu. Tím v zásade prejde a preskúma každý riadok kódu a otestuje ich z hľadiska rôznych bezpečnostných problémov. Aj keď je samozrejmé, že ide o najlepší spôsob auditu, problémom zostáva skutočnosť, že je mimoriadne časovo náročný. Ak ešte nemáte svoj vlastný vývojársky tím, bude vás stáť veľa peňazí za to, aby ste si najali potrebný počet vývojárov, aby ste si podrobne prešli svoj kód.

Automatická analýza kódu

Na druhej strane automatická analýza kódu šetrí vývojárom kopu peňazí, pretože využívajú sofistikované penetračné testy, ktoré im pomáhajú nájsť zraniteľné miesta. Vývojári používajú softvér ako Truffle na vykonávanie automatického testovania kódu. Môžu tiež použiť Populus, čo je rámec založený na pythone.

Aj keď je táto metóda rýchla a finančne nenáročná, má množstvo problémov.

Automatickému testovaniu môže uniknúť pomerne veľa zraniteľností a môže tiež chybne identifikovať kód ako problematický, aj keď to tak nie je.

Najideálnejším riešením bude teda kombinácia dôkladnosti manuálnej analýzy a časovej a ekonomickej efektívnosti automatickej analýzy. To je to, čo sme dosiahli pomocou BountyOne.

Brzy vám predstavíme program BountyOne, ale skôr ako to urobíme, musíme vám povedať, aký je súčasný stav audítorského priemyslu..

Súčasný stav auditu

No, mierne povedané, súčasný stav audítorského priemyslu je narušený. Za zmienku stoja dve veci:

  • Po prvé, ponuka vývojárov, ktorí majú dostatočné vedomosti na to, aby prešli rôznymi iteráciami kódu, aby našli zraniteľné miesta, je extrémne nízka. Je to veľmi úzka oblasť.
  • Po druhé, dopyt je mimoriadne vysoký. Stačí sa pozrieť na samotný počet ICO. Je zrejmé, že všetci chcú mať pre svojich inteligentných zmlúv vhodných audítorov.

Z týchto dôvodov cena riadneho auditu a testovania prechádza cez strechu.

Presné náklady na vykonanie auditu inteligentnej zmluvy skutočne závisia od mnohých kľúčových faktorov.

Ako sme už povedali, ak nemáte vlastný vývojársky tím, budete musieť svoju zmluvu zadať externe, čo výrazne zvýši váš rozpočet..

Z tohto dôvodu stojí jednoduchá inteligentná zmluva bez obchodnej logiky okolo 4 000 dolárov. Komplikovanejšie a pokročilejšie inteligentné zmluvy môžu ísť od 50 000 dolárov až do 100 000 dolárov.

Navyše, ak to nestačí. Spravidla existuje 3-4-týždňový čakací zoznam a potom trvá 8 týždňov, kým sa dokončí proces auditu.

Nielenže teda trávite veľa peňazí, ale tiež strácate veľa času. Preto sme predstavili platformu BountyOne pre:

  • Spojte rôznych vývojárov z celého sveta na jednej platforme
  • Po druhé, pomôže tvorcom projektov ušetriť veľa času a peňazí a stále dosiahnuť najlepší možný audit.

Dobre, tak vám to predstavíme BountyOne.

Čo je iné na BountyOne?

Predstavte si BountyOne ako „Uber“ inteligentných zmluvných audítorov. Každý audítor sa môže rozhodnúť pracovať na akejkoľvek zmluve, ktorá je momentálne aktívna na platforme. Každý z týchto audítorov je podrobne preverený nami. Prechádzajú podrobným procesom podávania žiadostí, vďaka ktorému sa na našu platformu dostanú iba tí najlepší audítori.

Celý proces auditu prechádza tromi fázami:

  • 1. etapa: Audítori pracujú na zmluve a predkladajú ich verzie
  • 2. etapa: Starší audítori sa potom pozrú na prácu, ktorú vykonali audítori, a označia ich od 0 do 10
  • 3. etapa: Komunita kontroluje prácu, ktorú vykonali starší audítori a audítori, či je všetko v poriadku.

Tento „audit trojitého priekopu“ zaisťuje, že práca každého bude nielen dvojnásobná, ale aj trojitá. Takže, keď už vieme všeobecný prehľad, poďme teraz do podrobností.

Fáza 1: Auditovanie

Prečo sú audity zabezpečenia inteligentných zmlúv také dôležité?

Poskytovateľ zmluvy predloží zmluvu a pridelí jej určité množstvo éteru. Odmeny budú na platforme uvedené ako druh vývesky. Zmluvy budú uvedené ako „Prebieha“.

Prečo sú audity zabezpečenia inteligentných zmlúv také dôležité?

Teraz sa každý audítor, ktorého preverila spoločnosť BountyOne, môže rozhodnúť pracovať na tejto zmluve. Iniciujú to tak, že do zmluvy vkladajú časť svojho éteru. Dôvody tohto vkladu sú jednoduché, aby sa zabezpečilo, že sa veci stihnú včas.

Jedným z najväčších problémov súčasných služieb inteligentného auditu zmlúv je ich mimoriadna náročnosť. Ako sme už spomínali, môže to trvať >50 dní na audit bežnej zmluvy.

V spoločnosti BountyOne zabezpečujeme, aby bolo načasovanie prioritou tým, že necháme našich audítorov uzavrieť časovo citlivú zmluvu. V zásade platí, že ak nedokončia svoju prácu v danom čase, stratia svoj podiel.

Na projekte môže naraz pracovať 10 audítorov.

Fáza 2: Známkovanie

Prečo sú audity zabezpečenia inteligentných zmlúv také dôležité?

Teraz prichádza druhá etapa procesu.

Audítori vytvorili a predložili svoje verzie zmluvy, tak ako si teraz môžeme zvoliť najlepšiu zmluvu spravodlivo? Z tohto dôvodu je potrebné zvoliť porotu.

Traja starší audítori si môžu zvoliť, že sa stanú porotcami pre konkrétny prípad auditu vložením ethereum do zmluvy. Vyšší audítor je v zásade audítor, ktorý vykonal najmenej 3 úspešné audity v ekosystéme BountyOne. Takže títo starší audítori môžu ohodnotiť prácu každého audítora individuálne od 0 do 10, pričom 0 je najnižšia a 10 výnimočných.

Predstavte si, že máme hypotetickú inteligentnú zmluvu A a pracujú na nej iba dvaja audítori, Alice a Bob. Predstavte si, že traja starší audítori označujú Alicu a Boba takto:

Prečo sú audity zabezpečenia inteligentných zmlúv také dôležité?

Dobre, ukázalo sa, že Alice odviedla skvelú prácu a Bob odviedol strašnú prácu. Aspoň tak rozhodla naša porota.

Je však potrebné vykonať ešte jednu úroveň kontroly. Pamätáte si, ako sme povedali, že každý starší audítor musí mať zapojené svoje ethereum, aby sa stal členom poroty? Tu vstupuje do hry tento podiel.

Fáza 3: Overovanie

Prečo sú audity zabezpečenia inteligentných zmlúv také dôležité?

Poslednou fázou auditu je kontrola komunity. Celá komunita audítorov spoločnosti BountyOne získa tieto informácie:

  • Pôvodná zmluva, ktorá bola poskytnutá na vykonanie auditu
  • Všetky kontrolované zmluvy, ktoré predložili audítori
  • Známky, ktoré dostali do auditovaných zmlúv starší audítori

Komunitná kontrola využíva „múdrosť davu“, aby sa zabezpečilo, že vyšší audítori spravodlivo označili kontrolované zmluvy..

Za týmto účelom skontrolujú každú kontrolovanú zmluvu a zistia, o koľko je zlepšenie oproti pôvodnej predloženej zmluve. Potom sa chystajú skontrolovať známky, ktoré udelil starší audítor, a zistiť, či je to spravodlivé alebo nie.

Ak komunita nenájde žiadne chyby, potom dobre a dobre. Predpokladajme však, že nájdu nejaké do očí bijúce nezrovnalosti. Predpokladajme, že skontrolovali Bobove audity a myslia si, že odviedol skutočne dobrú prácu a 2/10 je pre neho oveľa menej skóre. Ak sa tak stane, vznesú červenú vlajku.

Funguje to aj opačne.

Predpokladajme, že starší audítor dal podpriemernému auditu skutočne dobré hodnotenie. Komunita potom tento audit redignuje a zruší známky, ktoré audítor dostal.

Fáza 3B: Označenie červenou (voliteľné)

AK komunita vznesie červenú vlajku, potom a až potom sa vytvorí táto druhá porotná skupina vyšších audítorov. Starší audítori, ktorí sa zúčastnili pôvodnej poroty, sa nebudú môcť zúčastniť tejto.

Ak táto porota zistí, že určití vyšší audítori nevykonali svoju prácu správne v pôvodnej porote, potom je ich podiel okamžite odobratý. Vyšší audítori majú preto vždy ekonomický stimul, aby sa ubezpečili, že audity správne označujú.

Fáza 4: Odmena

Prečo sú audity zabezpečenia inteligentných zmlúv také dôležité?

Dobre, takže keď už vieme, ako celý proces funguje, pozrime sa hlbšie na mechanizmus odmeňovania. Ako platforma BountyOne odmeňuje svojich účastníkov, aby sa ubezpečil, že každý dostáva svoje spravodlivé odmeny?

Rozdelenie funguje takto:

  • 70% z celkovej odmeny éteru patrí audítorom
  • 20% z celkového množstva éteru pripadne audítorom Senor.
  • AK komunita zistí niečo zlé na auditoch alebo práci vrchného audítora, môže označiť červenou zástavou, ktorú skontroluje nová porota vyšších audítorov. Ak sa to skontroluje, potom komunita a táto druhá porota vyšších audítorov získa 10% z celkového množstva éteru.
  • Ak však komunita nenájde absolútne nič zlé, ďalších 10% celkového éteru sa vráti späť audítorom. Takže v tomto prípade dostanú spolu 80%
  • Audítori dostanú odmenu v pomere k známkam, ktoré dostali.

Uveďme si príklad a pozrime sa, ako bude prebiehať rozpis odmien.

Predpokladajme, že máme zmluvu s cenou odmeny 10 ETH. Predpokladajme, že na tom pracovali iba dvaja audítori, Alice a Bob, a počas procesu auditu komunita nie musia vstúpiť do hry.

Alice a Bob teda dostanú 80% z celkovej ceny odmeny Etheru, čo je 8 ETH.

Teraz predpokladajme, že starší audítori bodovali Alicu a Boba takto:

Prečo sú audity zabezpečenia inteligentných zmlúv také dôležité?

Celkové skóre je: 9 + 10 + 9 + 3 + 3 + 2 = 36

Z toho je Alicin podiel: 9 + 10 + 9 = 28 z 36, čo je 28/36 * 100 = 77,78%

Bobov podiel je: 3 + 3 + 2 = 8 z 36, čo 8/36 * 100 = 22,22%

Po audite teda Alice získa 6,24 ETH (77,78% z 8) a Bob 1,76 ETH.

Môžete sa pozrieť na infografika všetkých procesov v BountyOne práve tu.

Prečo BountyOne nad inými platformami?

Prečo by ste si mali teda zvoliť BountyOne nad ostatnými kontrolnými platformami? Pozrime sa teda:

  • Je to lacnejšie, pretože nemáme audítorov na plný úväzok, za ktorých platenie musíme platiť státisíce dolárov. Majú iné pracovné miesta na vývoj solídnosti a robia to na strane ako vodič Uber.
  • Platíme im na základe výkonu a nielen za to, že prečítajú kód. Z tohto dôvodu sú audítori ekonomicky motivovaní, aby odvádzali čo najlepšiu prácu.
  • Audítori riskujú, že stratia všetky svoje vložené peniaze, ak nerobia dobrú prácu a neodovzdajú svoju prácu včas. Týmto sa zabezpečí, že nedôjde k zbytočnému zdržaniu.
  • Komunita (vrátane ďalších audítorov) môže tiež zarobiť značné množstvo peňazí vyvrátením prác, ktoré vykonali ostatní.

Všetky tieto faktory sa kombinujú, aby sa zabezpečilo, že konečný produkt, ktorý získate, je najlepším možným auditom vašej inteligentnej zmluvy.

Záver

Takže tu to máte. BountyOne, decentralizované trhovisko Bounty. Veríme, že tento model, ktorý využíva ekonomické stimuly a užívateľsky príjemnejšie prostredie, pomôže vniesť potrebnú objednávku do vysoko chaotického a narušeného priestoru, t. J. Inteligentný audit zmlúv.

Ak sa chcete o nás dozvedieť viac, môžete začnite tu

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me