Wat is Solidity en hoe wordt het gebruikt om slimme contracten te ontwikkelen?

Wat is Solidity en hoe wordt het gebruikt om slimme contracten te ontwikkelen?

Solidity heeft een lange weg afgelegd sinds het voor het eerst werd voorgesteld in 2014 en later werd ontwikkeld door het Solidity-team van Ethereum. Er zijn honderdduizenden ontwikkelaars die de programmeertaal gebruiken om op blockchain gebaseerde services te creëren voor een groeiend aantal use-cases.





Dit artikel legt uit wat Solidity is en hoe het wordt gebruikt in het Ethereum-ecosysteem. Dit artikel is voor jou als je meer wilt weten over de innerlijke werking van deze op blockchain gebaseerde programmeertaal.





waarom gebruikt mijn computer 100 schijf?

Wat is soliditeit?

Solidity is een objectgeoriënteerde programmeertaal op hoog niveau die wordt gebruikt om slimme contracten te maken die transacties op de blockchain automatiseren. Na in 2014 te zijn voorgesteld, werd de taal ontwikkeld door bijdragers aan het Ethereum-project. De taal wordt voornamelijk gebruikt om slimme contracten te maken op de Ethereum-blockchain en om slimme contracten te maken op andere blockchains.





Solidity is vergelijkbaar met een van de meest voorkomende programmeertalen, JavaScript. Het kan worden beschouwd als een dialect van JavaScript. Dit betekent dat als je JavaScript begrijpt, het gemakkelijk kan zijn om Solidity op te pikken. Solidity heeft ook vergelijkbare kenmerken als de programmeertalen C++ en Python.

Als een taal op hoog niveau, maakt Solidity een einde aan de noodzaak om code in enen en nullen te typen. Het maakt het veel gemakkelijker voor mensen om programma's te schrijven op manieren die ze gemakkelijker te begrijpen vinden, met een combinatie van letters en cijfers.



Solidity is statisch getypeerd, met ondersteuning voor overerving, bibliotheken en complexe door de gebruiker gedefinieerde typen. Omdat Solidity statisch is getypt, specificeert de gebruiker elke variabele. Met gegevenstypen kan de compiler controleren op het juiste gebruik van variabelen. Solidity-gegevenstypen worden meestal gecategoriseerd als waardetypen of referentietypen.

Het belangrijkste verschil tussen waardetypes en referentietypes is te vinden in hoe ze worden toegewezen aan een variabele en worden opgeslagen in de EVM (Ethereum Virtual Machine). Hoewel het wijzigen van de waarde in een variabele van een waardetype geen invloed heeft op de waarde in een andere variabele, kan iedereen die verwijst naar gewijzigde waarden in variabelen van het referentietype bijgewerkte waarden krijgen.





Hoe werkt soliditeit?

Het mooie van het Ethereum-ecosysteem is dat er zoveel verschillende cryptocurrencies en gedecentraliseerde applicaties gebruik van kunnen maken. Slimme contracten maken het mogelijk om unieke technologieën op Ethereum te maken voor allerlei soorten bedrijven en organisaties.

Elk jaar geeft de wereld miljarden dollars uit aan blockchain-oplossingen. Veel van deze oplossingen zijn gemaakt met Solidity. Slimme contracten die zijn gebouwd met Solidity kunnen worden gezien als een manier om zakelijke en niet-zakelijke processen tussen verschillende mensen te automatiseren. Dit zorgt ervoor dat mensen die transacties doen op de blockchain zich geen zorgen hoeven te maken over risico's als fraude of het niet kunnen gebruiken van dezelfde valuta.





Een van de belangrijkste componenten die de uitvoering van Solidity-code mogelijk maakt, is de EVM. De EVM wordt beschreven als een virtuele computer op de blockchain die de ideeën van mensen omzet in code die applicaties op de blockchain uitvoert.

