Ano ang Panseguridad na Pag-audit ng Smart Contract?
Home
Mga Artikulo
Ano ang Panseguridad na Pag-audit ng Smart Contract?

Ano ang Panseguridad na Pag-audit ng Smart Contract?

Intermediya
Na-publish Mar 1, 2022Na-update Apr 27, 2023
8m

TL;DR

Nagbibigay ang isang panseguridad na pag-audit ng smart contract ng detalyadong pagsusuri ng mga smart contract ng isang proyekto. Mahalaga ang mga ito para mapag-ingatan ang mga pondong ipinupuhunan sa pamamagitan ng mga ito. Dahil pinal na ang lahat ng transaksyon sa blockchain, hindi mababawi ang mga pondo kung mananakaw ang mga ito. Kadalasan, susuriin ng mga auditor ang code ng mga smart contract, gagawa sila ng ulat, at ibibigay nila ito sa proyekto para magamit nila ito. Pagkatapos, magre-release ng pinal na ulat, na nagdedetalye ng anumang natitirang error at ng mga hakbang na nagawa na para matugunan ang mga isyu sa performance o seguridad.


Panimula

Napakakaraniwan ng mga panseguridad na pag-audit ng smart contract sa ecosystem ng Decentralized Finance (DeFi). Kung namuhunan ka sa isang proyekto sa blockchain, posibleng bahagyang nakabatay ang iyong desisyon sa mga resulta ng pagsusuri sa code ng isang smart contract.

Bagama't nauunawaan ng karamihan ng mga tao ang kahalagahan ng mga pag-audit para sa cybersecurity, hindi marami ang nagsusuri ng mga linya ng code. Tingnan natin ang mga paraan, tool, at resultang karaniwang nakikita sa mga panseguridad na pag-audit ng smart contract para makapagdesisyon ka nang mas nakabatay sa kaalaman.


Ano ang pag-audit ng smart contract?

Sinusuri ng panseguridad na pag-audit ng smart contract ang code ng smart contract ng isang proyekto at nagkokomento ito rito. Kadalasan, nakasulat ang mga kontratang ito sa Solidity programming language at ibinibigay ito sa pamamagitan ng GitHub. Partikular na mahalaga ang mga panseguridad na pag-audit para sa mga proyekto ng DeFi na umaasang mangangasiwa ng mga transaksyon sa blockchain na nagkakahalaga ng milyon-milyong dolyar o napakaraming player. Karaniwang sumusunod ang mga pag-audit sa isang prosesong may apat na hakbang:

1. Ibibigay ang mga smart contract sa audit team para sa inisyal na pagsusuri.

2. Ipapakita ng audit team ang mga natuklasan nila sa proyekto para maaksyunan nila ito.

3. Gagawa ng mga pagbabago ang team ng proyekto batay sa mga nakitang isyu.

4. Ire-release ng audit team ang pinal nilang ulat, nang isinasaalang-alang ang anumang bagong pagbabago o natitirang error.

Para sa maraming user ng crypto, mahalaga ang mga pag-audit ng smart contract kapag namumuhunan sa mga bagong proyekto ng DeFi. Naging karaniwan na ito para sa mga proyektong gustong maseryoso. Ang ilang partikular na audit provider ay itinuturing ding mga nangunguna sa industriya, kaya naman mas mahalaga ang mga pag-audit nila para sa mga namumuhunan.


Bakit natin kailangan ng mga pag-audit ng smart contract?

Dahil maraming iba't ibang halaga ng value ang ginagamit sa mga transaksyon o nila-lock sa mga smart contract, nakakaengganyo ang mga ito para sa mga mapaminsalang pag-atake ng mga hacker. Puwedeng humantong ang maliliit na error sa pag-code sa pagkakanakaw ng malalaking halaga ng pera. Halimbawa, sa pagka-hack ng DAO sa blockchain ng Ethereum, humigit-kumulang 60 milyong dolyar na halaga ng ETH ang nakuha at humantong pa nga ito sa isang hard fork ng network ng Ethereum.

Dahil hindi na mababawi ang mga transaksyon sa blockchain, mahalagang siguraduhin na secure ang code ng isang proyekto. Dahil sa napaka-secure na katangian ng teknolohiya ng blockchain, mahirap makuha ang mga pondo at malutas ang mga isyu pagkatapos ng transaksyon, kaya mas mainam na iwasan ang mga kahinaan hangga't maaari.


