Ett smart kontrakt är ett digitalt kontrakt skrivet med If-Then villkorlig datorkod för att definiera ett avtal mellan två eller flera parter, med vissa regler och påföljder, registrerade i blockchain. Avtalsparterna är anonyma, men själva kontraktet sänds till den offentliga huvudboken. En utlösande händelse, som att träffa ett lösenpris eller nå ett utgångsdatum, antänder genomförandet av kontraktet enligt de avtalsvillkor som kodas i det smarta kontraktet.

Smarta kontrakt är medel för att utbyta pengar, aktier, fastigheter eller någon form av tillgångar på ett transparent, säkert och konfliktfritt sätt samtidigt som behovet av mellanhänder utelämnas.

Under hela den här artikeln kommer vi att granska de mest använda smarta kontraktsplattformarna som har visat sig vara effektiva och pålitliga inom olika affärsapplikationer. Om du vill lära sig om smarta kontrakt och hur de fungerar, vi har en Cointelligence Academy-klass som täcker dem i detalj.

De mest populära smarta kontraktsplattformarna

Ethereum (ETH)

Ethereum är en decentraliserad blockchain-baserad plattform som kör smarta kontrakt, vilket också har öppnat dörren för decentraliserade applikationer (DApps). Ethereum Virtual Machine (EVM) är en virtuell maskin som kör alla smarta kontrakt. EVM är en Turing Complete 256-bitars virtuell maskin. Ethereum-baserade smarta kontrakt kodas med hjälp av Solidity, vilket är ett Turing Complete-programmeringsspråk som tillåter kodning av looping- och förgreningskoder. Tålighet "Turing fullständighet" gör Ethereum perfekt för kodning av smarta kontrakt med sofistikerad logik.

"Gas" är bränslet i Ethereums smarta kontrakt. Det kvantifierar mängden beräkningskraft som behövs för att utföra smarta kontrakt via EVM. När du skickar in ett smart kontrakt måste du bestämma gasvärdet. Varje steg längs koden för det smarta kontraktet kräver att en förutbestämd mängd gas ska köras.

Ethereums smarta kontrakt kan:

– Agerar som "flersignatur" eterekonton, så att mynt bara används om ett förutbestämt antal användare är överens

– Erbjud nytta till andra smarta kontrakt på Ethereums blockchain

– Spela in information om äganderätt, domänregistrering, medlemsrättigheter, applikationsrättigheter och mer

– Hantera avtal mellan flera parter, till exempel hyror, affärssamarbete och försäkring

– Kodas för att utfärda tokens som ICO-tokens som används för publikfinansiering. Det finns flera tokenstandarder som används för att utfärda tokens på Ethereums plattform inklusive ERC-20, ERC223 och ERC77-standarderna. ERC-20 är den vanligaste standarden för att utfärda tokens för ICO-ändamål, trots dess allvarliga buggar som redan har lett till miljontals dollar i förluster i kryptoindustrin.

ERC-20 utför en token-transaktion på ett av två sätt:

1 – överföring (): den här funktionen tänder sändningen av tokens till en specifik användares adress.

2- godkänn () + transferFrom (): den här funktionen antändar deponering av tokens till ett fördefinierat smart kontrakt.

Men om överföringsfunktionen () av ​​misstag används för att skicka tokens till ett smart kontrakt kommer transaktionen att genomföras framgångsrikt, men ändå kommer denna transaktion aldrig att kännas igen av mottagarens smarta kontraktsadress. Detta fel inspirerade utvecklare att skapa ERC223- och ERC77-standarderna.

– ERC223: Den här standarden mildrar ERC-20-kritiska buggen genom att ändra transfer () -funktionen så att den skulle kasta ett fel som svar på ogiltiga överföringar och avbryta transaktionen så att inga medel går förlorade.

– ERC777: Denna standard löser ERC20: s problem med brist på transaktionshantering.

Ethereum är ett populärt val för att skapa smarta kontrakt, men plattformens skalbarhetsproblem gör det olämpligt för många verkliga applikationer. Soliditet saknar kodningsflexibilitet som tillhandahålls av nyare programmeringsspråk. Soliditet saknar stöd för flerdimensionella matriser i såväl inmatningsparametrar som utmatningsparametrar. Dessutom stöder Solidity endast 16 parametrar inom en smart kontraktfunktion.

