Soliditet har kommit långt sedan den först föreslogs 2014 och senare utvecklades av Ethereums Solidity-team. Det finns hundratusentals utvecklare som använder programmeringsspråket för att skapa blockchain-baserade tjänster för ett växande antal användningsfall.

Den här artikeln förklarar vad fasthet är och hur den används i Ethereums ekosystem. Den här artikeln är för dig om du är intresserad av att lära dig mer om det inre arbetet i detta blockchain-baserade programmeringsspråk.

Vad är soliditet?

Solidity är ett objektorienterat programmeringsspråk på hög nivå som används för att skapa smarta kontrakt som automatiserar transaktioner på blockchain. Efter att ha föreslagits 2014 utvecklades språket av bidragsgivare till Ethereum-projektet. Språket används främst för att skapa smarta kontrakt på Ethereum blockchain och skapa smarta kontrakt på andra blockkedjor.

Soliditet liknar ett av de vanligaste programmeringsspråken, JavaScript. Det kan betraktas som en dialekt av JavaScript. Det betyder att om du förstår JavaScript kan det vara enkelt att hämta Solidity. Solidity delar också liknande egenskaper som programmeringsspråken C ++ och Python.

instagram viewer

Som ett högnivåspråk undanröjer Soliditet behovet av att skriva kod i enor och nollor. Det gör det mycket lättare för människor att skriva program på ett sätt som de har lättare att förstå med en kombination av bokstäver och siffror.

Soliditet typiskt skrivs med stöd för arv, bibliotek och komplexa användardefinierade typer. Eftersom fasthet typiskt skrivs anger användaren mycket varje variabel. Datatyper gör det möjligt för kompilatorn att kontrollera om variablerna används korrekt. Datatyper för soliditet kategoriseras vanligtvis som antingen värdetyper eller referenstyper.

Huvudskillnaden mellan värdetyper och referenstyper finns i hur de tilldelas en variabel och lagras i EVM (Ethereum Virtual Machine). Även om ändring av värdet i en variabel av en värdetyp inte påverkar värdet i en annan variabel, kan alla som hänvisar till ändrade värden i referens typvariabler få uppdaterade värden.

Hur fungerar soliditet?

Skönheten i Ethereums ekosystem är att så många olika kryptovalutor och decentraliserade applikationer kan använda den. Smarta kontrakt gör det möjligt för Ethereum att göra unik teknik för alla typer av företag och organisationer.

Varje år spenderar världen miljarder dollar på blockchain-lösningar. Många av dessa lösningar skapas med Solidity. Smarta kontrakt byggda med Solidity kan ses som ett sätt att automatisera affärs- och icke-affärsprocesser mellan olika människor. Detta säkerställer att personer som gör transaktioner på blockchain inte behöver oroa sig för risker som bedrägeri eller om de inte kan använda samma valuta.

En av de viktigaste komponenterna som möjliggör genomförandet av soliditetskoden är EVM. EVM beskrivs som en virtuell dator på blockchain som förvandlar människors idéer till kod som kör applikationer på blockchain.

Under huven skapar Solidity kod på maskinnivå som körs på EVM. En kompilator används för att bryta ner högnivå läsbar kod, som den förvandlas till instruktioner som processorn läser. Olika plattformar ger gratis sammanställning av soliditet, inklusive Remix online-kompilator och en nedladdad kommandoliknande kompilator på en dator.

EVM-smarta kontrakt har vissa begränsningar som måste åtgärdas. En av de mest betydelsefulla av dessa är den begränsade tillgången till användbara biblioteksfunktioner för att analysera JSON-strukturer eller flytande aritmetik.

Offentliga och privata funktioner

Offentliga funktioner liknar API: er som alla i världen kan komma åt. Vem som helst kan ringa dem i sin kod. Offentliga funktioner är utformade, i många fall, för delade processer på en plattform som alla användare använder.

Till exempel kan en offentlig funktion göras så att alla användare av en plattform kan kontrollera deras kontosaldo. Ett av de vanligaste sätten att utnyttja smarta kontrakt är genom offentliga funktioner.

Relaterad: Vad är en blockchain och hur fungerar det?

Medan smarta kontrakt kan vara enkla att skriva med Solidity är det ofta mycket svårt att skriva dem säkert. Om till exempel uttagsfunktionen i ett smart kontrakt inte är säker kan en angripare manipulera den sårbara funktionen för att tömma ett konto med medel.

En angripare kan anropa en uttagsfunktion för att skicka pengar till ett annat konto med hjälp av en slinga som upprepade gånger upprepar uttagsfunktionen.

Privata funktioner kan bara anropas inifrån kontrakten. De innehåller instruktioner som bara kan köras efter att ha anropats av andra funktioner, i en kedja. Detta gör det svårare för koden att manipuleras av skadliga aktörer.

Standarder och kodlogik

Olika standarder dyker upp som avgör hur solida smarta kontrakt används för att bygga applikationer på Ethereum. Dessa standarder kallas ERC-standarder (Ethereum Request for Comments). Standarderna är baserade på ett dokument som innehåller riktlinjer för de funktioner som krävs och begränsningar för hur koden ska bete sig.