Onder de motorkap creëert Solidity code op machineniveau die op de EVM wordt uitgevoerd. Een compiler wordt gebruikt om door mensen leesbare code op hoog niveau af te breken, die wordt omgezet in instructies die de processor leest. Verschillende platforms bieden gratis Solidity-compilatie, waaronder de online-compiler Remix en een gedownloade opdracht-achtige compiler op een pc.

EVM slimme contracten hebben enkele beperkingen die moeten worden aangepakt. Een van de belangrijkste hiervan is de beperkte toegang tot nuttige bibliotheekfuncties voor het ontleden van JSON-structuren of drijvende-kommaberekeningen.

Openbare en privéfuncties

Publieke functies zijn vergelijkbaar met API's waar iedereen ter wereld toegang toe heeft. Iedereen kan ze in hun code noemen. Publieke functies zijn in veel gevallen ontworpen voor gedeelde processen op een platform dat alle gebruikers gebruiken.

Er zou bijvoorbeeld een publieke functie kunnen worden gemaakt om alle gebruikers van een platform in staat te stellen hun rekeningsaldo te controleren. Een van de meest voorkomende manieren om slimme contracten te exploiteren, is via openbare functies.

Gerelateerd: Wat is een Blockchain en hoe werkt het?

Hoewel slimme contracten gemakkelijk kunnen worden geschreven met Solidity, is het vaak erg moeilijk om ze veilig te schrijven. Als de opnamefunctie in een slim contract bijvoorbeeld niet veilig is, kan een aanvaller de kwetsbare functie manipuleren om geld uit een rekening te halen.

Een aanvaller kan een opnamefunctie gebruiken om geld naar een andere rekening te sturen, met behulp van een lus die de opnamefunctie herhaaldelijk herhaalt.

Privéfuncties zijn alleen oproepbaar vanuit de contracten. Ze bevatten instructies die alleen kunnen worden uitgevoerd nadat ze door andere functies in een keten zijn aangeroepen. Dit maakt het moeilijker voor de code om te worden gemanipuleerd door kwaadwillende actoren.

Normen en codelogica

Er ontstaan ​​verschillende standaarden die bepalen hoe Solidity smart contracts worden gebruikt om applicaties op Ethereum te bouwen. Deze standaarden staan ​​bekend als ERC-standaarden (Ethereum Request for Comments). De standaarden zijn gebaseerd op een document dat richtlijnen bevat over de vereiste functies en beperkingen op hoe code zich zou moeten gedragen.

De ERC-normen die bepalen hoe Solidity werkt, zijn onder meer:

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

Er zijn verschillende manieren waarop Solidity kan worden gebruikt om slimme contracten met elkaar te laten communiceren. Solidity kan ook worden gebruikt om speciale instructies te geven over hoe gegevens worden opgeslagen in het slimme contract. De logica en gegevens in slimme contracten kunnen worden gescheiden met Solidity. Met behulp van vervangende contracten kan de logica van een contract worden gewijzigd om dit mogelijk te maken.

Onveranderlijkheid

Het is onmogelijk om de code van een slim contract te wijzigen nadat het is geschreven en gecompileerd. Dit betekent dat elke regel code moet werken zoals bedoeld, anders bestaat er een ernstig risico dat de code wordt misbruikt.

Gerelateerd: Hoe word je een Blockchain-programmeur en begin je veel geld te verdienen?

Omdat de Ethereum-blockchain onveranderlijk is, is het onmogelijk om de gegevens en logica die erop worden geschreven te wijzigen. Een manier om dit te omzeilen is door een proxy te gebruiken om naar een ander contract te verwijzen dat daadwerkelijke bedrijfslogica bevat. Hierdoor kunnen bugs worden verholpen terwijl een nieuwe versie van het contract wordt geïmplementeerd.

hoe Windows 10 usb te laten installeren

Gaskosten

Er zijn extra kosten die worden betaald voor het gebruik van Solidity op het Ethereum-mainnet. Een deel van de extra kosten is gebaseerd op het gassysteem op Ethereum, dat betaling aan miners vereist voor het beveiligen van het blockchain-netwerk, zodat de code er veilig op kan draaien.

