paint-brush
Vaša dApp je ranjiva - evo što je tome uzrokpo@emmanuelaj
399 čitanja
399 čitanja

Vaša dApp je ranjiva - evo što je tome uzrok

po Emmanuel Ajala10m2024/09/29
Read on Terminal Reader

Predugo; Čitati

RPC (Remote Procedure Call) čvorovi služe kao okosnica blockchain infrastrukture, omogućujući dApps komunikaciju s blockchainom. Centralizirani RPC čvorovi, međutim, predstavljaju rizike kao što su pojedinačne točke kvara, ograničenja skalabilnosti i sigurnosne ranjivosti. Studije slučaja poput prekida rada Infure naglašavaju kako oslanjanje na centraliziranu infrastrukturu može uzrokovati velike poremećaje. Alternative kao što su samostalno hostirani i decentralizirani RPC čvorovi nude veću kontrolu, pouzdanost i toleranciju na greške, ali dolaze sa svojim izazovima kao što su visoki troškovi i održavanje.
featured image - Vaša dApp je ranjiva - evo što je tome uzrok
Emmanuel Ajala HackerNoon profile picture
0-item
1-item

RPC (Remote Procedure Call) čvorovi su kritične komponente blockchain infrastrukture. Oni upravljaju komunikacijom između decentralizirane nepromjenjive knjige i front-end aplikacija. Ove posredničke infrastrukture djeluju kao glasnici koji olakšavaju zahtjeve i odgovore između čvorova i usluga izgrađenih na blockchainu.


Osnovni rad RPC-a



RPC čvorovi su poput poštanske službe Sjedinjenih Država (USPS), koja olakšava kretanje informacija od dApp do blockchaina i natrag. Baš kao što se oslanjate na poštansku uslugu za prijenos vaše pošte s jedne točke na drugu, dApps ovise o RPC čvorovima za pristup blockchainu. A bez ovih čvorova decentralizirane aplikacije teško će funkcionirati.


RPC čvorovi značajno su se razvili u posljednjih 10 godina, ali centralizacija infrastrukture uvela je skrivenu ranjivost. Ovaj članak ima za cilj istražiti ulogu RPC čvorova, opasnost od centralizacije i alternative koje mogu zaštititi vaše dApps od ranjivosti.

Evolucija RPC infrastrukture

Ideja pozivanja procedura na daljinu datira iz 1970-ih kada su računalni znanstvenici tražili načine za komunikaciju između različitih strojeva kako bi distribuirana računala učinili transparentnima za programere.


U 1980-ima Sun Microsystem je razvio prvi RPC pod nazivom Network File System. Sun Microsystem je razvio Open Network Computing RPC protokol, koji je postao standard za komunikaciju između različitih programa na mreži.


Međutim, početkom 1990-ih, Microsoft je razvio i implementirao svoju verziju RPC-a kako bi omogućio komunikaciju između procesa na Windows sustavima. Početkom 2000-ih uveden je JSON RPC, koji koristi JSON za kodiranje podataka. Postao je ozloglašen među programerima i programerima zbog jednostavnosti prijenosa standardiziranih podataka.


Tijekom prošlog desetljeća, dApps su postale važan dio blockchain industrije, a RPC je savršena infrastruktura potrebna za dovršetak labirinta.


Zašto?


  1. Njegova sposobnost da uputi udaljeni poziv funkciji na drugom računalu poput lokalnog poziva funkcije savršena je za blockchain arhitekturu.
  2. Njegova apatridija i mala težina osnažuju blockchain i pomažu u situacijama ograničenja propusnosti i računanja.


Zbog prednosti, RPC je brzo postao široko korišten. RPC je predložen kako bi se aplikacijama napisanim na različitim jezicima omogućilo povezivanje i komunikacija. Osnovna ideja RPC-a je uputiti udaljeni poziv funkciji na drugom računalu ili poslužitelju kao da se radi o lokalnom pozivu funkcije.


