I detta dokument beskriver vi den formella verifieringen av smarta kontrakt som erbjuds som en del av Azure Blockchain innehåll och prover på github. Vi beskriver två källor till formella kontrollproblem: (i) semantisk konformitetskontroll av smarta kontrakt mot en statlig maskin och åtkomstkontroll baserad Azure Blockchain Workbench applikationskonfiguration, och (ii) säkerhetskontroll för smarta kontrakt som genomför myndighetsstyrning i Ethereum Proof-of-Authority (PoA) på Azure. Vi beskriver ett nytt program kontrollant VeriSol för Solidity baserat på en översättning till Boogie och utnyttja Boogie verifiering verktygskedjan. Vi beskriver vår erfarenhet att tillämpa VeriSol till Workbench prov kontrakt och bevis på myndighetsstyrning kontrakt i Azure, och hitta tidigare okända buggar i väl beprövade smarta kontrakt. Vi tillhandahåller tryckknapp obunden verifiering för semantisk konformitet kontroll för alla provkontrakt levereras i Workbench, när felen är rättade. Funktion Acceptera () offentlig 2 { 3 om (msg. avsändare!=InspectionBuyer & & & 4 msg. avsändare! = ICFIOwner) { 5 återställ (); 6} 7... 8 9 om (msg. avsändare ==InspectionBuyer ) { 10... 11 } 12 annorstädes { 13 / / msg. Avsändare måste vara InspectionOwnner 14 / / från retur tidigare 15 om (State == StateType. NonionalAcceptance) { 16 State = StateType. SellerAccepted ; 17 } 18 annat om (State == StateType. Köpare Accepterad) {
14 VeriSol REF kontrollerar överensstämmelsen mellan arbetsflödespolicyer och smarta kontraktsimplementeringar på Azure blockchain.
Formal Specification and Verification of Smart Contracts for Azure Blockchain
{'venue': 'ArXiv', 'journal': 'ArXiv', 'mag_field_of_study': ['Computer Science']}