Paano gumagana ang mga pag-audit ng smart contract?

May pagkakaraniwan ang proseso ng pag-audit ng smart contract sa mga audit provider. Bagama't puwedeng maiba nang kaunti ang diskarte ng bawat auditor, ganito ang karaniwang proseso:

1. Tukuyin ang saklaw ng pag-audit. Ang mga detalye ng smart contract at proyekto ay tutukuyin ng proyekto (ng nakalaang layunin nito) at ng pangkalahatang arkitektura. Nakakatulong ang mga detalye sa audit team na maunawaan ang mga layunin ng proyekto kapag isinusulat at ginagamit ang code.

2. Magbigay ng inisyal na quote batay sa dami ng trabahong kailangan.

3. Magsagawa ng mga pagsusuri. Magbabago ang eksaktong katangian ng mga ito depende sa team na mag-o-audit, sa kanilang mga tool sa pagsusuri, at sa kanilang mga paraan. Karaniwang parehong nagsasagawa ng mga manu-mano at naka-automate na pagsusuri.

4. Gumawa ng unang draft ng ulat na naglalaman ng mga nakitang error at ibigay ito sa team ng proyekto para sa feedback at mga follow-up na pag-aayos.

5. I-publish ang pinal na ulat, nang isinasaalang-alang ang anumang aksyong ginawa ng team para matugunan ang mga inilapit na isyu.


Mga paraan ng pag-audit ng smart contract

Efficiency sa gas 

Hindi lang seguridad ng blockchain ang pinagtutuunan ng mga pag-audit ng smart contract. Tinitingnan din ng mga ito ang efficiency at pag-optimize. Ang ilang kontrata ay gumagawa ng isang kumplikadong serye ng mga transaksyon para makumpleto ang nakalaang function ng mga ito. Dahil may kamahalan ang bayarin sa gas sa mga network gaya ng Ethereum, malaki ang matitipid ng mga efficient na kontrata sa gastusin sa transaksyon.

Ang pag-optimize sa performance ng mga ito ay isa ring tagasaad ng kakayahan ng developer. Sa mga hindi efficient na hakbang, nagkakaroon ng mas maraming punto para sa pagpalya, at dapat iwasan ang mga ito. Kapag mataas ang gastusin sa gas, baka hindi maipatupad ang mga smart contract, lalo na kapag mababang limitasyon sa gas ang ginamit.

Mga kahinaan ng kontrata

Kasama sa karamihan ng trabaho sa mga pag-audit ang pagsusuri kung may mga kahinaan sa seguridad ang mga kontrata. Bagama't madaling makita ang ilang isyu, sa maraming pananamantala, gumagamit ng mga advanced na technique at diskarte para manlimas ng mga pondo. Halimbawa, puwedeng gumamit ng pagmamanipula ng merkado sa mahihinang smart contract para magsagawa ng mga flash loan na pag-atake. Para makita ang mga ganitong isyu, sinisimulan ng mga auditor ang proseso ng break testing at ginagaya nila ang mga mapaminsalang pag-atake sa smart contract. Kasama sa mga karaniwang kahinaan ang:

1. Mga isyu sa reentrancy: Kapag nagsagawa ang isang smart contract ng external na pagtawag sa isa pang external na contract bago maresolba ang anumang epekto. Puwedeng paulit-ulit na tawagin ng external na contract ang orihinal na smart contract at puwede itong makipag-ugnayan dito sa mga paraang hindi dapat nito magawa, dahil hindi pa naa-update ang balanse ng orihinal na contract.
2. Mga pag-overflow at pag-underflow ng integer: Kapag nagsagawa ng arithmetic na pagpapatakbo ang isang smart contract, pero lumampas ang output sa kapasidad ng storage (karaniwang 18 decimal place). Puwede itong humantong sa pagkalkula ng mga maling halaga.
3. Mga pagkakataon sa front running: Ang mga code na may hindi magandang istruktura ay puwedeng magbigay ng maagang babala tungkol sa mga pagbili o pagbebenta sa merkado. Makakapagbigay-daan naman ito sa iba na gamitin ang impormasyon at mag-trade dito para sa sarili nilang pakinabang.

Mga problema sa seguridad ng platform

