an exercise in formalisation and what that gets you
play

An exercise in formalisation (and what that gets you): blockchain - PowerPoint PPT Presentation

An exercise in formalisation (and what that gets you): blockchain transactions Work started at Data61, ATP, Sydney in September 2018 and continued at INESC TEC/HASlab, Minho, Braga in October/November 2018 Steve Reeves Department of Computer


  1. An exercise in formalisation (and what that gets you): blockchain transactions Work started at Data61, ATP, Sydney in September 2018 and continued at INESC TEC/HASlab, Minho, Braga in October/November 2018 Steve Reeves Department of Computer Science University of Waikato Hamilton New Zealand

  2. Introduction ◮ Three aims:

  3. Introduction ◮ Three aims: ◮ using Z and PVS to formalise, in very abstract terms, different accounting systems (classical, UTXO...)

  4. Introduction ◮ Three aims: ◮ using Z and PVS to formalise, in very abstract terms, different accounting systems (classical, UTXO...) ◮ using PVS to reproduce work on formalising an abstraction of Ethereum transactions

  5. Introduction ◮ Three aims: ◮ using Z and PVS to formalise, in very abstract terms, different accounting systems (classical, UTXO...) ◮ using PVS to reproduce work on formalising an abstraction of Ethereum transactions ◮ looking at the connection (if any) between refinement (in general) and theory interpretations (in PVS)

  6. Introduction ◮ Three aims: ◮ using Z and PVS to formalise, in very abstract terms, different accounting systems (classical, UTXO...) ◮ using PVS to reproduce work on formalising an abstraction of Ethereum transactions ◮ looking at the connection (if any) between refinement (in general) and theory interpretations (in PVS) ◮ NOTE: we are ignoring the questions of security and how consensus is reached...it turns out that even if all that is perfect, there are currently problems

  7. Aim One—Formalisation ◮ What general properties should blockchains have? Especially relative to existing accounting systems....

  8. Aim One—Formalisation ◮ What general properties should blockchains have? Especially relative to existing accounting systems.... ◮ Initially independent from any particular “version”

  9. Aim One—Formalisation ◮ What general properties should blockchains have? Especially relative to existing accounting systems.... ◮ Initially independent from any particular “version” ◮ Help manage complexity and provide a coherent view

  10. Aim One—Formalisation ◮ What general properties should blockchains have? Especially relative to existing accounting systems.... ◮ Initially independent from any particular “version” ◮ Help manage complexity and provide a coherent view ◮ Express properties of BC

  11. Aim One—Formalisation ◮ What general properties should blockchains have? Especially relative to existing accounting systems.... ◮ Initially independent from any particular “version” ◮ Help manage complexity and provide a coherent view ◮ Express properties of BC ◮ Then build models that have those properties

  12. Aim One—Formalisation ◮ What general properties should blockchains have? Especially relative to existing accounting systems.... ◮ Initially independent from any particular “version” ◮ Help manage complexity and provide a coherent view ◮ Express properties of BC ◮ Then build models that have those properties ◮ Then, for any particular system, try to show that it is a refinement of the abstract system with known properties

  13. Aim One—Formalisation ◮ What general properties should blockchains have? Especially relative to existing accounting systems.... ◮ Initially independent from any particular “version” ◮ Help manage complexity and provide a coherent view ◮ Express properties of BC ◮ Then build models that have those properties ◮ Then, for any particular system, try to show that it is a refinement of the abstract system with known properties ◮ Property-driven development

  14. Refinement ◮ Express a model abstractly, then move towards a more concrete version (and ultimately a program) in steps which provably preserve correctness relative to the abstract model

  15. Refinement ◮ Express a model abstractly, then move towards a more concrete version (and ultimately a program) in steps which provably preserve correctness relative to the abstract model ◮ Principle of Substitutivity

  16. Refinement ◮ Express a model abstractly, then move towards a more concrete version (and ultimately a program) in steps which provably preserve correctness relative to the abstract model ◮ Principle of Substitutivity ◮ Forward simulation rules in Z, for example ∀ CState ′ • CInit ⇒ ∃ AState ′ • AInit ∧ R ′ ∀ CState ; AState • R ∧ pre AOp ⇒ pre COp ∀ AState ; CState ; CState ′ • R ∧ pre AOp ∧ COp ⇒ ∃ AState ′ • AOp ∧ R ′

  17. Second Aim—Exploring current BC/DLT systems, with an eye on the future ◮ Past work has been looking at existing contracts or the EVM

  18. Second Aim—Exploring current BC/DLT systems, with an eye on the future ◮ Past work has been looking at existing contracts or the EVM ◮ Aim to (1) reproduce that and (2) expand it to the whole of EtherLite

  19. Second Aim—Exploring current BC/DLT systems, with an eye on the future ◮ Past work has been looking at existing contracts or the EVM ◮ Aim to (1) reproduce that and (2) expand it to the whole of EtherLite ◮ A model of a trivial blockchain in PVS

  20. Second Aim—Exploring current BC/DLT systems, with an eye on the future ◮ Past work has been looking at existing contracts or the EVM ◮ Aim to (1) reproduce that and (2) expand it to the whole of EtherLite ◮ A model of a trivial blockchain in PVS ◮ Some proofs of simple properties—which guide the model in a modelling/validation cycle

  21. Second Aim—Exploring current BC/DLT systems, with an eye on the future ◮ Past work has been looking at existing contracts or the EVM ◮ Aim to (1) reproduce that and (2) expand it to the whole of EtherLite ◮ A model of a trivial blockchain in PVS ◮ Some proofs of simple properties—which guide the model in a modelling/validation cycle ◮ The simplified Etherlite in PVS (Nikoli´ c et al.)

  22. Second Aim—Exploring current BC/DLT systems, with an eye on the future ◮ Past work has been looking at existing contracts or the EVM ◮ Aim to (1) reproduce that and (2) expand it to the whole of EtherLite ◮ A model of a trivial blockchain in PVS ◮ Some proofs of simple properties—which guide the model in a modelling/validation cycle ◮ The simplified Etherlite in PVS (Nikoli´ c et al.) ◮ Full Etherlite in PVS (Luu et al.)

  23. Second Aim—Exploring current BC/DLT systems, with an eye on the future ◮ Past work has been looking at existing contracts or the EVM ◮ Aim to (1) reproduce that and (2) expand it to the whole of EtherLite ◮ A model of a trivial blockchain in PVS ◮ Some proofs of simple properties—which guide the model in a modelling/validation cycle ◮ The simplified Etherlite in PVS (Nikoli´ c et al.) ◮ Full Etherlite in PVS (Luu et al.) ◮ Denotational rather than the operational semantics of EtherLite

  24. Second Aim—Exploring current BC/DLT systems, with an eye on the future ◮ Past work has been looking at existing contracts or the EVM ◮ Aim to (1) reproduce that and (2) expand it to the whole of EtherLite ◮ A model of a trivial blockchain in PVS ◮ Some proofs of simple properties—which guide the model in a modelling/validation cycle ◮ The simplified Etherlite in PVS (Nikoli´ c et al.) ◮ Full Etherlite in PVS (Luu et al.) ◮ Denotational rather than the operational semantics of EtherLite ◮ Try to formulate general properties of BCs from all this experimentation and reproduction

  25. Aim Three—Refinement/Theory Interpretations Is the connection stated by the PVS guys useful and interesting for me?

  26. Using PVS ◮ Long pedigree

  27. Using PVS ◮ Long pedigree ◮ Functional programming with dependent types, and therefore a proof theory—and therefore all the support that goes with those

  28. Using PVS ◮ Long pedigree ◮ Functional programming with dependent types, and therefore a proof theory—and therefore all the support that goes with those ◮ It means there is a theorem-prover sitting there...which is useful

  29. Using PVS ◮ Long pedigree ◮ Functional programming with dependent types, and therefore a proof theory—and therefore all the support that goes with those ◮ It means there is a theorem-prover sitting there...which is useful ◮ Some PVS....

  30. Example of what formalisation gives—EtherLite ◮ Greedy, Prodigal and Suicidal Contracts (Nikoli´ c et al., Singapore, UK) using MAIAN

  31. Example of what formalisation gives—EtherLite ◮ Greedy, Prodigal and Suicidal Contracts (Nikoli´ c et al., Singapore, UK) using MAIAN δ , h A , σ i Configuration A , h M , id , pc , s , m i · A | ε Execution stack m , { sender 7! id ; value : N ; data 7! ... } Message σ , id 7! � � Blockchain state bal : N ; code ? 7! M ; f ? 7! v

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend