Co je solidnost a jak se používá k vývoji inteligentních smluv?

Co je solidnost a jak se používá k vývoji inteligentních smluv?

Solidnost prošla dlouhou cestu, protože byla poprvé navržena v roce 2014 a později vyvinuta týmem Ethereum Solidity. 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.





windows stop code neočekávaná výjimka úložiště

Co je solidnost?

Solidity je objektově orientovaný programovací jazyk na vysoké úrovni, který se používá k vytváření inteligentních smluv, které automatizují transakce na blockchainu. Poté, co byl jazyk navržen v roce 2014, byl vyvinut přispěvateli do projektu Ethereum. Jazyk se používá především k vytváření inteligentních smluv na blockchainu Ethereum a k vytváření inteligentních smluv na jiných blockchainech.





Solidnost 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é získat Solidnost. 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 do jedniček a nul. Lidem je mnohem snazší psát programy tak, aby jim bylo srozumitelnější, pomocí kombinace písmen a číslic.



Solidnost je staticky napsaná s podporou dědičnosti, knihoven a komplexních typů definovaných uživatelem. Jelikož je Solidity staticky napsaná, uživatel hodně určuje každou proměnnou. Datové typy umožňují kompilátoru kontrolovat správné použití proměnných. Datové typy solidnosti jsou obvykle kategorizovány buď jako typy hodnot, nebo jako referenční typy.

Hlavní rozdíl mezi typy hodnot a referenčními typy lze nalézt v tom, jak jsou přiřazeny proměnné a uloženy v EVM (Ethereum Virtual Machine). Zatímco změna hodnoty v jedné proměnné hodnotového typu neovlivní hodnotu v jiné proměnné, aktualizované hodnoty může získat kdokoli odkazující na změněné hodnoty v proměnných referenčního typu.





Jak funguje solidnost?

Krása ekosystému Ethereum spočívá v tom, že jej může využívat tolik různých kryptoměn a decentralizovaných aplikací. Inteligentní smlouvy umožňují, aby na Ethereu byly vyráběny jedinečné technologie pro všechny druhy podniků a organizací.

Svět každý rok utratí miliardy dolarů za řešení blockchain. Mnoho z těchto řešení je vytvořeno pomocí Solidity. Chytré smlouvy vytvořené pomocí Solidity lze považovat za způsob automatizace obchodních a nepodnikatelských procesů mezi různými lidmi. To zajišťuje, ž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 součástí, která umožňuje spuštění kódu Solidity, je EVM. EVM je popisován jako virtuální počítač na blockchainu, který z myšlenek lidí vytváří kód, který spouští aplikace na blockchainu.

Pod kapotou Solidity vytváří kód na úrovni stroje, který se spouští na EVM. Kompilátor se používá k rozbití kódu čitelného na vysoké úrovni, který se změní na pokyny, které procesor přečte. Různé platformy poskytují bezplatnou kompilaci Solidity, včetně online kompilátoru Remix a staženého kompilátoru podobného příkazu na PC.

Chytré smlouvy EVM mají určitá omezení, která je třeba řešit. Jednou z nejvýznamnějších z nich je omezený přístup k užitečným funkcím knihovny pro analýzu struktur JSON nebo aritmetiky s pohyblivou řádovou čárkou.

Veřejné a soukromé funkce

Veřejné funkce jsou podobné API, ke kterým má přístup kdokoli na světě. V jejich kódu jim může zavolat kdokoli. Veřejné funkce jsou v mnoha případech navrženy pro sdílené procesy na platformě, kterou využívají všichni uživatelé.

Mohla by být například vytvořena veřejná funkce, která umožní všem uživatelům platformy kontrolovat jejich zůstatek na účtu. Jedním z nejběžnějších způsobů využití inteligentních smluv jsou veřejné funkce.

Související: Co je to blockchain a jak funguje?

Zatímco s Solidity lze snadno psát chytré smlouvy, je často velmi obtížné je bezpečně zapsat. Pokud například funkce výběru v inteligentní smlouvě není zabezpečená, může útočník manipulovat se zranitelnou funkcí a odčerpat tak účet z finančních prostředků.

Útočník by mohl vyzvat funkci výběru k zaslání peněz na jiný účet pomocí smyčky, která funkci výběru opakovaně opakuje.

Soukromé funkce lze volat pouze zevnitř smluv. Obsahují instrukce, 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 logika kódu

Objevují se různé standardy, které určují, jak se inteligentní smlouvy Solidity používají k vytváření aplikací na Ethereu. 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í, jak by se měl kód chovat.