Tijekom godina postojale su tri glavne vrste RPC-ova (centralizirani, decentralizirani i samostalni) i svaki je jedinstven na svoj način.

Opasnost od centraliziranih RPC čvorova

Centralizirani RPC čvorovi su čvorovi kojima upravlja i kontrolira jedan entitet. Ovi centralizirani čvorovi imaju modele koji nalikuju web2 uslugama hostinga u oblaku kao što su AWS (Amazon Web Services), Microsoft Azure i Google Cloud Protocol (GCP).


Iako ovi centralizirani web3 RPC pružatelji održavaju infrastrukturu čvorova za decentralizirane aplikacije, dublji uvid u sustav otkrio je koliko su centralizirani. Ovi pružatelji web3 infrastrukture ironično također ovise o web2 cloud hosting infrastrukturi poslužitelja za održavanje svojih usluga.


Dakle, kada ovi pružatelji usluga u oblaku dožive prekid rada, web3 usluge, koje bi trebale biti decentralizirane, također imaju zastoje. Evo primjera centraliziranih RPC čvorova: Alchemy, Infura, Quicknode itd.


Provjerimo opasnosti koje centralizirani RPC čvorovi predstavljaju za web3 infrastrukturu.


  1. Jedna točka kvara: postojanje jedne točke kvara uvijek utječe na pouzdanost sustava. Jedan poslužitelj ili mreža poslužitelja koje kontrolira jedan entitet uvest će kritičnu točku koja bi mogla dovesti do kvara vaše dApp.



    Ako poslužitelj kroz koji se podaci usmjeravaju otkaže, veza između blockchaina i dApp-a postaje prekinuta i sustav pada. Jedna točka kvara utjecat će na pouzdanost sustava, posebno u aplikacijama povezanim s financijama poput DeFi platformi.


  1. Problem skalabilnosti : Centralizirani RPC čvorovi mogu postati uska grla u vrijeme velikog prometa i to ograničava skalabilnost dApp-a. Kada je mreža zagušena zbog oslanjanja na jedan čvor, to utječe na učinkovitost dApps i povećava kašnjenje, što utječe na korisnike.


    Budući da se radi o centraliziranom sustavu, nemoguće je povećati skalabilnost dApp-a.


  1. Sigurnosni rizik i ranjivost: Centralizirani ili namjenski čvor izložen je ranjivosti i može biti laka meta za beskrupulozne pojedince. Podaci se mogu izložiti i manipulirati, te u konačnici utjecati na donošenje odluka u dApps.


    Štoviše, koordinirani napad na pružatelja također se može lako implementirati, što u konačnici izlaže korisnike Dappa. Vladine agencije mogu prisiliti jedan entitet da zatvori aplikaciju.


    Evo primjera:


    MetaMask je 2022. navodno blokirao korisnike s venezuelanskim i iranskim IP adresama u provođenju transakcija na blockchainu.


    To je bilo moguće zbog centraliziranog RPC-a (Infura) koji koristi web3 novčanik.

Studije slučaja kvarova i ranjivosti centraliziranih RPC čvorova

Centralizirani RPC može izgledati kao da je siguran, ali nije. Ipak, u nedoumici oko ovoga, pogledajmo neke studije slučaja o prošlim neuspjesima centraliziranih RPC-ova.

Slučaj Infura

Infura je jedan od prvih pružatelja blockchain pozadinske infrastrukture kao usluge (IaaS) u web3, koji vam je dostavljen konsenzusom. Tvrdi se da je infrastruktura dostupna za 99,9% neprekidnog rada i dostupna za 16 blockchain EVM-ova.


Sve do 2020. Infura se smatrala herojem, kao jedna od granica razvoja dApp-a i predvodnica masovnog prihvaćanja kripto/blockchaina.


Dana 11. studenog 2020. Infura je doživjela prekid usluge zbog pogreške koja je utjecala na verziju GEth-a koju pokreće Infura.