Bij het schrijven van slimme contracten is het belangrijk om te onthouden dat gaskosten kunnen bepalen hoe performant een slim contract is. Aangezien er voor elk gebruikte opslagslot gas wordt betaald, kosten acties die met Solidity-code worden uitgevoerd, gas. Een slim contract dat duur is om uit te voeren, zal op de lange termijn waarschijnlijk niet worden gebruikt.

Gasoptimalisatie helpt de gaskosten te verlagen wanneer de Solidity-code wordt uitgevoerd. Enkele van de meest populaire methoden voor gasoptimalisatie zijn het gebruik van bibliotheken en het gebruik van minder functies. Bibliotheken worden vaak gebruikt om bytecode op te slaan.

In plaats van onnodige bytecode aan het slimme contract toe te voegen, kan de logica in bibliotheken worden geplaatst. Dit helpt om de grootte van het slimme contract klein te houden. Door minder functies te gebruiken, is er minder bytecode nodig en wordt het ook moeilijker om code te controleren.

Hoe kan soliditeit worden gebruikt in Ethereum?

Solidity wordt gebruikt om slimme contracten te maken voor fungibele tokens en niet-fungible tokens. Er worden verschillende standaarden gebruikt om niet-fungible tokens en fungible tokens te bouwen in het Ethereum-ecosysteem.

Hiermee kunnen verschillende soorten use-cases worden gemaakt voor mensen die de blockchain gebruiken. Solidity stelt mensen in staat om tokens en niet-fungible tokens op Ethereum te gebruiken. Ethereum maakt verschillende soorten gebruik van tokens mogelijk, van het slaan van niet-fungeerbare tokens tot het toevoegen ervan om landbouwpools op te leveren voor extra interesse.

Ook Decentrale Autonome Organisaties (DAO's) worden mogelijk gemaakt door Solidity. Een DAO, een nieuw type online organisatiestructuur, is voornamelijk geschreven in Solidity. DAO's stellen verschillende mensen in staat om als leden samen te komen op een online platform waar ze stemmen over de belangrijkste beslissingen van de DAO.

Solidity maakt het mogelijk om processen binnen de DAO te automatiseren. Voorbeelden van procesautomatisering in DAO's zijn onder meer het stemmen voor belangrijke beslissingen en het toekennen van reputatie aan DAO-leden voor hun bijdragen aan de groep.

Standaarden voor Blockchains definiëren

Solidity is veel meer dan een programmeertaal. Het definieert standaarden voor de toekomst van blockchain-technologie.

Dankzij het aantal open-sourceontwikkelaars dat werkt aan het verbeteren van de beveiliging en prestaties van Solidity, blijven duizenden applicaties in het Ethereum-ecosysteem ervan afhankelijk om hun applicaties te laten werken. Naarmate er nieuwe normen worden gecreëerd voor slimme contracten in Ethereum, zal de taal veiliger worden om te gebruiken.

Deel Deel Tweeten E-mail Is een echt gedecentraliseerd internet mogelijk? Hoe het zou kunnen werken met Blockchain

Is een echt decentraal internet mogelijk? Wat betekent decentralisatie en hoe zou het u beschermen?

Lees volgende
Gerelateerde onderwerpen
  • Technologie uitgelegd
  • Programmeren
  • Ethereum
  • Blockchain
Over de auteur Calvin Ebun-Amu(48 artikelen gepubliceerd)

Calvin is een schrijver bij MakeUseOf. Als hij niet naar Rick en Morty of zijn favoriete sportteams kijkt, schrijft Calvin over startups, blockchain, cyberbeveiliging en andere gebieden van technologie.

Meer van Calvin Ebun-Amu

Abonneer op onze nieuwsbrief

Word lid van onze nieuwsbrief voor technische tips, recensies, gratis e-boeken en exclusieve deals!

Klik hier om je te abonneren