Ett fel eller fel är ett vanligt problem som någon programvara eller datorprogram kan stöta på. Det kan uppstå från dåligt skriva programmet, ett skrivfel eller dålig minneshantering. Fel kan dock bli en viktig fråga om det osäkra programmet används för kritiska system. Därför krävs det i hög grad formella metoder för dessa typer av system. I det här dokumentet använder vi ett formellt språk som utför deduktiv verifiering på en Ethereum Blockchain ansökan baserad på smarta kontrakt, som är själv verkställande digitala kontrakt. Blockchain system manipulera cryptocurrency och transaktionsinformation. Därför, om en bugg uppstår i blockchain, allvarliga konsekvenser såsom en förlust av pengar kan hända. Syftet med detta dokument är därför att föreslå ett språk avsett för kontroll av avdrag, kallat Why3, som ett nytt språk för att skriva formella och verifierade smarta kontrakt, och därigenom undvika attacker som utnyttjar sådana sårbarheter i genomförandet av kontrakt. Vi skriver först en Why3 smarta kontrakt program; nästa vi formulerar specifikationer för att bevisas som frånvaro av RunTime Fel egenskaper och funktionella egenskaper, sedan verifierar vi beteendet hos programmet med hjälp av Why3 systemet. Slutligen sammanställer vi Why3-kontrakten till Ethereum Virtual Machine (EVM). Dessutom ger vi en uppsättning generiska matematiska uttalanden som gör det möjligt att kontrollera funktionella egenskaper som passar alla typer av smarta kontrakt med kryptovaluta, vilket visar att Why3 kan vara ett lämpligt språk för att skriva smarta kontrakt. För att illustrera vårt tillvägagångssätt beskriver vi dess tillämpning på ett realistiskt fall av industriell användning.
Why3 plattform för att dra in programverifiering har nyligen tillämpats för att skriva och kontrollera smarta kontrakt REF.
Deductive Proof of Ethereum Smart Contracts Using Why3
{'venue': 'ArXiv', 'journal': 'ArXiv', 'mag_field_of_study': ['Mathematics', 'Computer Science']}