Soliditeit 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.
In dit artikel wordt uitgelegd wat Solidity is en hoe het wordt gebruikt in het Ethereum-ecosysteem. Dit artikel is voor jou als je meer wilt weten over de interne werking van deze op blockchain gebaseerde programmeertaal.
Wat is soliditeit?
Solidity is een objectgeoriënteerde programmeertaal op hoog niveau die wordt gebruikt om slimme contracten te creëren die transacties op de blockchain automatiseren. Na te zijn voorgesteld in 2014, werd de taal ontwikkeld door medewerkers van het Ethereum-project. De taal wordt voornamelijk gebruikt om slimme contracten op te maken de Ethereum-blockchain en maak slimme contracten 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 u JavaScript begrijpt, het gemakkelijk kan zijn om Solidity op te pikken. Solidity heeft ook dezelfde kenmerken als de programmeertalen C ++ en Python.
Omdat Solidity een taal op hoog niveau is, is het niet meer nodig om code in enen en nullen in te typen. Het maakt het voor mensen veel gemakkelijker om programma's te schrijven op een manier die ze gemakkelijker kunnen begrijpen, met een combinatie van letters en cijfers.
Soliditeit is statisch getypeerd, met ondersteuning voor overerving, bibliotheken en complexe door de gebruiker gedefinieerde typen. Omdat Solidity statisch wordt getypt, specificeert de gebruiker elke variabele veel. Met gegevenstypen kan de compiler controleren op het juiste gebruik van variabelen. Solidity-gegevenstypen worden meestal gecategoriseerd als waardetypes of referentietypes.
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 naar gewijzigde waarden in variabelen van het referentietype verwijst, bijgewerkte waarden krijgen.
Hoe werkt soliditeit?
Het mooie van het Ethereum-ecosysteem is dat zoveel verschillende cryptocurrencies en gedecentraliseerde applicaties het kunnen gebruiken. 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 met Solidity zijn gebouwd, 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 zoals 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 draait.
Onder de motorkap creëert Solidity code op machineniveau die wordt uitgevoerd op de EVM. Een compiler wordt gebruikt om door mensen leesbare code op hoog niveau af te breken, die het omzet in instructies die de processor leest. Verschillende platforms bieden gratis Solidity-compilatie, inclusief de Remix online compiler en een gedownloade command-achtige compiler op een pc.
Slimme EVM-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
Openbare functies zijn vergelijkbaar met API's waartoe iedereen ter wereld toegang heeft. Iedereen kan ze in hun code bellen. Openbare functies zijn in veel gevallen ontworpen voor gedeelde processen op een platform dat alle gebruikers gebruiken.
Er zou bijvoorbeeld een openbare functie kunnen worden gemaakt om alle gebruikers van een platform in staat te stellen hun rekeningsaldo te controleren. Een van de meest gebruikelijke manieren om slimme contracten te exploiteren, is via openbare functies.
Verwant: Wat is een blockchain en hoe werkt het?
Hoewel slimme contracten gemakkelijk te schrijven zijn met Solidity, is het vaak erg moeilijk om ze veilig te schrijven. Als de opnamefunctie in een smart contract bijvoorbeeld niet veilig is, kan een aanvaller de kwetsbare functie manipuleren om geld op een rekening te storten.
Een aanvaller zou een opnamefunctie kunnen inschakelen om geld naar een andere rekening te sturen, met behulp van een lus die de opnamefunctie herhaaldelijk herhaalt.
Privéfuncties zijn alleen opvraagbaar vanuit de contracten. Ze bevatten instructies die alleen kunnen worden uitgevoerd nadat ze door andere functies in een ketting zijn aangeroepen. Dit maakt het moeilijker voor de code om te worden gemanipuleerd door kwaadwillende actoren.
Standaarden en codelogica
Er ontstaan verschillende standaarden die bepalen hoe Solidity slimme contracten 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 voor hoe code zich dient te 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 smart contract te wijzigen nadat deze is geschreven en gecompileerd. Dit betekent dat elke regel code moet werken zoals bedoeld, anders kunnen er ernstige risico's zijn dat de code wordt misbruikt.
Verwant: Hoe u een Blockchain-programmeur wordt en veel geld gaat verdienen
Omdat de Ethereum-blockchain onveranderlijk is, is het onmogelijk om de gegevens en logica die erop zijn geschreven te wijzigen. Een manier om dit te omzeilen, is door een proxy te gebruiken om naar een ander contract te verwijzen dat feitelijke bedrijfslogica bevat. Hierdoor kunnen bugs worden opgelost terwijl een nieuwe versie van het contract wordt geïmplementeerd.
Gaskosten
Er zijn extra kosten die worden betaald voor het gebruik van Solidity op het Ethereum-mainnet. Sommige van de extra kosten zijn gebaseerd op het gassysteem op Ethereum, waarvoor betaling aan mijnwerkers vereist is 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 gasvergoedingen worden betaald voor elk gebruikt opslagslot, kosten acties die worden uitgevoerd met Solidity-code 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 bytecodes aan het slimme contract toe te voegen, kan de logica in bibliotheken worden geplaatst. Dit helpt om de slimme contractgrootte klein te houden. Door minder functies te gebruiken, is er minder bytecode nodig en wordt de moeilijkheid van het controleren van code ook verminderd.
Hoe kan soliditeit worden gebruikt in Ethereum?
Solidity wordt gebruikt om slimme contracten te maken voor vervangbare tokens en niet-vervangbare tokens. Er worden verschillende standaarden gebruikt om niet-vervangbare tokens en vervangbare tokens te bouwen in het Ethereum-ecosysteem.
Hiermee kunnen verschillende soorten use-cases worden gemaakt voor mensen die de blockchain gebruiken. Soliditeit stelt mensen in staat om tokens en te gebruiken niet-vervangbare tokens op Ethereum. Van het slaan van niet-vervangbare tokens tot het toevoegen ervan om landbouwpools op te leveren voor extra interesse, verschillende soorten gebruik van tokens worden mogelijk gemaakt door Ethereum.
Gedecentraliseerde Autonome Organisaties (DAO's) worden ook mogelijk gemaakt door Solidity. Een DAO, een nieuw type online organisatiestructuur, is voornamelijk geschreven in Solidity. Met DAO's kunnen verschillende mensen samenkomen als leden 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 stemmen voor belangrijke beslissingen en de toewijzing van reputatie aan DAO-leden voor hun bijdragen aan de groep.
Standaarden definiëren voor blockchains
Soliditeit is veel meer dan een programmeertaal. Het definieert normen voor de toekomst van blockchain-technologie.
Dankzij het aantal open-sourceontwikkelaars dat werkt aan het verbeteren van de beveiliging en prestaties van Solidity, duizenden applicaties in het Ethereum-ecosysteem blijven ervan afhankelijk voor hun applicaties bedienen. Naarmate er nieuwe standaarden worden gecreëerd voor slimme contracten in Ethereum, wordt de taal veiliger in gebruik.
Is een echt gedecentraliseerd internet mogelijk? Wat betekent decentralisatie en hoe zou het u beschermen?
Lees Volgende
- Technologie verklaard
- Programmeren
- Ethereum
- Blockchain
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.
Abonneer op onze nieuwsbrief
Word lid van onze nieuwsbrief voor technische tips, recensies, gratis e-boeken en exclusieve deals!
Nog een stap…!
Bevestig uw e-mailadres in de e-mail die we u zojuist hebben gestuurd.