Trots detta används smarta kontrakt baserade på Ethereum i olika applikationer. Till exempel, PCHAIN var det första blockchain-projektet som skapade ett inbyggt system med flera kedjor som helt stöder Ethereum Virtual Machine (EVM) – runtime-miljön för Ethereums smarta kontrakt.

EOS

EOS blir alltmer en av de mest populära smarta kontraktsplattformarna. Plattformen har fångat kryptosamhällets uppmärksamhet på grund av en mängd skäl, nämligen att transaktioner på plattformen kräver nästan noll avgifter och plattformens förmåga att hantera miljontals transaktioner per sekund.

Smarta kontrakt programmeras med C ++, vilket ökar programmeringsflexibiliteten. EOS smarta kontrakt implementeras på blockkedjan i form av förkompilerad webbmontering (WASM), vilket främjar snabbare utförande av kontrakt jämfört med Ethereum-baserade smarta kontrakt. WASM sammanställs med C / C ++ via clang och LLVM. Utvecklare måste ha kunskap om C / C ++ för att kunna koda smarta kontrakt på EOS: s blockchain. Även om C kan användas för att skapa kontrakt rekommenderas det starkt att använda EOS.IO C ++ API, vilket stärker kontraktssäkerheten och gör dess kod lätt läsbar. EOS använder den delegerade proof of stake (dPoS) konsensusmekanismen, som fungerar med partiell utvärdering och parallell körning för att erbjuda en smart kontraktsplattform med höga skalbarhetsnivåer och nära noll transaktionsavgifter.

Även om EOS är mycket mindre populär än Ethereum, har det etablerat "airdropping" modell som en konkurrent till Ethereums ICO-modell för publikfinansiering.

Aion (AION):

Aion är en smart kontraktsplattform som möjliggör dirigering av transaktioner och meddelanden mellan olika blockkedjor via dess innovativa "överbrygga" protokoll. Aion är ett nätverk med flera nivåer som består av följande komponenter:

– Broar

– Anslutande nätverk

– Transaktioner mellan kedjor

– Deltagande nätverk

Aions broar gör det möjligt att transakera över flera blockkedjor (transaktioner mellan kedjor) via AION-blockkedjens ekosystem. Interchain-transaktioner utförs via broar och anslutande nätverk. Anslutande nätverk representerar protokollen genom vilka alla offentliga och privata blockkedjor kan kommunicera med AION: s blockchain-ekosystem. Deltagande nätverk är nätverk som har uppfyllt en speciell uppsättning krav för att bli en del av AION: s blockchain-ekosystem. Deltagande nätverk måste stödja sändning av atomtransaktioner och implementera låsningstid som gör det möjligt för dem att frysa upp transaktioner som går in i "Åh håll".

Aion Virtual Machine (AVM) möjliggör genomförande av smarta kontrakt. AVM är en JVM-implementering som är utformad för att utföra kedjelogik. Aionspråket är skriptspråket som används för att programmera smarta kontrakt i AVM. För närvarande körs Aions kärna på Java, så utvecklare måste använda språk som Python eller Groovy för att koda smarta kontrakt på Aions blockchain. Men plattformen kommer så småningom att förlita sig på Aion-språket för att skicka smarta kontrakt.

Aion-1 är Aions fristående plattform som tillåter utförande av smarta kontrakt som skapats på andra blockkedjor. Just nu litar Aion på Ethereums EVM, men så småningom kommer Aion-1 att aktiveras och göra det möjligt för utvecklare att köra sina Ethereum-baserade smarta kontrakt och DApps mycket billigare och snabbare än på EVM.

NEM

NEM är en smart kontraktsplattform som är mer skalbar än Ethereum. Där Ethereum kan hantera 15 transaktioner per sekund kan NEM hantera hundratals transaktioner per sekund. NEM är snabbare, säkrare och ger en enkel smart kontraktsteknik. NEM använder off-blockchain-kod för programmering av smarta kontrakt, vilket gör NEMs blockchain mindre decentraliserad än Ethereums, men främjar ändå högre säkerhetsnivåer, snabbare bekräftelse av transaktioner och lättare programmeringskod. NEM: s säkerhetsfunktioner på nätet som multisignaturer och smarta tillgångar löser detta problem.

