Què és la solidesa i com s’utilitza per desenvolupar contractes intel·ligents?

Què és la solidesa i com s’utilitza per desenvolupar contractes intel·ligents?

La solidesa ha recorregut un llarg camí des que es va proposar per primera vegada el 2014 i posteriorment va ser desenvolupada per l'equip Solidity d'Ethereum. Hi ha centenars de milers de desenvolupadors que utilitzen el llenguatge de programació per crear serveis basats en blockchain per a un nombre creixent de casos d’ús.





En aquest article s’explica què és Solidity i com s’utilitza a l’ecosistema Ethereum. Aquest article és ideal per a vosaltres si esteu interessat en conèixer més sobre el funcionament intern d’aquest llenguatge de programació basat en blockchain.





compareu l'iPhone 12 pro i el pro màx

Què és Solidity?

Solidity és un llenguatge de programació orientat a objectes d’alt nivell que s’utilitza per crear contractes intel·ligents que automatitzen les transaccions a la cadena de blocs. Després de ser proposat el 2014, el llenguatge va ser desenvolupat pels col·laboradors del projecte Ethereum. El llenguatge s’utilitza principalment per crear contractes intel·ligents a la cadena de blocs d’Ethereum i crear contractes intel·ligents en altres cadenes de blocs.





La solidesa és similar a un dels llenguatges de programació més comuns, JavaScript. Es pot considerar com un dialecte de JavaScript. Això significa que si enteneu JavaScript, pot ser fàcil agafar Solidity. Solidity també comparteix característiques similars als llenguatges de programació C ++ i Python.

Com a llenguatge d’alt nivell, Solidity elimina la necessitat d’escriure codi entre uns i zeros. Fa molt més fàcil per als humans escriure programes de maneres en què els resulta més fàcil d’entendre, mitjançant una combinació de lletres i números.



La solidesa està tipificada estàticament, amb suport per a herències, biblioteques i tipus complexos definits per l'usuari. Com que Solidity s'escriu estàticament, l'usuari especifica molt cada variable. Els tipus de dades permeten al compilador comprovar l’ús correcte de variables. Els tipus de dades de solidesa se solen classificar com a tipus de valor o tipus de referència.

La principal diferència entre els tipus de valor i els tipus de referència es pot trobar en la manera com s’assignen a una variable i s’emmagatzemen a l’EVM (màquina virtual Ethereum). Tot i que canviar el valor d'una variable d'un tipus de valor no afecta el valor d'una altra variable, qualsevol persona que faci referència als valors canviats de variables de tipus de referència pot obtenir valors actualitzats.





Com funciona la solidesa?

La bellesa de l’ecosistema Ethereum és que poden utilitzar-la tantes criptomonedes i aplicacions descentralitzades. Els contractes intel·ligents permeten fer tecnologies úniques a Ethereum per a tot tipus d’empreses i organitzacions.

Cada any, el món gasta milers de milions de dòlars en solucions blockchain. Moltes d’aquestes solucions es creen mitjançant Solidity. Els contractes intel·ligents construïts amb Solidity es poden considerar com una manera d’automatitzar processos empresarials i no comercials entre diferents persones. Això garanteix que les persones que realitzen transaccions a la cadena de blocs no s’hagin de preocupar de riscos com ara frau o no poder utilitzar la mateixa moneda.





Un dels components clau que fa possible l'execució del codi Solidity és el EVM. L’EVM es descriu com un ordinador virtual a la cadena de blocs que converteix les idees de les persones en codi que executa aplicacions a la cadena de blocs.

Sota el capó, Solidity crea un codi a nivell de màquina que s’executa a l’EVM. Un compilador s’utilitza per descompondre el codi llegible per humans d’alt nivell, que converteix en instruccions que llegeix el processador. Diferents plataformes proporcionen una compilació de Solidity gratuïta, inclòs el compilador en línia Remix i un compilador descarregat en forma d’ordres en un PC.

Els contractes intel·ligents EVM tenen algunes limitacions que cal abordar. Un dels més significatius és l'accés limitat a funcions de biblioteca útils per analitzar estructures JSON o aritmètica de punt flotant.

Funcions públiques i privades

Les funcions públiques són similars a les API a les quals pot accedir qualsevol persona del món. Qualsevol persona els pot trucar al seu codi. Les funcions públiques estan dissenyades, en molts casos, per a processos compartits en una plataforma que fan servir tots els usuaris.

Per exemple, es podria fer una funció pública que permeti a tots els usuaris d’una plataforma comprovar el saldo del seu compte. Una de les formes més habituals d’explotar els contractes intel·ligents és mitjançant les funcions públiques.

Relacionat: què és una cadena de blocs i com funciona?

Tot i que els contractes intel·ligents poden ser fàcils d’escriure amb Solidity, sovint és molt difícil escriure’ls de forma segura. Per exemple, si la funció de retirada d'un contracte intel·ligent no és segura, un atacant pot manipular la funció vulnerable per esgotar un compte de fons.

Un atacant podria trucar a una funció de retirada per enviar diners a un compte diferent, mitjançant un bucle que repeteix repetidament la funció de retirada.

Les funcions privades només es poden convocar des dels contractes. Contenen instruccions que només es poden executar després de ser cridades per altres funcions, en cadena. Això fa que sigui més difícil que el codi pugui ser manipulat per actors maliciosos.

Lògica de normes i codis

