Acest articol a fost postat de un membru al comunității. Autorul este David Tarditi, Vicepreședinte de Inginerie la CertiK, o companie de auditare a contractelor inteligente Web3.
rezumat
Verificarea formală a contractelor inteligente le protejează de erori, vulnerabilități și alte condiții adverse. În acest proces, experții umani convertesc logica contractului inteligent în declarații matematice și apoi folosesc un proces automat pentru a verifica logica reală cu un model al comportamentului așteptat al contractului. Combinând verificarea formală și auditul manual, putem efectua o evaluare cuprinzătoare a securității contractelor inteligente.
Introducere
Contractele inteligente sunt programe de calculator implementate pe blockchain care rulează automat atunci când sunt îndeplinite anumite condiții. Contractele inteligente pot fi foarte simple sau extrem de complexe și pot deține active în valoare de milioane sau chiar miliarde de dolari.
Dacă există găuri de securitate în codul contractului inteligent, acesta poate avea consecințe devastatoare, cum ar fi furtul tuturor bunurilor deținute de infractori. În 2021, 50 de milioane de dolari au fost furate de la Uranium Finance (AMM) din cauza unei greșeli de tipar într-un contract inteligent.
Tot în 2021, Compound Finance a emis din greșeală 80 de milioane de dolari în recompense din cauza unei singure erori de codare. În 2022, 320 de milioane de dolari au fost furate de la Wormhole Bridge din cauza unei erori în contractul inteligent.
Prin urmare, este important să obțineți programul de contract inteligent chiar de la început. Contractele inteligente adoptă un model open source, ceea ce înseamnă că odată ce contractul este implementat, codul este făcut public. Dacă un hacker descoperă o eroare, o poate exploata imediat. În plus, practica normală de corecție a vulnerabilităților de securitate de-a lungul timpului este ineficientă, deoarece codul contractelor inteligente de multe ori nu poate fi modificat după implementare.
Cum funcționează verificarea inteligentă a contractului?
Verificarea formală a contractelor inteligente se realizează prin prezentarea logicii și a comportamentului așteptat al contractului inteligent ca declarații matematice. Auditorii folosesc apoi instrumente automate pentru a verifica dacă aceste afirmații sunt corecte.
Procesul presupune:
Definiți specificațiile și caracteristicile așteptate ale contractului într-un limbaj formal.
Transformați codul unui contract într-o declarație formală, cum ar fi un model matematic sau o logică.
Verificați specificațiile contractului și proprietățile utilizând demonstrarea automată a teoremelor sau verificarea modelului.
Repetați procesul de validare pentru a găsi și remedia orice erori sau abateri de la caracteristicile așteptate.
De ce este importantă verificarea inteligentă a contractului
Prin aplicarea raționamentului matematic, ajută la asigurarea faptului că contractele inteligente verificate oficial sunt lipsite de erori, vulnerabilități și alte situații adverse. Verificarea ajută, de asemenea, la creșterea încrederii și a încrederii în contract, deoarece proprietățile acestuia au fost testate riguros și sunt corecte și de încredere.
Aceste exemple de mai jos subliniază modul în care verificarea inteligentă a contractelor poate ajuta la prevenirea pierderilor financiare semnificative și a altor consecințe catastrofale.
Uniswap
Uniswap este un AMM binecunoscut. Contractul inteligent Uniswap V1 a fost supus unei verificări oficiale în timpul procesului de dezvoltare. Înainte de lansare, această verificare formală a găsit și a remediat unele erori de rotunjire, împiedicând epuizarea fondurilor Uniswap V1.
Echilibrist
Balancer V2 este, de asemenea, un AMM dovedit. Verificarea formală a descoperit și a remediat o eroare de calcul a taxei în funcția de împrumut flash din contractul inteligent care a lăsat platforma de tranzacționare vulnerabilă la furt.
SafeMoon
După implementarea SafeMoon V1, a fost descoperită o eroare foarte mică prin verificarea formală. Dacă eroarea nu a fost descoperită, dacă proprietarul contractului a efectuat anumite operațiuni înainte de a renunța la proprietate, proprietarul contractului ar putea să o recâștige după ce a renunțat la contract.
Majoritatea auditurilor manuale ale furcii SafeMoon V1 nu scapă de această eroare, deoarece combinațiile specifice de valori ale variabilelor programului trebuie analizate pentru a-l găsi. Oamenii pot rata cu ușurință această problemă, dar mașinile o pot prinde la timp.
Cum funcționează împreună verificarea formală și auditul manual
Verificarea formală oferă o modalitate sistematică și automată de a verifica logica și comportamentul unui contract în raport cu caracteristicile așteptate. Acest lucru facilitează identificarea și remedierea eventualelor erori sau vulnerabilități. Acest lucru este util în special pentru probleme complexe, subtile, care ar fi dificil de detectat prin inspecție manuală.
Auditul manual implică experți care examinează codul, designul și implementarea contractului. Auditorii își folosesc experiența și expertiza pentru a identifica riscurile de securitate și pentru a evalua situația generală de securitate a contractului. De asemenea, aceștia pot confirma că procesul formal de verificare a fost efectuat corect și pot verifica eventualele probleme pe care instrumentele automate ar putea să nu le detecteze.
Combinând verificarea formală și auditul manual, putem efectua o evaluare cuprinzătoare a securității contractelor inteligente. Acest lucru îmbunătățește șansele de a găsi și remedia orice vulnerabilități. Făcând acest lucru, adoptăm o abordare de securitate în profunzime, care combină expertiza oamenilor și a mașinilor.
Concluzie
Pentru a asigura securitatea contractelor inteligente, verificarea formală și auditul manual trebuie combinate pentru a asigura o evaluare completă și amănunțită a poziției de securitate a contractelor inteligente.
Deși verificarea formală necesită mai mult resurse, este o investiție utilă pentru contractele cu valoare ridicată sau cu factori de risc înalți. La urma urmei, la sfârșitul zilei, securitatea este primordială, așa că asigurați-vă că acordați prioritate securității și asigurați-vă că contractele inteligente sunt lipsite de erori, vulnerabilități și comportamente neașteptate adverse.
Lectură în continuare
Ce este un contract inteligent?
Ce este auditul de securitate al contractului inteligent?
Exonerare de responsabilitate și avertizare privind riscurile: conținutul acestui articol este real și este doar pentru informații generale și în scopuri educaționale și nu constituie nicio reprezentare sau garanție. Acest articol nu trebuie interpretat ca un sfat financiar și nu vă recomandă să cumpărați un anumit produs sau serviciu. Prețurile activelor digitale pot fluctua. Valoarea investiției dumneavoastră poate scădea sau crește și este posibil să nu vă recuperați capitalul investit. Sunteți singurul responsabil pentru propriile decizii de investiții, iar Academia Binance nu este responsabilă pentru pierderile pe care le puteți suferi. Acest material nu constituie consiliere financiară.


