Paper 2020/138

Smart Contract Derivatives

Kostis Karantias, Aggelos Kiayias, and Dionysis Zindros

Abstract

The abilities of smart contracts today are confined to reading from their own state. It is useful for a smart contract to be able to react to events and read the state of other smart contracts. In this paper, we devise a mechanism by which a derivative smart contract can read data, observe the state evolution, and react to events that take place in one or more underlying smart contracts of its choice. Our mechanism works even if the underlying smart contract is not designed to operate with the derivative smart contract. Like in traditional finance, derivatives derive their value (and more generally state) through potentially complex dependencies. We show how derivative smart contracts can be deployed in practice on the Ethereum blockchain without any forks or additional assumptions. We leverage any NIPoPoWs mechanism (such as FlyClient or superblocks) to obtain succinct proofs for arbitrary events, making proving them inexpensive for users. The latter construction is of particular interest, as it forms the first introspective SPV client: an SPV client for Ethereum in Ethereum. Last, we describe applications of smart contract derivatives which were not possible prior to our work, in particular the ability to create decentralized insurance smart contracts which insure an underlying on-chain security such as an ICO, as well as futures and options.

Metadata
Available format(s)
PDF
Category
Applications
Publication info
Preprint. MINOR revision.
Keywords
derivativessmart contractsspvethereumnipopows
Contact author(s)
kkarantias @ gmail com
dionyziz @ gmail com
History
2020-02-10: received
Short URL
https://ia.cr/2020/138
License
Creative Commons Attribution
CC BY

BibTeX

@misc{cryptoeprint:2020/138,
      author = {Kostis Karantias and Aggelos Kiayias and Dionysis Zindros},
      title = {Smart Contract Derivatives},
      howpublished = {Cryptology ePrint Archive, Paper 2020/138},
      year = {2020},
      note = {\url{https://eprint.iacr.org/2020/138}},
      url = {https://eprint.iacr.org/2020/138}
}
Note: In order to protect the privacy of readers, eprint.iacr.org does not use cookies or embedded third party content.