Ce este soliditatea și cum se folosește pentru a dezvolta contracte inteligente?

Ce este soliditatea și cum se folosește pentru a dezvolta contracte inteligente?

Soliditatea a parcurs un drum lung de când a fost propusă pentru prima dată în 2014 și ulterior dezvoltată de echipa Ethereum Solidity. Există sute de mii de dezvoltatori care folosesc limbajul de programare pentru a crea servicii bazate pe blockchain pentru un număr tot mai mare de cazuri de utilizare.





Acest articol explică ce este Solidity și cum este utilizată în ecosistemul Ethereum. Acest articol este pentru dvs. dacă sunteți interesat să aflați mai multe despre funcționarea interioară a acestui limbaj de programare bazat pe blockchain.





cum să transferați muzică de pe iPod pe iTunes

Ce este Soliditatea?

Soliditatea este un limbaj de programare orientat pe obiecte, la nivel înalt, utilizat pentru a crea contracte inteligente care automatizează tranzacțiile pe blockchain. După ce a fost propus în 2014, limbajul a fost dezvoltat de către colaboratorii proiectului Ethereum. Limbajul este utilizat în principal pentru a crea contracte inteligente pe blockchain-ul Ethereum și pentru a crea contracte inteligente pe alte blockchain-uri.





Soliditatea este similară cu unul dintre cele mai comune limbaje de programare, JavaScript. Poate fi considerat ca un dialect al JavaScript-ului. Aceasta înseamnă că, dacă înțelegeți JavaScript, poate fi ușor să preluați Solidity. Solidity are, de asemenea, caracteristici similare cu limbajele de programare C ++ și Python.

Ca limbaj la nivel înalt, Solidity elimină necesitatea de a introduce cod în unii și zerouri. Este mult mai ușor pentru oameni să scrie programe în moduri în care le este mai ușor de înțeles, folosind o combinație de litere și cifre.



Soliditatea este tastată static, cu suport pentru moștenire, biblioteci și tipuri complexe definite de utilizator. Deoarece Soliditatea este tastată static, utilizatorul specifică fiecare variabilă. Tipurile de date permit compilatorului să verifice utilizarea corectă a variabilelor. Tipurile de date de soliditate sunt de obicei clasificate fie ca tipuri de valori, fie ca tipuri de referință.

Principala diferență între tipurile de valori și tipurile de referință se găsește în modul în care acestea sunt atribuite unei variabile și stocate în EVM (Ethereum Virtual Machine). În timp ce modificarea valorii într-o variabilă a unui tip de valoare nu afectează valoarea unei alte variabile, oricine se referă la valorile modificate în variabilele tipului de referință poate obține valori actualizate.





Cum funcționează soliditatea?

Frumusețea ecosistemului Ethereum este că o pot folosi atât de multe criptomonede și aplicații descentralizate. Contractele inteligente fac posibilă realizarea de tehnologii unice pe Ethereum pentru tot felul de companii și organizații.

În fiecare an, lumea cheltuie miliarde de dolari pentru soluții blockchain. Multe dintre aceste soluții sunt create folosind Solidity. Contractele inteligente construite folosind Solidity pot fi gândite ca o modalitate de automatizare a proceselor de afaceri și non-business între diferite persoane. Acest lucru asigură faptul că persoanele care efectuează tranzacții pe blockchain nu trebuie să se îngrijoreze de riscuri precum frauda sau de a nu putea folosi aceeași monedă.





Una dintre componentele cheie care face posibilă executarea codului Solidity este EVM. EVM este descris ca un computer virtual pe blockchain care transformă ideile oamenilor în cod care rulează aplicații pe blockchain.

Sub capotă, Solidity creează cod la nivel de mașină care este executat pe EVM. Un compilator este utilizat pentru a descompune codul lizibil de nivel înalt, pe care îl transformă în instrucțiuni pe care procesorul le citește. Diferite platforme oferă compilare Solidity gratuită, inclusiv compilatorul online Remix și un compilator descărcat în formă de comandă pe un PC.

Contractele inteligente EVM au unele limitări care trebuie soluționate. Unul dintre cele mai semnificative dintre acestea este accesul limitat la funcțiile bibliotecii utile pentru analiza structurilor JSON sau aritmetică în virgulă mobilă.

Funcții publice și private

Funcțiile publice sunt similare cu API-urile pe care le poate accesa oricine din lume. Oricine le poate apela în codul său. Funcțiile publice sunt concepute, în multe cazuri, pentru procese partajate pe o platformă pe care toți utilizatorii o utilizează.

De exemplu, s-ar putea face o funcție publică care să permită tuturor utilizatorilor unei platforme să își verifice soldul contului. Una dintre cele mai comune modalități de exploatare a contractelor inteligente este prin funcții publice.

Related: Ce este un blockchain și cum funcționează?

În timp ce contractele inteligente pot fi ușor de scris cu Solidity, este adesea foarte dificil să le scrieți în siguranță. De exemplu, dacă funcția de retragere dintr-un contract inteligent nu este sigură, un atacator poate manipula funcția vulnerabilă pentru a scurge un cont de fonduri.

Un atacator ar putea apela la o funcție de retragere pentru a trimite bani către un cont diferit, utilizând o buclă care repetă în mod repetat funcția de retragere.

Funcțiile private pot fi apelate numai din interiorul contractelor. Acestea conțin instrucțiuni care pot fi executate numai după ce au fost apelate de alte funcții, într-un lanț. Acest lucru face mai dificilă manipularea codului de către actori răuvoitori.

Logica standardelor și codurilor

