Today, many different blockchains exist and, in the future, there will be even more. Already, a supply chain transaction, from beginning to end, could involve writing or reading data from multiple blockchains. In addition, it is easy to foresee an increasing need for the exchange of information and the implementation of transactions across blockchains (i.e. interledger).
If external data or events based on time or market conditions needs to interact with the blockchain, an “oracle” is required. There is no standard way to supply “oracle” data securely, which can quickly become an issue in multi-party SmartContracts.
Calling code or data outside a SmartContract or blockchain in general is breaking the trust barrier threatening the authenticity of the dependent transactions. Cryptlets supply this functionality.
Cryptlets are off-chain code components that are written in any language, execute within a secure, trusted container and communicated with using secure channels. There are two basic types of Cryptlets; Utility and Contract. Utility Cryptlets make up the bulk of blockchain fabric providing horizontal services like encryption, time and date events, external data access and authentication services. Utility Cryptlets each have their own identification and attested signatures that are registered for use in the cloud. Developers can discover and enlist Cryptlets into their SmartContracts to create more robust and trusted transactions.
Contract Cryptlets are full delegation engines that act as a SmartContract surrogate off the chain. These Cryptlets provide all the execution logic and securely store the data in the SmartContract. Contract Cryptlets are bound to their SmartContract and created on the fly when the SmartContract is deployed to the blockchain. Because Contract Cryptlets do not execute in the Virtual Machine they do not run on all nodes in a blockchain, they can run in parallel and execute on vertically scaled systems for greater performance.
Contract Cryptlets can function as autonomous agents or bots, interacting with the world off the chain while maintaining the integrity of the blockchain and SmartContract itself. You can read more at Microsoft Cryplets. https://github.com/Azure/azure-blockchain-projects/blob/master/bletchley/CryptletsDeepDive.md
Town Crier is an authenticated data feed for smart contracts, a.k.a. an “oracle.” It was created by students and faculty at IC3, the world’s leading academic research initiative in blockchains.
TC isn’t like other existing “oracles,” though. Thanks to its use of SGX, TC provides unusually strong authentication for data and can also provide strong confidentiality for smart contract queries and operations.
You can have a look at Town Crier at http://www.town-crier.org/
ChainLink is blockchain middleware that allows smart contracts to access key off-chain resources like data feeds, various web APIs, and traditional bank account payments.
By providing smart contracts secure access to these key resources, ChainLink allows them to mimic real world agreements that require external proof of performance and need to make payment in widely available payment methods e.g. bank payments.
The LINK Network is the first decentralized oracle network; allowing anyone to securely provide smart contracts with access to key external data, off-chain payments and any other API capabilities. You can read more about it here https://www.smartcontract.com/
As mentioned earlier, blockchains can reference data outside of that blockchain. This includes data in other blockchains as well as non-blockchain systems. There are two broad categories of external data references that can occur in a blockchain system: linked data and blockchain-spanning transactions.
Linked data uses hashes and may also use digital identifiers and public key cryptography (as long as it is used consistently across the blockchain and whichever system the linked data is stored on). This implies that the more standardized the use of public key cryptography, the easier and less expensive it will be to link data — and the same can be said for the semantics defining the data.
Extrinsic blockchain references (also known as anchors) can be used to prove the existence or unchanged nature of the data pointed to. This is different from a hyperlink or Uniform Resource Locator (URL) on the Internet where the information at an address may change depending on the time it is accessed. For example, if you click on a link on a television news website, which changes on a regular basis as it is updated, what you find tomorrow may be different than what you find today. With a blockchain anchor data link, the information in the blockchain is a guarantee (proof of existence) that the data being pointed to has not been changed.
As well as linking data between two blockchain systems (cross-chain references) and pointing to data that may be used by a smart contract (for example a test certificate), linked data can also be used to incorporate off-chain big data into a space-constrained blockchain system. Supplementary data can either be in public/open distributed data systems such as Inter Planetary File System (IPFS — an open, content-addressable memory that uses standard internet protocols), or it may reference data in private databases that are selectively available to permissioned ledger users. With private off-chain or cross-chain references, it is possible for network operators to know that some data exists, but to have their access limited by additional controls. This can be very interesting from a privacy standpoint as it is possible to access data in order to know that, for example, someone is over 21, without giving their age, or that they live in London, without giving their address.
Inter-ledger (blockchain-spanning) transactions use cross-chain references and components (e.g. smart-contracts) on both blockchains that interact in a coordinated way. This is an emerging field, however there are mechanisms that already exist and are in use. These are primarily focussed on exchanging value (digital assets) between ledgers, for example Ripple interledger and the Lightning Network.