Ökningen av programmerbara öppna distribuerade konsensusplattformar baserade på blockkedjetekniken har väckt stort intresse för replikerade stateful beräkningar, även om smarta kontrakt. Som blockchains används främst i finansiella tillämpningar, smarta kontrakt ofta hantera miljontals dollar värde virtuella mynt. Eftersom smarta kontrakt inte kan uppdateras när de väl är utplacerade blir förmågan att resonera om deras korrekthet en kritisk uppgift. Men den faktiska genomförandestandarden, som banats väg av Ethereum-plattformen, föreskriver att smarta kontrakt ska användas på ett språk på låg nivå, vilket gör oberoende granskning och formell kontroll av utplacerade koder ogenomförbara i praktiken. Vi rapporterar ett pågående experiment med en industriell blockchain leverantör om att designa, utvärdera och distribuera Scilla, ett nytt programmeringsspråk för säkra smarta kontrakt. Scilla är placerad som ett mellan-nivå språk, lämplig för att fungera som ett samlingsmål och även som en oberoende programplanering ram. Med System F som grundsten erbjuder Scilla starka säkerhetsgarantier med hjälp av typljud. Det ger en ren separation mellan ren beräkning, tillståndshantering, och kommunikation aspekter av smarta kontrakt, undvika många kända fallgropar på grund av utförande i en bysantinsk miljö. Vi beskriver motiv, designprinciper och semantik av Scilla, och vi rapporterar om Scilla användningsfall som tillhandahålls av utvecklarsamhället. Slutligen presenterar vi ett ramverk för lätt verifiering av Scilla-program, och visar upp det med två domänspecifika analyser på en svit av verkliga användningsfall.
Scilla REF är ett smart kontraktsspråk på låg nivå med ett förfinat typsystem som är lätt att verifiera.
Safer smart contract programming with Scilla
{'venue': 'PACMPL', 'journal': None, 'mag_field_of_study': ['Computer Science']}