Glavni problem ovdje je da Infura sustav nije radio i svi korisnici Infura infrastrukture nisu se mogli spojiti na blockchain. Poslužitelji su poremećeni zbog greške i otkriven je rizik od centralizacije iza decentralizirane mreže.


Metamask, najveći potrošački Ethereum novčanik s milijunima aktivnih korisnika, bio je prekinut. Sve zato što se oslanjaju na Infuru, centraliziranog RPC pružatelja usluga.

Zabrinutost oko centralizacije tijekom nadogradnje mreže

Tijekom mrežnih nadogradnji/hardforkova obično postoji zabrinutost zbog kvarova usluge, posebno u vezi s dAapps-ovima koji se oslanjaju na pružatelje centralizirane infrastrukture. Ove brige uključuju:


Jedna točka kvara, koja može poremetiti aktivnosti i dovesti do zastoja.


Evo nekoliko primjera iz prošlosti:


  • Tijekom hardforka Ethereum Istanbul 2019. , mnogi centralizirani RPC pružatelji usluga doživjeli su zastoj. Neka od tih prekida rada rezultat su nadogradnje mreže. DeFi aplikacije ne mogu obraditi transakcije, ostavljajući korisnike u neizvjesnosti.


  • Tijekom nadogradnje Polygon Heimdall , pružatelji RPC usluga suočili su se s problemima povezivanja i nisu bili sinkronizirani s blockchain mrežom. Korisnici nisu mogli pristupiti DeFi dApps nekoliko sati, pa su transakcije kasnile ili nisu uspjele.

Solana RPC preopterećenje u 2021

Solana je 2021. godine doživjela mnogo prekida rada. Jedan od zloglasnih prekida rada uzrokovan je preopterećenjem centraliziranih RPC usluga tijekom vršnih razdoblja. Kako su javni čvorovi postali preopterećeni, korisnici nisu mogli komunicirati sa Solana Blockchainom nekoliko sati i mreža se suočila s prekidom pune usluge na mnogo sati.


Ovi slučajevi facepalmova i bezbrojni drugi otkrivaju važnost RPC pružatelja usluga za blockchain. Iako mnoge dApp-ove još uvijek koriste centralizirane pružatelje usluga (možda iz neznanja ili nepromišljenosti), tijekom godina pojavile su se alternative.


U sljedećim odjeljcima provest ćemo vas kroz druge alternative i pokazati kako su one bile izvrsna opcija za razvoj blockchaina.

Decentralizacija vaše DApp: najbolje alternative centraliziranim RPC čvorovima

Samostalni RPC čvorovi

Kao što naziv implicira, RPC čvorovi s vlastitim hostingom su čvorovi koje hostirate ili njima upravljate na vlastitom hardveru ili infrastrukturi oblaka. Umjesto da se oslanjate na RPC pružatelje trećih strana, možete ugostiti vlastite RPC čvorove. Dobivate izravan pristup blockchain mreži, potvrđujete transakcije, izravno postavljate upite o blockchain podacima i komunicirate s dApps.


Prednosti RPC čvorova s vlastitim hostingom uključuju:


  1. Autonomija/Kontrola : pokretanje vaših čvorova znači da imate punu kontrolu nad konfiguracijama čvorova. Možete prilagoditi softver svojim potrebama, primijeniti ažuriranja po vlastitom nahođenju i upravljati sigurnošću.


  1. Pouzdanost : ne morate tražiti prekide usluge ili kvarove zbog problema s pružateljem usluga, što je uobičajeno za centralizirane čvorove trećih strana.


  1. Izravan mrežni pristup : pokretanje čvorova na vašoj infrastrukturi znači da ste odgovorni za njihove usluge, imate nisku latenciju pristupa blockchain mreži.


