Qtum is an up-and-coming smart contract platform set to launch in September of this year. Sometimes ambitiously referring to itself as “China’s Ethereum,” the project recently raised $15 million in three days through a successful crowdsale or “Initial Coin Offering” (ICO).
On a technical level, the Qtum blockchain will resemble Bitcoin, but will integrate an Ethereum-like Virtual Machine on top for smart contracting purposes. Additionally, Qtum is in the process of implementing a “Decentralized Governance Protocol” (DGP). This DGP will have smart contracts determine the blockchain’s parameter selection, like its block size limit.
Jordan Earls, also known as “earlz” online, is the co-founder and lead developer of Qtum.
“We believe this will allow for Qtum to be the first self-modifiable, self-regulating and ultimately self-aware blockchain,” he told Bitcoin Magazine.
Any blockchain has a number of parameters. In Bitcoin, this of course includes the 1 megabyte block size limit. But it also includes the block reward (currently 12.5), the block interval time (ten minutes) and more. These and three other parameters apply to Qtum as well.
But there are two basic problems with needing to have these parameters. First, they are very hard to get “right,” in so far as that’s even possible, since different parameters benefit different use cases. And second, in a decentralized system, these parameters can be very hard to change.
“The core rationale and problem we had when designing this is that we will release Qtum with some initial parameters that we try to make perfect,” Earls told Bitcoin Magazine. “But we don't know what the ecosystem will look like one month after release, much less one year. So, we designed DGP. That way, we can tune the blockchain to be as usable and secure as possible without needing to fork, just to change a simple number from 1 to 2.”
Qtum plans to realize this way of “tuning the blockchain” by doing what it does best: The DGP will consist of relatively straightforward smart contracts made up of blockchain-readable pieces of executable code.
“We have open-source smart contracts which implement the rules for changing the parameters, which will then be accepted by all nodes. It implements a fairly simple governance system of ‘user keys’ and ‘admin keys.’ There is a modifiable parameter in the contract which determines how many keys of each type must vote in order to approve a change to, say, the block size limit.”
Importantly, through the use of smart contracts, these keys can actually represent more than just a regular user per key: Each key can represent a defined group.
“Perhaps one key represents a majority of hash power; or a key represents coin votes by coin holders; or a key acts according to a dynamic limit based on how full blocks are. Or even oracles: a key can effectively be controlled by people or servers that act based on input not directly readable by the blockchain itself, like USD market price for transaction fees. It’s extremely flexible.”
Qtum will almost certainly include smart contracts for the block size limit, the gas schedule to determine the price of different smart contract operations (for which Ethereum hard forked several times) and the minimum gas price. Additionally, it might deploy smart contracts for block interval times, block rewards, maximum gas per block and maximum script size or signature operations per transaction or block.
Changing the Rules
Embedding the parameter selection in smart contracts is clever and having all node software adjust accordingly even more so. However, an arguably even harder problem is not so much what parameter is decided on, but who gets to decide in the first place and how.
In Qtum, the initial parameters will be set by the developers based on their testing and measurements.
“For instance, we've already determined that a block size of 2 megabytes should be reasonable,” Earls said.
After that, the initial set of rules to define the parameters can be changed themselves within the rules of the system, too.
A smart contract could, for example, start out relatively simple: It requires a majority of core developers to change the rules of the contract. Then, if a majority of core developers decides that instead of just developers, it should also include a majority of coin holders, the contract can be changed to a two-of-two multisig contract. From that moment on, one key would represent the developers, while the other key would represent the majority of coin holders. Next, if both developers and coin holders agree, hash power can have a seat at the table, too, and so forth.
As such, Qtum smart contracts can change not only the parameters of the system, but also how the parameters themselves can be changed.
That said, as Earls acknowledged, the Decentralized Governance Protocol can’t actually solve all governance problems. It’s specifically designed to make certain predefined parameters more easily adjustable, and it can indeed even change how these parameters can be adjusted to some extent.
But the Decentralized Governance Protocol does not and cannot apply to network rules that aren’t among these predefined parameters. Protocol changes outside of these specific parameters would still require a typical upgrade mechanism, like a hard fork or a soft fork.
“I believe if Bitcoin had DGP technology, then we would still see all this fighting about SegWit vs Bitcoin Unlimited, etcetera,” Earls acknowledged. “But, DGP would have been used in the meantime to increase the block size to something conservative but reasonable like 2 megabytes or 4 megabytes, to avoid all the transaction speed problems. Meanwhile, the developers and community could figure out a more permanent solution.”