Soliditet har kommet langt siden den først ble foreslått i 2014 og senere utviklet av Ethereums Solidity-team. Det er hundretusener av utviklere som bruker programmeringsspråket til å lage blockchain-baserte tjenester for et økende antall brukstilfeller.

Denne artikkelen forklarer hva soliditet er og hvordan den brukes i Ethereum-økosystemet. Denne artikkelen er for deg hvis du er interessert i å lære mer om det indre arbeidet til dette blockchain-baserte programmeringsspråket.

Hva er soliditet?

Soliditet er et objektorientert, høyt nivå programmeringsspråk som brukes til å lage smarte kontrakter som automatiserer transaksjoner på blockchain. Etter å ha blitt foreslått i 2014 ble språket utviklet av bidragsytere til Ethereum-prosjektet. Språket brukes primært til å lage smarte kontrakter på Ethereum blockchain og lage smarte kontrakter på andre blokkjeder.

Soliditet ligner på et av de vanligste programmeringsspråkene, JavaScript. Det kan betraktes som en dialekt av JavaScript. Dette betyr at hvis du forstår JavaScript, kan det være enkelt å hente Solidity. Solidity har også lignende egenskaper som programmeringsspråkene C ++ og Python.

instagram viewer

Som et høyt nivå språk fjerner Solidity behovet for å skrive kode i en og null. Det gjør det mye lettere for mennesker å skrive programmer på måter de finner lettere å forstå, ved å bruke en kombinasjon av bokstaver og tall.

Soliditet er statisk skrevet, med støtte for arv, biblioteker og komplekse brukerdefinerte typer. Siden fasthet er statisk skrevet, spesifiserer brukeren hver variabel. Datatyper lar kompilatoren sjekke for riktig bruk av variabler. Datatyper for fasthet er vanligvis kategorisert som enten verdityper eller referansetyper.

Hovedforskjellen mellom verdityper og referansetyper finner du i hvordan de tildeles en variabel og lagres i EVM (Ethereum Virtual Machine). Mens endring av verdien i en variabel av en verditype ikke påvirker verdien i en annen variabel, kan alle som henviser til endrede verdier i referansetypevariabler få oppdaterte verdier.

Hvordan fungerer soliditet?

Det fine med Ethereum-økosystemet er at så mange forskjellige kryptovalutaer og desentraliserte applikasjoner kan bruke den. Smarte kontrakter gjør det mulig å lage unike teknologier på Ethereum for alle slags virksomheter og organisasjoner.

Hvert år bruker verden milliarder dollar på blockchain-løsninger. Mange av disse løsningene er laget med Solidity. Smarte kontrakter bygget med Solidity kan tenkes som en måte å automatisere forretnings- og ikke-forretningsprosesser mellom forskjellige mennesker. Dette sikrer at folk som gjør transaksjoner på blockchain ikke trenger å bekymre seg for risikoer som svindel eller ikke kan bruke samme valuta.

En av nøkkelkomponentene som gjør utførelsen av soliditetskoden mulig er EVM. EVM er beskrevet som en virtuell datamaskin på blockchain som gjør folks ideer til kode som kjører applikasjoner på blockchain.

Under panseret lager Solidity koden på maskinnivå som kjøres på EVM. En kompilator brukes til å bryte ned menneskelig lesbar kode på høyt nivå, som den blir til instruksjoner som prosessoren leser. Ulike plattformer gir gratis soliditetssamling, inkludert Remix online kompilator og en nedlastet kommandolignende kompilator på en PC.

EVM-smarte kontrakter har noen begrensninger som må løses. En av de mest betydningsfulle av disse er den begrensede tilgangen til nyttige biblioteksfunksjoner for analyse av JSON-strukturer eller flytepunktsaritmetikk.

Offentlige og private funksjoner

Offentlige funksjoner ligner APIer som alle i verden kan få tilgang til. Hvem som helst kan ringe dem i koden. Offentlige funksjoner er i mange tilfeller designet for delte prosesser på en plattform som alle brukere bruker.

For eksempel kan en offentlig funksjon lages for å tillate alle brukere av en plattform å sjekke kontosaldoen sin. En av de vanligste måtene å utnytte smarte kontrakter er gjennom offentlige funksjoner.

I slekt: Hva er en Blockchain og hvordan fungerer den?

Mens smarte kontrakter kan være enkle å skrive med Solidity, er det ofte veldig vanskelig å skrive dem sikkert. For eksempel, hvis uttaksfunksjonen i en smart kontrakt ikke er sikker, kan en angriper manipulere den sårbare funksjonen for å tømme en konto med midler.

En angriper kan ringe til en uttaksfunksjon for å sende penger til en annen konto, ved hjelp av en sløyfe som gjentar uttaksfunksjonen gjentatte ganger.

Private funksjoner kan kun kalles fra innsiden av kontraktene. De inneholder instruksjoner som bare kan utføres etter at andre funksjoner har tilkalt dem, i en kjede. Dette gjør det vanskeligere for koden å bli manipulert av ondsinnede aktører.

Standarder og kodelogikk

Ulike standarder dukker opp som bestemmer hvordan soliditetssmarte kontrakter brukes til å bygge applikasjoner på Ethereum. Disse standardene er kjent som ERC-standarder (Ethereum Request for Comments). Standardene er basert på et dokument som inneholder retningslinjer for de nødvendige funksjonene og begrensninger for hvordan koden skal oppføre seg.