Iako čvorovi s vlastitim hostom izgledaju pouzdaniji od svojih centraliziranih alternativa, oni imaju svoje nedostatke. I evo ih:


  1. Visoki zahtjevi za resursima . Hosting RPC čvora zahtijeva značajan prostor na disku za pohranu povijesti blockchaina. Pohrana, propusnost i procesorska snaga potrebna za pokretanje RPC čvorova mogu biti neodoljivi.


    Štoviše, potrebna vam je stalna sinkronizacija s blockchainom, a to može zauzeti veliku količinu propusnosti koja može biti neodoljiva. Potrebna procesorska snaga također može biti ogromna, posebno kada se obrađuju informacije u situacijama s velikim prometom.


  2. Skupo za upravljanje : postavljanje čvorova koji se sami hostiraju čini se boljom opcijom, ali nije. Trošak hardvera, operativni trošak i oportunitetni trošak mogu biti ogromni.


    Operativni troškovi kao što su električna energija, internetska propusnost i naknade za usluge oblaka (ako koristite infrastrukturu oblaka) mogu biti ogromni. Da biste pokrenuli uspješan čvor, potreban vam je posvećeni tim stručnjaka koji će biti u pripravnosti za rješavanje problema ili riskirate prekide rada na nekoliko sati.


  1. Složeno postavljanje i održavanje : potrebno vam je solidno razumijevanje blockchain tehnologije, upravljanja poslužiteljem i najboljih sigurnosnih praksi. Redovito održavanje kako bi se izbjegli prekidi poput ažuriranja softvera, sigurnosnih zakrpa i nadogradnji hardvera kako bi čvorovi ispravno radili.


  1. Ograničena skalabilnost i izostanak podrške za višestruki lanac : Za razliku od dobavljača trećih strana s modelima za rješavanje ovog problema, za interakciju s višestrukim lancima blokova morate ugostiti čvorove za svaki lanac blokova, što može biti zahtjevno za resurse i neodrživo.


    Čvorovi s vlastitim hostingom pružaju neovisnost, veliku kontrolu interakcije blockchaina i privatnost. Oni zahtijevaju značajne resurse, tehnološku stručnost i održavanje, što može biti nemoguće čak i za najjači dostupan tim za razvoj blockchaina.

Decentralizirani RPC čvorovi

Decentralizirani RPC-ovi su blockchain poslužitelji koji omogućuju dApp-ovima da komuniciraju s blockchainom na decentraliziran način. Decentralizirani RPC pružatelji distribuiraju svoju infrastrukturu na više čvorova. Ovo smanjuje jednu točku kvara, poboljšava stabilnost i skalabilnost mreže i smanjuje kašnjenje.


decentralizacija distribuiranog čvora



Prednosti decentraliziranih RPC čvorova u odnosu na druge uključuju


  1. Distribuirana mreža : distribuirana mreža pružatelja čvorova radi na obradi zahtjeva, odgovaranju na upite i interakciji s blockchainom.


  1. Operacije su nepovjerljive : Ne vjeruje se niti jednom pružatelju usluga. Zahtjevi se distribuiraju među više pružatelja usluga čime se osigurava da niti jedna strana nema potpunu kontrolu nad podacima ili zahtjevima.


  1. Otpor cenzuri : Budući da se RPC čvorovi ne nalaze u istoj jurisdikciji, entitet/tijelo ne može lako cenzurirati, blokirati ili ograničiti pristup blockchainu. Ako se RPC infrastruktura isključi zbog pravila iz jurisdikcije, zahtjevi dApp-a mogu se preusmjeriti na druge RPC čvorove iz druge jurisdikcije.


  1. Tolerancija grešaka : Decentralizirani model RPC usluga čini ih otpornima na prekide. Ako čvor padne, drugi će zamijeniti uslugu. To smanjuje vrijeme zastoja i osigurava dosljednu dostupnost.


