Vai jūs kad jau esat izvietojis dApp, jūs jūtaties lepni, nospiežat “publicēt”… un tad mazs balsītis teikts: “Pagaidiet. Kas notiek, ja kāds izmaina datus?” Šī balss nav bailes. Tas ir jūsu smadzenes, kas veic draudu modelēšanu. Tas ir tas pats, ko dara bankas, lidotāji un, jā, labas kriptovalūtas komandas. Ar Walrus (WAL) tas ir svarīgi, jo jūs ne tikai saglabājat failu. Jūs uzticaties tīklam, lai saglabātu “blobu” dzīvu. “Bloba” ir tikai datu fragments. Attēls, spēles resurss, JSON fails, pilns ieraksts. Vienkārši. Bet riski ap to… nav vienmēr vienkārši. Man patīk iztēloties Walrus kā aizņemtu kuģu ostu. Jūsu lietotne ir nosūtītājs. Bloba ir krava. Glabāšanas mezgli ir kuģi. Un jūsu lietotāji? Tie gaida pie krasta. Ja krava nokļūst vēlu, bojāta vai vispār nesasniedz, lietotāji neinteresējas par izskaidrojumiem. Viņi vienkārši aiziet. Tātad, kas visbiežāk notiek? Pirmkārt, klusais uzbrukums: “Tas ir tur… līdz tam vairs nav.” Glabāšanas mezgls var teikt: “Jā, es turat jūsu datus,” un vēlāk izdzēst to vai “aizmirst” daļu no tā. Tas ir pieejamības uzbrukums. Pieejamība nozīmē, ka dati var tikt iegūti, kad to pieprasa. Walrus cenšas cīnīties ar to, veicot pārbaudes, kas mēra, vai mezgli vēl tur blobu laikā. Iedomājieties to kā pārsteiguma pārbaudes krāvumā. Ja jūs neizdodaties, jūs zaudējat atalgojumu vai tiek sodīti. Tas ir būtiskais: padarīt “melošanu” dārgāku nekā “glabāšanu”. Nākamais ir noklusētais: bojājums. Bloba atgriežas, bet tas ir nepareizs. Viens bitis mainīts, viena daļa apmainīta, viens fails izskatās labi, bet sabojā jūsu lietotni. Walrus balstās uz kriptogrāfiskiem hešiem. Hešs ir īss datu atslēgas. Ja atslēga mainās, jūs zināt, ka dati ir mainījušies. Tas ir kā noslēgt kastīti ar zīmogu. Ja zīmogs neatbilst, jūs neatverat un nesmaidāt. Jūs apstājaties. Jūs izmeklējat. Un tad ir “aizturēšanas” gājiens. Mezgls tur datus, bet atteicas to sniegt, cerot, ka lietotne aizkavējas, lietotāji panikā, un kāds samaksā papildu. Šeit palīdz atkārtojums. Walrus izmanto iznīcināšanas kodēšanu. Tas ir greznas frāzes, bet ideja ir vienkārša: jūs sagriežat failu daudzās daļās, pievienojat papildu atjaunošanas daļas un izplatāt tās. Jums nav nepieciešamas visas daļas. Jums vajag tikai “pietiekami daudz” daļu. Kā atjaunot saplēstu plakātu pat tad, ja dažas drupenās ir pazudušas. Aizturēšana kļūst grūtāka, kad tīkls var atjaunot bez jūsu palīdzības. Tagad briesmīgākais daļa. Uzbrukumi, kas mērķē tīkla struktūru, nevis datus pašus. Sybil uzbrukumi ir par mākslīgām identitātēm. Viens dalībnieks mēģina izveidot daudz mezglu, lai izskatītos kā “pulks”. Ja viņš kontrolē pietiekami daudz, viņš var traucēt pakalpojumus, ietekmēt balsotājus vai novirzīt, kur glabāt ko. Sybil nozīmē “daudzas sejas”. Aizsardzība parasti nāk no izmaksām un izvēles. Padarīt dārgāku izskatīties kā daudzi cilvēki, un izvēlēties mezglus tā, lai viens dalībnieks nevarētu aizpildīt visu telpu. Ir arī eclipse uzbrukumi. Tas ir, kad uzbrucējs mēģina apvērst lietotāju vai klientu ar ļaunām koplietotām, tādējādi lietotājs redz tikai uzbrucēja kontrollētus mezglus. Jūs domājat, ka runājat ar tīklu, bet jūs runājat ar mākslīgu koridori. Aizsardzība ir daudzveidība. Savienojieties ar daudziem koplietotājiem. Rotējiet tos. Neuzticaties vienai ceļam. Jo vairāk ceļu jums ir, jo grūtāk jūs varētu notvert. Un neignorējiet cilvēku uzbrukumus. Tie strādā, jo tie izskatās parasti. Atslēgu zādzība ir klasiķis. Ja jūsu paraksta atslēga tiek nodzīta, uzbrucējs var augšupielādēt nepareizus blobus, mainīt atsauces vai iztukšot līdzīgus līdzekļus, kas saistīti ar glabāšanu. Atslēga ir kā galvenā atslēga. Aizsardzība ir garlaicīga, bet patiesa: hardvera maciņi, droša atslēgu glabāšana, nevienmēr “iestipriniet savu sēklu šeit”, un atsevišķas atslēgas izvietošanai pret ikdienas darbībām. Sadaliet varu. Ierobežojiet iznīcināšanas laukumu. Smarta līguma kļūdas ir cits. Walrus var būt ciešs, bet jūsu dApp savienojošais kods var būt nekārtīgs. Slikta pieejas noteikuma, sabojāts pārbaudījums, kļūda par to, kas var atjaunināt bloba norādes. Tā tieši notiek patiesās zaudējumu gadījumos. Aizsardzība: turiet līgumus mazus, izmantojiet pārbaudes, rakstiet testus, kas mēģina sabojāt jūsu pašu noteikumus, un uzskatiet atjauninājumus kā ķirurģiju, nevis ātru remontu. Visbeidzot, sāpju un spamu aspekts. Uzbrucēji var nevēlēties peļņu. Viņi var vēlēties sāpju. Pārpludināt augšupielādes, spiest daudz lasīšanu, apslēgt sistēmu, paaugstināt izmaksas. Aizsardzība ir ātruma ierobežojumi, maksas, kas mērojamas ar slodzi, un dizaina izvēles, kas padara izmantošanu dārgu. Ja jūs vēlaties visu dienu mest netīrumus ostā, jums jāmaksā par mašīnām, degvielu un ostas laiku. Ne sabiedrībai. Draudu modelēšana nav par paranoju. Tas ir par mieru. Jūs pirmkārt nosaucat sliktos lietas, lai vēlāk neizbrīnītos. Ar Walrus lielākais temats ir vienkāršs: neuzticieties vienam mezglam, vienam ceļam vai vienam laimīgam dienam. Izmantojiet pierādījumus un sodus, lai saglabātu mezglu godīgumu. Izmantojiet hešus, lai atrastu manipulāciju. Izmantojiet iznīcināšanas kodēšanu, lai trūkstošās daļas neiznīcinātu jūs. Un jūsu pusē — aizsargājiet atslēgas, turiet līguma loģiku stingru un pieņemiet, ka kāds mēģinās izdarīt muļķīgu uzbrukumu… un gudru… un “kāpēc viņi to dara?” uzbrukumu. Jo viņi to darīs. Un ja jūs to plānojat tagad, jūsu lietotāji nekad to nepamanīs. Tas ir labākais veids, kā nodrošināt drošību. Klusa. Praktiski neredzama. Kā ostas darbība bezskaļi, kamēr vētra paliek jūrā.