En smart kontrakt er en digital kontrakt skrevet med If-Then-betingede datamaskinkode for å definere en avtale mellom to eller flere parter, med visse regler og straffer, registrert på blockchain. Kontraherende parter er anonyme, men kontrakten i seg selv sendes til hovedboken. En utløsende hendelse, for eksempel å slå en innløsningspris eller nå en utløpsdato, antenner gjennomføringen av kontrakten i henhold til avtalsvilkårene kodet i den smarte kontrakten.
Smarte kontrakter er midler for å utveksle penger, aksjer, eiendommer eller en hvilken som helst form for eiendel på en gjennomsiktig, sikker og konfliktfri måte mens du utelater behovet for formidling av en mellommann.
Gjennom denne artikkelen vil vi gjennomgå de mest brukte smarte kontraktplattformene som har vist seg å være effektive og pålitelige på tvers av ulike forretningsapplikasjoner. Hvis du vil lære om smarte kontrakter og hvordan de fungerer, har vi en Cointelligence Academy-klasse som dekker dem i detalj.
De mest populære smarte kontraktplattformene
Ethereum (ETH)
Ethereum er en desentralisert blockchain-basert plattform som kjører smarte kontrakter, som også har åpnet døren for desentraliserte applikasjoner (DApps). Ethereum Virtual Machine (EVM) er en virtuell maskin som utfører alle smarte kontrakter. EVM er en Turing Complete 256 bit virtuell maskin. Ethereum-baserte smarte kontrakter er kodet ved hjelp av Solidity, som er et Turing Complete-programmeringsspråk som tillater koding av looping- og forgreningskodeuttalelser. Soliditet "Turing fullstendighet" gjør Ethereum ideelt for koding av smarte kontrakter med sofistikert logikk.
"Gass" er drivstoffet til Ethereums smarte kontrakter. Den kvantifiserer mengden beregningskraft som trengs for å utføre smarte kontrakter via EVM. Når du sender inn en smart kontrakt, må du bestemme gassverdien. Hvert trinn langs koden til den smarte kontrakten krever at en forhåndsbestemt mengde gass skal utføres.
Ethereums smarte kontrakter kan:
– Oppfør deg som "flersignatur" ethereum-kontoer, slik at mynter bare brukes hvis et forhåndsbestemt antall brukere er enige
– Tilby verktøy for andre smarte kontrakter på Ethereums blockchain
– Registrer informasjon om eiendoms eierskap, domeneregistrering, medlemsrettigheter, applikasjonsrettigheter og mer
– Administrer avtaler mellom flere parter, for eksempel utleie, forretningssamarbeid og forsikring
– Bli kodet for å utstede tokens som ICO-tokens som brukes til mengdefinansiering. Det er flere tokenstandarder som brukes til å utstede tokens på Ethereums plattform, inkludert ERC-20, ERC223 og ERC77-standardene. ERC-20 er den mest brukte standarden for å utstede tokens for ICO-formål, til tross for sine alvorlige feil som allerede har ført til tap på millioner dollar i kryptoindustrien.
ERC-20 utfører en token-transaksjon på en av to måter:
1 – overføring (): denne funksjonen tenner sending av tokens til en bestemt brukeradresse.
2- godkjenne () + transferFrom (): denne funksjonen tenner å deponere tokens til en forhåndsdefinert smart kontrakt.
Imidlertid, hvis overføringsfunksjonen () ved et uhell brukes til å sende tokens til en smart kontrakt, vil transaksjonen bli utført, men denne transaksjonen vil aldri bli gjenkjent av mottakerens smarte kontraktadresse. Denne feilen inspirerte utviklere til å lage ERC223- og ERC77-standardene.
– ERC223: Denne standarden reduserer ERC-20 kritisk feil ved å endre overføringsfunksjonen () slik at den kaster en feil som svar på ugyldige overføringer og avbryter transaksjonen slik at ingen penger går tapt.
– ERC777: Denne standarden løser ERC20s problem med manglende transaksjonshåndteringsoperasjoner.
Ethereum er et populært valg for å lage smarte kontrakter, men plattformens skalerbarhetsproblemer gjør det uegnet for mange applikasjoner fra den virkelige verden. Solidity mangler kodingsfleksibilitet som tilbys av nyere programmeringsspråk. Soliditet mangler støtte for flerdimensjonale matriser i inngangsparametere så vel som utdataparametere. Videre støtter Solidity bare 16 parametere innenfor en smart kontraktfunksjon.
Til tross for dette brukes smarte kontrakter basert på Ethereum i forskjellige applikasjoner. For eksempel, PCHAIN var det første blockchain-prosjektet som opprettet et opprinnelig flerkjedesystem som fullt ut støtter Ethereum Virtual Machine (EVM) – kjøretidsmiljøet for smarte Ethereum-kontrakter.
EOS
EOS blir i økende grad en av de mest populære smarte kontraktplattformene. Plattformen har fanget oppmerksomheten til kryptosamfunnet på grunn av et utall årsaker, nemlig at transaksjoner på plattformen krever nesten null avgifter, og plattformens evne til å håndtere millioner av transaksjoner per sekund.
Smarte kontrakter programmeres ved hjelp av C ++, noe som øker programmeringsfleksibiliteten. EOS smarte kontrakter er implementert på blockchain i form av pre-compiled Web Assembly (WASM), som fremmer raskere gjennomføring av kontrakter sammenlignet med Ethereum-baserte smarte kontrakter. WASM er samlet med C / C ++ via clang og LLVM. Utviklere må ha kunnskap om C / C ++ for å kunne kode smarte kontrakter på EOSs blockchain. Selv om C kan brukes til å lage kontrakter, anbefales det sterkt å bruke EOS.IO C ++ API, som styrker kontraktssikkerheten og gjør koden lett lesbar. EOS benytter den delegerte konsensusmekanismen (dPoS), som fungerer med delvis evaluering og parallell kjøring for å tilby en smart kontraktplattform med høye skalerbarhetsnivåer og nesten null transaksjonsgebyrer.
Selv om EOS er mye mindre populær enn Ethereum, har det etablert "airdropping" modell som en konkurrent til Ethereums ICO crowd funding-modell.
Aion (AION):
Aion er en smart kontraktplattform som muliggjør ruting av transaksjoner og meldinger mellom forskjellige blokkeringer via den innovative "bro" protokoller. Aion er et flerlagsnettverk som består av følgende komponenter:
– Broer
– Kobler nettverk
– Interchain transaksjoner
– Deltakende nettverk
Aions broer vil gjøre det mulig å handle på tvers av flere blokkjeder (transaksjoner mellom kjeder) via AION-blockchain-økosystemet. Interchain-transaksjoner utføres via broer og tilkoblingsnettverk. Tilknytningsnettverk representerer protokollene som alle offentlige og private blokkjeder kan kommunisere med AIONs blockchain-økosystem. Deltakende nettverk er nettverk som har oppfylt et spesielt sett med krav for å bli en del av AIONs blockchain-økosystem. Deltakende nettverk må støtte kringkasting av atomtransaksjoner, og implementere låsetid som gjør det mulig for dem å fryse opp transaksjoner som går inn i en tilstand av "Oh Hold".
Aion Virtual Machine (AVM) muliggjør utførelse av smarte kontrakter. AVM er en JVM-implementering som er designet for å utføre kjedelogikk. Aion-språket er skriptspråket som brukes til å programmere smarte kontrakter i AVM. For tiden kjører Aions kjerne på Java, så utviklere må bruke språk som Python eller Groovy for å kode smarte kontrakter på Aions blockchain. Imidlertid vil plattformen til slutt stole på Aion-språket for skripting av smarte kontrakter.
Aion-1 er Aions frittstående plattform som tillater utførelse av smarte kontrakter opprettet på andre blokkjeder. Aion er avhengig av Ethereums EVM, men til slutt vil Aion-1 bli aktivert og gjøre det mulig for utviklere å kjøre sine Ethereum-baserte smarte kontrakter og DApps mye billigere og raskere enn på EVM..
NEM
NEM er en smart kontraktplattform som er mer skalerbar enn Ethereum. Der Ethereum kan håndtere 15 transaksjoner per sekund, kan NEM håndtere hundrevis av transaksjoner per sekund. NEM er raskere, sikrere og gir en enkel smart kontraktsteknologi. NEM bruker off-blockchain-kode for å programmere smarte kontrakter, noe som gjør NEMs blockchain mindre desentralisert enn Ethereums, men fremdeles fremmer høyere sikkerhetsnivåer, raskere bekreftelse av transaksjoner og lettere programmeringskode. NEMs sikkerhetsfunksjoner på kjeden som multisignaturer og smarte eiendeler løser dette problemet.
Smarte eiendeler er unike datahåndteringsapper som kan brukes til å lage dataposter, tokens, stemmesystemer og nye mynter ved hjelp av enkel programmeringskode. Den ekstreme funksjonaliteten til NEMs blockchain leveres via sin kraftige API, som tillater bruk av ethvert programmeringsspråk (som JS, Python og andre) for å kode smarte kontrakter. NEMs API brukes til å utvikle seg "off-chain kontrakter", som kan oppdateres når som helst uten å kommunisere med NEMs blockchain.
Fantastisk
Stellar er en smart kontraktplattform der transaksjoner er sikrere, raskere og billigere enn transaksjoner på Ethereums blockchain. Stellar smarte kontrakter (SSC) er ikke Turing fullført, og distribueres i form av programmerte avtaler mellom flere parter som håndheves av transaksjoner. Mens det tar rundt 3,5 minutter for en transaksjon å bli bekreftet på Ethereums blockchain, krever en transaksjon på Stellars blockchain bare rundt 5 sekunder for å bli bekreftet. Transaksjonsgebyrer er ubetydelige, og er i gjennomsnitt rundt (0,0001 XLM ~ = $ 0,0000002). SSC kan kodes ved hjelp av hvilket som helst programmeringsspråk som Python, JS, PHP, Golang og andre via Stellars API. En SSC består av transaksjoner som er sammenkoblet og utført ved hjelp av flere begrensninger inkludert multisignaturer, batching / atomicitet, sekvens og tidsgrenser. Batching tillater inkludering av flere operasjoner i en enkelt transaksjon. Atomicitet sørger for at ved innsending av en serie operasjoner til Stellars nettverk, vil alle operasjoner i en transaksjon mislykkes hvis en enkelt operasjon ikke blir utført. Sekvens er et unikt konsept omtalt på Stellars blockchain via "sekvensnummer". Med sekvensnummer vil spesifikke transaksjoner mislykkes hvis en alternativ transaksjon er vellykket utført. Tidsgrenser representerer begrensninger på tidsperioden for en transaksjon. Utnyttelse av tidsgrenser tillater representasjon av tidsperioder i en SSC.
Hyperledger Fabric (HLF)
Hyperledger Fabric (HLF) er en tillatt blockchain designet med avansert fleksibilitet. HLFs smarte kontrakter er kjent som "kjedekode". HLF er skrevet på Go-språket, Googles programmeringsspråk med åpen kildekode, så kjedekoden støtter også dette språket ganske bra.
Corda
Corda er en smart kontraktplattform som er ideell for å lage økonomiske avtaler. Cordas smarte kontrakter er gyldige transaksjoner som må aksepteres av den smarte kontrakten i hver av sine inngangs- og utgangstilstander. Smarte kontrakter er kodet ved hjelp av et JVM-programmeringsspråk som Java eller Kotlin. Gjennomføring av en smart kontrakt er deterministisk, og dens aksept av en transaksjon er bare avhengig av innholdet i transaksjonen. Noen ganger er gyldigheten av en transaksjon avhengig av en ekstern informasjon, for eksempel en token-pris. I slike tilfeller er det nødvendig med et orakel. Et faktum kan kodes for å være en del av en transaksjonskommando. Et orakel representerer en tjeneste som bare vil bekrefte en transaksjon, hvis kommandoens faktum er sant.
Cordas DApps, eller CorDapps, er installert på nivå med nettverksnoder, snarere enn på selve blockchain-nettverket. CorDapps er kodet ved hjelp av Java eller Kotlin. CorDapps er kodet for å kjøre på Cordas plattform. Dette oppnås ved å definere strømmer som Corda-nodeoperatører kan påkalle via RPC-samtaler.
NEO
NEO er en smart kontraktplattform som har effektive og lave avgifts smarte kontrakter. Smarte kontrakter kan kodes ved hjelp av et utall programmeringsspråk, inkludert C #, F #, Java, Python, VB.Net og Kotlin. NEO tilbyr plug-ins og kompilatorer for alle disse språkene. I fremtiden vil støtte for JS, Go-språk, C og C ++ implementeres.
NEOs smarte kontrakter utføres via NEOVM (Lightweight NEO Virtual Machine). Smart kontraktutførelse via NeoVM bruker minimale ressurser. Statisk kompilering av smarte kontrakter og caching av smarte hotspot-kontrakter kan forbedres betraktelig via sanntids-kompilatoren JIT. For øyeblikket har NEOs blockchain Smart Contract 2.0, som har støtte for komplekse datastrukturer og matriser. Smart Contract 2.0 gir også en skalerbar tilnærming via dynamisk partisjonering og høy samtidighet, i kombinasjon med lav koblingsdesign. Prosessen med lav kobling av smarte kontrakter utføres i NeoVM og samhandler med off-chain-systemer via et interaktivt tjenestelag. Som sådan kan de fleste smarte kontraktoppgraderingsfunksjoner oppnås via det spesielle API-et til det interaktive tjenestelaget.
Bølger
Waves smarte kontrakter blir kodet via programmeringsspråket RIDEON. Lanseringen av Waves smarte kontrakter er delt inn i to trinn. Den første fasen er allerede rullet ut i april i fjor, og muliggjorde utviklingen av ikke-Turing komplette smarte kontrakter på testnet. Første trinns ikke-Turing komplette smarte kontrakter muliggjør et utall funksjoner for kontokontroll som vil dekke flere brukssaker som spenner fra utveksling av tokens på forskjellige blokkeringer, til muliggjør kontroll av delt budsjettkontroll. En av de vanligste brukssakene til Waves ‘ikke-Turing komplette smarte kontrakter er multisignaturkontoer. De kan også brukes til å implementere tokenfrysing, som innebærer å sende et token til en adresse og sikre at den forblir ubrukelig, dvs. uoverførbar, i en forhåndsdefinert periode. Dette vil være ganske nyttig for å implementere tokenopptjening for skaperne av en ICO etter at massesalget er avsluttet.
Etter at den første fasen av ikke-Turing-komplette smarte kontrakter er testet og aktivert grundig på Waves ‘mainnet, vil andre etappe Turing komplette smarte kontrakter bli lansert.
Stratis
Stratis benytter det populære .NET-rammeverket. Smarte kontrakter blir kodet via programmeringsspråket C #. Smarte kontrakter må utføres deterministisk, slik at de ikke kan utnytte alle funksjonene til C #, eller alle .NETs kjernebiblioteker. Stratis stoler også på "gass" konsept, som er identisk med Ethereums gasskonsept.
Cardano
Cardano er en smart kontraktplattform som er fokusert på å gi garantier for at en smart kontrakt fungerer nøyaktig slik den er kodet, uten skjulte sårbarheter. Smarte kontrakter kan kodes ved hjelp av Solidity eller Plutus. Cardano har Cardano Computation Layer (CCL) som består av to lag – et språkrammeverk og en formelt spesifisert virtuell maskin. Språkrammeverket har et sett med formelt spesifiserte programmeringsspråk som muliggjør automatisert autentisering av menneskelig lesbar smart kontraktskode.
Tezos
Tezos er en smart kontraktplattform som støtter formell verifisering av kjedekontraktskode. Smarte kontrakter er kodet ved hjelp av et nytt programmeringsspråk, kjent som Michelson, som øker sikkerheten. I motsetning til Solidity er ikke Michelsons kode sammensatt til noe; i stedet representerer det et lavt, lagerbasert, Turing komplett programmeringsspråk som tolkes direkte av Tezos virtuelle maskin. Michelson programmerte smarte kontrakter muliggjør koding av konstruksjoner på høyt nivå, inkludert sett, kart, kryptografiske primitiver, lambdas og kontraktsspesifikke operasjoner som gjør koden mer lesbar.
Neste (NXT)
Neste er en kryptovaluta og en smart kontraktplattform. Selv om Nests smarte kontrakter ikke er Turing-komplette, bruker plattformen et unikt Turing-komplett skriptlag som gjør det mulig for brukere å lage malsmarte kontrakter enkelt. Brukere kan velge den mest passende malen for deres behov og endre parametrene for å lage sine egne smarte kontrakter. Utviklerne av Nexts plattform mener at disse smarte kontraktmalene dekker nesten alle forretningsapplikasjoner, i tillegg til at de er enkle å kode og implementere.
Siste tanker
Det er andre kryptovalutaer som tillater utvikling av smarte kontraktplattformer, inkludert 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, og sannsynligvis andre. Plattformene som er omtalt i denne artikkelen er imidlertid de mest brukte, og de som har vist seg å være pålitelige i forskjellige applikasjoner.