Ce este verificarea formal─â a contractelor inteligente?
Acas─â
Articole
Ce este verificarea formal─â a contractelor inteligente?

Ce este verificarea formal─â a contractelor inteligente?

Avansat
Publicat Mar 2, 2023Actualizat Jul 12, 2023
5m

Acest articol a fost trimis de un membru al comunit─â╚Ťii. Autorul este David Tarditi, Vicepre╚Öedinte de inginerie la CertiK, o firm─â de audit al contractelor inteligente Web3.

TL;DR

Verificarea formal─â a contractelor inteligente asigur─â c─â acestea nu prezint─â erori, vulnerabilit─â╚Ťi ╚Öi alte comportamente neinten╚Ťionate. Aceasta presupune c─â un expert uman transcrie logica contractului inteligent sub form─â de expresii matematice, apoi le ruleaz─â printr-un proces automat care verific─â aceast─â logic─â ├«n compara╚Ťie cu modelele de comportament estimate ale contractului. Combina╚Ťia dintre verificarea formal─â ╚Öi auditarea manual─â ofer─â o evaluare complet─â a securit─â╚Ťii unui contract inteligent.

Introducere

Contractele inteligente sunt programe informatice stocate pe un blockchain, care sunt rulate automat atunci c├ónd sunt ├«ndeplinite anumite condi╚Ťii. Acestea pot varia de la contracte simple la extrem de complexe ╚Öi pot con╚Ťine active ├«n valoare de milioane sau chiar miliarde de dolari.┬á┬á

Vulnerabilit─â╚Ťile de securitate din codul unui contract inteligent pot avea consecin╚Ťe devastatoare, inclusiv furtul tuturor activelor con╚Ťinute de un contract inteligent. ├Än 2021, makerului automat pe pia╚Ť─â (AMM) Uranium Finance i s-au furat 50 de milioane de dolari din cauza unei singure gre╚Öeli de scriere dintr-un contract inteligent.

Tot în 2021, Compound Finance a oferit recompense care nu fuseseră de fapt câștigate, în valoare 80 de milioane de dolari, din cauza unui singur caracter greșit. În 2022, 320 de milioane de dolari au fost furate de la Wormhole Bridge din cauza unei erori în unul dintre contractele sale inteligente.

Este important ca programul contractului inteligent s─â fie scris corect de la ├«nceput. Contractele inteligente sunt cu surs─â deschis─â, ceea ce ├«nseamn─â c─â codul este disponibil public odat─â ce un contract este implementat. Dac─â un hacker g─âse╚Öte o eroare, poate profita imediat de ea. ├Än plus, corectarea vulnerabilit─â╚Ťilor de securitate ├«n timp nu este o op╚Ťiune, deoarece codul unui contract inteligent nu poate fi modificat, de obicei, dup─â implementare.

Cum func╚Ťioneaz─â verificarea contractelor inteligente?┬á┬á

Verificarea formal─â a contractelor inteligente func╚Ťioneaz─â prin prezentarea logicii ╚Öi a comportamentului vizat al contractelor inteligente sub form─â de expresii matematice. Auditorii folosesc apoi instrumente automate pentru a verifica dac─â aceste expresii sunt corecte.

Procesul presupune:

  1. Definirea specifica╚Ťiilor ╚Öi propriet─â╚Ťilor vizate ale unui contract ├«n limbaj formal.

  2. Traducerea codului contractului într-o reprezentare formală, cum ar fi modele matematice sau logice.

  3. Folosirea programelor automate de verificare a teoremelor sau a verificatorilor de model pentru a valida specifica╚Ťiile ╚Öi propriet─â╚Ťile contractului.

  4. Repetarea procesului de verificare pentru a g─âsi ╚Öi remedia orice erori sau abateri de la propriet─â╚Ťile vizate.

De ce este important─â verificarea contractelor inteligente?

Utilizarea ra╚Ťionamentului matematic asigur─â c─â contractele inteligente verificate formal nu prezint─â erori, vulnerabilit─â╚Ťi ╚Öi alte comportamente neinten╚Ťionate. De asemenea, ajut─â la sporirea ├«ncrederii ├«n contract, deoarece s-a dovedit ├«n mod riguros c─â propriet─â╚Ťile acestuia sunt corecte.┬á

Mai jos sunt câteva exemple despre modul în care verificarea contractelor inteligente a ajutat la prevenirea pierderilor financiare semnificative și a altor rezultate dezastruoase.  

Uniswap

Uniswap este un AMM foarte cunoscut. Când a fost dezvoltat contractul inteligent Uniswap V1, acesta a fost verificat formal. Înainte de lansarea sa, această verificare formală a găsit și a remediat erori de rotunjire care ar fi putut duce la epuizarea fondurilor Uniswap V1. 

