---
title: "Smart Contract: Current and Future perspective"
type: article
date: 2019-12-17
source: website
original_url: "https://navveenbalani.dev/index.php/articles/smart-contract-current-and-future-perspective/"
topics: ["blockchain"]
legacy_categories: ["blockchain"]
tags: ["blockchain-guide"]
summary: In this article, we will look at what applications are being developed using smart contracts, what are the current challenges and our view on the future of smart Contracts. First, let’s understand the role of smart contract. Smart contract defines and executes transactions in…
draft: false
---

In this article, we will look at what applications are being developed using smart contracts, what are the current challenges and our view on the future of smart Contracts.

First, let’s understand the role of smart contract. Smart contract
defines and executes transactions in the form of a software code. It comprises
of operations that act on the state of the blockchain ledger. So, the current
capability is to manipulate and view the state in the blockchain and ensure
that the shared ledger stays consistent across all the nodes in the network.

If we decide to extend the behavior of smart contract beyond just
manipulating and retrieving the ledger state, like interacting with external
systems for data or a third-party service, then these new requirements or
extensions can impose challenges that need to be addressed. To understand this
in detail, let’s take an example of a DApp, where there is a requirement to
read data from a public website (say stock price or forecast) as part of the
smart contract functionality. Even if the data may not change in the future,
how can one verify and confirm that the data received is same, genuine and
unaltered throughout the network. In such a scenario, we would need a
third-party system, which provides a transaction proof of the data that was
accessed and retrieved at that moment. This third-party system providing
secured transactions and value is referred to as oracle in blockchain
terminology. So instead of smart contract accessing the public feed, the oracles
extract the information and push the data into the smart contract.

Let’s take another example of an existing business network or multiple
networks, already having its own set of enterprise data maintained in a data
store like relational databases or some legacy systems. How it can leverage
blockchain technology for trust, visibility and speedy settlement and how smart
contract can play a role here? Do we end up replacing legacy systems to make it
work with the blockchain network or do we find out a way to achieve consensus
on the existing enterprise data without replacing old systems?

To understand this, let’s take an example of a trade finance
application where multiple entities like banks (consortium of importer and
exporter banks), shipment and logistic firms, custom/port authorities, buyers
and sellers - all maintaining their own respective systems. They are looking to
form a consortium of a trade finance network with the objective to devise a
common smart contract that can be made accessible and visible to all the
entities along with enforcing trust and speedy settlement.

In order to realize this use case, each system would need to provide
their respective data in the form of attributes (we will refer to this as
shared business attributes) which is essential for trade to happen. Think of
shared business attributes as a common schema definition for a trade, where
each entity owns and provides their respective data and make updates to it. The
smart contract would then be bootstrapped with shared business attributes from
each system. Each entity based on where they are in the trade process, would
make necessary state changes to the smart contract and update the ledger and
their respective backend systems. For example, once the goods are delivered,
the shipment vendor would need to update their backend system, say a SAP
application (for their actual processing and reporting). In order for the
external application to receive data or attributes value via smart contract, it
needs to listen to the events generated from the blockchain network (say order
received event) and accordingly make updates to their backend system.

So, in a nutshell, the current generation of smart contracts and its
use cases would be around providing shared business attributes that will be
visible to all the concerned entities, while the rest of the functionality would
still happen in their respective systems (like SAP, CRM or Mainframe
system).  The smart contracts of today
would need to work in tandem with external systems, be it a SAP or a bank
legacy application and not to replace existing systems.

In the future as blockchain platforms and smart contract technology
evolves, we envision a seamless integration between smart contracts and the
external systems. Most importantly the application integration should not break
the consensus and therefore there is a need to create a secured environment
(using crypto materials) that can seamlessly communicate with external systems.
We will refer to this as an ‘external contract container’ responsible for
integrating with the outside world. As we dwell deeper into this integration
scenario, it might also make sense that the ‘external contract container’
should not run on all the nodes. For example, the shipment entity or node
updating its SAP system need to happen only once and not by all the nodes
(other participants of the blockchain network). So we are looking at only
certain nodes, which are authorized based on their roles, running the ‘external
contract container’ to communicate with external systems. We provided only one
integration scenario, but there would be many such integrations patterns
emerging in the future.

As you see the function of smart contract will evolve in future to
cater to many such requirements, we are probably looking at the first
generations of blockchain smart contract technology. We also envision new
blockchain platforms with new consensus algorithms addressing external
application integration using smart contract technologies and many more
innovations in this space that will enable the business and consumer networks
perform business with trust and transparency as part of next generation
internet applications.

To conclude this section, the golden rule for any blockchain transaction is that it should be deterministic in nature. Using smart contracts allows us to manipulate the state in the blockchain in a consistent way. This is ideal for any use cases, which require shared visibility and trust across parties, where collaboration happens through an automated workflow and updates to the blockchain state is handled by smart contracts.

Learn how to build Blockchain applications with my free course - <https://www.udemy.com/course/building-blockchain-applications-using-ethereum-hyperledger-fabric/>