Hvordan formell bekreftelse kan redusere feil og sikkerhetsproblemer i smarte kontrakter

Formell bekreftelse i smarte kontrakter

Den formelle verifiseringen av smarte kontrakter er en fremvoksende trend i kryptovalutaområdet som fokuserer på å redusere forekomster av feil og sårbarheter av smarte kontrakter som har ført til mange høyprofilerte hack og endemiske sikkerhetsproblemer.

Formell verifisering har et bredt spekter av applikasjoner med hensyn til maskinvare- og programvaresystemer. Det har blitt overordentlig viktig ettersom kompleksiteten til systemene øker, spesielt med maskinvare. I blockchain-nettverk har litany av sårbarheter og utnyttelser av smarte kontrakter ført til et behov for forbedret smart kontraktprogrammering og revisjon.

Formell bekreftelse i smarte kontrakter

Bakgrunn for formell verifisering

#Crypto ExchangeBenefits

1

Binance
Best exchange


VISIT SITE
  • ? The worlds biggest bitcoin exchange and altcoin crypto exchange in the world by volume.
  • Binance provides a crypto wallet for its traders, where they can store their electronic funds.

2

Coinbase
Ideal for newbies


Visit SITE
  • Coinbase is the largest U.S.-based cryptocurrency exchange, trading more than 30 cryptocurrencies.
  • Very high liquidity
  • Extremely simple user interface

3

eToro
Crypto + Trading

VISIT SITE
  • Multi-Asset Platform. Stocks, crypto, indices
  • eToro is the world’s leading social trading platform, with thousands of options for traders and investors.

Formell verifisering bruker formelle metoder for å sjekke om et design av et maskinvare- eller programvaresystem oppfyller et bestemt sett med egenskaper. Formelle metoder er en bestemt type matematisk teknikk for spesifikasjon, utvikling og verifisering av både maskinvare- og programvaresystemer. Å bruke formelle metoder for å bevise eller motbevise riktigheten av tiltenkte algoritmer er kjent som formell verifisering.

Martin Davis er kreditert for å utvikle det første datagenererte matematiske beviset i 1954. Konseptet begynte å få grep på 1960-tallet for å verifisere riktigheten av dataprogrammer på tidlige språk som Pascal og Java. Etter noen høyprofilerte datamaskinfeil, for eksempel Pentium FDIV Bug i 1994 startet følelsen av at formell verifisering måtte være allestedsnærværende med snøball.

Testing av programvare eller maskinvaresystem kan deles inn i to generelle faser:

  1. Validering
  2. Bekreftelse

Validering er å avgjøre om produktet oppfyller brukerens behov.

Verifisering tester om produktet samsvarer med spesifikasjonene eller ikke.

Verifisering består i å produsere en abstrakt matematisk modell som samsvarer med designspesifikasjonene til produktet (dvs. algoritme, maskinvarebrikke) mens de formelle metodene som brukes til å generere modellen hovedsakelig stammer fra teoretiske informatikkgrunnlag..

Bruken av formell verifisering har blitt ekstremt viktig i maskinvaresystemer, der den brukes av nesten alle større maskinvareprodusenter for å sikre robustheten til produktene deres. Imidlertid er bruken av den nesten ikke så utbredt i programvare som den er i maskinvare, noe som hovedsakelig tilskrives den kommersielle naturen til maskinvareproduksjon..

#CRYPTO BROKERSBenefits

1

eToro
Best Crypto Broker

VISIT SITE
  • Multi-Asset Platform. Stocks, crypto, indices
  • eToro is the world’s leading social trading platform, with thousands of options for traders and investors.

2

Binance
Cryptocurrency Trading


VISIT SITE
  • ? Your new Favorite App for Cryptocurrency Trading. Buy, sell and trade cryptocurrency on the go
  • Binance provides a crypto wallet for its traders, where they can store their electronic funds.

#BITCOIN CASINOBenefits

1

Bitstarz
Best Crypto Casino