Kasama sa karamihan ng mga pag-audit ang pagtingin sa network na nagho-host ng mga contract at pati na rin sa API na ginagamit para makipag-interact sa DApp. Puwedeng mahina sa isang pag-atakeng DDoS ang isang proyekto o baka makompromiso ang UI ng website nito, na nangangahulugang ikokonekta talaga ng mga user ang mga wallet nila sa mga mapaminsalang application sa blockchain.


Ano ang ulat sa pag-audit?

Ibinibigay ang ulat sa pag-audit sa katapusan ng proseso ng pag-audit. Para sa transparency, inaasahang ibabahagi ng mga proyekto sa komunidad ang mga natuklasan nito. Ikinakategorya ng karamihan ng mga ulat ang mga isyu ayon sa kalalaan, gaya ng critical, major, minor, atbp. Ililista rin sa ulat ang status ng isyu, dahil binibigyan ang mga proyekto ng panahon para lutasin ang mga iyon bago i-release ang pinal na ulat.

Kasama ang isang pangkalahatang-ideyang buod, ang isang karaniwang ulat ay maglalaman ng mga rekomendasyon, mga halimbawa ng hindi kailangang code, at kumpletong detalye kung saan may mga error sa pag-code. Bibigyan ng panahon ang proyekto para maaksyunan nito ang mga natuklasan ng ulat bago i-release ang pinal na bersyon.


Saan ako makakakuha ng pag-audit ng smart contract?

Naging kilala ang ilang serbisyo sa pag-audit ng smart contract dahil sa serbisyo ng mga ito. Dalawa ang partikular na sikat, at para makapagpa-audit sa kanila, kailangan ng inisyal na quote at pagpapasa ng impormasyon.

CertiK

Ang CertiK ay nangunguna sa industriya pagdating sa mga pag-audit ng smart contract. Daan-daang proyekto ang nagpa-audit ng kanilang mga smart contract sa kanila. Isang halimbawa ang PancakeSwap, ang pinakamalaking Automated Market Maker (AMM) ng BSC. Nasa ibaba ang isang seksyon ng pag-audit ng Certik sa PancakeSwap.


Gayundin, karamihan ng mga proyektong sinusuportahan ng Binance Labs ay nagpa-audit ng kanilang mga kontrata sa CertiK. Nagre-release ang CertiK ng isang leaderboard ng mga na-audit na proyekto na magbibigay-daan sa iyong paghambing-hambingin ang bawat isa, kasama na ang marka ng kaligtasan. Tandaan na maliban sa Ethereum, saklaw rin ng CertiK ang mga proyekto sa BSC at Polygon.


ConsenSys Diligence

Ang ConsenSys, na pinapatakbo ni Joseph Lubin, isang co-founder ng Ethereum, ay isa sa mga pinakabigating pangalan sa industriya ng cryptocurrency sa pag-develop ng blockchain. Sa ilalim ng ConsenSys Diligence, nag-aalok ang kumpanya ng mga pag-audit ng smart contract sa Ethereum. Nagbibigay rin sila ng naka-automate na serbisyong nagsusuri ng mga kontrata sa Ethereum Virtual Machine (EVM) para sa mga karaniwang nakikitang pagkakamali.


Magkano ang pag-audit ng smart contract?

Ang eksaktong gastos sa isang pag-audit ay nakadepende sa dami ng mga smart contract na susuriin. Kadalasan, aabutin nang libo-libong dolyar ang isang pag-audit. Madaling lumampas nang $10,000 ang gastos sa isang partikular na malaking proyekto. Makakaapekto rin ang kumpanya ng pag-audit na magsasagawa ng iyong pag-audit at ang reputasyon nito sa kung magkano ang babayaran mo.


Mga pangwakas na pananaw

Buti na lang, para sa mga namumuhunan at user, naging pinakamaaasahan ang mga pag-audit ng smart contract. Gayunpaman, kapag may ganito ang bawat proyekto, hindi na ito madaling tagasaad ng halaga. Kaya naman napakahalagang basahin mo mismo ang pag-audit. Kahit na wala kang teknikal na kaalaman, kapaki-pakinabang na tingnan ang mga komento at kalalaan ng mga potensyal na isyu.

Kapag nakakita ka ng pag-audit, dapat mas madali mo nang maintindihan ang mga nilalaman nito. Gaya ng nakasanayan, siguraduhin na sa anumang desisyon sa pamumuhunan, nasuri ang pangkalahatang sitwasyon at naisaalang-alang ang lahat ng impormasyon.