Smarta tillgångar är unika datahanteringsappar som kan användas för att skapa dataposter, tokens, röstningssystem och nya mynt med enkel programmeringskod. Den extrema funktionaliteten i NEM: s blockchain tillhandahålls via dess kraftfulla API, vilket tillåter användning av vilket programmeringsspråk som helst (som JS, Python och andra) för att koda smarta kontrakt. NEMs API används för att utveckla "kontrakt utanför kedjan", som kan uppdateras när som helst utan att kommunicera med NEM: s blockchain.

Stjärn

Stellar är en smart kontraktsplattform där transaktioner är säkrare, snabbare och billigare än transaktioner på Ethereums blockchain. Stjärna smarta kontrakt (SSC) är inte Turing fullständiga och distribueras i form av programmerade avtal mellan flera parter som genomförs av transaktioner. Medan det tar cirka 3,5 minuter för en transaktion att bekräftas på Ethereums blockchain, kräver en transaktion på Stellars blockchain bara cirka 5 sekunder för att bekräftas. Transaktionsavgifter är försumbara och ligger i genomsnitt (0,0001 XLM ~ = 0,0000,002 USD). SSC kan kodas med valfritt programmeringsspråk som Python, JS, PHP, Golang och andra via Stellars API. En SSC består av transaktioner som är sammankopplade och utförs med hjälp av flera begränsningar inklusive multisignaturer, batch / atomicitet, sekvens och tidsgränser. Batching tillåter inkludering av flera operationer inom en enda transaktion. Atomicitet säkerställer att vid inlämning av en serie operationer till Stellars nätverk skulle alla operationer i en transaktion misslyckas om en enda operation inte lyckas utföras. Sekvens är ett unikt koncept som presenteras i Stellars blockchain via "sekvensnummer". Med sekvensnummer skulle specifika transaktioner misslyckas om en alternativ transaktion lyckades. Tidsgränser representerar begränsningar för en transaktions giltighetsperiod. Användning av tidsgränser möjliggör representation av tidsperioder i en SSC.

Hyperledger Fabric (HLF)

Hyperledger Fabric (HLF) är en godkänd blockchain designad med avancerad flexibilitet. HLF: s smarta kontrakt är kända som "kedjekod". HLF är skrivet på Go-språket, Googles programmeringsspråk med öppen källkod, så kedjekoden stöder detta språk också ganska bra.

Corda

Corda är en smart kontraktsplattform som är idealisk för att skapa finansiella avtal. Cordas smarta kontrakt är giltiga transaktioner som måste accepteras av det smarta avtalet i vart och ett av dess in- och utgångslägen. Smarta kontrakt kodas med ett JVM-programmeringsspråk som Java eller Kotlin. Utförandet av ett smart avtal är avgörande och dess accept av en transaktion är enbart beroende av transaktionens innehåll. Ibland är en transaktions giltighet beroende av en extern information, till exempel ett tokenpris. I ett sådant fall behövs ett orakel. Ett faktum kan kodas för att vara en del av transaktionens kommando. Ett orakel representerar en tjänst som endast bekräftar en transaktion, om kommandot är sant.

Cordas DApps, eller CorDapps, installeras på nivån av nätverksnoder, snarare än i själva blockchain-nätverket. CorDapps kodas med Java eller Kotlin. CorDapps är kodade för att köras på Cordas plattform. Detta uppnås genom att definiera flöden som Corda-nodoperatörer kan åberopa via RPC-samtal.

NEO

NEO är en smart kontraktsplattform som har smarta och effektiva smarta kontrakt. Smarta kontrakt kan kodas med en mängd programmeringsspråk inklusive C #, F #, Java, Python, VB.Net och Kotlin. NEO erbjuder plug-ins och kompilatorer för alla dessa språk. I framtiden kommer stöd för JS, Go-språk, C och C ++ att implementeras.

NEO: s smarta kontrakt utförs via den lätta NEOVM-maskinen (NeoVM). Smart utförande av kontrakt via NeoVM förbrukar minimala resurser. Statisk sammanställning av smarta kontrakt och cachning av smarta hotspot-kontrakt kan förbättras avsevärt via realtidskompilatorn JIT. För närvarande har NEO: s blockchain Smart Contract 2.0 som har stöd för komplexa datastrukturer och matriser. Smart Contract 2.0 ger också ett skalbart tillvägagångssätt via dynamisk partitionering och hög samtidighet i kombination med en låg kopplingsdesign. Förfarandet för låg koppling av smarta kontrakt utförs i NeoVM och interagerar med off-chain system via ett interaktivt servicelager. Som sådan kan de flesta smarta kontraktsfunktionsuppgraderingarna uppnås via det speciella API: et för det interaktiva servicelagret.

