Solidity prošla dlouhou cestou, protože byla poprvé navržena v roce 2014 a později vyvinuta týmem Solidity společnosti Ethereum. Existují stovky tisíc vývojářů, kteří používají programovací jazyk k vytváření služeb založených na blockchainu pro rostoucí počet případů použití.
Tento článek vysvětluje, co je Solidity a jak se používá v ekosystému Ethereum. Tento článek je pro vás, pokud máte zájem dozvědět se více o vnitřním fungování tohoto programovacího jazyka založeného na blockchainu.
Co je to solidnost?
Solidity je objektově orientovaný programovací jazyk na vysoké úrovni používaný k vytváření inteligentních kontraktů, které automatizují transakce na blockchainu. Poté, co byl tento jazyk navržen v roce 2014, jej vyvinuli přispěvatelé do projektu Ethereum. Jazyk se primárně používá k vytváření inteligentních smluv Ethereum blockchain a vytvářet chytré smlouvy na jiných blockchainech.
Solidity je podobný jednomu z nejběžnějších programovacích jazyků, JavaScriptu. Lze jej považovat za dialekt jazyka JavaScript. To znamená, že pokud rozumíte JavaScriptu, může být snadné vyzvednout Solidity. Solidity také sdílí podobné vlastnosti jako programovací jazyky C ++ a Python.
Solidity jako jazyk na vysoké úrovni odstraňuje potřebu psát kód v jednotkách a nulách. Lidé díky nim mohou mnohem snáze psát programy způsoby, jimž lépe rozumějí, pomocí kombinace písmen a čísel.
Solidity se zadává staticky, s podporou dědičnosti, knihoven a složitých typů definovaných uživatelem. Protože Solidity je staticky zadáno, uživatel hodně specifikuje každou proměnnou. Datové typy umožňují kompilátoru zkontrolovat správné použití proměnných. Datové typy solidity jsou obvykle kategorizovány buď jako typy hodnot, nebo jako referenční typy.
Hlavní rozdíl mezi hodnotovými typy a referenčními typy lze najít v tom, jak jsou přiřazeny k proměnné a uloženy v EVM (Ethereum Virtual Machine). Zatímco změna hodnoty v jedné proměnné typu hodnoty nemá vliv na hodnotu v jiné proměnné, kdokoli, kdo odkazuje na změněné hodnoty v proměnných typu odkazu, může získat aktualizované hodnoty.
Jak funguje Solidity?
Krása ekosystému Ethereum spočívá v tom, že jej může používat tolik různých kryptoměn a decentralizovaných aplikací. Chytré smlouvy umožňují, aby na Ethereu mohly být vyráběny jedinečné technologie pro všechny druhy podniků a organizací.
Svět každý rok utrácí miliardy dolarů za blockchainová řešení. Mnoho z těchto řešení je vytvořeno pomocí Solidity. Inteligentní smlouvy vytvořené pomocí Solidity lze považovat za způsob automatizace obchodních a nepodnikatelských procesů mezi různými lidmi. Tím je zajištěno, že lidé provádějící transakce na blockchainu se nemusí obávat rizik, jako je podvod nebo nemožnost používat stejnou měnu.
Jednou z klíčových komponent, která umožňuje provádění kódu Solidity, je EVM. EVM je popsán jako virtuální počítač na blockchainu, který mění myšlenky lidí na kód, který spouští aplikace na blockchainu.
Solidity pod kapotou vytváří kód na úrovni stroje, který se spouští v EVM. Kompilátor se používá k rozdělení vysoce čitelného kódu na vysoké úrovni, který se změní na instrukce, které procesor načte. Různé platformy poskytují bezplatnou kompilaci Solidity, včetně online kompilátoru Remix a staženého příkazového kompilátoru na PC.
Inteligentní smlouvy EVM mají některá omezení, která je třeba řešit. Jedním z nejvýznamnějších z nich je omezený přístup k užitečným knihovním funkcím pro analýzu struktur JSON nebo aritmetiku s plovoucí desetinnou čárkou.
Veřejné a soukromé funkce
Veřejné funkce jsou podobné API, ke kterým má přístup kdokoli na světě. Kdokoli jim může zavolat ve svém kódu. Veřejné funkce jsou v mnoha případech navrženy pro sdílené procesy na platformě, kterou využívají všichni uživatelé.
Například by mohla být vytvořena veřejná funkce umožňující všem uživatelům platformy kontrolovat zůstatek na účtu. Jedním z nejběžnějších způsobů využívání inteligentních smluv jsou veřejné funkce.
Příbuzný: Co je blockchain a jak funguje?
I když lze inteligentní smlouvy snadno psát pomocí Solidity, je často velmi obtížné je bezpečně psát. Například pokud funkce výběru v inteligentní smlouvě není zabezpečená, může útočník manipulovat se zranitelnou funkcí a vyčerpat účet finančních prostředků.
Útočník by mohl vyzvat funkci výběru k odeslání peněz na jiný účet pomocí smyčky, která opakovaně funkci výběru opakuje.
Soukromé funkce lze volat pouze zevnitř smluv. Obsahují pokyny, které lze provést pouze po vyvolání jinými funkcemi v řetězci. To ztěžuje manipulaci s kódem škodlivými herci.
Standardy a kódová logika
Objevují se různé standardy, které určují, jak se inteligentní smlouvy Solidity používají k vytváření aplikací na etherea. Tyto standardy jsou známé jako standardy ERC (Ethereum Request for Comments). Standardy jsou založeny na dokumentu, který obsahuje pokyny k požadovaným funkcím a omezením, jak by se měl kód chovat.
Standardy ERC, které určují, jak Solidity funguje, zahrnují:
- ERC20
- ERC165
- ERC721
- ERC223
- ERC621
- ERC777
- ERC827
- ERC884
- ERC865
- ERC1155
Existují různé způsoby, jak lze Solidity použít k vzájemné interakci inteligentních smluv. Solidity lze také použít k vytvoření speciálních pokynů k tomu, jak jsou data ukládána do inteligentní smlouvy. Logiku a data v inteligentních kontraktech lze oddělit pomocí Solidity. Pomocí náhradních smluv lze logiku smlouvy změnit tak, aby to umožňovala.
Nezměnitelnost
Po napsání a kompilaci kódu inteligentní smlouvy je nemožné jej změnit. To znamená, že každý řádek kódu musí fungovat, jak bylo zamýšleno, jinak by mohlo dojít k vážným rizikům zneužití kódu.
Příbuzný: Jak se stát blockchainovým programátorem a začít vydělávat velké peníze
Vzhledem k tomu, že blockchain Ethereum je neměnný, je nemožné změnit data a logiku, která je do něj zapsána. Způsob, jak to obejít, je použít proxy k nasměrování na jinou smlouvu, která obsahuje skutečnou obchodní logiku. To umožňuje opravy chyb při implementaci nové verze smlouvy.
Náklady na plyn
Existují další náklady, které se platí za použití Solidity v síti Ethereum. Některé z dodatečných nákladů vycházejí z plynového systému na Etherea, který vyžaduje platby těžařům za zabezpečení blockchainové sítě, aby na ní mohl bezpečně běžet kód.
Při psaní inteligentních smluv je důležité si uvědomit, že náklady na plyn mohou určit, jak výkonná je inteligentní smlouva. Jelikož se poplatky za plyn platí za každý použitý úložný slot, akce prováděné s kódem Solidity stojí plyn. Chytrý kontrakt, jehož provoz je nákladný, je nepravděpodobné, že by byl z dlouhodobého hlediska používán.
Optimalizace plynu pomáhá snížit náklady na plyn při provádění kódu Solidity. Mezi nejoblíbenější metody optimalizace plynů patří používání knihoven a používání méně funkcí. Knihovny se často používají k ukládání bytecode.
Místo přidání zbytečného bajtkódu do inteligentní smlouvy lze logiku vložit do knihoven. To pomáhá udržovat malou velikost inteligentní smlouvy. Použitím méně funkcí je potřeba méně bajtových kódů a také se sníží obtížnost kontroly kódu.
Jak lze použít soliditu v ethereu?
Solidity se používá k vytváření inteligentních kontraktů pro zastupitelné tokeny a nepředstavitelné tokeny. K vytváření nepostradatelných tokenů a zastupitelných tokenů v ekosystému Ethereum se používají různé standardy.
Ty umožňují vytvářet různé typy případů použití pro lidi, kteří používají blockchain. Solidity umožňuje lidem používat tokeny a nezastupitelné žetony na Ethereu. Ethereum umožňuje různé druhy použití tokenů, od těžby nezměnitelných žetonů až po jejich přidávání do zemědělských fondů pro větší zájem.
Decentralizované autonomní organizace (DAO) také umožňuje Solidity. DAO, což je nový typ online organizační struktury, je primárně napsán v Solidity. DAO umožňují různým lidem spojit se jako členové na online platformě, kde hlasují o klíčových rozhodnutích DAO.
Solidity umožňuje automatizovat procesy v rámci DAO. Mezi příklady automatizace procesů v DAO patří hlasování za klíčová rozhodnutí a přidělení reputace členům DAO za jejich příspěvky do skupiny.
Definování standardů pro blockchainy
Solidnost je mnohem víc než programovací jazyk. Definuje standardy pro budoucnost blockchainové technologie.
Díky množství vývojářů open-source pracujících na zlepšení zabezpečení a výkonu Solidity tisíce aplikací v ekosystému Ethereum na tom i nadále závisí na tom, jaké aplikace to používají fungovat. Vzhledem k tomu, že pro inteligentní smlouvy v Ethereu jsou vytvářeny nové standardy, bude používání tohoto jazyka bezpečnější.
Je možný skutečně decentralizovaný internet? Co znamená decentralizace a jak by vás ochránila?
Přečtěte si další
- Vysvětlení technologie
- Programování
- Ethereum
- Blockchain
Calvin je spisovatel na MakeUseOf. Když Calvin nesleduje Ricka a Mortyho ani jeho oblíbené sportovní týmy, píše o startupech, blockchainu, kybernetické bezpečnosti a dalších oblastech technologií.
Přihlaste se k odběru našeho zpravodaje
Připojte se k našemu zpravodaji s technickými tipy, recenzemi, bezplatnými elektronickými knihami a exkluzivními nabídkami!
Ještě jeden krok…!
V e-mailu, který jsme vám právě poslali, potvrďte svou e-mailovou adresu.