Izazovi uključuju:

  1. Latencija : Ako nisu pravilno postavljene, decentralizirane RPC usluge mogu uvesti latenciju jer bi mogle biti usmjerene kroz nekoliko čvorova. Decentralizacija RPC čvorova može lako postati suvišna, a kao rezultat toga, podaci se mogu usmjeravati kroz više poslužitelja povećavajući kašnjenje.


  1. Sigurnost : budući da čvorovima upravljaju različiti entiteti, čvorovi možda neće biti jednako zaštićeni.


  1. Konsenzus među čvorovima : osiguranje dosljednih i pouzdanih podataka može biti izazovno. Moraju postojati mehanizmi za otkrivanje i ublažavanje zlonamjernih/neispravnih čvorova.


Primjeri decentraliziranih RPC čvorova uključuju:


dRPC, Pocket network i Ankr

Najbolji primjeri iz prakse za izbjegavanje rizika centralizacije u razvoju dApp-a

  1. Diverzifikacija pružatelja čvorova

Odabirom pružatelja decentraliziranih RPC čvorova kao što je dRPC, možete izbjeći rizike centralizacije. Decentralizirani RPC pružatelji imaju postavljene sustave koji osiguravaju rad čvorova prema potrebnim značajkama kao što su balanseri opterećenja, nadzor pružatelja čvorova i poticaji za dobre aktere.


Na primjer, dRPC vam omogućuje pristup nadzornoj ploči za praćenje diversifikacije infrastrukture vašeg čvora. Iako nemate izravnu kontrolu nad čvorovima koje koristite i koliko su decentralizirani, nadzorna ploča vam omogućuje da vidite koliko su čvorovi decentralizirani.


indeks decentralizacije na dRPC nadzornoj ploči


Pogled na gornju sliku pokazao je da je veza decentralizirana između četiri različita pružatelja RPC čvorova ( Besked, drpc-free, drpc-public-multiregion, p2p-validator-optimism-free ). Indeks decentralizacije od 0,563 pokazao je kumulativni broj razine decentralizacije pri čemu je "jedan" najdecentraliziraniji, a "nula" najcentraliziraniji.


  1. Praćenje i upravljanje zdravljem čvorova

Programeri bi trebali moći nadzirati RPC čvorove koje koristi njihova dApp. To osigurava pouzdanost dApp-a. Iako možda nećete moći kontrolirati kako RPC pružatelji upravljaju svojim sustavima, decentralizirani RPC pružatelji poput dRPC imaju postavljene sustave za nadzor pružatelja RPC čvorova.


SaaS nadzorna ploča dRPC-a daje vam pristup sveobuhvatnoj analitici za praćenje interakcije vaše dApp s infrastrukturom. Na dRPC nadzornoj ploči, na primjer, možete pratiti ukupan broj zahtjeva koje je podnio vaš dApp tijekom odabranih dana, pratiti decentralizaciju RPC čvora i distribuciju zahtjeva na temelju API ključa. Imate čak i pristup zapisnicima pogrešaka nadgledanja s nadzorne ploče.


Osim nadzorne ploče dRPC analitike, dRPC ima pozadinski mehanizam za nadzor pružatelja usluga čvorova i sprječavanje da postanu lažni. Pročitajte više o ovim pozadinskim mehanizmima ovdje.

Zaključak

RPC čvorovi igraju značajnu ulogu u olakšavanju komunikacije između decentralizirane aplikacije i blockchaina. Međutim, centralizacija RPC-ova predstavlja značajan rizik za vašu dApp i blockchain mrežu općenito. Kao što se vidi u prethodnim neuspjesima iz gore razmotrenih studija slučaja, oslanjanje na centralizirane RPC pružatelje predstavlja rizik od jedne točke kvara i može dovesti do kritičnog prekida usluge web3 usluga.


Programeri nisu bez alternativa. Samostalni i decentralizirani RPC-ovi nude pouzdana rješenja koja mogu pomoći u izgradnji otpornih aplikacija. Prihvaćanjem decentraliziranih RPC-ova kao što je dRPC , programeri mogu ublažiti rizik centralizacije i izgraditi moćne, otporne, otporne na cenzuru i sigurne aplikacije.