Interoperability and Connectivity: Unlocking Smart Contracts 3.0
Today’s blockchain ecosystems strongly resemble the early days of the Internet, when networks were siloed away from one another into self-contained Intranets. Over time, the Internet emerged as a universal communication bridge between systems, which lead to exponential growth of individual networks and the production of large amounts of valuable data.
This same evolution in network design is happening within the Distributed Ledger Technology (DLT) ecosystem, where the initial focus was on chain-maximalism – the idea that one blockchain can contain all the functionalities a decentralized application needs to run end-to-end. Unsurprisingly, the prevailing logic has shifted to more novel design patterns that combine multiple blockchain protocols, each built for a specific purpose. This ideological transformation stems from the realization that there’s simply too much data, too many unique developer needs, and too many risks associated with one platform accommodating everything.
This gives rise to a new problem: all these contrasting DLT protocols have no way to interoperate with one another, nor can they connect with non-DLT systems. To solve this fundamental problem of interoperability and connectivity, Chainlink – sometimes in combination with other interoperability protocols – is becoming the standard solution to facilitate secure and trustless communication between all disparate systems.
A Disconnected DLT Stack
The current architecture developing around DLT consists of many types of distributed ledgers that each make different tradeoffs to specialize in specific features. For example, Bitcoin, widely considered the gold standard for storing value, trades additional functionality and slower speeds for highly reliable, fully decentralized transactions. Ethereum increased its functionality by allowing developers to attach conditional statements (if/then) to state changes. However, to achieve this greater functionality, it traded simplicity for a more complex programming language, making it more complicated to learn and more prone to coding mistakes. Both Bitcoin and Ethereum have gained success, thanks to their specialization of performing one specific task.
This idea of chain specialization being more favorable than chain maximalism follows the same principles of the current Internet protocol stack. The Internet is not one monolithic do-it-all protocol; instead it’s a layer of protocols that all specialize in specific functions. Protocol stacks bring optimization through layer specialization and hedge risk by decreasing the attack surface of each layer.
Currently, there are many useful and unique DLT protocols that make up layers of the new distributed protocol stack Web 3.0 – a decentralized Internet where users are in control of their data, identity, and assets. These protocols are perfecting their own core functionalities, but lack the ability to cross-communicate within Web3 and beyond the network.
The foundation of the Internet stack is the Transmission Control Protocol and the Internet Protocol (TCP/IP) which packages and routes information to and from different computers/servers. It’s akin to the postal service that routes and delivers mail. While blockchains provide reliable ways to transfer data within their own ecosystem, the greater DLT ecosystem is still searching for standard protocols that Dapps can leverage for cross-network communication and off-chain data interaction.
Another major protocol that gave rise to the Word Wide Web (WWW) is the HyperText Transfer Protocol (HTTP) and its encrypted extension, HTTPS. HTTP is a protocol that allows a web browser client to send a request to a web server, which, if accepted, gives the user access to the web page. It defines how messages are formatted and transmitted and what actions the browser should execute upon receiving certain commands. Just like blockchains need a TCP/IP equivalent to transport information between one another at the base layer, they also need a protocol to direct how that information flows. HTTP builds on the existing TCP/IP stack and extends functionality to users by letting them access webpages. It has led to the creation of simple user interfaces and the mass sharing of information.
To build useful decentralized applications that can be applied to real-world situations, developers need both the ability to transfer data between systems and a standard protocol to direct the information movement. To achieve widespread DLT adoption, these protocols must make building Dapps as simple as drag and drop App development. Developers should be able to pick a blockchain (Public vs. Private, Speed vs. Decentralization, Application-specific), integrate with off-chain components (Oracles, Off-chain computation, State channels), connect to a variety of inputs (Data, IoT, Web APIs), and reliably settle using a multitude of outputs (Payment systems, The Cloud, Other blockchains). An example is a Dapp that can use an off-chain IoT device to trigger an Ethereum smart contract that pays out to two parties, one in Bitcoin and one in fiat using PayPal.
Constructing DLT Equivalents to TCP/IP and HTTP
When thinking about how to facilitate and direct data transfer, there are two main functionalities to address:
Decentralized Asset Exchange
One of the more recognizable functions of interoperability is allowing protocols to exchange their native assets with one another. For example: allowing someone to pay for Ethereum Dapps using Bitcoin or exchanging Bitcoin for Litecoin. Since tokens are the data of the blockchain space, enabling the exchange of assets is most closely associated with the TCP/IP protocol.
Decentralized Message Exchange
The other major yet less recognizable focus of interoperability is passing messages between protocols. For example, allowing IoT data from a device on IOTA to trigger an on-chain smart contract on Ethereum, which ultimately triggers a settlement payment on the Bitcoin blockchain. Messaging can happen between two distributed ledgers or occur between an on-chain smart contract and an off-chain system. For example: having an on-chain derivatives smart contract triggered by off-chain market data from Reuters, which then triggers an off-chain payment in fiat in the form of a SWIFT payment message. Directing how messages from one system trigger movements of data on an underlying blockchain or backend system is most closely associated with the HTTP protocol.
There are many approaches that facilitate the decentralized exchange of assets and messages. Before covering how Chainlink is active across all models, let’s look at some different approaches to the problem.
One way to solve interoperability is to use a separate blockchain as a bridge to facilitate cross-communication. Essentially, this is a third blockchain that sits in the middle of the two blockchains and maintains a cryptographically secured timestamped ledger of the transactional and messaging activity between the two.
Hub and Spoke
A popular approach is a hub and spoke model in which a parent blockchain acts as a central hub to other blockchains (spokes), often called sidechains. This approach is sometimes referred to as a Metachain and is being adopted by Polkadot, Cosmos, and Ethereum through several sidechain proposals (Plasma, Matic, Loom). While it’s possible to build a decentralized asset exchange as a sidechain(s) such as Plasma, most Metachains are primarily concerned with relaying cross-chain messages between all the sidechains in the network. There can also be special-purpose bridges built to connect with separate state machines outside their ecosystem such as Polkadot connecting with Ethereum.
One of the other approaches to interoperability is focusing predominantly around building a decentralized exchange of assets. Projects like Wanchain and Icon have built blockchains to allow other blockchains to connect to them to facilitate the decentralized exchange of assets. These models have strong comparisons to decentralized banks facilitating trading between networks. There are also protocols built on top of blockchains, such as 0X and Kyber Network, that facilitate the decentralized exchange of native tokens and provide on-chain liquidity.
General Purpose Bridges
Another proposed method is building general-purpose bridges using a blockchain. AION is a project that’s building a market for one-way bridges that provide timestamped blockchain consensus for verifying, recording, and storing cross-communication on the bridge in their ledger. This is useful for blockchains not part of a hub and spoke model or those that need a specialized bridge for a specific need.
The other way to facilitate interoperability between systems is with off-chain or middleware systems. Entities in this category need to be carefully analyzed, since working with off-chain data cannot be verified in a deterministic system. However, the right approach can offer highly efficient, practical, and equally secure solutions for their users.
Atomic swaps are a decentralized way to exchange two assets, such as swapping Bitcoin for Litecoin, without going through a centralized exchange. An atomic swap is like a real-life barter where people come to an agreement on the terms of the exchange and then swap assets once they agree. While it’s still early in the technology and mostly limited to like-kind protocols, projects like Komodo have pioneered work on atomic swaps for non like-kind protocols such as exchanging BTC and ETH.
One lesser-known functionality of oracles is that they can be used as general-purpose bridges between blockchains. Oracles in this function can format messages for communication, not just between blockchains, but with any disparate enterprise system. For example, the transactional activity of one blockchain can be used as an input to trigger the execution of a smart contract on another blockchain. Another example is taking data from the cloud to trigger an on-chain smart contract, which then settles again off-chain on an established payment system. Oracles enable a wide range of cross-communication functions not possible in other models.
Another method for swapping assets on the same blockchain is by creating an off-chain state channel to transfer assets between parties. State channels allow different parties to trade and record ownership over assets without needing any on-chain transactions until final settlement. It’s beneficial for scaling and reducing on-chain transaction costs. With the coming Ethereum Plasma upgrade being rather limited to UTXO asset swaps between sidechains, state channels can be used to exchange messages about state changes, before eventually settling with an on-chain state change.
Chainlink: A General Purpose Communication Standard
Chainlink is the first decentralized oracle network that acts as an all-purpose HTTP protocol-like equivalent (or HTTPS using a TEE) for messaging at the protocol and application level both on-chain and off-chain. Chainlink nodes are able to format messaging and data from public APIs into a readable format for smart contracts. Chainlink nodes can connect to any API, whether it’s a blockchain, enterprise system, Web API, or IoT device. For specific tasks outside of what the Chainlink core node supports, such as those that require private credentials, external adapters can easily be created to extend the functionality of the node. Chainlink is the perfect tool for allowing smart contracts to direct data flow on and between disparate systems using any amount of decentralization and security.
Chainlink is the market-leading solution for getting off-chain data to on-chain smart contracts. This standalone function is important for many blockchains that don’t have to interact with other blockchain protocols but do need access to external inputs and outputs. These resources mostly revolve around off-chain data to trigger smart contracts and settlement outputs like established payment systems and cloud backends. It’s estimated that over 80% of smart contracts need some form of off-chain resource.
Hub and Spoke
While hub and spoke interoperability protocols have their own cross-communication messaging between sidechains, they will need off-chain data to trigger on-chain movements within the ecosystem. Chainlink has already announced partnerships with Polkadot and Ethereum to provide off-chain data to their networks.
Many decentralized finance (DeFi) platforms also enable cross-chain communication between protocols via bridges, but for asset movement, these blockchains often need market data to trigger exchanges. Wanchain is integrating with Chainlink to provide off-chain data to their on-chain smart contracts.
General Purpose Bridges
Chainlink can facilitate messaging between protocols using external adaptors. They’re useful for triggering on-chain actions based on the events of other blockchains and systems. There are already external adaptors available for AION, IOTA, and Zilliqa that developers can leverage in their cross-chain applications. Chainlink can also use external data to trigger asset movements on blockchain based one-way bridges, such as on the AION network.
While still under development, Chainlink oracles could run in Trusted Execution Environments (TEEs) – protected environments akin to a black box that’s able to execute trusted computation. TEE-based oracles are ideal for securely connecting public blockchains to enterprise blockchains, connecting enterprise blockchains together, and transferring confidential information between all systems. Interoperability on public blockchains is not suited for sensitive information; however, implementing Town Crier, a TEE-based oracle acquired by Chainlink in 2018, allows for privacy-preserving message relays across multiple chains.
Private Keys and Credentials
Also through the use of TEEs, Chainlink could be used to handle credentials, which is essential for decentralized exchange. Chainlink oracles running in a TEE could login to someone’s account to verify they are in possession of an asset or have the funds to cover a purchase. The information could be securely relayed to the smart contract to trigger or deny an exchange. Chainlink oracles could also be used to handle a private key to trigger transactions on public blockchains. Since most accounts participating in exchanges will come from already funded accounts, a TEE is essential to handle sensitive information like a private key without worrying about funds being stolen or account information being leaked.
State channels are great for cost savings and off-chain scaling. However, to ensure that state channels are honored and settled on-chain in the same form they took off-chain, they need unbiased triggers. Chainlink oracles can allow data to trigger state channel transactions, as well as use data to trigger on-chain settlement, given that certain conditions are met.
Since an atomic swap is peer-to-peer, knowing whether the script enabling the atomic swap is valid is challenging for the average user. Decentralized oracles can be used to verify the payload of the atomic swap in order to confirm it operates as agreed upon. It can also make use of collateral to further incentivize nodes to provide accurate information on swaps.
The Birth of Connected Consensus
Akin to the evolution of Intranets to the Internet, interoperability between blockchains and disparate systems will usher in a new wave of smart contract functionality. New use cases that were previously impossible in Web 2.0 will change the way consumers and businesses interact.
The cross-communication protocol of TCP/IP is what enabled networks to transport information to one another across the world and HTTP allowed web browsers to quickly access data. These protocols enabled the world wide web as we know it today. Interoperability protocols bring similar transformation to the DLT space by enabling multi-chain applications that can retrieve any off-chain resource to trigger state changes. They not only connect blockchain silos together, but also connect the new DLT ecosystem to the current non-DLT infrastructure running the world.
Chainlink is, at its core, a general-purpose communication standard that can be used to securely route input/output data messages between all systems. When all the protocols in the DLT stack are able to interoperate seamlessly, smart contracts 3.0 emerge as fully connected end-to-end solutions able to uproot many current business models.
Join the Community and Start Building with Chainlink Today
If you want to start building with Chainlink today, visit the developer documentation, join the technical discussion on Discord, and/or reach out to us about securely launching your data-enabled application or Chainlink Price Reference Data Contract on mainnet today.
If you want to get involved in the Chainlink community, visit our events page to join future meetups like this in your local area. If you want to become a Chainlink Ambassador and host a meetup, sign up today! For more information, check out the Chainlink website or follow us on Twitter or Reddit.