Analyzing Smart Contract Interactions and Contract Level State Consensus
Appeared in CPE Journal, 2018
Abstract Although the primary function of distributed ledgers is to store data related to users’ interactions, their capabilities allow them to offer more sophisticated functionalities. Advances in blockchain technologies introduced smart contracts, software programs that define immutable rules as functions stored on the blockchain and can be executed on demand. Smart contracts can interact not only with users but also with each other via message exchange. We compare existing smart contract interactions, and develop an architecture for asynchronous state consensus, a novel type of smart contract interaction required in applications but had rarely been addressed. The proposed architecture is composed of two types of smart contracts: Custodian and Client. Client smart contracts serve as network participants reaching a particular consensus collectively by forming a cluster and issuing votes towards a final state agreement. Custodian smart contracts serve as the arbiters that aggregate and calculate voting results as the finalized state consensus that is shared across the network. To test the feasibility of our proposal, we conduct experiments on the consensus reaching latency and the scalability under different network configurations with standardized Amazon Web Service instances. Lastly, we discuss the robustness our proposal concerning Byzantine Fault tolerance and list possible applications. In the gaming industry, an ERC721 smart contract does not allow contrasting structural features between individual tokens, yet only minor value-level differences. The proposed solution can address the need for character diversity that characters can be created and attached to a gaming smart contract after deployment, which enables fine distinction between characters. The proposal can also achieve sharing states across smart contracts, such as the jackpot, which renovates the flexibility of blockchain gaming.
Read the whole paper here.