VISIT SITE
  • 2 BTC + 180 free spins First deposit bonus is 152% up to 2 BTC
  • Accepts both fiat currencies and cryptocurrencies

2

Bitcoincasino.io
Fast money transfers


VISIT SITE
  • Six supported cryptocurrencies.
  • 100% up to 0.1 BTC for the first
  • 50% up to 0.1 BTC for the second

Imidlertid begynner denne dynamikken å endre seg med fremkomsten av blokkjeder og kryptokurver hvor betydelige overføringer av verdi blir utført autonomt over et desentralisert nettverk. Med mer verdi på spill enn tradisjonelle systemer, har riktigheten av smarte kontrakter blitt en presserende bekymring.

EN kort historie av smarte kontraktutnyttelser er alt som trengs for å forstå konsekvensene av enkle sårbarheter i kontraktkoden.

Hvorfor bruke den til smarte kontrakter?

I følge en fersk studere utført på nesten 1 million Ethereum-smarte kontrakter, 34.200 av dem ble flagget som sårbare på 10 sekunder per kontrakt. Det svimlende tallet ble nådd ved å analysere sporingsproblemer i smarte kontrakter, inkludert:

  • Finne kontrakter som låser midler på ubestemt tid
  • Kontrakter som lekker penger uforsiktig til vilkårlige brukere
  • Kontrakter som kan drepes av hvem som helst

Sammen med den generelle logiske kompleksiteten og nyheten knyttet til programmering av smarte kontrakter for blokkjeder, gjør deres uforanderlige natur – når de først er forpliktet til blockchain – sårbarheter potensielt mye mer skadelig.

Brian Marick og Daejun Park gir et utmerket analyse av sårbarheter for smarte kontrakter og hvordan formell bekreftelse kan bidra til å redusere forekomsten. I hovedsak er det vanligvis to måter som en utvikler ikke kan få det de vil ha fra en smart kontrakt.

  1. Misforstått hensikt
  2. Gjør en feil når du implementerer den hensikten

Mange av disse standardfeilene kan føre til enorme summer av låste midler som med Paritets lommebok eller med Ethereum’s rekursiv send utnyttelse i DAO-hendelse. Formell verifisering brukes som en måte å matematisk bekrefte at spesifikke sårbarheter ikke vil føre til skadelige utnyttelsesvektorer.

En formell spesifikasjon brukes som den presise utgangen eller resultatet som en smart kontrakt leter etter, som en datamaskin kan sjekke. Bekreftelse skjer deretter når kontrakten kompileres til bytekoden, og den formelle verifiseringen beviser at den kompilerte bykoden implementerer spesifikasjonen. Imidlertid er manuell utføring av formelle verifikasjoner en vanskelig prosess, og noen ganger kommer det med sine egne feil. Selv verifisering av formelle bevisresultater kan komme med nyanser.

Verktøy som Coq Proof Assistant har blitt utviklet for å lette mekaniserte bevis på egenskapene til programmer, og brukes for tiden av flere nye kryptovalutaer med språkene de bruker innebygd i Coq.

Mens smart kontraktsrevisjon gir et sårt tiltrengt forsikringslag gjennom kodevurderinger, kan formell verifisering av smarte kontrakter bidra til å redusere forekomster av sårbarheter gjennom matematisk analyse ytterligere. Med smarte kontrakter som blir mer utbredt, virker det naturlig at anvendelsen av formell verifisering vil bli mer utbredt i bransjen.

Gjeldende anvendelser av formell bekreftelse

Flere plattformer integrerer enten formell bekreftelse allerede, eller planlegger å gjøre det snart. Evaluering av sikkerheten og sikkerheten til smarte kontrakter som opererer innenfor disse plattformene, vil være viktig for å måle deres effektivitet når det gjelder å redusere kritiske sårbarheter..

Zilliqa

Zilliqa er en blockchain med høy gjennomstrømning designet for å være vert for skalerbare og sikre desentraliserte applikasjoner (dapps). Flere av de tekniske utviklerne bak Zilliqa var forfattere av den tidligere studien som avdekket tusenvis av smarte kontraktssvakheter.

