  Smart contract (SC) platforms form blocks of transactions into a chain and
execute them via user-defined smart contracts. In conventional platforms like
Bitcoin and Ethereum, the transactions within a block are executed
\emph{sequentially} by the miner and are then validated \emph{sequentially} by
the validators to reach consensus about the final state of the block.
  In order to leverage the advances of multicores, this paper explores the next
generation of smart contract platforms that enables concurrent execution of
such contracts. Reasoning about the validity of the object states is
challenging in concurrent smart contracts. We examine a programming model to
support \emph{optimistic} execution of SCTs. We introduce a novel programming
language, so-called OV, and a Solidity API to ease programing of optimistic
smart contracts. OV language together with static checking will help reasoning
about a crucial property of optimistically executed smart contracts -- the
validity of object states in trustless systems.