Normy 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 Solidnost použít k vzájemné interakci inteligentních smluv. Solidnost lze také použít k vytváření vyhrazených pokynů o tom, jak jsou data uložena v inteligentní smlouvě. Logiku a data v inteligentních kontraktech lze oddělit pomocí Solidity. Pomocí náhradních smluv lze logiku smlouvy změnit, aby to bylo možné.

Neměnnost

Po napsání a kompilaci není možné změnit kód inteligentní smlouvy. To znamená, že každý řádek kódu musí fungovat tak, jak měl, jinak by mohlo dojít k vážnému riziku zneužití kódu.

Související: Jak se stát programátorem blockchainu a začít vydělávat velké peníze

Jelikož je blockchain Ethereum neměnný, nelze změnit data a logiku, která je do něj zapsána. Způsob, jak to obejít, je použít proxy, aby ukázal na jinou smlouvu, která obsahuje skutečnou obchodní logiku. To umožňuje opravy chyb během implementace nové verze smlouvy.

životnost baterie nezobrazuje Windows 10

Náklady na plyn

Za používání Solidity na hlavní síti Ethereum se platí další náklady. Některé dodatečné náklady jsou založeny na plynovém systému na Ethereu, který vyžaduje platbu těžařům za zabezpečení sítě blockchain, aby na ní mohl kód bezpečně běžet.

Při psaní inteligentních smluv je důležité mít na paměti, ž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ž provozování je nákladné, je nepravděpodobné z dlouhodobého hlediska.

Optimalizace plynu pomáhá snížit náklady na plyn při spuštění kódu Solidity. Mezi nejoblíbenější metody optimalizace plynu patří používání knihoven a používání menšího počtu funkcí. K ukládání bytecode se často používají knihovny.

Místo toho, aby se do inteligentní smlouvy přidával zbytečný bytecode, lze logiku vložit do knihoven. To pomáhá udržovat velikost chytré smlouvy malou. Použitím méně funkcí je potřeba méně bajtkódu a také se sníží obtížnost auditování kódu.

Jak lze využít solidnost v etheru?

Solidnost se používá k vytváření inteligentních kontraktů pro zastupitelné tokeny a nefunkční tokeny. V ekosystému Ethereum se k sestavování nefungovatelných tokenů a zaměnitelných tokenů používají různé standardy.

Ty umožňují vytvoření různých typů případů použití pro lidi, kteří používají blockchain. Solidnost umožňuje lidem používat na Ethereu tokeny i nefunkční tokeny. Ethereum umožňuje různé druhy použití tokenů, od ražby nefunkčních tokenů až po jejich přidávání do výtěžků farmářských fondů pro zvláštní zájem.

Solidity umožňují také decentralizované autonomní organizace (DAO). DAO, což je nový typ online organizační struktury, je primárně napsán v Solidity. DAO umožňují různým lidem setkat se jako členové na online platformě, kde hlasují o klíčových rozhodnutích DAO.

Solidnost umožňuje automatizovat procesy v rámci DAO. Mezi příklady automatizace procesů v DAO patří hlasování pro 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íce než programovací jazyk. Definuje standardy pro budoucnost blockchainové technologie.

Díky počtu vývojářů s otevřeným zdrojovým kódem, kteří pracují na vylepšení zabezpečení a výkonu Solidity, jsou tisíce aplikací v ekosystému Ethereum nadále závislé na tom, aby jejich aplikace fungovaly. Jakmile budou v Ethereu vytvářeny nové standardy pro chytré smlouvy, bude používání jazyka bezpečnější.

Podíl Podíl tweet E-mailem Je možné skutečně decentralizovaný internet? Jak by to mohlo fungovat s blockchainem

Je skutečně decentralizovaný internet možný? Co znamená decentralizace a jak by vás udržela v bezpečí?

Číst dále
Související témata
  • Technologie vysvětlena
  • Programování
  • Ethereum
  • Blockchain
O autorovi Calvin Ebun-Amu(48 článků zveřejněno)

Calvin je spisovatel v MakeUseOf. Když nesleduje Ricka a Mortyho nebo jeho oblíbené sportovní týmy, Calvin píše o startupech, blockchainu, kybernetické bezpečnosti a dalších technologických sférách.

Více od Calvin Ebun-Amu

Přihlaste se k odběru našeho zpravodaje

Připojte se k našemu zpravodaji a získejte technické tipy, recenze, bezplatné elektronické knihy a exkluzivní nabídky!

Kliknutím sem se přihlásíte k odběru