Sorgeixen diferents estàndards que determinen com s’utilitzen els contractes intel·ligents Solidity per crear aplicacions a Ethereum. Aquests estàndards es coneixen com a estàndards ERC (Ethereum Request for Comments). Els estàndards es basen en un document que conté directrius sobre les funcions necessàries i restriccions sobre el comportament del codi.

Els estàndards ERC que determinen el funcionament de Solidity inclouen:

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

Hi ha diferents maneres en què Solidity es pot utilitzar per fer que els contractes intel·ligents interactuïn entre ells. La solidesa també es pot utilitzar per fer instruccions específiques sobre com s’emmagatzemen les dades al contracte intel·ligent. La lògica i les dades dels contractes intel·ligents es poden separar mitjançant Solidity. Mitjançant contractes substitutius, es pot canviar la lògica d’un contracte per permetre-ho.

Immutabilitat

És impossible canviar el codi d'un contracte intel·ligent després d'haver-se escrit i compilat. Això vol dir que totes les línies de codi han de funcionar tal com es pretén o bé hi pot haver seriosos riscos d'explotació del codi.

Relacionat: Com convertir-se en programador de Blockchain i començar a fer grans diners

Com que la cadena de blocs d’Ethereum és immutable, és impossible canviar les dades i la lògica que s’hi escriuen. Una manera de solucionar-ho és mitjançant un servidor intermediari per assenyalar un altre contracte que contingui una lògica empresarial real. Això permet corregir els errors mentre s’implementa una nova versió del contracte.

algú pot cancel·lar un pagament de venmo

Costos del gas

Hi ha costos addicionals que es paguen per utilitzar Solidity a la xarxa principal Ethereum. Alguns dels costos addicionals es basen en el sistema de gas d’Ethereum, que requereix el pagament als miners per assegurar la xarxa blockchain, de manera que el codi pugui funcionar amb seguretat.

A l’hora d’escriure contractes intel·ligents, és important recordar que els costos del gas poden determinar el rendiment d’un contracte intel·ligent. Com que es paguen taxes de gasolina per cada ranura d'emmagatzematge utilitzada, les accions executades amb el codi Solidity costen gas. Un contracte intel·ligent que és car d’executar és poc probable que s’utilitzi a llarg termini.

L’optimització del gas ajuda a reduir el cost del gas quan s’executa el codi Solidity. Alguns dels mètodes més populars d’optimització de gasos són l’ús de biblioteques i l’ús de menys funcions. Les biblioteques s’utilitzen sovint per desar un bytecode.

En lloc d’afegir un bytecode innecessari al contracte intel·ligent, la lògica es pot posar a les biblioteques. Això ajuda a mantenir reduïda la mida del contracte intel·ligent. En utilitzar menys funcions, es necessita menys bytecode i també es redueix la dificultat d’auditar el codi.

Com es pot utilitzar la solidesa a Ethereum?

La solidesa s’utilitza per crear contractes intel·ligents per a tokens fungibles i tokens no fungibles. S’utilitzen diferents estàndards per construir fitxes no fungibles i fitxes fungibles a l’ecosistema Ethereum.

Permeten crear diferents tipus de casos d’ús per a les persones que utilitzen la cadena de blocs. La solidesa permet a les persones utilitzar fitxes i fitxes no fungibles a Ethereum. Des de l’encunyació de fitxes no fungibles fins a l’addició d’elles per obtenir agrupacions agrícoles per obtenir un interès addicional, Ethereum permet fer diferents usos de fitxes.

Les organitzacions autònomes descentralitzades (DAO) també són possibles gràcies a Solidity. Un DAO, que és un nou tipus d’estructura organitzativa en línia, s’escriu principalment en Solidity. Els DAO permeten a diferents persones reunir-se com a membres en una plataforma en línia on voten les decisions clau del DAO.

La solidesa permet automatitzar processos dins del DAO. Alguns exemples d’automatització de processos en DAO inclouen la presa de vots per a decisions clau i l’assignació de reputació als membres de DAO per les seves contribucions al grup.

Definició d’estàndards per a blockchains

La solidesa és molt més que un llenguatge de programació. Està definint els estàndards per al futur de la tecnologia blockchain.

Gràcies al nombre de desenvolupadors de codi obert que treballen per millorar la seguretat i el rendiment de Solidity, milers d’aplicacions a l’ecosistema Ethereum continuen depenent d’ell perquè funcionin les seves aplicacions. A mesura que es creïn nous estàndards per a contractes intel·ligents a Ethereum, l’idioma serà més segur d’utilitzar.

Compartir Compartir Tweet Correu electrònic És possible una Internet realment descentralitzada? Com podria funcionar amb Blockchain

És possible una internet realment descentralitzada? Què significa la descentralització i com us mantindria fora de perill?

Llegiu a continuació
Temes relacionats
  • Tecnologia explicada
  • Programació
  • Ethereum
  • Blockchain
Sobre l'autor Calvin Ebun-Amu(48 articles publicats)

Calvin és escriptor a MakeUseOf. Quan no mira Rick i Morty ni els seus equips esportius preferits, Calvin escriu sobre startups, blockchain, ciberseguretat i altres àmbits de la tecnologia.

Més de Calvin Ebun-Amu

Subscriu-te al nostre butlletí

Uniu-vos al nostre butlletí per obtenir consells tècnics, ressenyes, llibres electrònics gratuïts i ofertes exclusives.

Feu clic aquí per subscriure-us