Zilliqa

Zilliqa bruker et nytt programmeringsspråk kalt Scilla, designet av medlemmer av Zilliqa-teamet og noen andre tilknyttede selskaper. Scilla er et mellomnivåspråk som er innebygd i Coq Proof Assistant. Det er ment å være et oversettelsesmål for språk på høyere nivå for å utføre analyse og verifisering før kontrakter blir samlet til bytekode..

Tezos

Tezos er skrevet i OCaml og det smarte kontraktsspråket er Michelson, basert på OCaml. OCaml ble valgt på grunn av dets funksjonelle programmeringstilbud for hastighet, entydig syntaks og semantikk, og evner til å implementere formelle bevis. Tezos bruker også Coq Proof Assistant for å legge til rette for formell verifisering av smarte kontrakter.

Tezos Guide

Arthur Breitman – Tezos medstifter – postet detaljer om verifisering av noen Michelson kontrakter i Coq, inkludert en multi-sig-kontrakt på testnettet deres i fjor. Tezos ble nylig lansert, så anvendelsen av formell bekreftelse bør gi et utmerket mål for tilstanden til forbedret sikkerhet for smarte kontrakter ved hjelp av metoden. Hvorvidt bedrifter som har plaget soliditetskontrakter vil spille ut i Tezos eller ikke, vil ta litt tid å utfolde seg, men å evaluere hvordan sikre smarte kontrakter blir på Tezos, kan være en indikasjon på en fortsatt utvikling.

Cardano

Cardano er skrevet på Haskell og det smarte kontraktsspråket er Plutus, som er basert på Haskell.

Cardano guide

Cardano er designet med et Cardano Computation Layer (CCL) som består av to lag:

  1. Et formelt spesifisert virtuelt maskin- og språkrammeverk
  2. Formelt spesifiserte språk som letter bekreftelse av smart kontraktskode

Målet er å skape et miljø som strømlinjeformer prosessen med å garantere at en kontrakt fungerer som designet uten katastrofale sårbarheter. Spesielt bruker ikke Cardano et avgrenset stakkdesign som Ethereums EVM, så ikke å bekymre deg for stakkaritmetisk flyt gjør det mulig å formelt verifisere smarte kontrakter mye lettere.

Ethereum

Ethereum har forsket på innlemmelsen av formell verifisering i ganske lang tid, med flere prosjekter som undersøker potensialet. En slik publikasjon, “Gjør smarte kontrakter smartere,”Fokuserer på smarte kontraktfeil og foreslår måter å redusere dem på, inkludert forbedring av den operative semantikken til Ethereum for å fremme formell verifisering.

Ethereum Guide

Gassgrenser i Ethereum gjør det utfordrende å implementere formell verifisering. Videre er den eneste måten å vite betydningen av et soliditetsprogram å kompilere det i bytekode. Kompilatoren endres raskt, så verifiseringsverktøy vil også måtte justere seg til endringshastigheten. Tatt i betraktning Ethereums etablerte nettverk og historie, ville formell verifisering av smarte kontrakter i Ethereum tilsynelatende gi den beste måleren for deres effektivitet for å redusere sårbarheter, hvis formell bekreftelse ble mye brukt i nettverket.

Konklusjon

Formell verifisering er en svært kompleks og vanskelig oppgave. Til tross for dette har det blitt en universell standard i maskinvareindustrien og vil trolig fortsette å få fart i programvareplassen. Blokkjeder og kryptovaluta-nettverk – der overføringer av høy verdi er vanlige – vil med sikkerhet akselerere denne effekten. Å måle den positive effekten av formell verifisering av smarte kontrakter vil sannsynligvis ta flere år å utfolde seg, ettersom vi bare ser begynnelsen på det som skulle bli en mye bredere trend i bransjen.

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me
Like this post? Please share to your friends:
Adblock
detector
map