Vågor

Waves smarta kontrakt kodas via RIDEON-programmeringsspråket. Lanseringen av Waves smarta kontrakt är uppdelad i två steg. Den första etappen har redan rullats ut i april förra året, vilket möjliggjorde utveckling av icke-Turing-kompletta smarta kontrakt på testnet. Första stegets icke-Turing-kompletta smarta kontrakt möjliggör en myriad av kontokontrollfunktioner som täcker flera användningsfall som sträcker sig från att utbyta tokens på olika blockkedjor till att möjliggöra kontroll av delad budgetkontroll. Ett av de vanligaste användningsfallet för Waves icke-Turing-kompletta smarta kontrakt är konton med flera signaturer. De kan också användas för att implementera token-frysning, vilket innebär att man skickar en token till en adress och säkerställer att den förblir oförbrukbar, dvs oöverförbar, under en fördefinierad tidsperiod. Detta kommer att vara ganska användbart för att implementera token-intjäning för skaparna av en ICO efter att publiken har slutat.

Efter att den första etappen av icke-Turing-kompletta smarta kontrakt har testats och aktiverats i stor utsträckning på Waves mainnet, kommer andra etappen av Turing-kompletta smarta kontrakt att lanseras.

Stratis

Stratis använder det populära .NET-ramverket. Smarta kontrakt kodas via programmeringsspråket C #. Smarta kontrakt måste utföras deterministiskt, så de kan inte använda alla funktioner i C # eller alla .NET: s kärnbibliotek. Stratis förlitar sig också på "gas" koncept, vilket är identiskt med Ethereums gaskoncept.

Cardano

Cardano är en smart kontraktsplattform som fokuserar på att tillhandahålla garantier för att ett smart kontrakt fungerar exakt som det är kodat, utan dolda sårbarheter. Smarta kontrakt kan kodas med Solidity eller Plutus. Cardano har Cardano Computation Layer (CCL) som består av två lager – ett språkram och en formellt specificerad virtuell maskin. Språkramen har en uppsättning formellt specificerade programmeringsspråk som underlättar automatiserad autentisering av mänsklig läsbar smart kontraktskod.

Tezos

Tezos är en smart kontraktsplattform som stöder formell verifiering av smarta kontraktskoder på nätet. Smarta kontrakt kodas med ett nytt programmeringsspråk, känt som Michelson, vilket ökar säkerheten. Till skillnad från soliditet sammanställs inte Michelsons kod för någonting; istället representerar det ett lågt, lagerbaserat, Turing-komplett programmeringsspråk som tolkas direkt av Tezos virtuella maskin. Michelson programmerade smarta kontrakt möjliggör kodning av högnivåkonstruktioner inklusive uppsättningar, kartor, kryptografiska primitiva, lambdas och kontraktsspecifika operationer som gör koden mer läsbar.

Nästa (NXT)

Nästa är en kryptovaluta och en smart kontraktsplattform. Även om Next: s smarta kontrakt inte är Turing-kompletta, använder plattformen ett unikt Turing-komplett skriptlager som gör det möjligt för användare att enkelt skapa mallsmarta kontrakt. Användare kan välja den mest lämpliga mallen för sina behov och ändra dess parametrar för att skapa sina egna smarta kontrakt. Utvecklarna av Nexts plattform tror att dessa smarta kontraktsmallar täcker nästan alla affärsapplikationer, förutom att de är enkla att koda och implementera.

Slutgiltiga tankar

Det finns andra kryptovalutor som tillåter utveckling av smarta kontraktsplattformar inklusive Quorum, Wanchain, Aeternity, Zen, Counterparty, Rootstock, RChain, Qtum, Ark, Neblio, DFINITY, BOSCoin, Agoras Tauchain, Burst, iOlite, ByteBall, XTRABYTES, PolkaDot, Radix, Exonum, Universa, Urbit, Soil, Expanse, Monax och förmodligen andra. Plattformarna i den här artikeln är dock de mest använda och de som har visat sig vara tillförlitliga i olika applikationer.