Soliditet er kommet langt siden den første gang blev foreslået i 2014 og senere udviklet af Ethereums Solidity-team. Der er hundreder af tusinder af udviklere, der bruger programmeringssprog til at oprette blockchain-baserede tjenester til et stigende antal brugssager.
Denne artikel forklarer, hvad fasthed er, og hvordan det bruges i Ethereum-økosystemet. Denne artikel er til dig, hvis du er interesseret i at lære mere om det indre arbejde i dette blockchain-baserede programmeringssprog.
Hvad er soliditet?
Soliditet er et objektorienteret programmeringssprog på højt niveau, der bruges til at oprette smarte kontrakter, der automatiserer transaktioner på blockchain. Efter at være blevet foreslået i 2014 blev sproget udviklet af bidragydere til Ethereum-projektet. Sprog bruges primært til at oprette smarte kontrakter Ethereum-blockchain og opret smarte kontrakter på andre blockchains.
Soliditet ligner et af de mest almindelige programmeringssprog, JavaScript. Det kan betragtes som en dialekt af JavaScript. Dette betyder, at hvis du forstår JavaScript, kan det være let at hente Solidity. Solidity har også lignende egenskaber som programmeringssprogene C ++ og Python.
Som et sprog på højt niveau fjerner Solidity behovet for at indtaste kode i nuller og nuller. Det gør det meget lettere for mennesker at skrive programmer på måder, de finder lettere at forstå ved hjælp af en kombination af bogstaver og tal.
Soliditet er statisk skrevet med understøttelse af arv, biblioteker og komplekse brugerdefinerede typer. Da fasthed er statisk skrevet, angiver brugeren meget hver variabel. Datatyper gør det muligt for compileren at kontrollere, om variablerne anvendes korrekt. Soliditetsdatatyper er normalt kategoriseret som enten værdityper eller referencetyper.
Hovedforskellen mellem værdityper og referencetyper kan findes i, hvordan de tildeles en variabel og gemmes i EVM (Ethereum Virtual Machine). Mens ændring af værdien i en variabel af en værditype ikke påvirker værdien i en anden variabel, kan enhver, der henviser til ændrede værdier i referencetypevariabler, muligvis få opdaterede værdier.
Hvordan fungerer soliditet?
Det smukke ved Ethereum-økosystemet er, at så mange forskellige kryptokurver og decentrale applikationer kan bruge det. Smarte kontrakter gør det muligt for unikke teknologier at blive lavet på Ethereum for alle slags virksomheder og organisationer.
Hvert år bruger verden milliarder af dollars på blockchain-løsninger. Mange af disse løsninger oprettes ved hjælp af Solidity. Smarte kontrakter bygget med Solidity kan betragtes som en måde at automatisere forretnings- og ikke-forretningsprocesser mellem forskellige mennesker på. Dette sikrer, at folk, der foretager transaktioner på blockchain, ikke behøver at bekymre sig om risici som svindel eller ikke er i stand til at bruge den samme valuta.
En af nøglekomponenterne, der muliggør udførelsen af soliditetskoden, er EVM. EVM er beskrevet som en virtuel computer på blockchain, som gør folks ideer til kode, der kører applikationer på blockchain.
Under emhætten opretter Solidity maskinkodekode, der udføres på EVM. En kompilator bruges til at nedbryde højt niveau menneskelig læsbar kode, som den bliver til instruktioner, som processoren læser. Forskellige platforme giver gratis kompilering af soliditet, inklusive Remix online-kompilatoren og en downloadet kommandolignende kompilator på en pc.
EVM-smarte kontrakter har nogle begrænsninger, som skal løses. En af de mest betydningsfulde af disse er den begrænsede adgang til nyttige biblioteksfunktioner til parsing af JSON-strukturer eller flydende aritmetik.
Offentlige og private funktioner
Offentlige funktioner ligner API'er, som alle i verden kan få adgang til. Alle kan ringe til dem i deres kode. Offentlige funktioner er designet, i mange tilfælde, til delte processer på en platform, som alle brugere bruger.
For eksempel kunne der laves en offentlig funktion, der gør det muligt for alle brugere af en platform at kontrollere deres kontosaldo. En af de mest almindelige måder at udnytte smarte kontrakter er gennem offentlige funktioner.
Relaterede: Hvad er en Blockchain og hvordan fungerer det?
Mens smarte kontrakter kan være lette at skrive med Solidity, er det ofte meget vanskeligt at skrive dem sikkert. For eksempel, hvis tilbagetrækningsfunktionen i en smart kontrakt ikke er sikker, kan en hacker manipulere den sårbare funktion for at dræne en konto med midler.
En angriber kan opfordre en udbetalingsfunktion til at sende penge til en anden konto ved hjælp af en loop, der gentagne gange gentager tilbagetrækningsfunktionen.
Private funktioner kan kun kaldes inde fra kontrakterne. De indeholder instruktioner, der kun kan udføres, efter at de er blevet kaldt af andre funktioner i en kæde. Dette gør det sværere for koden at blive manipuleret af ondsindede aktører.
Standarder og kodelogik
Der opstår forskellige standarder, der bestemmer, hvordan soliditetssmarte kontrakter bruges til at bygge applikationer på Ethereum. Disse standarder er kendt som ERC (Ethereum Request for Comments) standarder. Standarderne er baseret på et dokument, der indeholder retningslinjer for de nødvendige funktioner og begrænsninger for, hvordan kode skal opføre sig.
ERC-standarderne, der bestemmer, hvordan Solidity fungerer, inkluderer:
- ERC20
- ERC165
- ERC721
- ERC223
- ERC621
- ERC777
- ERC827
- ERC884
- ERC865
- ERC1155
Der er forskellige måder, Solidity kan bruges til at få smarte kontrakter til at interagere med hinanden. Soliditet kan også bruges til at lave dedikerede instruktioner om, hvordan data lagres i den smarte kontrakt. Logikken og dataene i smarte kontrakter kan adskilles ved hjælp af Solidity. Ved hjælp af erstatningskontrakter kan en kontrakts logik ændres for at give mulighed for dette.
Uforanderlighed
Det er umuligt at ændre koden for en smart kontrakt, efter at den er blevet skrevet og kompileret. Det betyder, at hver linje kode skal fungere som beregnet, ellers kan der være alvorlige risici for, at koden udnyttes.
Relaterede: Sådan bliver du blockchain-programmør og begynder at tjene store penge
Da Ethereum-blockchain er uforanderlig, er det umuligt at ændre de data og logik, der er skrevet til den. En måde at omgå dette på er at bruge en proxy til at pege på en anden kontrakt, der indeholder den faktiske forretningslogik. Dette gør det muligt at rette fejl, mens en ny version af kontrakten implementeres.
Gasomkostninger
Der er ekstra omkostninger, der betales for at bruge Solidity på Ethereum mainnet. Nogle af de ekstra omkostninger er baseret på gassystemet på Ethereum, som kræver betaling til minearbejdere for at sikre blockchain-netværket, så koden kan køre sikkert på det.
Når du skriver smarte kontrakter, er det vigtigt at huske, at gasomkostningerne kan bestemme, hvor effektiv en smart kontrakt er. Da der betales gasafgift for hver anvendt lagerplads, koster handlinger, der udføres med soliditetskode, gas. En smart kontrakt, der er dyr at køre, vil sandsynligvis ikke blive brugt på lang sigt.
Gasoptimering hjælper med at reducere gasomkostningerne, når soliditetskoden udføres. Nogle af de mest populære metoder til gasoptimering inkluderer brugen af biblioteker og brug af færre funktioner. Biblioteker bruges ofte til at gemme bytecode.
I stedet for at tilføje unødvendig bytekode til den smarte kontrakt, kan logikken placeres i biblioteker. Dette hjælper med at holde den smarte kontraktstørrelse lille. Ved at bruge færre funktioner er der brug for mindre bytecode, og sværhedsgraden med at kontrollere kode reduceres også.
Hvordan kan soliditet bruges i Ethereum?
Solidity bruges til at oprette smarte kontrakter for fungible tokens og ikke-fungible tokens. Forskellige standarder bruges til at opbygge ikke-svampelige tokens og fungible tokens i Ethereum-økosystemet.
Disse giver mulighed for, at forskellige typer brugssager oprettes til folk, der bruger blockchain. Soliditet gør det muligt for folk at bruge tokens og ikke-svampelige poletter på Ethereum. Fra prægning af ikke-svampelige tokens til tilføjelse af dem for at give landbrugspuljer for ekstra interesse - forskellige slags anvendelser af tokens er muliggjort af Ethereum.
Desentraliserede autonome organisationer (DAO'er) muliggøres også af soliditet. En DAO, som er en ny type online organisationsstruktur, er primært skrevet i Solidity. DAO'er tillader forskellige mennesker at mødes som medlemmer på en online platform, hvor de stemmer om DAOs vigtigste beslutninger.
Soliditet gør det muligt at automatisere processer inden for DAO. Eksempler på procesautomatisering i DAO'er inkluderer at stemme for nøglebeslutninger og tildeling af omdømme til DAO-medlemmer for deres bidrag til gruppen.
Definition af standarder for blokkæder
Soliditet er meget mere end et programmeringssprog. Det definerer standarder for fremtiden for blockchain-teknologi.
Takket være antallet af open source-udviklere, der arbejder for at forbedre sikkerheden og ydeevnen ved Solidity, tusinder af applikationer i Ethereum-økosystemet afhænger fortsat af det for deres applikationer operere. Da der oprettes nye standarder for smarte kontrakter i Ethereum, bliver sproget sikrere at bruge.
Er et virkelig decentralt internet muligt? Hvad betyder decentralisering, og hvordan ville det holde dig sikker?
Læs Næste
- Teknologi forklaret
- Programmering
- Ethereum
- Blockchain
Calvin er forfatter på MakeUseOf. Når han ikke ser på Rick og Morty eller hans yndlingssporthold, skriver Calvin om opstart, blockchain, cybersikkerhed og andre teknologier.
Abonner på vores nyhedsbrev
Deltag i vores nyhedsbrev for tekniske tip, anmeldelser, gratis e-bøger og eksklusive tilbud!
Et trin mere !!!
Bekræft venligst din e-mail-adresse i den e-mail, vi lige har sendt dig.