  Popular blockchains such as Ethereum and several others execute complex
transactions in blocks through user-defined scripts known as smart contracts.
Serial execution of smart contract transactions/atomic-units (AUs) fails to
harness the multiprocessing power offered by the prevalence of multi-core
processors. By adding concurrency to the execution of AUs, we can achieve
better efficiency and higher throughput.
  In this paper, we develop a concurrent miner that proposes a block by
executing the AUs concurrently using optimistic Software Transactional Memory
systems (STMs). It captures the independent AUs in a concurrent bin and
dependent AUs in the block graph (BG) efficiently. Later, we propose a
concurrent validator that re-executes the same AUs concurrently and
deterministically using a concurrent bin followed by a BG given by the miner to
verify the proposed block. We rigorously prove the correctness of concurrent
execution of AUs and achieve significant performance gain over the
state-of-the-art.