Apar diferite standarde care determină modul în care contractele inteligente Solidity sunt utilizate pentru a construi aplicații pe Ethereum. Aceste standarde sunt cunoscute ca standarde ERC (Ethereum Request for Comments). Standardele se bazează pe un document care conține linii directoare privind funcțiile necesare și restricții privind modul în care codul ar trebui să se comporte.

Standardele ERC care determină modul în care funcționează Solidity includ:

  • ERC20
  • ERC165
  • ERC721
  • ERC223
  • ERC621
  • ERC777
  • ERC827
  • ERC884
  • ERC865
  • ERC1155

Există diferite moduri în care Soliditatea poate fi utilizată pentru a face ca contractele inteligente să interacționeze între ele. Soliditatea poate fi, de asemenea, utilizată pentru a crea instrucțiuni dedicate despre modul în care datele sunt stocate în contractul inteligent. Logica și datele din contractele inteligente pot fi separate folosind Solidity. Folosind contracte substitutive, logica unui contract poate fi modificată pentru a permite acest lucru.

Imuabilitate

Este imposibil să modificați codul unui contract inteligent după ce a fost scris și compilat. Aceasta înseamnă că fiecare linie de cod trebuie să funcționeze conform intenției sau altfel ar putea exista riscuri serioase de exploatare a codului.

Legat de acest lucru: Cum să devii programator Blockchain și să începi să faci bani mari

Deoarece blockchain-ul Ethereum este imuabil, este imposibil să se schimbe datele și logica care sunt scrise în acesta. O modalitate de a rezolva acest lucru este de a utiliza un proxy pentru a indica un alt contract care conține logică de afaceri reală. Acest lucru permite remedierea erorilor în timp ce se implementează o nouă versiune a contractului.

cum să inversați datele în Excel

Costuri de gaze

Există costuri suplimentare care se plătesc pentru utilizarea Solidity pe rețeaua principală Ethereum. Unele dintre costurile suplimentare se bazează pe sistemul de gaze de pe Ethereum, care necesită plata către mineri pentru securizarea rețelei blockchain, astfel încât codul să poată rula în siguranță pe acesta.

Atunci când scrieți contracte inteligente, este important să ne amintim că costurile cu gazele pot determina cât de performant este un contract inteligent. Deoarece taxele de gaz sunt plătite pentru fiecare slot de stocare utilizat, acțiunile executate cu codul Solidity costă gaze. Este puțin probabil ca un contract inteligent care este costisitor de executat pe termen lung.

Optimizarea gazelor ajută la reducerea costului gazului atunci când se execută codul de soliditate. Unele dintre cele mai populare metode de optimizare a gazelor includ utilizarea bibliotecilor și utilizarea mai puține funcții. Bibliotecile sunt adesea folosite pentru a salva bytecode.

În loc să adăugați un bytecode inutil la contractul inteligent, logica poate fi pusă în biblioteci. Acest lucru vă ajută să mențineți dimensiunea contractului inteligent mică. Folosind mai puține funcții, este nevoie de mai puțin bytecode, iar dificultatea auditului codului este, de asemenea, redusă.

Cum poate fi utilizată soliditatea în Ethereum?

Soliditatea este utilizată pentru a crea contracte inteligente pentru jetoane fungibile și jetoane nefungibile. Diferite standarde sunt folosite pentru a construi jetoane nefungibile și jetoane fungibile în ecosistemul Ethereum.

Acestea permit crearea diferitelor tipuri de cazuri de utilizare pentru persoanele care utilizează blockchain-ul. Soliditatea permite oamenilor să folosească jetoane și jetoane nefungibile pe Ethereum. De la confecționarea jetoanelor nefungibile până la adăugarea lor pentru a produce bazine agricole pentru un interes suplimentar, diferite tipuri de utilizări pentru jetoane sunt posibile de către Ethereum.

Organizațiile Autonome Descentralizate (DAO) sunt, de asemenea, posibile de Solidity. Un DAO, care este un nou tip de structură organizațională online, este scris în primul rând în Soliditate. DAO permit diferitelor persoane să se reunească ca membri pe o platformă online, unde votează asupra deciziilor cheie ale DAO.

Soliditatea face posibilă automatizarea proceselor în cadrul DAO. Exemple de automatizare a proceselor în DAO includ votarea pentru decizii cheie și alocarea reputației membrilor DAO pentru contribuțiile lor la grup.

Definirea standardelor pentru blockchain-uri

Soliditatea este mult mai mult decât un limbaj de programare. Acesta definește standardele pentru viitorul tehnologiei blockchain.

Datorită numărului de dezvoltatori open-source care lucrează pentru a îmbunătăți securitatea și performanța Solidity, mii de aplicații din ecosistemul Ethereum continuă să depindă de acesta pentru ca aplicațiile lor să funcționeze. Pe măsură ce sunt create noi standarde pentru contracte inteligente în Ethereum, limba va deveni mai sigură de utilizat.

Acțiune Acțiune Tweet E-mail Este posibil un Internet cu adevărat descentralizat? Cum ar putea funcționa cu Blockchain

Este posibil un internet cu adevărat descentralizat? Ce înseamnă descentralizarea și cum te-ar păstra în siguranță?

Citiți în continuare
Subiecte asemănătoare
  • Tehnologie explicată
  • Programare
  • Ethereum
  • Blockchain
Despre autor Calvin Ebun-Amu(48 articole publicate)

Calvin este scriitor la MakeUseOf. Când nu se uită la Rick și Morty sau la echipele sale sportive preferate, Calvin scrie despre startup-uri, blockchain, securitate cibernetică și alte domenii ale tehnologiei.

Mai multe de la Calvin Ebun-Amu

Aboneaza-te la newsletter-ul nostru

Alăturați-vă newsletter-ului pentru sfaturi tehnice, recenzii, cărți electronice gratuite și oferte exclusive!

Faceți clic aici pentru a vă abona