Balancer

Balancer V2 este un alt AMM care a fost verificat formal. Verificarea formală a identificat și a remediat în contractul inteligent un calcul incorect al taxelor pentru împrumuturile rapide, ceea ce ar fi putut face bursa vulnerabilă la furt.

SafeMoon

SafeMoon V1 con╚Ťinea o eroare subtil─â identificat─â prin verificare formal─â dup─â implementare. Un proprietar putea s─â renun╚Ťe la dreptul de proprietate asupra contractului ╚Öi apoi s─â reintre ├«n posesia acestuia, dac─â efectua anumite opera╚Ťiuni ├«nainte de a renun╚Ťa la dreptul de proprietate.

Aceast─â eroare nu a fost observat─â ├«n majoritatea auditurilor manuale ale bifurca╚Ťiilor SafeMoon V1, deoarece g─âsirea sa a necesitat analizarea unor combina╚Ťii specifice de valori ale variabilelor programului. Este o eroare care le poate sc─âpa cu u╚Öurin╚Ť─â oamenilor, dar este u╚Öor de g─âsit de c─âtre o ma╚Öin─â.

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 prin compara╚Ťie cu propriet─â╚Ťile vizate. Acest lucru faciliteaz─â identificarea ╚Öi remedierea eventualelor erori sau gre╚Öeli. Este util─â ├«n special pentru a identifica probleme complexe ╚Öi subtile, care pot fi dificil de detectat prin inspec╚Ťie manual─â.

Auditul manual implic─â examinarea de c─âtre exper╚Ťi a codului, designului ╚Öi implement─ârii unui contract. Auditorul ├«╚Öi folose╚Öte experien╚Ťa ╚Öi cuno╚Ötin╚Ťele pentru a identifica riscurile de securitate ╚Öi pentru a evalua situa╚Ťia general─â de securitate a contractului. De asemenea, acesta poate confirma c─â procesul de verificare formal─â a fost efectuat corect ╚Öi poate verifica eventualele probleme care ar putea s─â nu fie detectate de instrumentele automate.┬á

Combina╚Ťia dintre verificarea formal─â ╚Öi auditarea manual─â ofer─â o evaluare complex─â ╚Öi am─ânun╚Ťit─â a securit─â╚Ťii unui contract inteligent. Acest lucru cre╚Öte ╚Öansele de a g─âsi ╚Öi remedia orice vulnerabilit─â╚Ťi. Rezultatul este o abordare de ap─ârare ├«n profunzime a securit─â╚Ťii, care valorific─â capacit─â╚Ťile unice at├ót ale oamenilor, c├ót ╚Öi ale ma╚Öinilor.┬á

Gânduri de încheiere

Pentru a asigura securitatea contractelor inteligente, este esen╚Ťial s─â se utilizeze at├ót verificarea formal─â, c├ót ╚Öi auditul manual pentru o evaluare complet─â ╚Öi am─ânun╚Ťit─â a securit─â╚Ťii unui contract inteligent.

├Än timp ce verificarea formal─â poate consuma multe resurse, este o investi╚Ťie care merit─â ├«n cazul contractelor cu valoare ridicat─â sau cu factori de risc ridicat. Nu ├«n ultimul r├ónd, prioritizarea securit─â╚Ťii ╚Öi asigurarea faptului c─â contractele inteligente nu prezint─â erori, vulnerabilit─â╚Ťi ╚Öi comportament neinten╚Ťionat este vital─â.

Materiale suplimentare

Declinarea responsabilit─â╚Ťii ╚Öi avertismentul privind riscurile: acest con╚Ťinut v─â este prezentat ÔÇ×ca atareÔÇŁ numai pentru informa╚Ťii generale ╚Öi ├«n scopuri educa╚Ťionale, f─âr─â a oferi declara╚Ťii sau garan╚Ťii de niciun fel. Nu trebuie interpretat ca sfat financiar ╚Öi nu reprezint─â o recomandare de achizi╚Ťionare a unui anumit produs sau serviciu. Pre╚Ťurile activelor digitale pot fi volatile. Valoarea investi╚Ťiei dvs. poate sc─âdea sau cre╚Öte ╚Öi este posibil s─â nu primi╚Ťi ├«napoi suma investit─â. Sunte╚Ťi sigura persoan─â responsabil─â pentru propriile decizii de investi╚Ťii, iar Academia Binance nu este responsabil─â pentru eventualele pierderi suferite. Acest material nu ar trebui interpretat ca o recomandare financiar─â.