ERC-standardene som bestemmer hvordan Solidity fungerer inkluderer:

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

Det er forskjellige måter Solidity kan brukes til å få smarte kontrakter til å samhandle med hverandre. Soliditet kan også brukes til å lage dedikerte instruksjoner om hvordan data lagres i den smarte kontrakten. Logikken og dataene i smarte kontrakter kan skilles fra ved bruk av Solidity. Ved å bruke erstatningskontrakter kan logikk i en kontrakt endres for å tillate dette.

Uforanderlighet

Det er umulig å endre koden til en smart kontrakt etter at den er skrevet og kompilert. Dette betyr at hver linje med kode må fungere etter hensikten, ellers kan det være alvorlige risikoer for at koden blir utnyttet.

I slekt: Hvordan bli en Blockchain-programmerer og begynne å tjene store penger

Ettersom Ethereum-blockchain er uforanderlig, er det umulig å endre dataene og logikken som er skrevet til den. En måte å komme seg rundt dette er å bruke en fullmektig til å peke på en annen kontrakt som inneholder faktisk forretningslogikk. Dette gjør det mulig å fikse feil mens en ny versjon av kontrakten implementeres.

Bensinkostnader

Det er ekstra kostnader som betales for bruk av Soliditet på Ethereum-nettet. Noen av ekstrakostnadene er basert på gassystemet på Ethereum, som krever betaling til gruvearbeidere for å sikre blockchain-nettverket slik at koden kan kjøre trygt på det.

Når du skriver smarte kontrakter, er det viktig å huske at gasskostnadene kan avgjøre hvor effektiv en smart kontrakt er. Ettersom det betales gassgebyr for hvert lagringsspor som brukes, koster handlinger utført med soliditetskode bensin. En smart kontrakt som er dyr å kjøre, vil neppe bli brukt på lang sikt.

Gassoptimalisering bidrar til å redusere gasskostnadene når Soliditetskoden utføres. Noen av de mest populære metodene for gassoptimalisering inkluderer bruk av biblioteker og bruk av færre funksjoner. Biblioteker brukes ofte til å lagre bytekode.

I stedet for å legge til unødvendig bytekode i den smarte kontrakten, kan logikken legges i biblioteker. Dette bidrar til å holde den smarte kontraktsstørrelsen liten. Ved å bruke færre funksjoner er det behov for mindre bytekode, og vanskeligheten med å revidere kode reduseres også.

Hvordan kan soliditet brukes i Ethereum?

Solidity brukes til å lage smarte kontrakter for soppbare tokens og ikke-fungible tokens. Forskjellige standarder brukes til å bygge ikke-soppbare tokens og soppbare tokens i Ethereum-økosystemet.

Disse gjør det mulig å opprette forskjellige typer brukstilfeller for folk som bruker blockchain. Soliditet gjør det mulig for folk å bruke tokens og ikke-soppbare tokens på Ethereum. Fra å prege ikke-soppbare tokens til å legge dem til for å gi oppdrettsbassenger for ekstra interesse, er forskjellige typer bruksområder for tokens muliggjort av Ethereum.

Desentraliserte autonome organisasjoner (DAOs) er også mulig gjennom soliditet. En DAO, som er en ny type online organisasjonsstruktur, er primært skrevet i Solidity. DAOs tillater forskjellige mennesker å komme sammen som medlemmer på en online plattform der de stemmer om DAOs viktigste beslutninger.

Soliditet gjør det mulig å automatisere prosesser innen DAO. Eksempler på prosessautomatisering i DAO inkluderer å stemme for viktige beslutninger og tildele omdømme til DAO-medlemmer for deres bidrag til gruppen.

Definere standarder for blokkjeder

Soliditet er mye mer enn et programmeringsspråk. Det definerer standarder for fremtiden for blockchain-teknologi.

Takket være antall open source-utviklere som jobber for å forbedre sikkerheten og ytelsen til Solidity, tusenvis av applikasjoner i Ethereum-økosystemet fortsetter å være avhengig av det for at applikasjonene deres skal operere. Etter hvert som nye standarder blir opprettet for smarte kontrakter i Ethereum, blir språket tryggere å bruke.

E-post
Er et virkelig desentralisert internett mulig? Hvordan det kan fungere med Blockchain

Er et virkelig desentralisert internett mulig? Hva betyr desentralisering, og hvordan vil det holde deg trygg?

Les Neste

Relaterte temaer
  • Teknologi forklart
  • Programmering
  • Ethereum
  • Blockchain
Om forfatteren
Calvin Ebun-Amu (15 artikler publisert)

Calvin er forfatter på MakeUseOf. Når han ikke ser på Rick og Morty eller hans favorittidrettslag, skriver Calvin om oppstart, blockchain, cybersikkerhet og andre teknologier.

Mer fra Calvin Ebun-Amu

Abonner på vårt nyhetsbrev

Bli med på nyhetsbrevet vårt for tekniske tips, anmeldelser, gratis e-bøker og eksklusive tilbud!

Ett steg til…!

Bekreft e-postadressen din i e-posten vi nettopp sendte deg.

.