Cross-Chain Interop: Sept 11, 2018 Tech Tuesday Update

Komodo Team
Komodo Team

Cross-Chain Interop: Sept 11, 2018 Tech Tuesday Update
Table of Contents
Table of Contents

Things move fast at Komodo Platform. That’s why the Komodo team has decided to release a weekly briefing to cover all of the progress the Dev Team is making. This series of posts is called the Tech Tuesday Updates.

In case you've missed a previous edition and want to catch up, you can find all the previous Tech Tuesday updates here.

A New Antara Module: Oracles

Komodo’s Lead Developer James jl777 Lee recently developed a way to create an Oracle module within the Antara Framework. This allows you to turn your off-chain data into on-chain data through “sanctioned” data providers. The sanctioning is done by convention through using accepted pubkeys. However, this does not require a smart contract! This solves the oracle problem and allows all projects building with Komodo's technology to add data to their Smart Chain in a secure, trustless way.

Where the Oracle Antara module becomes useful is providing payments for oracle providers. Further, this contract mechanism isn’t limited to payments— without using too much imagination, it could be used for censoring or dispute resolution as well.

The Oracle module outputs begin with a simple “name/description” transaction. From this transaction, “data provider” and “data users” are then created— both are derived from the name/description transaction (like any Antara module) and result in transactions which are used throughout the contract’s life (cycle).

Sybil protection? Yes. In order to prevent abuse, the data providers query has a cost.

Performance of oracle data? There are additional transactions created for marking the start of oracle services (per service) and a “marker” transaction (also per service) which is somewhat dynamic. Being dynamic it has been named a “baton” transaction. This baton transaction is simply a reversed linked-list of data going from the most recent data linked back to the starting point of the blockchain enforced oracle data.

Cross-Chain Interop Features

Komodo has several types of cross-chain interop features.

First and foremost, Komodo is the industry leader in atomic swaps. Atomic swaps are peer-to-peer trades of digital assets made directly from one user's wallet to another, without any trusted third-parties or intermediaries. Atomic swaps allow cross-chain interop because they allow users to make cross-chain trades between two different assets. This is true even if the assets are from blockchains with different protocols or different blockchain platforms.

For instance, with AtomicDEX, traders can make swaps directly between ERC tokens and UTXO-based blockchains, like DigitByte, Dash, and KMD. Although Ethereum and all of the ERC tokens created on the Ethereum platform are not based on the UTXO model, atomic swap technology makes it possible for traders to swap between these assets and Bitcoin or other coins that use the Bitcoin protocol.

The second type of cross-chain interop feature that Komodo offers exists exclusively within the Komodo ecosystem. Through Platform Synchronizations, all Smart Chains have the option to exchange data with other Smart Chain projects. This enables cross-chain interop of data and logic. For example, one Smart Chain can verify a specific transaction on another Smart Chain very quickly and easily.

Additionally, Smart Chains can exchange logic. If a dApp running on one Smart Chain has information that might be useful to other projects within the ecosystem, other Smart Chains dApps can ping the first dApp to receive data and verify state changes.

The third and final cross-chain interop feature is cross-chain fungibility, which lets multiple Smart Chains function in unison as one logical chain. This is called Multi-Chain Syncing.

Create A Blockchain With Cross-Chain Interop Features

Komodo’s continued focus on independence highlights these key features:

  1. Each Smart Chain is independent, with its own consensus rules, network, and coin.
  2. Each Smart Chains runs Antara Modules natively and independently of other chains.

The only exception would be cross-chain contracts that use a transaction from other chains as input to their local contracts.

For fungibility between chains, the -ac_cc parameter at chain launch needs to be set to at least 101. If a chain is launched as a cluster of chains, the validation of transactions between chains needs this -ac_cc parameter set between 2-100.

Here are the parameters:

ac_cc > 100 = Cross-Chain Interop & Fungibility + Antara modules

ac_cc 2-100 = Cross-Chain Interop + Antara modules

ac_cc 1 = Antara modules

ac_cc 0 = Both Cross-Chain Interop and Antara modules are disabled

For more information on configurations for your Komodo-based blockchain, please have a look at the Custom Consensus (ac_cc) parameter definition and the other 18 ways to customize your blockchain with Komodo's technology.

You can also try the Antara Composer, an easy-to-use web application that lets you customize and launch your Smart Chain with just a few clicks. Learn more about how to make a blockchain with Komodo's Antara Composer.

Testing Cross-Chain Interop

As usual, the #KMDLabs channel on Komodo’s Discord server make their own testing rules from week to week. They have been collaborating with Komodo team member libscott for testing cross chain fungibility.

The KMD labs community found a smart contract (still in heavy development) activation bug which will one day be a useful parameter for existing Smart Chains to activate Antara modules that have been developed after their chain is already live.

For this week, they’ve been busy getting a testnet notary network up for cross-chain interop fungibility testing. The early goals have been one-way fungibility. These seem to have passed without any problems. No lost coins, no coins created out of thin air.

Ethereum Notarizations

There is a team of community members helping libscott test the notarization process with Ethereum and ERC20 tokens. The first notarizations happened on Friday, August 31.

For public testing, the ETH notarization to KMD happens by syncing Komodo and importing your private key. In production, this will be a notary node operator’s function. Once synced, installing the hath software written by libscott and running the Ethereum client geth is required.

Finally the BTC pubkey of the corresponding Komodo address is included in a mandate contract. Those keys in the mandate contract are the ones that can do the notarization to KMD.

No other process has been tested as yet but this is an ongoing engineering project within the Komodo Ecosystem.

Why Agama Wallet May Set Off Anti-Virus Alarms

When packaging up Komodo dApps, the release engineering specialists run through all the AV checks. The AV manufacturers like AVG, Avast, ZoneAlarm & Kaspersky set off “not a virus” warnings about cryptocurrency mining with some packages. This is because some of the crypto-libs (cryptography libraries) are used in other legitimate projects and, unfortunately, some illegitimate scams.

These crypto-libs are safe. They are as safe as dollar bills in that it’s not the dollar bills that cause damage to the world (with bombs and illicit substances). The crypto-libs are sometimes used by nefarious third parties— just like the aforementioned bombs and illicit substances..

Agama comes with an option to run in Lite/SPV mode for easy everyday use, it also has full/native mode which includes the Komodo daemon (server software). The daemon is used for mining on the network (by Notary Nodes) for creating consensus. This is the component that triggers the AV warnings. It is completely safe to use in the Agama wallet. Agama wallet is not used for anything but the user’s instructions and benefits.

Great! Next, complete checkout for full access to Komodo Platform Blog | En
Welcome back! You've successfully signed in
You've successfully subscribed to Komodo Platform Blog | En
Success! Your account is fully activated, you now have access to all content
Success! Your billing info has been updated
Your billing was not updated