Vi presenterar den första formaliseringen av ett blockkedjebaserat distribuerat samförståndsprotokoll med ett bevis på dess enhetlighet mekaniserad i en interaktiv bevisassistent. Vår utveckling inkluderar en referensmekanisering av blockskogens datastruktur, som är nödvändig för att genomföra korrekt per-node-protokolllogik. Vi definierar också en modell för ett nätverk som genomför protokollet i form av ett replikerat tillståndsövergångssystem. Protokollets utföranden modelleras med hjälp av en semantik i små steg för asynkront meddelande som passerar, där paket kan omorganiseras eller dupliceras. I detta arbete fokuserar vi på begreppet global systemsäkerhet, vilket visar på en form av slutlig konsekvens. För att göra det tillhandahåller vi ett bibliotek av teorem om ett rent funktionellt genomförande av blockskogar, definierar ett induktivt system invariant, och visar att det i ett tyst system tillstånd innebär en global överenskommelse om tillståndet för pernode transaktion liggare. Vår utveckling är parametrisk wrt. implementationer av flera säkerhet primitiva, såsom hash-funktioner, en uppfattning om ett bevis objekt, en validerare acceptans funktion, och en gaffel val regel. Vi karakteriserar just de antaganden som gjorts om dessa komponenter för att bevisa det globala systemsamförståndet och diskutera om de är tillräckliga. Alla resultat som beskrivs i detta dokument formaliseras i Coq.
Leksakskedjan är en formalisering av ett samförstånd protokoll i Coq bevis assistent REF.
Mechanising blockchain consensus
{'venue': 'CPP 2018', 'journal': None, 'mag_field_of_study': ['Computer Science']}