Notice
Adding Concurrency to Smart Contracts
- document 1 document 2 document 3
- niveau 1 niveau 2 niveau 3
Descriptif
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.