Want to Connect Blockchains? Dragonchain Interchains them All - Hacked with Joe Roets 1
On April 30th, Laura Shin had a great podcast with the leadership behind Tendermint and Cosmos. Jae Kwon, Founder and CEO of Tendermint and President of the Interchain Foundation, and Ethan Buchman, Cofounder of Tendermint and Cosmos and Technical Director of the Interchain Foundation, were both interviewed as part of the Unchained podcast.
We thought Laura asked some really great questions, so we decided to let our CEO, Joe Roets, take a stab at them too, and speak to Dragonchain’s blockchain platform and solutions.
Question: Can you give a high-level overview of Dragonchain?
Dragonchain is a hybrid blockchain platform that was originally built at Disney from 2014 to 2016. It was open sourced in October 2016, and launched as a commercial platform in 2017.
It has a unique hybrid consensus algorithm focused on business use cases and the protection of business data. It was the first operational hybrid blockchain and the first to connect to the Bitcoin network for Proof of Existence in 2016.
Dragonchain simplifies the integration of real business applications onto a blockchain and provides features such as easy integration, protection of business data and operations, currency agnosticism, and multi-currency support.
Question: What problem or problems are you trying to solve?
Dragonchain seeks to increase adoption of blockchain technology in real business use cases by creating the most flexible blockchain platform for business.
Question: What is the vision?
We believe that this technology is the next generation of software and connectivity. It combines proof of time, digital asset scarcity, and software embedded market principles which can drive any business need.
Dragonchain's vision is to make the dream of blockchain possible for real businesses and usable by normal people by offering flexibility, interoperability, and Enterprise level scale to the industry.
Question: Is it built on top of Ethereum? Does it have its own blockchain?
Dragonchain is built from scratch to leverage the use of all blockchains (utility and platform blockchains).
It's token, Dragon, is an implementation of the patented "Tokenized Micro-License" model which is used to access its utility services. The token is built on Ethereum as an ERC20 standard token to demonstrate Dragonchain's Interchain technology and to leverage the large ecosystem of ERC20 support.
Question: What enables the different blockchains to be interoperable?
Dragonchain uses patented Interchain™ technology which allows simple PoE hashing into other chains, but more importantly, uses Interchain Watcher and Publisher smart contracts to interact with other blockchains.
A Watcher is able to watch for token or currency transfers to or from specified addresses, or for smart contract invocations on the foreign chain. When activity is seen, a Dragonchain smart contract may be invoked to process data.
A Publisher contract is able to invoke a smart contract, send a message, or transfer tokens or currency on a foreign blockchain.
Creation of a new Interchain contract set is relatively simple and requires setting up and configuring a node of the external chain (e.g. a Bitcoin node) along with implementation of the Watcher and Publisher contract to interact with that chain.
Question: What if I have Bitcoin and I want to use it on Ethereum?
This is not the primary focus of Dragonchain, as we are more interested in opening up interoperability between chains so that a business can leverage utility blockchains and provide PoE across multiple blockchains.
We do however have an interesting technology called Wyrmholes™ that allows tokens to live on multiple chains and provide "Wyrmhole" transports between chains for this technology. We've used this technology in our platform and console since our production environment became operational in April 2018.
Question: The Dragonchain SDK, which I think is a way that you guys provide tools for other developers to build their own blockchain. Is that correct?
Yes, we have 2 open source SDKs available currently for Python and Javascript/NodeJS, and are actively engaged with customers building a Go SDK.
To build a blockchain on Dragonchain, a developer may use any language (or executable code) housed in a Docker container which is deployed to a Kubernetes cluster.
Question: Why use Dragonchain rather than simply exchanging the tokens on an exchange or using an atomic swap?
Though not a focused use case for Dragonchain, a user would have more flexibility to process or automate this transfer.
Question: Who builds the blockchain(s) and applications? Is it Dragonchain? Or you just provide the architecture?
We provide the platform. The customer spins up a node with a few clicks and either registers a transaction type for ledgering or creates a smart contract in any language and deploys it to their node.
Question: Where would you put Dragonchain, fast finality or probabilistic finality? Or both?
We consider Dragonchain to provide a spectrum of consistency from immediate consistency like a relational database at the customer's node (L1 or business node) to eventual consistency like a no-SQL database for the verification nodes (L2-L5) where the L5 node is "checkpointed" into a public blockchain. As of May 2019, Dragonchain has Bitcoin, Ethereum and Ethereum Classic public blockchains operational as L5 nodes with their inherent speeds.
Question: You guys only have 200 validators to start, is that sufficient to secure the chain?
We have over 200 nodes currently running on our network. This is sufficient to secure the chain for more than one reason. First, the successive distribution of the DragonNet verification nodes provides context based verification covering validation, enterprise governance, diversity (measured decentralization), notary, and Proof of Existence (PoE). Second, and more important, the Level 5 nodes (public blockchain verification) combine the security (hashpower, staking power, etc.), diversity of proof algorithms, and decentralization of all public chains that are Interchained. This is obviously sufficient to secure the chain as it currently applies the combined hashpower of BTC, ETH, and ETC already, along with the staking power of NEO, with more to be added.
Question: Do validators need to go through KYC?
Some verification levels require KYC (e.g. L4 is a notary context verification and requires a known and reputable entity or individual).
Question: How does a 51% attack work on Dragonchain?
I will have to describe it in two different dimensions...
- First, our network "Dragon Net" uses patented TIME* technology to measure time tokens are held and use that time as network scarcity. Since time cannot be manipulated, an attacker would need to acquire a large amount of tokens, apply them to nodes in the network, and then wait for time to pass.
- Second, the attacker would need to do this on all 5 levels of the network, some of which require KYC.
*TIMES = DRGN balance * days held
Question: Can validators fork Dragonchain's blockchain or main chain?
Not currently. We currently have the original open source code repository published by Disney without much modification, and 120 private repositories with over 6000 commits in the last 12 months. We hope to release the core platform as open source in 2019.
Question: Is Dragonchain secure right now?
We believe the platform to be secure currently, but no software system is ever completely secure.
Question: How do you make Dragonchain more secure?
We are building a security and bug bounty program to further improve the state of security.
Question: How does your consensus work? Is it PoS? PoW? Can you choose? Do they interoperate?
Our consensus algorithm is "Context Based Verification" as documented in the 2016 Dragonchain Architecture Document. Each level may have multiple traditional proof algorithms applied (e.g. PoW, PoS, or as yet unknown proof algorithm).
It details 5 levels of verification (with optional custom levels) each of which verifies a block from a different angle.
- L1 - business node - Approval or denial of individual transactions in a fixed 5 second block based upon the user's business logic.
(business payload is stripped before L1 block is sent to L2 nodes)
- L2 - validation node - validation of transactions in the L1 block based upon network rules (signature, required data present, etc.)
- L3 - network diversity - verification that multiple L2 nodes from multiple owners (and optionally multiple data center deployments) have successfully verified the L1 block
- L4 - notary - cryptographic signing of the L3 block by a node owned by a known and reputable independent source (an organization or individual)
- L5 - public chain - places a hash of aggregate L4 blocks into a transaction on a public chain (e.g. BTC or ETH) for independent Proof of Existence with ideally measurable security (e.g. hashpower)
Question: All chains and applications within Dragonchain can interoperate with each other?
All chains and smart contracts owned by a user can interoperate currently, and all Dragonchain chains can interoperate with all supported Interchains (currently BTC, ETH, and ETC).
We will soon offer the ability to define subscription data feeds between separate users' chains. This was supported in the open source release, but has yet to be implemented in the commercial platform.
Question: How about any other blockchain outside Dragonchain? Can you Interchain with all blockchains?
We currently Interchain with BTC, ETH, and ETC. It is our goal to Interchain everything, focusing at first on hashpower and alternate algorithms (staking, hashgraph, etc.), and utility (e.g. storage, decentralized compute, etc.) and ultimately, even with non-blockchain systems.
Question: In terms of scalability, how scalable is Dragonchain? Are there any possible ways to congest Dragonchain?
We attack scalability in a number of ways at the architectural level. We can handle extremely high traffic at our L1/business nodes due to their centralized and traditional model. The network will never affect the processing of transactions on the L1 node.
At network levels from L2 to L4, we use encapsulated TIME to provide marketplace scarcity, however, because we are cloud based (multi-cloud and on premises deployments coming), any network verification node can scale to take significant portions of the full network processing without limits based upon hardware instances.
At network level 5, we aggregate L4 blocks into a single transaction on a configurable cadence determined by the public network fee (e.g. higher fee networks will checkpoint less often).
Question: What do Dragons do in the Dragonchain ecosystem?
Dragons are Tokenized Micro-Licenses which encapsulate token, platform, and service terms with cryptographic agreement for every execution. They are used as fractional licenses to use services on the platform. They also collect TIME for the holder that owns the keys to an address. TIME literally encapsulate the time which affects many things in the ecosystem (early access, discounts, available features, fee collection, etc.).
Question: Does Dragonchain have community governance? How does it work?
Dragonchain has an active and strong community that interacts in over 10 forums to give feedback and offer proposals informally. We have implemented many proposals that came from the community.
Question: Can there be failures or a state of failure? How does that get solved?
Individual transactions can fail and be denied by the user's business logic/smart contract. It is a very business focused platform so the best answer may be that failures can be handled automatically or manually based upon the user's definition.