Solidity prešla dlhá cesta, odkedy bola prvýkrát navrhnutá v roku 2014 a neskôr vyvinutá tímom Solidity spoločnosti Ethereum. Existujú státisíce vývojárov, ktorí používajú programovací jazyk na vytváranie služieb založených na blockchaine pre rastúci počet prípadov použitia.
Tento článok vysvetľuje, čo je Solidity a ako sa používa v ekosystéme Ethereum. Tento článok je určený pre vás, ak sa chcete dozvedieť viac o vnútornom fungovaní tohto programovacieho jazyka založeného na blockchaine.
Čo je to solídnosť?
Solidity je objektovo orientovaný programovací jazyk na vysokej úrovni používaný na vytváranie inteligentných kontraktov, ktoré automatizujú transakcie na blockchaine. Jazyk, ktorý bol navrhnutý v roku 2014, vyvinuli prispievatelia do projektu Ethereum. Jazyk sa primárne používa na vytváranie inteligentných zmlúv ethereum blockchain a vytvárať inteligentné zmluvy na iných blockchainoch.
Solidity je podobný jednému z najbežnejších programovacích jazykov, JavaScriptu. Dá sa to považovať za dialekt jazyka JavaScript. To znamená, že ak rozumiete JavaScriptu, môže byť ľahké vyzdvihnúť Solidity. Solidity tiež zdieľa podobné vlastnosti ako programovacie jazyky C ++ a Python.
Ako jazyk vyššej úrovne Solidity odpadá potreba zadávať kód v jednotkách a nulách. Ľuďom výrazne uľahčuje písanie programov spôsobmi, ktorým ľahšie rozumejú, pomocou kombinácie písmen a číslic.
Pevnosť je staticky napísaná s podporou dedenia, knižníc a zložitých typov definovaných používateľom. Pretože je Solidity staticky napísaná, používateľ veľa špecifikuje každú premennú. Dátové typy umožňujú kompilátoru skontrolovať správne použitie premenných. Dátové typy solídnosti sa zvyčajne kategorizujú buď ako typy hodnôt, alebo ako referenčné typy.
Hlavný rozdiel medzi hodnotovými typmi a referenčnými typmi možno nájsť v tom, ako sú priradené k premennej a ako sú uložené v EVM (Ethereum Virtual Machine). Aj keď zmena hodnoty v jednej premennej typu hodnoty nemá vplyv na hodnotu v inej premennej, ktokoľvek, kto odkazuje na zmenené hodnoty v premenných typu referencie, môže dostať aktualizované hodnoty.
Ako funguje Solidity?
Krása ekosystému Ethereum spočíva v tom, že ho môže používať toľko rôznych kryptomien a decentralizovaných aplikácií. Inteligentné zmluvy umožňujú, aby sa na Ethereum mohli vyrábať jedinečné technológie pre všetky druhy firiem a organizácií.
Svet každý rok utráca miliardy dolárov za blockchainové riešenia. Mnoho z týchto riešení je vytvorených pomocou Solidity. Inteligentné zmluvy vytvorené pomocou Solidity možno považovať za spôsob automatizácie obchodných a nepodnikateľských procesov medzi rôznymi ľuďmi. To zaisťuje, že ľudia uskutočňujúci transakcie na blockchaine sa nemusia obávať rizík ako podvod alebo nemožnosť používať rovnakú menu.
Jednou z kľúčových súčastí, ktorá umožňuje vykonávanie kódu Solidity, je EVM. EVM je opísaný ako virtuálny počítač na blockchaine, ktorý premieňa nápady ľudí na kód, ktorý spúšťa aplikácie na blockchaine.
Pod kapotou Solidity vytvára kód na úrovni stroja, ktorý sa vykonáva na EVM. Kompilátor slúži na rozdelenie vysokej úrovne človekom čitateľného kódu, ktorý sa zmení na pokyny, ktoré procesor načíta. Rôzne platformy poskytujú bezplatnú kompiláciu Solidity, vrátane online kompilátora Remix a stiahnutého príkazového kompilátora na PC.
Inteligentné zmluvy EVM majú určité obmedzenia, ktoré je potrebné vyriešiť. Jedným z najvýznamnejších z nich je obmedzený prístup k užitočným funkciám knižnice na analýzu štruktúr JSON alebo aritmetiky s pohyblivou rádovou čiarkou.
Verejné a súkromné funkcie
Verejné funkcie sú podobné API, ku ktorým má prístup ktokoľvek na svete. Ktokoľvek ich môže zavolať vo svojom kóde. Verejné funkcie sú v mnohých prípadoch určené pre zdieľané procesy na platforme, ktorú využívajú všetci používatelia.
Mohla by sa napríklad vytvoriť verejná funkcia, ktorá umožní všetkým používateľom platformy skontrolovať stav svojho účtu. Jedným z najbežnejších spôsobov využívania inteligentných zmlúv sú verejné funkcie.
Súvisiace: Čo je blockchain a ako funguje?
Aj keď sa s inteligentným kontraktom dá ľahko písať pomocou Solidity, je veľmi ťažké ich napísať bezpečne. Napríklad, ak funkcia odstúpenia v inteligentnej zmluve nie je bezpečná, útočník môže manipulovať so zraniteľnou funkciou a vyčerpať účet finančných prostriedkov.
Útočník by mohol vyzvať funkciu výberu, aby poslal peniaze na iný účet, pomocou slučky, ktorá opakovane funkciu výberu opakuje.
Súkromné funkcie sa dajú vyvolať iba zvnútra zmlúv. Obsahujú pokyny, ktoré je možné vykonať až po vyvolaní inými funkciami v reťazci. To sťažuje manipuláciu s kódom škodlivými činiteľmi.
Normy a logika kódu
Vznikajú rôzne štandardy, ktoré určujú, ako sa inteligentné zmluvy Solidity používajú na vytváranie aplikácií na ethereum. Tieto štandardy sú známe ako štandardy ERC (Ethereum Request for Comments). Normy vychádzajú z dokumentu, ktorý obsahuje pokyny k požadovaným funkciám a obmedzeniam, ako by sa kód mal správať.
Normy ERC, ktoré určujú, ako Solidity funguje, zahŕňajú:
- ERC20
- ERC165
- ERC721
- ERC223
- ERC621
- ERC777
- ERC827
- ERC884
- ERC865
- ERC1155
Existuje niekoľko spôsobov, ako možno Solidity použiť na vzájomnú interakciu inteligentných zmlúv. Solidity možno tiež použiť na vytvorenie osobitných pokynov na ukladanie údajov v inteligentnej zmluve. Logiku a dáta v inteligentných kontraktoch je možné oddeliť pomocou Solidity. Pomocou náhradných zmlúv je možné logiku zmluvy zmeniť, aby to bolo možné.
Nezmeniteľnosť
Po napísaní a zostavení kódu inteligentnej zmluvy je nemožné ju zmeniť. To znamená, že každý riadok kódu musí fungovať podľa očakávania, inak by mohlo dôjsť k vážnym rizikám zneužitia kódu.
Súvisiace: Ako sa stať blockchainovým programátorom a začať zarábať veľké peniaze
Pretože je blockchain Ethereum nemenný, je nemožné zmeniť údaje a logiku, ktoré sú doň zapísané. Spôsob, ako to obísť, je použitie proxy na nasmerovanie na inú zmluvu, ktorá obsahuje skutočnú obchodnú logiku. To umožňuje opraviť chyby pri implementácii novej verzie zmluvy.
Náklady na plyn
Za použitie Solidity na hlavnej sieti Ethereum sa platia ďalšie náklady. Niektoré z ďalších nákladov sú založené na plynovom systéme na platforme Ethereum, ktorý vyžaduje platby ťažiarom za zabezpečenie siete blockchain, aby na nej mohol bezpečne fungovať kód.
Pri písaní inteligentných zmlúv je dôležité pamätať na to, že náklady na plyn môžu určovať, ako efektívna je inteligentná zmluva. Pretože sa poplatky za plyn platia za každý použitý úložný slot, akcie vykonané pomocou kódu Solidity stoja plyn. Je nepravdepodobné, že sa inteligentná zmluva, ktorej realizácia je nákladná, z dlhodobého hľadiska použije.
Optimalizácia plynu pomáha znižovať náklady na plyn pri spustení kódu Solidity. Medzi najobľúbenejšie metódy optimalizácie plynu patrí používanie knižníc a používanie menšieho počtu funkcií. Knižnice sa často používajú na ukladanie bajtových kódov.
Namiesto pridávania nepotrebných bajtkódov do inteligentnej zmluvy je možné logiku vložiť do knižníc. To pomáha udržiavať veľkosť inteligentnej zmluvy malú. Použitím menšieho počtu funkcií je potrebných menej bajtových kódov a tiež sa zníži náročnosť kontroly kódu.
Ako je možné použiť pevnosť v éteri?
Solidity sa používa na vytváranie inteligentných kontraktov pre zastupiteľné a nezastupiteľné tokeny. Na stavbu nezastupiteľných žetónov a zameniteľných žetónov v ekosystéme éteru sa používajú rôzne štandardy.
Tie umožňujú vytvárať rôzne typy prípadov použitia pre ľudí, ktorí používajú blockchain. Solidita umožňuje ľuďom používať tokeny a nezameniteľné žetóny na ethereum. Ethereum umožňuje rôzne druhy použitia tokenov, od ťažby nezastupiteľných žetónov po ich pridanie do poľnohospodárskych bazénov pre ďalší záujem.
Decentralizované autonómne organizácie (DAO) umožňuje tiež Solidity. DAO, čo je nový typ online organizačnej štruktúry, je primárne napísaný v Solidity. DAO umožňujú rôznym ľuďom stretnúť sa ako členovia na online platforme, kde hlasujú o kľúčových rozhodnutiach DAO.
Solidity umožňuje automatizovať procesy v rámci DAO. Medzi príklady automatizácie procesov v DAO patrí hlasovanie za kľúčové rozhodnutia a prideľovanie reputácie členom DAO za ich príspevky do skupiny.
Definovanie štandardov pre blockchainy
Pevnosť je oveľa viac ako programovací jazyk. Definuje štandardy pre budúcnosť technológie blockchain.
Vďaka množstvu vývojárov open-source pracujúcich na zlepšení bezpečnosti a výkonu Solidity tisíce aplikácií v ekosystéme éteru na nich naďalej závisia pracovať. S vytváraním nových štandardov pre inteligentné zmluvy v ethereu sa používanie tohto jazyka stane bezpečnejším.
Je možný skutočne decentralizovaný internet? Čo znamená decentralizácia a ako by vás ochránila?
Prečítajte si Ďalej
- Vysvetlená technológia
- Programovanie
- Ethereum
- Blockchain
Calvin je spisovateľ v MakeUseOf. Keď nesleduje Ricka a Mortyho ani jeho obľúbené športové tímy, Calvin píše o startupoch, blockchaine, kybernetickej bezpečnosti a ďalších sférach technológií.
Prihlásiť sa ku odberu noviniek
Pripojte sa k nášmu bulletinu s technickými tipmi, recenziami, bezplatnými elektronickými knihami a exkluzívnymi ponukami!
Ešte jeden krok…!
V e-maile, ktorý sme vám práve poslali, potvrďte svoju e-mailovú adresu.