Izpētiet viedo līgumu audita būtiskos aspektus: drošības ievainojamības, metodoloģijas, labāko praksi un dApps drošības nākotni.
Viedo līgumu audits: visaptverošs drošības ievainojamību analīzes ceļvedis
Viedie līgumi ir paši izpildāmas vienošanās, kas uzrakstītas kodā un izvietotas blokķēdes tīklos. Tie darbina plašu decentralizētu lietojumprogrammu (dApps) klāstu, sākot no decentralizētās finanšu (DeFi) platformām līdz piegādes ķēdes pārvaldības sistēmām. Tomēr viedie līgumi ir pakļauti arī drošības ievainojamībām, kas var radīt ievērojamus finansiālus zaudējumus un reputācijas kaitējumu. Šis raksts sniedz visaptverošu ceļvedi viedo līgumu auditā, aptverot galvenos jēdzienus, bieži sastopamās ievainojamības, audita metodoloģijas un labāko praksi, lai nodrošinātu jūsu decentralizēto lietojumprogrammu drošību.
Kas ir viedo līgumu audits?
Viedo līgumu audits ir process, kurā sistemātiski tiek pārskatīts un analizēts viedo līgumu kods, lai identificētu potenciālas drošības ievainojamības, kļūdas un loģikas kļūdas. Tas ir kritisks solis jebkuras dApp izstrādes dzīves ciklā, jo tas palīdz mazināt riskus, kas saistīti ar nedroša koda izvietošanu blokķēdē. Atšķirībā no tradicionālās programmatūras, viedie līgumi ir nemainīgi pēc to izvietošanas, kas nozīmē, ka jebkuras pēc izvietošanas atklātās ievainojamības nevar viegli novērst. Tas padara rūpīgu auditu vēl svarīgāku.
Viedo līgumu audita galvenais mērķis ir nodrošināt, ka līgums darbojas, kā paredzēts, ir bez drošības nepilnībām un atbilst labākajai praksei. Tas ietver manuālas koda pārskatīšanas, automatizētu analīzes rīku un testēšanas tehniku kombināciju, lai identificētu un risinātu potenciālās problēmas.
Kāpēc viedo līgumu audits ir svarīgs?
Viedo līgumu audita nozīmi nevar pārvērtēt. Ievainojamu viedo līgumu izvietošanas sekas var būt smagas, izraisot:
- Finansiāli zaudējumi: ievainojamības var izmantot ļaunprātīgi aktori, lai nozagtu līdzekļus, manipulētu ar līguma loģiku vai traucētu dApp funkcionalitāti.
- Reputācijas kaitējums: drošības pārkāpumi var mazināt lietotāju uzticību un kaitēt projekta un tā komandas reputācijai.
- Juridiskie un regulatīvie riski: dažās jurisdikcijās nedrošu viedo līgumu izvietošana var radīt juridiskas saistības un regulatīvus sodus.
- Lietotāju uzticības zaudēšana: lietotāji mazāk uzticas un izmanto dApps, kurām ir bijusi drošības ievainojamību vēsture.
Nesenā vēsture ir pilna ar piemēriem, kur izmantošanas rezultātā radušies miljoniem dolāru lieli zaudējumi. Audits var novērst šos zaudējumus un radīt uzticību platformai.
Bieži sastopamās viedo līgumu ievainojamības
Izpratne par bieži sastopamajām viedo līgumu ievainojamībām ir būtiska gan izstrādātājiem, gan auditoriem. Šeit ir dažas no visizplatītākajām ievainojamību veidiem:
1. Reentrancy (reentranse)
Reentranse ir ievainojamība, kas rodas, ja līgums veic ārēju izsaukumu uz citu līgumu, pirms atjaunina savu stāvokli. Tas ļauj ārējam līgumam vairākas reizes izsaukt atpakaļ sākotnējo līgumu, pirms sākotnējais līgums ir pabeidzis savas loģikas izpildi. Reentranses uzbrukumi tika slaveni izmantoti DAO uzbrukumā, kas izraisīja miljoniem dolāru vērtas Ether zādzību.
Piemērs:
Apsveriet līgumu, kas ļauj lietotājiem izņemt Ether. Ja līgums nosūta Ether lietotājam, pirms atjaunina savu iekšējo bilanci, lietotājs var izsaukt atpakaļ līgumu un izņemt Ether vairākas reizes, pirms viņa bilance tiek atjaunināta.
Mazināšana:
- Izmantojiet "Pārbaudes-Efekti-Mijiedarbība" (Checks-Effects-Interactions) modeli, kas ietver pārbaudes veikšanu pirms ārējo izsaukumu veikšanas, stāvokļa atjaunināšanu pirms ārējo izsaukumu veikšanas un mijiedarbības ierobežošanu ar ārējiem līgumiem.
- Izmantojiet funkcijas `transfer()` vai `send()`, lai nosūtītu Ether, jo šīs funkcijas ierobežo gāzes daudzumu, ko var izmantot saņēmējs, neļaujot tam izsaukt atpakaļ līgumu.
- Ieviesiet reentranses aizsargus, kas neļauj funkcijai tikt izsauktai rekursīvi.
2. Veselo skaitļu pārpilde un nepietiekama plūsma (Integer Overflow and Underflow)
Veselo skaitļu pārpilde un nepietiekama plūsma rodas, ja aritmētiskās darbības rezultātā tiek iegūta vērtība, kas atrodas ārpus datu tipa diapazona, kuru izmanto rezultāta glabāšanai. Piemēram, ja nesigned 8 bitu veselais skaitlis (uint8) tiek palielināts virs 255, tas atgriezīsies pie 0. Līdzīgi, ja tas tiek samazināts zem 0, tas atgriezīsies pie 255.
Piemērs:
Apsveriet marķieru līgumu, kurā marķieru kopējais piedāvājums ir attēlots ar nesigned veselu skaitli. Ja līgums ļauj lietotājiem kalibrēt jaunus marķierus un kopējais piedāvājums pārsniedz veselā skaitļa maksimālo vērtību, tas atgriezīsies pie mazas vērtības, potenciāli ļaujot uzbrucējiem kalibrēt neierobežotu skaitu marķieru.
Mazināšana:
- Izmantojiet drošas matemātikas bibliotēkas, piemēram, OpenZeppelin SafeMath bibliotēku, kas nodrošina funkcijas, kuras pārbauda pārpildi un nepietiekamu plūsmu un atgriež transakciju, ja tās rodas.
- Izmantojiet lielākus veselo skaitļu datu tipus, piemēram, uint256, lai samazinātu pārpildes un nepietiekamas plūsmas iespējamību.
3. Pakalpojuma atteikums (DoS)
Pakalpojuma atteikuma (DoS) uzbrukumu mērķis ir traucēt viedā līguma normālu darbību, neļaujot likumīgiem lietotājiem piekļūt tā pakalpojumiem. DoS ievainojamības var rasties no dažādiem avotiem, piemēram, gāzes limita problēmām, bloku aizpildīšanas un neparedzētiem atcelšanas nosacījumiem.
Piemērs:
Apsveriet līgumu, kas ļauj lietotājiem piedalīties izsolē. Ja līgums atkārtojas pa piedāvātāju sarakstu, lai noteiktu uzvarētāju, uzbrucējs var izveidot lielu skaitu viltus piedāvātāju, lai atkārtošana patērētu pārmērīgu gāzi, izraisot transakcijas neveiksmi. Tas var novērst likumīgu piedāvātāju piedalīšanos izsolē.
Mazināšana:
- Izvairieties no neierobežotām cilpām un iterācijām, jo tās var patērēt pārmērīgu gāzi.
- Ieviesiet lapošanu vai partijas apstrādi, lai ierobežotu gāzes daudzumu, kas nepieciešams katrai transakcijai.
- Izmantojiet izņemšanas (pull) maksājumus, nevis iespiešanas (push) maksājumus, jo izņemšanas maksājumi ļauj lietotājiem izņemt līdzekļus savā tempā, samazinot gāzes limita problēmu risku.
- Ieviesiet ķēdes pārtraucējus, kas var īslaicīgi atspējot noteiktas līguma funkcionalitātes, ja tiek atklāts DoS uzbrukums.
4. Laika zīmoga atkarība
Viedie līgumi var piekļūt pašreizējā bloka laika zīmogam, ko nodrošina bloka ieguvējs. Tomēr ieguvējiem ir zināma kontrole pār laika zīmogu un viņi var to manipulēt noteiktās robežās. Tas var radīt ievainojamības, ja līgums paļaujas uz laika zīmogu kritiskai loģikai, piemēram, nejaušu skaitļu ģenerēšanai vai laikjutīgām darbībām.
Piemērs:
Apsveriet azartspēļu līgumu, kas izmanto bloka laika zīmogu, lai ģenerētu nejaušu skaitli. Uzbrucējs var ietekmēt spēles iznākumu, iegūstot bloku ar laika zīmogu, kas dod priekšroku viņa vēlamajam rezultātam.
Mazināšana:
- Izvairieties izmantot bloka laika zīmogu kritiskai loģikai.
- Izmantojiet uzticamākus nejaušības avotus, piemēram, Chainlink VRF vai RANDAO.
- Ieviesiet aizsardzības pasākumus, lai nodrošinātu, ka laika zīmogs atrodas saprātīgā diapazonā.
5. Delegatecall (deleģētais izsaukums)
delegatecall ir zema līmeņa funkcija, kas ļauj līgumam izpildīt kodu no cita līguma izsaucējā līguma kontekstā. Tas nozīmē, ka izsauktā līgums var modificēt izsaucējā līguma krātuves un stāvokļa mainīgos. Nepareizi izmantojot, `delegatecall` var radīt nopietnas drošības ievainojamības.
Piemērs:
Apsveriet starpnieklīgumu, kas izmanto `delegatecall`, lai pārsūtītu izsaukumus uz loģikas līgumu. Ja loģikas līgumam ir atšķirīgs krātuves izkārtojums nekā starpnieklīgumam, tas var pārrakstīt kritiskos starpnieklīguma krātuves mainīgos, potenciāli ļaujot uzbrucējam iegūt kontroli pār starpnieklīgumu.
Mazināšana:
- Nodrošiniet, lai starpnieklīguma un loģikas līguma krātuves izkārtojums būtu saderīgs.
- Rūpīgi pārbaudiet loģikas līguma kodu, lai pārliecinātos, ka tas nesatur ļaunprātīgu kodu.
- Izmantojiet labi pārbaudītus un auditētus starpniekservera modeļus, piemēram, UUPS (Universal Upgradeable Proxy Standard) modeli.
6. Piekļuves kontrole
Pareiza piekļuves kontrole ir būtiska, lai nodrošinātu, ka tikai pilnvaroti lietotāji var veikt noteiktas darbības ar viedo līgumu. Nepietiekama vai nepareiza piekļuves kontrole var ļaut uzbrucējiem apiet drošības pasākumus un iegūt neatļautu piekļuvi sensitīviem datiem vai funkcionalitātēm.
Piemērs:
Apsveriet līgumu, kas ļauj tikai īpašniekam izņemt līdzekļus. Ja līgums pareizi nepārbauda izsaucēja identitāti, uzbrucējs var uzdoties par īpašnieku un izņemt līdzekļus.
Mazināšana:
- Izmantojiet `onlyOwner` modifikatoru, lai ierobežotu piekļuvi noteiktām funkcijām tikai līguma īpašniekam.
- Ieviesiet vairāku parakstu autentifikāciju, lai pieprasītu vairāku pušu apstiprinājumu kritiskām darbībām.
- Izmantojiet lomu balstītu piekļuves kontroli (RBAC), lai definētu dažādas lomas un atļaujas dažādiem lietotājiem.
- Ieviesiet piekļuves kontroles sarakstus (ACL), lai piešķirtu vai atsauktu piekļuvi konkrētiem resursiem.
7. Nenostradātie izņēmumi
Solidity, izņēmumus var izmest, izmantojot funkcijas `revert()`, `require()` un `assert()`. Ja izņēmums netiek pareizi apstrādāts, tas var radīt neparedzētu darbību un drošības ievainojamības.
Piemērs:
Apsveriet līgumu, kas sūta Ether lietotājam. Ja lietotāja adrese ir līgums, kas izmet izņēmumu, saņemot Ether, transakcija tiks atcelta. Tomēr, ja līgums pareizi neapstrādā izņēmumu, tas var atstāt savu stāvokli nekonsekventā stāvoklī, potenciāli ļaujot uzbrucējiem izmantot šo nekonsekvenci.
Mazināšana:
- Izmantojiet "Pārbaudes-Efekti-Mijiedarbība" (Checks-Effects-Interactions) modeli, lai samazinātu izņēmumu rašanās risku ārējo izsaukumu laikā.
- Izmantojiet try-catch blokus, lai apstrādātu izņēmumus un nepieciešamības gadījumā atceltu transakciju.
- Izvairieties no ārējiem izsaukumiem, kas, visticamāk, izmetīs izņēmumus.
8. Priekšlaicīga izpilde (Front Running)
Priekšlaicīga izpilde rodas, ja uzbrucējs novēro gaidošu transakciju un iesniedz savu transakciju ar augstāku gāzes cenu, lai tā tiktu izpildīta pirms sākotnējās transakcijas. Tas var ļaut uzbrucējam gūt peļņu no sākotnējās transakcijas vai manipulēt ar tās iznākumu.
Piemērs:
Apsveriet decentralizētu biržu (DEX), kurā lietotāji var tirgot žetonus. Ja uzbrucējs novēro lielu pirkšanas pasūtījumu, viņš var iesniegt savu pirkšanas pasūtījumu ar nedaudz augstāku gāzes cenu, lai tas tiktu izpildīts pirms sākotnējā pasūtījuma. Tas ļauj uzbrucējam iegādāties žetonus par zemāku cenu un pēc tam pārdot tos sākotnējam pircējam par augstāku cenu.
Mazināšana:
- Izmantojiet "apņemšanās-atklāšanas" (commit-reveal) shēmas, kas prasa lietotājiem apņemties veikt savas transakcijas, pirms tās tiek atklātas ķēdē.
- Izmantojiet ārpusķēdes izpildes vides, piemēram, 2. slāņa mērogošanas risinājumus, lai samazinātu transakciju redzamību.
- Ieviesiet pasūtījumu saskaņošanas algoritmus, kas ir izturīgi pret priekšlaicīgu izpildi.
Viedo līgumu audita metodoloģijas
Viedo līgumu auditi parasti ietver manuālu koda pārskatīšanu, automatizētu analīzes rīku un testēšanas tehniku kombināciju. Šeit ir dažas no visbiežāk izmantotajām metodoloģijām:
1. Manuāla koda pārskatīšana
Manuāla koda pārskatīšana ir process, kurā rūpīgi tiek pārbaudīts viedo līgumu kods rindu pa rindai, lai identificētu potenciālas ievainojamības, kļūdas un loģikas kļūdas. Tā ir laikietilpīga, bet būtiska audita procesa daļa, jo tā ļauj auditoriem gūt dziļu izpratni par līguma funkcionalitāti un identificēt problēmas, kuras automatizētie rīki var neatklāt.
Labākā prakse:
- Izmantojiet strukturētu pieeju, piemēram, OWASP Smart Contract Top 10, lai vadītu pārskatīšanas procesu.
- Dokumentējiet visus atklājumus un ieteikumus skaidri un kodolīgi.
- Iesaistiet vairākus auditorus ar atšķirīgu pieredzi, lai nodrošinātu rūpīgu pārskatīšanu.
- Izmantojiet koda pārskatīšanas rīkus, lai izceltu potenciālās problēmas un sekotu progresam.
2. Statiskā analīze
Statiskā analīze ietver viedo līgumu koda analīzi bez tā izpildes. Tas ļauj auditoriem identificēt potenciālas ievainojamības, piemēram, veselo skaitļu pārpildi un nepietiekamu plūsmu, reentransi un laika zīmoga atkarību, neizpildot līgumu blokķēdē. Statiskās analīzes rīki var automatizēt lielu daļu koda pārskatīšanas procesa, padarot to efektīvāku un mazāk pakļautu cilvēka kļūdām.
Populāri rīki:
- Slither
- Mythril
- Securify
- Oyente
3. Dinamiskā analīze
Dinamiskā analīze ietver viedo līgumu koda izpildi kontrolētā vidē, lai novērotu tā darbību un identificētu potenciālās ievainojamības. To var veikt, izmantojot fuzzing tehnikas, kas ietver līguma nodrošināšanu ar lielu skaitu nejaušu ievades datu, lai mēģinātu izraisīt neparedzētu darbību, vai ar simbolisku izpildi, kas ietver visu iespējamo līguma izpildes ceļu izpēti.
Populāri rīki:
- Echidna
- MythX
- Manticore
4. Formālā verifikācija
Formālā verifikācija ir matemātiska tehnika, kas ietver viedā līguma pareizības pierādīšanu, formāli norādot tā paredzēto darbību un pēc tam pārbaudot, vai kods atbilst specifikācijai. Tas ir ļoti stingrs, bet arī laikietilpīgs un sarežģīts process, ko parasti izmanto kritiskiem līgumiem, kur drošība ir vissvarīgākā.
Populāri rīki:
- Certora Prover
- K Framework
- Isabelle/HOL
5. Gāzes optimizācija
Gāzes optimizācija ir process, kura mērķis ir samazināt gāzes daudzumu, kas nepieciešams viedā līguma izpildei. Tas ir svarīgi, jo gāzes izmaksas var būt ievērojamas, īpaši sarežģītiem līgumiem. Gāzes optimizācija var arī uzlabot līguma veiktspēju un samazināt pakalpojuma atteikuma uzbrukumu risku.
Labākā prakse:
- Izmantojiet efektīvas datu struktūras un algoritmus.
- Minimizējiet krātuves lasīšanas un rakstīšanas reižu skaitu.
- Funkciju argumentiem izmantojiet `calldata` nevis atmiņu.
- Kešatmiņā saglabājiet bieži piekļūstamos datus.
- Izvairieties no nevajadzīgām cilpām un iterācijām.
Viedo līgumu audita process
Tipisks viedo līgumu audita process ietver šādus soļus:
- Darbības jomas noteikšana: Definējiet audita darbības jomu, ieskaitot pārbaudāmos līgumus, testējamās funkcionalitātes un sasniedzamos drošības mērķus.
- Informācijas vākšana: Vāciet informāciju par projektu, ieskaitot arhitektūru, biznesa loģiku, izvietošanas vidi un potenciālos uzbrukumu vektorus.
- Koda pārskatīšana: Veiciet manuālu koda pārskatīšanu, lai identificētu potenciālas ievainojamības, kļūdas un loģikas kļūdas.
- Automatizēta analīze: Izmantojiet statiskās un dinamiskās analīzes rīkus, lai automatizētu koda pārskatīšanas procesu un identificētu papildu ievainojamības.
- Testēšana: Veiciet vienību testus, integrācijas testus un fuzzing testus, lai pārbaudītu līguma funkcionalitāti un drošību.
- Ziņošana: Dokumentējiet visus atklājumus un ieteikumus visaptverošā audita ziņojumā.
- Novēršana: Sadarbojieties ar izstrādes komandu, lai novērstu identificētās ievainojamības un ieviestu ieteiktos drošības pasākumus.
- Atkārtots audits: Veiciet atkārtotu auditu, lai pārbaudītu, vai novērstās ievainojamības ir veiksmīgi atrisinātas.
Auditoru firmas izvēle
Pareizās auditoru firmas izvēle ir būtiska, lai nodrošinātu jūsu viedo līgumu drošību. Šeit ir daži faktori, kas jāņem vērā, izvēloties auditoru firmu:
- Pieredze: Izvēlieties firmu ar pārbaudītu pieredzi viedo līgumu auditā un dziļu izpratni par blokķēdes tehnoloģiju.
- Zināšanas: Nodrošiniet, lai firmai būtu zināšanas par specifiskām programmēšanas valodām un ietvariem, kas izmantoti jūsu viedajos līgumos.
- Reputācija: Pārbaudiet firmas reputāciju un atsauksmes, lai pārliecinātos, ka tā ir uzticama.
- Metodoloģija: Izprotiet firmas audita metodoloģiju un pārliecinieties, ka tā atbilst jūsu drošības mērķiem.
- Komunikācija: Izvēlieties firmu, kas ir atsaucīga un komunikabla, un kas ir gatava sadarboties ar jums, lai risinātu visas bažas.
- Izmaksas: Salīdziniet dažādu firmu izmaksas un izvēlieties to, kas piedāvā godīgu cenu par sniegtajiem pakalpojumiem. Tomēr neapdraudiet kvalitāti izmaksu dēļ.
Labākā prakse viedo līgumu drošībai
Papildus auditam ir vairākas labākās prakses, kuras izstrādātāji var ievērot, lai uzlabotu savu viedo līgumu drošību:
- Rakstiet skaidru un kodolīgu kodu: Izmantojiet jēgpilnus mainīgo nosaukumus, komentārus un konsekventu kodēšanas stilu, lai kodu būtu vieglāk saprast un pārskatīt.
- Ievērojiet drošības labāko praksi: Ievērojiet noteikto drošības labāko praksi, piemēram, OWASP Smart Contract Top 10.
- Izmantojiet labi pārbaudītas un auditētas bibliotēkas: Izmantojiet labi pārbaudītas un auditētas bibliotēkas, piemēram, OpenZeppelin Contracts, lai izvairītos no "velosipēda izgudrošanas no jauna" un jaunu ievainojamību ieviešanas.
- Ieviesiet pareizu piekļuves kontroli: Izmantojiet `onlyOwner` modifikatoru, vairāku parakstu autentifikāciju un lomu balstītu piekļuves kontroli, lai ierobežotu piekļuvi sensitīvām funkcionalitātēm.
- Pareizi apstrādājiet izņēmumus: Izmantojiet try-catch blokus, lai apstrādātu izņēmumus un nepieciešamības gadījumā atceltu transakciju.
- Rūpīgi testējiet: Veiciet vienību testus, integrācijas testus un fuzzing testus, lai pārbaudītu līguma funkcionalitāti un drošību.
- Esiet informēts par jaunākajiem drošības draudiem: Sekojiet līdzi jaunākajiem drošības draudiem un ievainojamībām un attiecīgi atjauniniet savu kodu.
- Apsveriet formālo verifikāciju kritiskiem līgumiem: Izmantojiet formālo verifikāciju, lai matemātiski pierādītu kritisko līgumu pareizību.
- Ieviesiet uzraudzību un brīdinājumus: Ieviesiet uzraudzības un brīdināšanas sistēmas, lai atklātu un reaģētu uz potenciāliem drošības incidentiem.
- Izveidojiet kļūdu atlīdzības programmu: Piedāvājiet kļūdu atlīdzības programmu, lai motivētu drošības pētniekus atrast un ziņot par ievainojamībām.
Viedo līgumu audita nākotne
Viedo līgumu audita joma nepārtraukti attīstās, parādoties jaunām tehnoloģijām un ievainojamībām. Šeit ir dažas tendences, kas veido viedo līgumu audita nākotni:
- Palielināta automatizācija: Automatizētie analīzes rīki kļūst arvien sarežģītāki un spējīgāki atklāt plašāku ievainojamību klāstu.
- Formālās verifikācijas pieņemšana: Formālā verifikācija kļūst pieejamāka un praktiskāka, padarot to par piemērotu iespēju plašākam līgumu klāstam.
- Ar AI darbināms audits: Mākslīgais intelekts (AI) un mašīnmācīšanās (ML) tiek izmantoti, lai izstrādātu jaunus audita rīkus, kas var automātiski identificēt un prioritizēt ievainojamības.
- Standartizēti audita ietvari: Notiek darbs pie standartizētu audita ietvaru un sertifikāciju izstrādes, lai nodrošinātu viedo līgumu auditu kvalitāti un konsekvenci.
- Kopienas virzīts audits: Parādās kopienas virzītas audita platformas, kas ļauj izstrādātājiem iesniegt savus līgumus pārskatīšanai drošības ekspertu kopienai.
Secinājums
Viedo līgumu audits ir kritisks aspekts decentralizēto lietojumprogrammu drošības un uzticamības nodrošināšanā. Izprotot bieži sastopamās ievainojamības, ieviešot spēcīgas audita metodoloģijas un ievērojot labāko drošības praksi, izstrādātāji var mazināt riskus, kas saistīti ar nedroša koda izvietošanu blokķēdē. Tā kā blokķēdes ekosistēma turpina augt un attīstīties, viedo līgumu audita nozīme tikai palielināsies.
Investīcijas rūpīgā auditā nav tikai izmaksas; tā ir investīcija jūsu projekta ilgtermiņa panākumos un ilgtspējībā. Prioritizējot drošību, jūs varat veidot uzticību ar saviem lietotājiem, aizsargāt savus līdzekļus un dot ieguldījumu drošākā un noturīgākā decentralizētā nākotnē. Pasaules viedo līgumu ainavai nobriestot, proaktīvi drošības pasākumi, ieskaitot visaptverošus auditus, būs būtiski plašas adopcijas veicināšanai un blokķēdes lietojumprogrammu integritātes uzturēšanai dažādos starptautiskos kontekstos.