ERC-standarderna som avgör hur soliditet fungerar inkluderar:

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

Det finns olika sätt att Soliditet kan användas för att få smarta kontrakt att interagera med varandra. Soliditet kan också användas för att göra särskilda instruktioner om hur data lagras i det smarta kontraktet. Logiken och data i smarta kontrakt kan separeras med hjälp av Solidity. Med hjälp av ersättningsavtal kan logiken i ett kontrakt ändras för att möjliggöra detta.

Oföränderlighet

Det är omöjligt att ändra koden för ett smart kontrakt efter att det har skrivits och sammanställts. Detta innebär att varje kodrad måste fungera som avsett, annars kan det finnas allvarliga risker för att koden utnyttjas.

Relaterad: Hur man blir blockchain-programmerare och börjar tjäna stora pengar

Eftersom Ethereum-blockkedjan är oföränderlig är det omöjligt att ändra data och logik som skrivs till den. Ett sätt att komma runt detta är att använda en proxy för att peka på ett annat avtal som innehåller verklig affärslogik. Detta gör att buggar kan åtgärdas medan en ny version av kontraktet implementeras.

Gaskostnader

Det finns extra kostnader som betalas för att använda Solidity på Ethereum-mainnet. Några av de extra kostnaderna baseras på gassystemet på Ethereum, vilket kräver betalning till gruvarbetare för att säkra blockchain-nätverket så att koden kan köras säkert på det.

När du skriver smarta kontrakt är det viktigt att komma ihåg att gaskostnaderna kan avgöra hur bra ett smart kontrakt är. Eftersom gasavgifter betalas för varje lagringsplats som används, kostar åtgärder som utförs med soliditetskoden gas. Ett smart kontrakt som är dyrt att köra kommer troligen inte att användas på lång sikt.

Gasoptimering hjälper till att minska kostnaden för gas när soliditetskoden körs. Några av de mest populära metoderna för gasoptimering inkluderar användning av bibliotek och användning av färre funktioner. Bibliotek används ofta för att spara bytecode.

Istället för att lägga till onödig bytkod i det smarta kontraktet kan logiken läggas i bibliotek. Detta hjälper till att hålla den smarta kontraktsstorleken liten. Genom att använda färre funktioner behövs mindre bytecode och svårigheten att granska kod minskas också.

Hur kan soliditet användas i Ethereum?

Soliditet används för att skapa smarta kontrakt för fungibla tokens och icke-fungibla tokens. Olika standarder används för att bygga icke-fungibla tokens och fungibla tokens i Ethereum-ekosystemet.

Dessa gör det möjligt att skapa olika typer av användningsfall för personer som använder blockchain. Soliditet gör det möjligt för människor att använda tokens och icke-fungibla tokens på Ethereum. Från att prägla icke-fungibla tokens till att lägga till dem för att ge jordbrukspooler för extra intresse möjliggör olika slags användningar av tokens av Ethereum.

Desentraliserade autonoma organisationer (DAO) möjliggörs också av soliditet. En DAO, som är en ny typ av online-organisationsstruktur, är främst skriven i Solidity. DAO: er tillåter olika människor att samlas som medlemmar på en onlineplattform där de röstar om DAO: s viktigaste beslut.

Soliditet gör det möjligt att automatisera processer inom DAO. Exempel på processautomatisering i DAO är att rösta för nyckelbeslut och tilldelning av rykte till DAO-medlemmar för deras bidrag till gruppen.

Definiera standarder för blockkedjor

Soliditet är mycket mer än ett programmeringsspråk. Det definierar standarder för framtiden för blockchain-teknik.

Tack vare antalet öppna källkodsutvecklare som arbetar för att förbättra säkerheten och prestandan hos Solidity, tusentals applikationer i Ethereum-ekosystemet är fortfarande beroende av det för deras applikationer fungera. Eftersom nya standarder skapas för smarta kontrakt i Ethereum blir språket säkrare att använda.

E-post
Är ett verkligt decentraliserat internet möjligt? Hur det kan fungera med Blockchain

Är ett verkligt decentraliserat internet möjligt? Vad betyder decentralisering och hur skulle det hålla dig säker?

Läs Nästa

Relaterade ämnen
  • Teknik förklaras
  • Programmering
  • Ethereum
  • Blockchain
Om författaren
Calvin Ebun-Amu (15 artiklar publicerade)

Calvin är författare på MakeUseOf. När han inte tittar på Rick och Morty eller hans favoritsportlag skriver Calvin om startups, blockchain, cybersäkerhet och andra tekniska områden.

Mer från Calvin Ebun-Amu

Prenumerera på vårt nyhetsbrev

Gå med i vårt nyhetsbrev för tekniska tips, recensioner, gratis e-böcker och exklusiva erbjudanden!

Ett steg till…!

Bekräfta din e-postadress i e-postmeddelandet som vi just skickade till dig.

.