Langue :
INRIA (Institut national de recherche en informatique et automatique) (Production), Maurice Herlihy (Intervention)
Conditions d'utilisation
Document libre, dans le cadre de la licence Creative Commons (, citation de l'auteur obligatoire et interdiction de désassembler (paternité, pas de modification).
DOI : 10.60527/s33h-mc11
Citer cette ressource :
Maurice Herlihy. Inria. (2017, 5 mai). Adding Concurrency to Smart Contracts. [Vidéo]. Canal-U. (Consultée le 16 juillet 2024)

Adding Concurrency to Smart Contracts

Réalisation : 5 mai 2017 - Mise en ligne : 31 janvier 2018
  • document 1 document 2 document 3
  • niveau 1 niveau 2 niveau 3

Modern cryptocurrency systems, such as Ethereum,permit complex financial transactions through scripts called *smart contracts*.These smart contracts are executed many, many times, always withoutconcurrency. First, smart contracts are serially executed before being recordedon the blockchain, and once recorded, they are serially re-executed whenever itis necessary to check that the blockchain is correct. Such serial executionlimits system throughput and fails to exploit today's concurrent multicore andcluster architectures.

This talk presents a novel way to permit miners and validators to execute smartcontracts in parallel. A party attempting to add a smart contract to theblockchain executes multiple smart contracts speculatively, in parallel, thus``discovering'' a serializable concurrent schedule for those transactions. Thisschedule is captured and encoded as a parallel but deterministic fork-joinprogram used by later validators to re-execute those transactions concurrentlyand securely.

Experiments show non-trivial speedup with even a small number of cores.

Joint work with Thomas Dickerson, Eric Koskinen, and Paul Gazzillo.