Hvad er soliditet, og hvordan bruges det til at udvikle smarte kontrakter?

Hvad er soliditet, og hvordan bruges det til at udvikle smarte kontrakter?

Soliditet er kommet langt siden den først blev foreslået i 2014 og senere udviklet af Ethereums Solidity -team. Der er hundredtusinder af udviklere, der bruger programmeringssproget til at oprette blockchain-baserede tjenester til et stigende antal brugssager.





Denne artikel forklarer, hvad soliditet er, og hvordan det bruges i Ethereum -økosystemet. Denne artikel er noget for dig, hvis du er interesseret i at lære mere om det indre arbejde i dette blockchain-baserede programmeringssprog.





hvordan ved jeg, om der tappes på min telefon

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. Sproget bruges primært til at oprette smarte kontrakter på Ethereum blockchain og oprette smarte kontrakter på andre blockchains.





Soliditet ligner et af de mest almindelige programmeringssprog, JavaScript. Det kan betragtes som en dialekt af JavaScript. Det betyder, at hvis du forstår JavaScript, kan det være let at hente Solidity. Solidity deler også lignende egenskaber som programmeringssprogene C ++ og Python.

Som et sprog på højt niveau fjerner Solidity behovet for at skrive kode i enere 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 Solidity er statisk skrevet, angiver brugeren meget hver variabel. Datatyper giver kompilatoren mulighed for at kontrollere, om variabler bruges korrekt. Datatyper for soliditet er normalt kategoriseret som enten værdityper eller referencetyper.

Hovedforskellen mellem værdityper og referencetyper kan findes i, hvordan de er tildelt en variabel og gemt i EVM (Ethereum Virtual Machine). Selvom æ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, 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 at lave unikke teknologier på Ethereum for alle slags virksomheder og organisationer.

Hvert år bruger verden milliarder af dollars på blockchain -løsninger. Mange af disse løsninger er skabt ved hjælp af Solidity. Smarte kontrakter bygget med Solidity kan betragtes som en måde at automatisere forretningsprocesser og ikke-forretningsprocesser mellem forskellige mennesker. Dette sikrer, at folk, der foretager transaktioner på blockchain, ikke skal bekymre sig om risici som svig eller ikke at kunne bruge den samme valuta.





En af de vigtigste komponenter, der gør udførelsen af ​​Solidity -kode mulig, er EVM. EVM beskrives som en virtuel computer på blockchain, som gør folks ideer til kode, der kører applikationer på blockchain.

Under emhætten opretter Solidity kode på maskinniveau, der udføres på EVM. En kompilator bruges til at nedbryde højtlæseligt kode på højt niveau, som det bliver til instruktioner, som processoren læser. Forskellige platforme giver gratis soliditetskompilering, herunder Remix online-kompilatoren og en downloadet kommandolignende compiler på en pc.

EVM smart kontrakter har nogle begrænsninger, som skal tages op. 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 kalde dem i deres kode. Offentlige funktioner er i mange tilfælde designet til delte processer på en platform, som alle brugere benytter.

For eksempel kan en offentlig funktion laves for at give alle brugere af en platform mulighed for at kontrollere deres kontosaldo. En af de mest almindelige måder at udnytte smarte kontrakter på er gennem offentlige funktioner.

Relateret: Hvad er en Blockchain, og hvordan fungerer det?

Selvom smarte kontrakter kan være lette at skrive med Soliditet, er det ofte meget svært at skrive dem sikkert. For eksempel, hvis tilbagetrækningsfunktionen i en smart kontrakt ikke er sikker, kan en angriber manipulere den sårbare funktion for at tømme en konto for midler.

En angriber kunne opfordre en tilbagetrækningsfunktion 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 være blevet kaldt til 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 dukker forskellige standarder op, som bestemmer, hvordan Solidity -smarte kontrakter bruges til at bygge applikationer på Ethereum. Disse standarder er kendt som ERC -standarder (Ethereum Request for Comments). 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, omfatter:

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

Der er forskellige måder, hvorpå 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 gemmes i den smarte kontrakt. Logikken og dataene i smarte kontrakter kan adskilles ved hjælp af Solidity. Ved hjælp af erstatningskontrakter kan logikken i en kontrakt ændres for at tillade dette.

Uforanderlighed

Det er umuligt at ændre koden for en smart kontrakt, efter at den er skrevet og kompileret. Det betyder, at hver kodelinje skal fungere efter hensigten, ellers kan der være alvorlige risici for, at koden udnyttes.

Relateret: Sådan bliver du en Blockchain -programmerer og begynder at tjene store penge

Da Ethereum blockchain er uforanderlig, er det umuligt at ændre data og logik, der er skrevet til det. En måde at omgå dette på er at bruge en proxy til at pege på en anden kontrakt, der indeholder egentlig forretningslogik. Dette gør det muligt for fejl at blive rettet, mens en ny version af kontrakten implementeres.

min bærbare computer starter ikke bare en sort skærm

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 gasomkostninger kan afgøre, hvor effektiv en smart kontrakt er. Da der betales gasgebyrer for hver anvendt lagerplads, koster handlinger, der udføres med Solidity -kode, gas. En smart kontrakt, der er dyr i drift, vil sandsynligvis ikke blive brugt på lang sigt.

Gasoptimering hjælper med at reducere omkostningerne ved gas, når Solidity -koden udføres. Nogle af de mest populære metoder til gasoptimering omfatter brug af biblioteker og brug af færre funktioner. Biblioteker bruges ofte til at gemme bytecode.

I stedet for at tilføje unødvendig bytecode til den smarte kontrakt, kan logikken sættes på biblioteker. Dette hjælper med at holde den smarte kontraktstørrelse lille. Ved at bruge færre funktioner kræves mindre bytecode, og vanskeligheden ved at kontrollere kode reduceres også.

Hvordan kan soliditet bruges i Ethereum?

Soliditet bruges til at oprette smarte kontrakter for fungible tokens og ikke-fungible tokens. Der bruges forskellige standarder til at bygge ikke-fungible tokens og fungible tokens i Ethereum-økosystemet.

Disse gør det muligt at oprette forskellige former for brugstilfælde for folk, der bruger blockchain. Soliditet gør det muligt for folk at bruge tokens og ikke-fungible tokens på Ethereum. Fra at printe ikke-svampbare tokens til at tilføje dem til at give landbrugspuljer for ekstra interesse, er forskellige former for anvendelser af tokens muliggjort af Ethereum.

Decentraliserede autonome organisationer (DAO'er) er også muliggjort af Solidity. En DAO, som er en ny type online organisationsstruktur, er primært skrevet i Solidity. DAO'er giver forskellige mennesker mulighed for at komme sammen som medlemmer på en online platform, hvor de stemmer om DAO's vigtigste beslutninger.

Soliditet gør det muligt at automatisere processer inden for DAO. Eksempler på procesautomatisering i DAO'er omfatter afstemning til vigtige beslutninger og tildeling af omdømme til DAO -medlemmer for deres bidrag til gruppen.

Definere 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 på at forbedre sikkerheden og ydelsen af ​​Soliditet, er tusinder af applikationer i Ethereum-økosystemet fortsat afhængige af det, for at deres applikationer kan fungere. Efterhånden som der oprettes nye standarder for smarte kontrakter i Ethereum, bliver sproget mere sikkert at bruge.

Del Del Tweet E -mail Er et virkelig decentralt internet muligt? Hvordan det kunne fungere med Blockchain

Er et virkelig decentraliseret internet muligt? Hvad betyder decentralisering, og hvordan vil det beskytte dig?

Læs Næste
Relaterede emner
  • Teknologi forklaret
  • Programmering
  • Ethereum
  • Blockchain
Om forfatteren Calvin Ebun-Amu(48 artikler udgivet)

Calvin er forfatter på MakeUseOf. Når han ikke ser Rick og Morty eller hans foretrukne sportshold, skriver Calvin om startups, blockchain, cybersikkerhed og andre teknologiske områder.

Mere fra Calvin Ebun-Amu

Abonner på vores nyhedsbrev

Tilmeld dig vores nyhedsbrev for at få tekniske tips, anmeldelser, gratis e -bøger og eksklusive tilbud!

Klik her for at abonnere